大規模言語モデル入門

書籍情報

発売日 : 2023年07月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 検索結果のプロンプトへの組み込み

著者情報

山田 育矢
山田, 育矢
鈴木 正敏
鈴木, 正敏 ソフトウェアエンジニア
山田 康輔
山田, 康輔
李 凌寒
李, 凌寒