直感 LLM ― ハンズオンで動かして学ぶ大規模言語モデル入門 (Hands-On Large Language Models)

読書メモ


目次


-直感 LLM - O'Reilly Japan
--https://www.oreilly.co.jp/books/9784814401154/
-->目次
-->賞賛の声
-->訳者まえがき
-->まえがき
-->
-->第I部 言語モデルの理解
-->
-->1章 入門大規模言語モデル
--> 1.1 言語AIとは?
--> 1.2 言語AIの近年の歴史
--> 1.2.1 Bag-of-Wordsによる言語の表現
--> 1.2.2 埋め込みによる言語の表現
--> 1.2.3 埋め込みの種類
--> 1.2.4 注意機構による文脈のエンコードとデコード
--> 1.2.5 Attention Is All You Need
--> 1.2.6 表現モデル:エンコーダーのみのモデル
--> 1.2.7 生成モデル:デコーダーのみのモデル
--> 1.2.8 生成AIの年
--> 1.3 大規模言語モデルの定義の変遷
--> 1.4 大規模言語モデルの学習パラダイム
--> 1.5 大規模言語モデルの応用例
--> 1.6 責任あるLLMの開発と使用
--> 1.7 限られた計算資源で十分
--> 1.8 大規模言語モデルとのインターフェイス
--> 1.8.1 プロプライエタリなプライベートモデル
--> 1.8.2 オープンモデル
--> 1.8.3 オープンソースフレームワーク
--> 1.9 はじめてのテキスト生成
--> 1.10 まとめ
-->
-->2章 トークンと埋め込み
--> 2.1 LLMにおけるトークン化
--> 2.1.1 トークナイザーの概要
--> 2.1.2 トークナイザーのダウンロードと実行
--> 2.1.3 トークナイザーによるテキストの分割方法
--> 2.1.4 単語トークン、サブワードトークン、文字トークン、バイトトークンの違い
--> 2.1.5 学習済みトークナイザーの比較
--> 2.1.6 トークナイザーの特性
--> 2.2 トークン埋め込み
--> 2.2.1 言語モデルはトークナイザーの語彙に対する埋め込みを保持している
--> 2.2.2 言語モデルを用いた文脈を考慮したトークン埋め込みの作成
--> 2.3 テキスト埋め込み(文や文書全体の埋め込み)
--> 2.4 LLM以外での単語埋め込みの使い方
--> 2.4.1 事前学習済み単語埋め込みの使い方
--> 2.4.2 Word2vecのアルゴリズムと対照学習
--> 2.5 推薦システムのための埋め込み
--> 2.5.1 埋め込みを使った曲の推薦
--> 2.5.2 曲の埋め込みモデルの学習
--> 2.6 まとめ
-->
-->3章 大規模言語モデルの仕組み
--> 3.1 Transformerの概要
--> 3.1.1 Transformerの入出力
--> 3.1.2 フォワードパスの構成要素
--> 3.1.3 確率分布からトークンを選択する方法
--> 3.1.4 トークンの並列処理とコンテキスト長
--> 3.1.5 キャッシュを利用した生成の高速化
--> 3.1.6 Transformerブロックの仕組み
--> 3.2 Transformerの発展
--> 3.2.1 注意機構の効率化
--> 3.2.2 Transformerブロック
--> 3.2.3 位置埋め込み(RoPE)
--> 3.2.4 自然言語処理以外でのTransformerの活用
--> 3.3 まとめ
-->
-->第II部 事前学習済み言語モデルの活用
-->
-->4章 テキスト分類
--> 4.1 映画レビューの感情分析
--> 4.2 表現モデルを使ったテキスト分類
--> 4.3 モデルの選択
--> 4.4 タスク特化型モデルの使用
--> 4.5 埋め込みを活用した分類
--> 4.5.1 教師あり分類
--> 4.5.2 ラベル付きデータがない場合の処方箋
--> 4.6 生成モデルを使ったテキスト分類
--> 4.6.1 T5を使った分類
--> 4.6.2 ChatGPTのモデルを使った分類
--> 4.7 まとめ
-->
-->5章 テキストクラスタリングとトピックモデリング
--> 5.1 arXivの「計算と言語」に関する論文
--> 5.2 テキストクラスタリングの一般的なパイプライン
--> 5.2.1 文書を埋め込みに変換
--> 5.2.2 埋め込みの次元削減
--> 5.2.3 次元削減した埋め込みのクラスタリング
--> 5.2.4 クラスターの内容を確認する
--> 5.3 テキストクラスタリングからトピックモデリングへ
--> 5.3.1 BERTopic:モジュール型のトピックモデリングフレームワーク
--> 5.3.2 特別なレゴブロックを追加する
--> 5.3.3 テキスト生成のレゴブロック
--> 5.4 まとめ
-->
-->6章 プロンプトエンジニアリング
--> 6.1 テキスト生成モデルの使い方
--> 6.1.1 テキスト生成モデルの選択
--> 6.1.2 テキスト生成モデルの読み込み
--> 6.1.3 モデルの出力を制御する方法
--> 6.2 プロンプトエンジニアリング入門
--> 6.2.1 プロンプトの基本要素
--> 6.2.2 指示に基づくプロンプト
--> 6.3 高度なプロンプトエンジニアリング
--> 6.3.1 プロンプトの潜在的な複雑さ
--> 6.3.2 文脈内学習:例の提示
--> 6.3.3 プロンプトの連鎖:問題の段階的な解決
--> 6.4 生成モデルによる推論
--> 6.4.1 思考の連鎖:答える前に考える
--> 6.4.2 自己整合性:サンプリング出力
--> 6.4.3 思考の木:中間ステップの探索
--> 6.5 出力の検証
--> 6.5.1 例示
--> 6.5.2 文法:制約付きサンプリング
--> 6.6 まとめ
-->
-->7章 高度なテキスト生成のテクニックとツール
--> 7.1 モデルの入出力:量子化されたモデルの読み込み
--> 7.2 チェイン:LLMの能力を拡張する
--> 7.2.1 プロンプトテンプレート
--> 7.2.2 複数のプロンプトを持つチェイン
--> 7.3 メモリ:会話履歴の保持
--> 7.3.1 会話バッファー
--> 7.3.2 ウィンドウ付き会話バッファー
--> 7.3.3 会話の要約
--> 7.4 エージェント:LLMのシステムを構築する
--> 7.4.1 エージェントを支える原動力:段階的な推論
--> 7.4.2 LangChainでのReActを使ったエージェント構築
--> 7.5 まとめ
-->
-->8章 セマンティック検索とRAG
--> 8.1 セマンティック検索とRAGの概要
--> 8.2 言語モデルによるセマンティック検索
--> 8.2.1 密検索
--> 8.2.2 リランキング
--> 8.2.3 検索の評価指標
--> 8.3 検索拡張生成(RAG)
--> 8.3.1 検索からRAGへ
--> 8.3.2 LLMのAPIを用いたRAGの実装
--> 8.3.3 ローカルモデルを用いたRAGの実装
--> 8.3.4 高度なRAGのテクニック
--> 8.3.5 RAGの評価
--> 8.4 まとめ
-->
-->9章 マルチモーダルな大規模言語モデル
--> 9.1 Vision Transformer
--> 9.2 マルチモーダル埋め込みモデル
--> 9.2.1 CLIP:テキストと画像をつなぐ仕組み
--> 9.2.2 CLIPによるマルチモーダル埋め込みの生成方法
--> 9.2.3 OpenCLIP
--> 9.3 テキスト生成モデルのマルチモーダル化
--> 9.3.1 BLIP-2:モダリティのギャップを埋める
--> 9.3.2 マルチモーダル入力の前処理
--> 9.3.3 ユースケース1:画像キャプション
--> 9.3.4 ユースケース2:マルチモーダルな会話
--> 9.4 まとめ
-->
-->第III部 言語モデルの学習とファインチューニング
-->
-->10章 テキスト埋め込みモデルの作成
--> 10.1 埋め込みモデル
--> 10.2 対照学習とは
--> 10.3 バイエンコーダー
--> 10.4 埋め込みモデルの作成
--> 10.4.1 対照学習用のデータの生成
--> 10.4.2 モデルの学習
--> 10.4.3 詳細な評価
--> 10.4.4 損失関数
--> 10.5 埋め込みモデルのファインチューニング
--> 10.5.1 教師あり学習
--> 10.5.2 Augmented SBERT
--> 10.6 教師なし学習
--> 10.6.1 TSDAE
--> 10.6.2 TSDAEを用いたドメイン適応
--> 10.7 まとめ
-->
-->11章 分類モデルのファインチューニング
--> 11.1 教師あり分類
--> 11.1.1 事前学習済みBERTのファインチューニング
--> 11.1.2 層の凍結
--> 11.2 Few-shot分類
--> 11.2.1 SetFit:少ないデータで効率的にファインチューニングする方法
--> 11.2.2 Few-shot分類のためのファインチューニング
--> 11.3 マスク言語モデリングによる継続事前学習
--> 11.4 固有表現認識
--> 11.4.1 固有表現認識のためのデータ準備
--> 11.4.2 固有表現認識のファインチューニング
--> 11.5 まとめ
-->
-->12章 生成モデルのファインチューニング
--> 12.1 LLMの3つの学習ステップ:事前学習、教師ありファインチューニング、選好チューニング
--> 12.2 教師ありファインチューニング
--> 12.2.1 フルファインチューニング
--> 12.2.2 パラメーター効率の良いファインチューニング
--> 12.3 QLoRAによる指示チューニング
--> 12.3.1 指示データのテンプレート化
--> 12.3.2 モデルの量子化
--> 12.3.3 LoRAの設定
--> 12.3.4 学習の設定
--> 12.3.5 学習
--> 12.3.6 重みのマージ
--> 12.4 生成モデルの評価
--> 12.4.1 単語レベルの指標
--> 12.4.2 ベンチマーク
--> 12.4.3 リーダーボード
--> 12.4.4 自動評価
--> 12.4.5 人間による評価
--> 12.5 選好チューニング
--> 12.6 報酬モデルによる選好評価の自動化
--> 12.6.1 報酬モデルの入出力
--> 12.6.2 報酬モデルの学習
--> 12.6.3 無報酬モデルの学習
--> 12.7 DPOによる選好チューニング
--> 12.7.1 選好データのテンプレート化
--> 12.7.2 モデルの量子化
--> 12.7.3 学習の設定
--> 12.7.4 学習
--> 12.8 まとめ
-->
-->あとがき
-->索引
-->
-->コラム目次
--> BERTopicのモジュール性
--> Sentence Transformersを用いたCLIPモデルの読み込み

書籍関連情報


-直感 LLM - O'Reilly Japan
--https://www.oreilly.co.jp/books/9784814401154/

-Hands-On Large Language Models [Book]
--https://www.oreilly.com/library/view/hands-on-large-language/9781098150952/

-GitHub - oreilly-japan/hands-on-llm-ja · GitHub
--https://github.com/oreilly-japan/Hands-on-llm-ja

-GitHub - HandsOnLLM/Hands-On-Large-Language-Models: Official code repo for the O'Reilly Book - "Hands-On Large Language Models" · GitHub
--https://github.com/handsOnLLM/Hands-On-Large-Language-Models

-microsoft/Phi-3-mini-4k-instruct · Hugging Face
--https://huggingface.co/microsoft/Phi-3-mini-4k-instruct

-Amazon.co.jp: 直感 LLM ―ハンズオンで動かして学ぶ大規模言語モデル入門 : Jay Alammar, Maarten Grootendorst, 中山 光樹(翻訳): 本
--https://www.amazon.co.jp/dp/4814401159?tag=nilabwiki-22&linkCode=osi&th=1&psc=1
-->急速に進化する大規模言語モデル(LLM)を、視覚的に理解しながら実践的に学べるハンズオンガイド。本書では、Jupyter Notebookやクラウド上で実際にモデルを動かしながら学ぶことができます。大規模言語モデルに欠かせないTransformerの仕組みをはじめ、要約、セマンティック検索、テキスト分類、クラスタリング、RAG(検索拡張生成)といった技術も、図解とともに直感的に理解できます。豊富なコード例と既存ライブラリの活用法を通じて、直感を重視したアプローチでLLMを学びたい読者に最適な一冊です。