Stand Up and Shout!

勉強したことや、思いついたことを気ままに記述します

大規模言語モデル入門

2023年7月29日に『大規模言語モデル入門』が出版されました。

マインドマップによる整理


目次の俯瞰

# 大規模言語モデル入門
## 第1章 はじめに
### 1.1 transformersを使って自然言語処理を解いてみよう
#### 1.1.1 文書分類
#### 1.1.2 自然言語推論
#### 1.1.3 意味的類似度計算
#### 1.1.4 固有表現認識
#### 1.1.5 要約生成
### 1.2 transformersの基本的な使い方
### 1.3 単語埋め込みとニューラルネットワークの基礎
### 1.4 大規模言語モデルとは
## 第2章 Transformer
### 2.1 概要
### 2.2 エンコーダ
#### 2.2.1 入力トークン埋め込み
#### 2.2.2 位置符号
#### 2.2.3 自己注意機構
#### 2.2.4 マルチヘッド注意機構
#### 2.2.5 フィードフォワード
#### 2.2.6 残差結合
#### 2.2.7 層正規化
#### 2.2.8 ドロップアウト
### 2.3 エンコーダ・デコーダ
#### 2.3.1 交差注意機構
#### 2.3.2 トークン出力分布の計算
#### 2.3.3 注意機構のマスク処理
### 2.4 デコーダ
## 第3章 大規模言語モデルの基礎
### 3.1 単語の予測から学習できること
### 3.2 GPT (デコーダ)
#### 3.2.1 入力表現
#### 3.2.2 事前学習
#### 3.2.3 ファインチューニング
#### 3.2.4 transformersで使う
### 3.3 BERT・RoBERTa (エンコーダ)
#### 3.3.1 入力表現
#### 3.3.2 事前学習
#### 3.3.3 ファインチューニング
#### 3.3.4 transformersで使う
### 3.4 T5 (エンコーダ・デコーダ)
#### 3.4.1 入力表現
#### 3.4.2 事前学習
#### 3.4.3 ファインチューニング
#### 3.4.4 transformersで使う
### 3.5 多言語モデル
### 3.6 トークナイゼーション
#### 3.6.1 バイト対符号化
#### 3.6.2 WordPiece
#### 3.6.3 日本語の扱い
## 第4章 大規模言語モデルの進展
### 4.1 モデルの大規模化とその効果
### 4.2 プロンプトによる言語モデルの制御
#### 4.2.1 文脈内学習
#### 4.2.2 chain-of-thought推論
### 4.3 アライメントの必要性
#### 4.3.1 役立つこと
#### 4.3.2 正直であること
#### 4.3.3 無害であること
#### 4.3.4 主観的な意見の扱い
### 4.4 指示チューニング
#### 4.4.1 データセットの再利用
#### 4.4.2 人手でデータセットを作成
#### 4.4.3 指示チューニングの問題
### 4.5 人間のフィードバックからの強化学習
#### 4.5.1 報酬モデリング
#### 4.5.2 強化学習
#### 4.5.3 REINFORCE
#### 4.5.4 指示チューニングとRLHF
### 4.6 ChatGPT
## 第5章 大規模言語モデルのファインチューニング
### 5.1 日本語 ベンチマーク JGLUE
#### 5.1.1 訓練・検証・テストセット
#### 5.1.2 大規模言語モデルのためのベンチマーク
#### 5.1.3 JGLUEに含まれるタスクとデータセット
### 5.2 感情分析モデルの実装
#### 5.2.1 環境の準備
#### 5.2.2 データセットの準備
#### 5.2.3 トークナイザ
#### 5.2.4 データセット統計の可視化
#### 5.2.5 データセットの前処理
#### 5.2.6 ミニバッチ構築
#### 5.2.7 モデルの準備
#### 5.2.8 訓練の実行
#### 5.2.9 訓練後のモデルの評価
#### 5.2.10 モデルの保存
### 5.3 感情分析モデルのエラー分析
#### 5.3.1 モデルの予測結果の取得
#### 5.3.2 全体的な傾向の分析
#### 5.3.3 モデルのショートカットに注意
### 5.4 自然言語推論・意味的類似度計算・多肢選択式質問応答モデルの実装
#### 5.4.1 自然言語推論
#### 5.4.2 意味的類似度計算
#### 5.4.3 多肢選択式質問応答
### 5.5 メモリ効率の良いファインチューニング
#### 5.5.1 自動混合精度演算
#### 5.5.2 勾配累積
#### 5.5.3 勾配チェックポインティング
#### 5.5.4 LoRA チューニング
### 5.6 日本語大規模言語モデルの比較
#### 5.6.1 LUKE
#### 5.6.2 DeBERTa V2
#### 5.6.3 性能比較
## 第6章 固有表現認識
### 6.1 固有表現認識とは
### 6.2 データセット 前処理・ 評価指標
#### 6.2.1 データセット
#### 6.2.2 前処理
#### 6.2.3 評価指標
### 6.3 固有表現認識モデルの実装
#### 6.3.1 BERTのファインチューニング
#### 6.3.2 固有表現の予測 抽出
#### 6.3.3 検証セットを使ったモデルの選択
#### 6.3.4 性能評価
#### 6.3.5 エラー分析
#### 6.3.6 ラベル間の遷移可能性を考慮した予測
#### 6.3.7 CRFによるラベル間の遷移可能性の学習
### 6.4 アノテーションツールを用いたデータセット構築
#### 6.4.1 Label Studioを用いたアノテーション
#### 6.4.2 Hugging Face Hubへのデータセットのアップロード
#### 6.4.3 構築したデータセットでの性能評価
## 第7章 要約生成
### 7.1 要約生成とは
### 7.2 データセット
### 7.3 評価指標
#### 7.3.1 ROUGE
#### 7.3.2 BLEU
#### 7.3.3 BERTScore
### 7.4 見出し生成モデルの実装
#### 7.4.1 T5のファインチューニング
#### 7.4.2 見出しの生成とモデルの評価
### 7.5 多様な生成方法による見出し生成
#### 7.5.1 テキスト生成における探索アルゴリズム
#### 7.5.2 サンプリングを用いたテキスト生成
#### 7.5.3 長さを調整したテキスト生成
## 第8章 文埋め込み
### 8.1 文埋め込みとは
#### 8.1.1 文埋め込みの目的
#### 8.1.2 文埋め込みの性能評価
#### 8.1.3 文埋め込みモデルの必要性
#### 8.1.4 文埋め込みモデルを使わずに文ベクトルを得る
### 8.2 文埋め込みモデルSimCSE
#### 8.2.1 対照学習
#### 8.2.2 教師なしSimCSE
#### 8.2.3 教師あり SimCSE
### 8.3 文埋め込みモデルの実装
#### 8.3.1 教師なしSimCSEの実装
#### 8.3.2 教師ありSimCSEの実装
### 8.4 最近傍探索ライブラリFaissを使った検索
#### 8.4.1 最近傍探索ライブラリFaiss
#### 8.4.2 Faissを利用した最近傍探索の実装
#### 8.4.3 類似文検索のウェブアプリケーションの実装
## 第9章 質問応答
### 9.1 質問応答システムのしくみ
#### 9.1.1 質問応答とは
#### 9.1.2 オープンブッククローズドブック
### 9.2 データセットと評価指標
#### 9.2.1 AI王データセット
#### 9.2.2 評価指標
### 9.3 ChatGPTにクイズを答えさせる
#### 9.3.1 OpenAI API
#### 9.3.2 効率的なリクエストの送信
#### 9.3.3 クイズ用のプロンプトの作成
#### 9.3.4 API使用料金の見積もり
#### 9.3.5 クイズデータセットによる評価
#### 9.3.6 文脈内学習
#### 9.3.7 言語モデルの幻覚に注意
### 9.4 文書検索モデルの実装
#### 9.4.1 文書検索を組み込んだ質問応答システム
#### 9.4.2 質問応答のための文書検索モデル
#### 9.4.3 BPRの実装
#### 9.4.4 BPRによるパッセージの埋め込みの計算
### 9.5 文書検索モデルとChatGPTを組み合わせる
#### 9.5.1 検索モデルの準備
#### 9.5.2 検索結果のプロンプトへの組み込み
## 参考文献
## 索引