---
title: 【大規模言語モデル入門 】５章5.1~5.3
tags: 
author: [京都大学人工知能研究会KaiRA](https://www.docswell.com/user/kyoto-kaira)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/G78RYR14ED.jpg?width=480
description: 【大規模言語モデル入門 】５章5.1~5.3 by 京都大学人工知能研究会KaiRA
published: October 31, 24
canonical: https://www.docswell.com/s/kyoto-kaira/ZP24DQ-2024-10-31-222653
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/G78RYR14ED.jpg)

2024年度後期輪読会#5 10/31
大規模言語モデル入門 5.1-5.3
京都大学理学部3回生
宮本 真弥
0


# Page. 2

![Page Image](https://bcdn.docswell.com/page/L7LK4KQVER.jpg)

アジェンダ
◼ 日本語ベンチマーク:JGLUE
◼ 感情分析モデルの実装
◼ 感情分析モデルのエラー分析
1


# Page. 3

![Page Image](https://bcdn.docswell.com/page/4EM2K21NEW.jpg)

アジェンダ
◼ 日本語ベンチマーク:JGLUE
◼ 感情分析モデルの実装
◼ 感情分析モデルのエラー分析
2


# Page. 4

![Page Image](https://bcdn.docswell.com/page/PERMXML479.jpg)

日本語ベンチマーク:JGLUE
基盤モデルが進歩するほど難しいベンチマークが必要になる
基盤モデルの性能向上
・BERT
・GPT
・Amazon Titan
・Claude
・BLOOM
…
難しいベンチマークの提案
・GLUE
・SuperGLUE
・BIG-Bench
・HELM
・GAIA
…
しかし英語のものが多くほかの言語におけるベンチマークの作成は重要な課題
3


# Page. 5

![Page Image](https://bcdn.docswell.com/page/P7XV6VWZJX.jpg)

日本語ベンチマーク:JGLUE
日本語のベンチマークJGLUEが構築される
タスク
データセット
文章分類
MARC-ja
MARC-ja
JSTS・JNLI
JCoLA
文ペア分類 JSTS
JSQuAD
JNLI
質疑応答
JCommonsenseQA
JSQuAD
JCommonsenseQA
JCoLAのデータ
https://github.com/osekilab/JCoLA/blob/main/data/jcola-v1.0/in_domain_train-v1.0.tsv
画像引用：https://techblog.yahoo.co.jp/entry/2022122030379907/
4


# Page. 6

![Page Image](https://bcdn.docswell.com/page/37KQ1QVV7D.jpg)

日本語ベンチマーク:JGLUE
MARC-ja:Amazonの商品レビューテキスト＋極性ラベル(1:肯定的, 0:否定的)
レビューの星が3のものを除外。星1～2なら否定的、星4～5なら肯定的とラベリング
Amazonレビュー
テキスト：
パッケージがUK使用だったため、
少し安っぽい印象でしたが、中
身は日本語吹き替え、日本語字
幕、特典映像もちゃんとついて
ます。この値段でこの内容なら
十分満足です。
ラベル：肯定的
画像を作成したサイト：https://k-editor.com/editor/template/7/edit/
5


# Page. 7

![Page Image](https://bcdn.docswell.com/page/LJ3PQKQQ75.jpg)

アジェンダ
◼ 日本語ベンチマーク:JGLUE
◼ 感情分析モデルの実装
◼ 感情分析モデルのエラー分析
6


# Page. 8

![Page Image](https://bcdn.docswell.com/page/8JDL939W7G.jpg)

感情分析モデルの実装
大規模言語モデルをファインチューニングして感情分析モデルをつくる
• データセットはWRIME(MARC-jaと同じような感情分析用データセット)
• エンコーダ構成のtransformerに線形層のヘッドを追加したモデル
• モデル・トークナイザはともに東北大学が公開しているBERTを用いる
実装は以下の手順で行う
1.
2.
3.
4.
5.
6.
環境・データセットの準備
トークナイゼーション
前処理
モデルの構築
モデルの訓練
モデルの評価
7


# Page. 9

![Page Image](https://bcdn.docswell.com/page/VEP2Z4ZXE8.jpg)

感情分析モデルの実装
１．環境・データセットの準備：AIプラットフォーム Hugging Face を利用
Hugging Face：人工知能のモデルやデータを共有し利用するためのオープンソー
スプラットフォーム
・transformers・datasetsは
Hugging Faceが提供しているライ
ブラリ。インストールするだけで簡
単に使える。
・pprint関数はprint関数より出力が
見やすい形になっている。
出力
8


# Page. 10

![Page Image](https://bcdn.docswell.com/page/27VDWXW37Q.jpg)

感情分析モデルの実装
２.トークナイゼーション：transformersライブラリのトークナイザを用いる
・transformersのAutoTokenizerをimportし
てAutoTokenizer.from_pertrained(“モデル名”)
とすればトークナイザを呼び出せる
・tokenizerの出力はBatchEncodingという
クラスのオブジェクトで、Pythonのdictの
ように扱えるが、いくつか特別なメソッド
が用意されている
(char_to_token,convert_to_tensorなど)
・オブジェクトの内容は3つ
・input_ids:トークンのID
・token_type:セグメント埋め込み(0か1)
・attention_mask:トークンなら1、それ
以外は0とする。ミニバッチを構築する
ときにダミーを作るのでそれを0とする
9


# Page. 11

![Page Image](https://bcdn.docswell.com/page/5JGYDVDYJL.jpg)

感情分析モデルの実装
トークン化の流れ
1.トークンに分割：MeCab+WordPiece
(MeCab:https://taku910.github.io/mecab/ )
2.トークンをID化。文の初めに[CLS]、文の
最後に[SEP]に対応するIDがつく。これが
BERTのインプットに用いられる。
・convert_ids_to_tokensメソッドでIDを
トークンに戻せる。実際に文をうまくトーク
ン化できていることが分かる。
・tokenizer(前述)はトークン化を一発でやっ
てくれる。
10


# Page. 12

![Page Image](https://bcdn.docswell.com/page/47QM1616EP.jpg)

感情分析モデルの実装
データの可視化：左が訓練用、右が検証用のデータ
外れ値!
外れ値!
11


# Page. 13

![Page Image](https://bcdn.docswell.com/page/KE4VR4RM71.jpg)

感情分析モデルの実装
3.前処理:テキストをトークンＩＤ系列に変換する関数を定義
・tokenizerにexample[“sentence”]を与え
てID化する。max_lengthは最大系列長のこ
とで、この値を超えると先頭からトークンを
切り詰める(truncation)。
・ラベルも格納しておく
・この関数を用いてデータセット全体をトー
クナイゼーションする。Mapメソッドでデー
タセットの事例それぞれに指定した関数を適
用できる。
12


# Page. 14

![Page Image](https://bcdn.docswell.com/page/L713Q4QYEG.jpg)

感情分析モデルの実装
3.ミニバッチを構築する。このときPaddingという処理で入力の系列長を最大のものにそろえる。
・DataCollatorWithPaddingを用いる。正確
にはDataCollatorWithPadding内でtokenizer
のtokenizer.padメソッドを用いる。
・labelはバッチサイズ(ここでは4)のテンソル、
ほかは（バッチサイズ×バッチ内の最大系列
長）次元のテンソルとして変換されていること
が分かる。
13


# Page. 15

![Page Image](https://bcdn.docswell.com/page/G7WPMXM1E2.jpg)

感情分析モデルの実装
4.モデル構築：AutoModelForSequenceClassificationのfrom_pretrainedで訓練済みモデルを読み込む
・読み込んだ時点で最後尾に線形層のヘッドを付
けてくれている。出力次元はnum_labelsで指定
する。
・label2id,id2labelを使うとIDとラベルが対応付
けされて後々pipelineを使う時に見やすくなる。
・モデルの入力にはforwardメソッドを用いる。
出力はSequenceClassifierOutputクラスのオブ
ジェクトで、loss(損失)、logits(モデルの出力す
るテンソル)がある。Hidden_statesとattentions
は普通は出力されない。
14


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4JZKQ6QXJ3.jpg)

感情分析モデルの実装
5.モデルの訓練：まずTrainingArgumentクラスを使って学習の設定を行う
・学習率スケジューラによって訓練
の中で学習率を変動させる。今回は
linear schedulerを用いる。このと
き、はじめは学習率をだんだん大き
くしていき、その後徐々に小さくし
て０に近づけていくように変化させ
る。このとき学習率を大きくしてい
くことをウォームアップという。
・warmup_ratioによってウォーム
アップの長さの比率を指定できる。
15


# Page. 17

![Page Image](https://bcdn.docswell.com/page/YE6Q626PEV.jpg)

感情分析モデルの実装
5.モデルの訓練：Trainerライブラリを用いてモデルを訓練する
・評価指標として関数を定義してい
る。ここではAccuracyを評価指標と
している。
・損失関数のデフォルトはクロスエ
ントロピー関数。一応カスタム可能
・Trainerにモデル、訓練データ、検
証データ、collator、Augment、評
価指標を設定しtrain()で実行するだ
け
16


# Page. 18

![Page Image](https://bcdn.docswell.com/page/GE5R626PJ4.jpg)

感情分析モデルの実装
6.モデルの訓練：検証用データでモデルを評価
17


# Page. 19

![Page Image](https://bcdn.docswell.com/page/972DM4MZ7R.jpg)

アジェンダ
◼ 日本語ベンチマーク:JGLUE
◼ 感情分析モデルの実装
◼ 感情分析モデルのエラー分析
18


# Page. 20

![Page Image](https://bcdn.docswell.com/page/DJY2XMXNJM.jpg)

感情分析モデルのエラー分析
Pipeline関数を用いてモデルの予測結果を取得
・pipeline関数を使うことでトーク
ナイザやモデルを読み込むことなく
入力の前処理・内部計算・出力の後
処理までを呼び出すことができる
・load_datasetによってで保存した
データを所得。
・pipeline(“テキスト”)とすれば、そ
のテキストに対応する予測結果（予
測ラベルとスコア）を所得できる。
・int2strメソッドでラベルをIDか
ら”positive”と”negative”に変換し
ている。
19


# Page. 21

![Page Image](https://bcdn.docswell.com/page/V7N81W1VE8.jpg)

感情分析モデルのエラー分析
混合行列を使って全体的な傾向を分析
20


# Page. 22

![Page Image](https://bcdn.docswell.com/page/YJ9K5X5VJ3.jpg)

感情分析モデルのエラー分析
【おまけ】予測が間違っているデータを見てみる(予想してみよう！）
1.何のこれしき会社員だった頃の辛さに比べれば。まあ種類が違うけど。
2.今年のプリキュアの決め台詞が、「お大事に」今年にマッチングし過ぎてて、プリキュアスタッフの
先見の明がすご過ぎるし、何が言いたいかと言うと変身する棒を買わされました。
3.ツイッター早朝部、いくわよ！！ あと諸事情により数人ブロックさせて頂きました…申し訳ない……
4.酒はぬるめの 燗がいい 肴は炙った イカでいい←もっといいもの食えよ
5.できれば今すぐお線香あげにいきたい
6.もうwwww訳がwwwwわからないよwwww
7.一月ぶりに湯らっくす行って、10時間も寛いでいまい、寝落ちする以外なにもできない
8.この時期はこれだから
9.というか私のオタク人生に大きな影響を与えすぎたのがクロウ
10. 3週間ガーッと仕事して1週間まるっと旅に出るというサイクルを繰り返したい。そんな働き方さ
せてもらえませんかね。
なんだこれ。
答え：1.P, 2.N, 3.P, 4.N, 5.N, 6.N, 7.P, 8.N, 9.P, 10.P
21


# Page. 23

![Page Image](https://bcdn.docswell.com/page/GJ8RY2Y47D.jpg)

22


