Updated Dec/11/2022 by

Large Language Model

大規模言語モデル入門


目次

第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 バイト対符号化
第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 検索結果のプロンプトへの組み込み

Yoshihisa Nitta

http://nw.tsuda.ac.jp/