Book description
「Hugging Face Transformers」を使った自然言語処理の解説書。2017年の登場以来、Transformerと呼ばれるアーキテクチャを使った大規模なモデルが急速に普及しています。本書では、Hugging Faceの開発者らが、「Hugging Face Transformers」を使って、これらの大規模モデルを学習しスケールする方法をわかりやすく紹介します。テキスト分類、固有表現認識、テキスト生成、要約、質問応答といったタスクだけでなく、蒸留、量子化、枝刈り、ONNX Runtimeといったモデルの高速化技術、ラベル付きデータが少ないときに使えるゼロショット学習や少数事例学習、その他、多言語転移やドメイン適応といった類書では扱っていない技術についても解説しています。
Table of contents
- 大扉
- 原書大扉
- クレジット
- 賞賛の声
- 序文
- 訳者まえがき
- まえがき
- 1章 入門 Transformers
- 1.1 エンコーダ・デコーダのフレームワーク
- 1.2 アテンション機構
- 1.3 NLPにおける転移学習
- 1.4 入門 Hugging Face Transformers
- 1.5 Transformerの応用を巡る旅
- 1.5.1 テキスト分類
- 1.5.2 固有表現認識
- 1.5.3 質問応答
- 1.5.4 要約
- 1.5.5 翻訳
- 1.5.6 テキスト生成
- 1.6 Hugging Faceのエコシステム
- 1.6.1 Hugging Face Hub
- 1.6.2 Hugging Face Tokenizers
- 1.6.3 Hugging Face Datasets
- 1.6.4 Hugging Face Accelerate
- 1.7 Transformerの主な課題
- 1.8 まとめ
- 2章 テキスト分類
- 2.1 データセット
- 2.1.1 初めてのHugging Face Datasets
- 自分のデータセットがHubにない場合は?
- 2.1.2 データセットからDataFrameへ
- 2.1.3 クラス分布の確認
- 2.1.4 ツイートの長さはどれくらい?
- 2.2 テキストからトークンへ
- 2.2.1 文字トークン化
- 2.2.2 単語トークン化
- 2.2.3 サブワードトークン化
- 2.2.4 データセット全体のトークン化
- 2.3 テキスト分類器の学習
- 2.3.1 特徴抽出器としてのTransformer
- 2.3.1.1 事前学習済みモデルの使用
- フレームワーク間の相互運用性
- 2.3.1.2 最後の隠れ状態の抽出
- 2.3.1.3 特徴行列の作成
- 2.3.1.4 学習データセットの可視化
- 2.3.1.5 単純な分類器の学習
- 2.3.2 Transformerのファインチューニング
- 2.3.2.1 事前学習済みモデルのロード
- 2.3.2.2 性能指標の定義
- 2.3.2.3 モデルの学習
- Kerasを使ったファインチューニング
- 2.3.2.4 エラー分析
- 2.3.2.5 モデルの保存と共有
- 2.4 まとめ
- 3章 Transformerの詳細
- 3.1 Transformerのアーキテクチャ
- 3.2 エンコーダ
- 3.2.1 セルフアテンション
- 3.2.1.1 スケール化ドット積アテンション
- クエリ、キー、バリューを理解する
- 3.2.1.2 マルチヘッドアテンション
- 3.2.2 順伝播層
- 3.2.3 レイヤー正規化の追加
- 3.2.4 位置埋め込み
- 3.2.5 分類ヘッドの追加
- 3.3 デコーダ
- エンコーダ・デコーダアテンションの謎を解く
- 3.4 Transformer系モデルの紹介
- 3.4.1 Transformerの系統樹
- 3.4.2 エンコーダ系のモデル
- 3.4.3 デコーダ系のモデル
- 3.4.4 エンコーダ・デコーダ系のモデル
- 3.5 まとめ
- 4章 多言語の固有表現認識
- 4.1 データセット
- 4.2 多言語Transformer
- 4.3 トークン化の詳細
- 4.3.1 トークナイザーのパイプライン
- 4.3.2 SentencePieceトークナイザー
- 4.4 固有表現認識用のTransformer
- 4.5 Transformerモデルクラスの詳細
- 4.5.1 ボディとヘッド
- 4.5.2 トークン分類のためのカスタムモデルの作成
- 4.5.3 カスタムモデルのロード
- 4.6 固有表現認識のためのテキストトークン化
- 4.7 性能指標
- 4.8 XLM-RoBERTaのファインチューニング
- 4.9 エラー分析
- 4.10 言語間転移
- 4.10.1 ゼロショット転移が有効なのはどんなときか?
- 4.10.2 複数言語の同時並行的なファインチューニング
- 4.11 モデルウィジェットとのインタラクション
- 4.12 まとめ
- 5章 テキスト生成
- 5.1 一貫した内容のテキストを生成するための課題
- 5.2 貪欲法によるデコード
- 5.3 ビームサーチによるデコード
- 5.4 サンプリング手法
- 5.5 Top-kサンプリングとTop-pサンプリング
- 5.6 どのデコード手法が最適か?
- 5.7 まとめ
- 6章 要約
- 6.1 CNN/DailyMailデータセット
- 6.2 要約のパイプライン
- 6.2.1 要約のベースライン
- 6.2.2 GPT-2
- 6.2.3 T5
- 6.2.4 BART
- 6.2.5 PEGASUS
- 6.3 要約の比較
- 6.4 生成されたテキストの品質を測定する
- 6.4.1 BLEU
- 6.4.2 ROUGE
- 6.5 CNN/DailyMailデータセットでPEGASUSを評価
- 6.6 要約モデルの学習
- 6.6.1 SAMSumでPEGASUSを評価
- 6.6.2 PEGASUSのファインチューニング
- 6.6.3 対話の要約を生成
- 6.7 まとめ
- 7章 質問応答
- 7.1 レビューベースの質問応答システムの構築
- 7.1.1 データセット
- スタンフォード質問応答データセット(SQuAD)
- 7.1.2 テキストから回答を抽出する
- 7.1.2.1 スパン分類
- 7.1.2.2 質問応答用のトークン化
- 7.1.2.3 長いパッセージへの対応
- 7.1.3 Haystackを用いた質問応答パイプラインの構築
- 7.1.3.1 ドキュメントストアの初期化
- 7.1.3.2 Retrieverの初期化
- 7.1.3.3 Readerの初期化
- 7.1.3.4 コンポーネントを組み合わせる
- 7.2 質問応答パイプラインの改善
- 7.2.1 Retrieverの評価
- 7.2.1.1 Dense Passage Retrieval
- 7.2.2 Readerの評価
- 7.2.3 ドメイン適応
- 7.2.4 質問応答パイプライン全体の評価
- 7.3 抽出型質問応答の先
- 7.4 まとめ
- 8章 Transformersの高速化
- 8.1 意図検出を事例として
- 8.2 性能ベンチマークの作成
- 8.3 知識蒸留でモデルを小さくする
- 8.3.1 ファインチューニングのための知識蒸留
- 8.3.2 事前学習のための知識蒸留
- 8.3.3 知識蒸留用のトレーナーの作成
- 8.3.4 良い生徒モデルの選択
- 8.3.5 Optunaによる良いハイパーパラメータの探索
- 8.3.6 蒸留されたモデルのベンチマーク
- 8.4 量子化によるモデルの高速化
- 浮動小数点数と固定小数点数についての入門
- 8.5 量子化モデルのベンチマーク
- 8.6 ONNXとONNX Runtimeを使った推論の最適化
- 8.7 重みの枝刈りでモデルをよりスパースにする
- 8.7.1 ディープニューラルネットワークにおけるスパース性
- 8.7.2 重み枝刈りの手法
- 8.7.2.1 Magnitude Pruning
- 8.7.2.2 Movement Pruning
- 8.8 まとめ
- 9章 ラベルのないまたは少ない状況への対応方法
- 9.1 GitHub Issueタガーの構築
- 9.1.1 データの取得
- 9.1.2 データの準備
- 9.1.3 学習データセットの作成
- 9.1.4 学習スライスの作成
- 9.2 ナイーブベイズによるベースラインの実装
- 9.3 ラベルのないデータへの対処方法
- 9.4 ラベルの少ないデータへの対処方法
- 9.4.1 データ拡張
- 9.4.2 埋め込みをルックアップテーブルとして使用する場合
- FAISSによる効率的な類似度検索
- 9.4.3 通常のTransformerのファインチューニング
- 9.4.4 プロンプトを使ったインコンテキスト学習と少数事例学習
- 9.5 ラベルなしデータの活用
- 9.5.1 言語モデルのファインチューニング
- 9.5.2 分類器のファインチューニング
- 9.5.3 高度な手法
- 9.5.3.1 教師なしデータ拡張
- 9.5.3.2 不確かさを考慮した自己学習
- 9.6 まとめ
- 10章 Transformerをゼロから学習する
- 10.1 大規模データセットとその入手先
- 10.1.1 大規模コーパスを構築する際の課題
- 10.1.2 コードデータセットの自作
- 10.1.2.1 Google BigQueryを使ったデータセットの作成
- ノイズを除去するかしないか?
- 10.1.3 大規模データセットの扱い方
- 10.1.3.1 メモリマッピング
- 10.1.3.2 ストリーミング
- 10.1.4 Hugging Face Hubへのデータセットの追加
- 10.2 トークナイザーの構築
- 10.2.1 トークナイザーモデル
- 10.2.2 トークナイザーの性能測定
- 10.2.3 Python用のトークナイザー
- 10.2.4 トークナイザーの学習
- 10.2.5 Hubにカスタムトークナイザーを保存する
- 10.3 ゼロから始めるモデルの学習
- 10.3.1 事前学習の目的の話
- 10.3.1.1 因果的言語モデル
- 10.3.1.2 マスク言語モデル
- 10.3.1.3 系列変換モデルの学習
- 10.3.2 モデルの初期化
- 10.3.3 データローダーの実装
- 10.3.4 学習ループの定義
- 10.3.5 学習の実行
- 10.4 結果と分析
- 10.5 まとめ
- 11章 Transformerの未来
- 11.1 Transformerのスケーリング
- 11.1.1 スケーリング則
- 11.1.2 スケーリングへの挑戦
- 11.1.3 アテンションプリーズ!
- 11.1.4 スパースアテンション
- 11.1.5 アテンションの線形化
- 11.2 テキスト以外への適用
- 11.2.1 画像
- 11.2.1.1 iGPT
- 11.2.1.2 ViT
- 11.2.2 テーブル
- 11.3 マルチモーダルTransformer
- 11.3.1 音声認識
- 11.3.2 画像とテキスト
- 11.3.2.1 VQA
- 11.3.2.2 LayoutLM
- 11.3.2.3 DALL-E
- 11.3.2.4 CLIP
- 11.4 この先の学び方
- 著者紹介
- 奥付
Product information
- Title: 機械学習エンジニアのためのTransformers ―最先端の自然言語処理ライブラリによるモデル開発
- Author(s):
- Release date: August 2022
- Publisher(s): O'Reilly Japan, Inc.
- ISBN: 9784873119953
You might also like
book
HBR Guide to Critical Thinking
Tackle complex situations with critical thinking. You're facing a problem at work. There are many ways …
book
機械学習による実用アプリケーション構築 ―事例を通じて学ぶ、設計から本番稼働までのプロセス
機械学習は翻訳、推薦システム、異常および不正検出など、さまざまなアプリケーションで利用されています。しかし機械学習はモデルの学習や評価など、これまでのアプリケーションにはない処理が必要となるだけでなく、正常に動作しているかを単純なテストだけでは検証できないなど、特別な配慮が必要となります。本書は機械学習を利用するアプリケーションを設計、構築、デプロイするために注意すべき点をまとめました。繰り返しによりデータやモデルを漸進的に改善する方法、モデル性能の監視やモデルのデバッグを行う方法など、アプリケーションを構築、運用する上で、その品質を左右する一連のプロセスを詳しく解説します。
book
UXデザインの法則 ―最高のプロダクトとサービスを支える心理学
本書は、著者Jon YablonskiがUXデザインと交差する心理学の法則をまとめたウェブサイト「Laws of UX」を元に構成されています。「意思決定にかかる時間は選択肢の数と複雑さで決まる」、「タッチターゲットに至るまでの時間はターゲットの大きさと近さで決まる」などの10の法則を、各章において、ポイント、概要、起源、事例、結論にまとめ紹介します。ノンデザイナーにもデザインセンスが求められる時代に欠かせないハンドブックです。
book
統計クイックリファレンス 第2版
本書は統計の基本概念から応用的手法まで、幅広い情報を網羅したリファレンスです。情報の時代の現代、膨大なデータを収集・分析・解釈・説明するための知識とテクニックが求められています。本書は、「統計的に考える」ことを念頭に、データをしっかり理解し、データの誤用を避け、数字に惑わされないための考え方と知識、テクニックを身に付けられるよう執筆されています。複雑な専門用語に関してもよく整理されており、わかりやすく解説。後半では、ビジネス、医療、教育などのさまざまな専門に特化した部分にも触れて概略がわかるよう工夫されています。新しい情報も数多く盛り込み、時代に即した内容となっています。