TransformerとLLMチートシートを画像で整理:基礎からRAG・エージェントまで

Tech
Table of Contents

本記事は、Stanford CME 295 の日本語PDF「cheatsheet-transformers-large-language-models.pdf」の内容を、学習メモとして再構成した要約です。Mermaid JSやWordPressプラグインを使わず、図は外部レンダリング済みのSVG画像として表示します。

全体像

PDFは大きく、基礎、Transformer、大規模言語モデル、応用の4章で構成されています。トークン化や埋め込みから始まり、Attention、Encoder/Decoder、LLMの学習ライフサイクル、RAG、エージェント、推論モデルまでを一気に俯瞰できます。

TransformerとLLMチートシートの全体像
Transformer/LLMチートシートの大まかな地図。

1. 基礎:トークンと埋め込み

LLMは文章をそのまま処理するのではなく、まずテキストをトークンに分割します。トークンは、単語、サブワード、文字、バイトなどの単位です。

単語単位は人間にとって解釈しやすく系列も短くなりますが、語彙が大きくなります。文字やバイト単位は未知語に強い一方で、系列が長くなりすぎます。その中間としてよく使われるのが、BPEやUnigramのようなサブワードトークナイザです。

トークンはその後、埋め込みベクトルに変換されます。埋め込み同士の近さは、コサイン類似度で測られることが多いです。似た意味の単語や文は近いベクトルになり、関係の薄いものは離れます。

トークン化と埋め込みの流れ
入力テキストはトークン列になり、モデル内部では埋め込みベクトルとして扱われる。

2. Transformer:Attentionが中核

Transformerの中心技術はAttentionです。Attentionは、あるトークンが他のどのトークンをどれだけ参照すべきかを計算します。

attention = softmax(QK^T / sqrt(d_k)) V

QはQuery、KはKey、VはValueです。QueryとKeyの一致度から重みを作り、その重みに応じてValueを混ぜ合わせます。Multi-Head Attentionでは、このAttentionを複数のヘッドで並列に行います。

Attentionの計算の流れ
AttentionはQueryとKeyで参照重みを作り、Valueを重み付きで合成する。

Transformerには、Encoder、Decoder、Encoder-Decoderという構成があります。BERTはEncoder-only、GPT系やLLaMA、Mistral、Gemma、DeepSeekなど多くのLLMはDecoder-onlyです。T5のようなEncoder-Decoder型もあります。

EncoderとDecoderの構造
Encoderは入力の意味を表現し、Decoderは次のトークン生成に使われる。

3. Transformerの高速化

通常のAttentionは系列長に対して計算量が二乗で増えるため、長い入力では重くなります。チートシートでは、主な改善方向として次が紹介されています。

  • Sparsity: 全トークン同士ではなく、重要な一部の関係だけを見る
  • Low-rank: Attention計算を低ランク行列で近似する
  • Flash Attention: GPUのメモリ階層をうまく使い、正確なAttentionを高速・省メモリに計算する

4. LLMのライフサイクル

LLMは一般に、事前学習、ファインチューニング、プリファレンスチューニングの流れで作られます。

LLMの学習ライフサイクル
LLMは事前学習だけでなく、SFTやPreference tuningを経て実用化される。

事前学習では、大量のテキストから一般的な言語パターンを学びます。SFTでは、高品質な入出力ペアを使ってタスクに合わせます。指示応答データを使う場合はInstruction tuningとも呼ばれます。

PEFTは、全パラメータを更新せずに効率よく調整する手法群です。代表例がLoRAで、元の重みを固定し、低ランクの追加行列だけを学習します。QLoRAは量子化とLoRAを組み合わせた実用的な手法です。

Preference tuningでは、報酬モデル、Best-of-N、RLHF、PPO、DPOなどが使われます。目的は、単にもっともらしい文章を出すだけでなく、人間にとって望ましい回答に近づけることです。

5. プロンプトと推論

LLMを使うときは、コンテキスト長と温度が重要です。コンテキスト長は一度に入力できる最大トークン数です。温度は出力のランダム性を制御し、高いほど多様、低いほど決定的な出力になります。

複雑な問題ではChain-of-Thoughtが使われます。問題を途中ステップに分解して考えさせる方法です。Tree of Thoughtsは複数の思考経路を探索する拡張で、Self-Consistencyは複数の推論結果を集約する方法です。

6. 運用最適化:MoE・蒸留・量子化

MoEは、推論時にすべてのニューロンを使うのではなく、一部の専門家だけを活性化する仕組みです。計算効率は高い一方で、学習は難しいとされています。

Mixture of Expertsの仕組み
MoEはゲートが入力ごとにExpertを選び、推論時の計算量を抑える。

蒸留は、大きな教師モデルの出力を使って、小さな生徒モデルを学習する方法です。量子化は、重みの精度を下げてメモリ使用量を減らし、推論を速くする方法です。

7. 応用:LaaJ、RAG、エージェント、推論モデル

LLM-as-a-Judgeは、LLMを評価者として使う方法です。参照文がなくても、基準に沿ってスコアと理由を出せるのが利点です。ただし、位置バイアス、冗長バイアス、自己強化バイアスには注意が必要です。

RAGは、外部知識を検索してプロンプトに追加し、LLMに回答させる方法です。学習時点以降の情報や、社内文書のような固有データを扱うときに役立ちます。

RAGの流れ
RAGは外部知識を検索し、関連文書をプロンプトに追加して回答する。

エージェントは、目標達成のために複数のLLM呼び出しやツール操作を組み合わせるシステムです。ReActでは、Observe、Plan、Actを繰り返してタスクを進めます。

ReActエージェントの流れ
ReActでは、観察、計画、実行を循環させながらタスクを進める。

推論モデルは、CoTベースの推論過程を使って、数学、コード、論理のような難しい問題を解くモデルです。例として、OpenAIのoシリーズ、DeepSeek-R1、Gemini Flash Thinkingなどが挙げられます。

まとめ

このチートシートは、TransformerとLLMの全体像を短時間でつかむための地図です。細かいモデル名を覚える前に、トークン化、埋め込み、Attention、学習ライフサイクル、RAG、エージェントという流れを押さえると、個別技術の位置づけがかなり分かりやすくなります。

参考リンク

コメント