LLMファインチューニングの基礎:次トークン予測の理解

スポンサーリンク

LLMファインチューニングの基礎:次トークン予測の理解

  • 自己回帰モデル
  • 分類システム
  • 言語モデルトレーニング
  • LLMの動作
  • LLMファインチューニング
  • LLMトレーニング
  • 次トークン予測
  • 教師ありファインチューニング
  • トークン確率
  • Mohamed Abdelhamid
  • Ready Tensor

🏠
ホーム – 全レッスン

⬅️
前 – Week 1クイズ

➡️
次 – LLMの学習方法

それを理解するには、まず言語モデルがそもそもどのように学習するかにズームインする必要があります。
その学習プロセスの核心には、単一の強力なアイデアがあります:次トークン予測。

すべてのトレーニングステップ、すべてのファインチューニング実行、後で見るすべての損失曲線 — すべてがこの1つのメカニズムに遡ります。

これが重要な洞察です:言語モデルは神秘的なテキストジェネレーターではありません — 次に来るものを予測するために訓練された巨大な分類器であり、毎ステップで数万の可能なトークンから選択します。

そして、それをそのように見ると、ファインチューニングに関するすべてが理解できるようになります。

大きなアイデア:次に来るものを予測する

まず、馴染みのあるものから始めましょう。
スマートフォンで予測テキストを使ったことがあれば、言語モデルが行うことの小型版をすでに見ています。

「The cat sat on the…」と入力すると、スマートフォンは「mat」を提案するかもしれません。
簡単ですね。しかし、その小さな予測の背後には、数十億パラメータのモデルを動かすのと同じ原理があります。

実際に何が起こっているかというと:モデルが「mat」を予測するとき、いくつかのオプションから選択しているわけではありません。
実際には、語彙内のすべての単一トークンの確率を計算します — 単語、サブワード、記号、さらには「mitochondrion」、「chemistry」、「with」のような不適切または無関係なものまで。

典型的な言語モデルの語彙には約50,000トークンが含まれることを考えると、各予測は次のトークンを選択する前にそれらすべてをスコアリングすることを含みます。

視覚化してみましょう:

モデルは答えを知りません。可能なすべてのトークンの確率を計算します — 意味不明なものでさえも — そして、最高確率を選択するか、分布からサンプリングして1つを選択します。

その単一の分類決定 — どのトークンが次に来るべきか — は、ファインチューニング以降のすべての核心です。

動画ウォークスルー:言語モデルが次トークンを予測する方法

この動画では、大規模言語モデルがテキスト生成を巨大な分類問題に変換する方法を見ます — 毎ステップで数万の可能性から次のトークンを予測します。

分類から生成へ:自己回帰ループ

これまで、モデルが単一の予測を行う方法に焦点を当ててきました。
では、それがどのように段落全体や会話を生成するかにつなげましょう。

言語モデルは自己回帰的です。つまり、次の予測の入力として自身の以前の出力を使用します。
自己供給ループのようなものと考えてください。

段階的に例を見てみましょう:

ユーザー: フランスの首都は何ですか?
アシスタント:
  • モデルは次のトークンとして「The」を予測します。
  • 次に「The」を入力し直して「capital」を予測します。
  • 今度は「The capital」を見て「of」を予測します。
  • 次に「France」を予測します。
  • 次に「is」を予測します。
  • 次に「Paris」を予測します。

各ステップは、その前のすべてに基づいて構築されます — ちょうどあなたが頭の中で単語ごとに文を構築するように。
しかし覚えておいてください:モデルは先を計画していません。これまでの完全なコンテキストを考慮して、一度に1つのトークンだけを予測しているのです。

だからこそ、このプロセスは非常に強力で、かつ脆弱なのです。
すべての新しいトークンは、ちょうど作成した履歴に完全に依存します。
1つの誤った予測が、応答の軌道全体を変える可能性があります。

🎥 大規模言語モデルにおける自己回帰の仕組み

この動画では、大規模言語モデルが自身の予測を入力としてフィードバックすることでテキストを生成する方法を見ます — 単純な次トークン予測を完全な文の生成に変えます。

モデル出力が変化する理由:確率的サンプリング

ChatGPTに同じ質問を2回して、わずかに異なる答えを得たことがあれば、確率的サンプリングの実際を見たことになります。

テキストを生成する際、モデルは常に最も可能性の高いトークンを選ぶわけではありません。
代わりに、分布からサンプリングして、制御されたランダム性を導入します — 人間の作家がトーンに応じて「quick」、「rapid」、「swift」を選ぶのと同じように。

これは次のようなパラメータで制御されます:

  • Top-kとTop-p(nucleus)サンプリング — ありそうもないトークンを無視しながら、可能性の高いトークンの上位部分から選択する方法。

この組み合わせが、同じプロンプトが毎回新しい表現を生み出す理由を説明します。
これは一貫性の欠如ではありません — デコーディングプロセスに組み込まれた意図的なバリエーションです。

プログラムの後半で、推論と生成制御を探る際に、これらの設定を再検討します。

パターンマッチング、推論ではない

多くの人が陥る罠は次のとおりです:
言語モデルが推論しているように聞こえるため、そうでないことを忘れがちです。

彼らは「考え」ません。パターンをマッチングします。

モデルが説明を書くとき、論理を通して推論しているわけではありません。
以前に見た類似のテキストに通常続くテキストを予測しているのです。

たとえば、人々が段階的に数学の問題を解く何百万もの例を見た場合、そのパターンを学習しました。したがって、プロンプトを受けると「推論のような」シーケンスを生成します — しかし、本当の理解はありません。

これはファインチューニングにとって重要です。
モデルに新しい推論能力を教えているわけではありません — どのパターンを再現するかを形作っているのです。

ファインチューニングがこれに基づいて構築される方法

モデルがどのように予測して生成するかを見たので、これをファインチューニングに結びつけましょう。

ファインチューニングは学習アルゴリズムを変更しません。
モデルに学習方法を教えるのではなく — 何から学ぶかを変更します。

変化するもの:

  • データ形式:生テキストから、命令や対話などの構造化された例へ。
  • マスキング戦略:テキストのどの部分が実際に損失に寄与するかを決定します(すぐにカバーします)。
  • スケール:事前トレーニングの数兆トークンから、数千または数百万の厳選されたファインチューニング例へ。

メカニズム — 次トークンの予測 — はまったく同じままです。
単にモデルに新しい種類のパターンを学習させているだけです。

すでに料理の仕方を知っているシェフのように考えてください — ファインチューニングは、ナイフの持ち方を再び教えるのではなく、新しい料理を教えるのです。

この基礎を理解することで、次に来るすべてがセットアップされます。

すべての場合において、モデルは予測されたトークンを正しいものと比較し、損失を最小化することで重みを更新します。
唯一の本当の違いは、トレーニングが提供するデータと目的にあります:

  • 事前トレーニング:モデルは、大規模で多様なコーパスから一般的な言語パターンを学習します。
  • ファインチューニング:同じプロセスを続けますが、より小さく専門化されたデータセット — たとえば、医療記録、法律文書、またはチャットスタイルの会話 — で行います。

言い換えれば、「ファインチューニング」は新しいアルゴリズムではありません — 異なる目標とより焦点を絞ったデータセットで再びトレーニングしているだけです。
私たちが「ファインチューニング」という用語を使用するのは、それがプロセスの使用方法を捉えているからです:より狭い目的のために広範なモデルを洗練することです。

次は何か?

次のいくつかのレッスンでは、モデルが実際に次のトークンを予測することを学習する方法、推測が正しいか間違っているかを測定する方法、およびマスキングと呼ばれるプロセスがモデルがテキストのどの部分から学習するかを制御するのに役立つ方法を覗き見します。

これらはまとめて、ファインチューニングの実践的なビルディングブロックを形成します:同じ学習アルゴリズムですが、よりスマートで、より焦点を絞った方法で適用されます。

  • ここから始めましょう:ファインチューニングの背後にある核心メカニック

コメント

タイトルとURLをコピーしました