LLM Training
これは非常に推奨される本 https://www.manning.com/books/build-a-large-language-model-from-scratch からの私のメモで、いくつかの追加情報が含まれています。
基本情報
まず、知っておくべき基本概念についてこの投稿を読むべきです:
0. Basic LLM Concepts1. トークン化
この初期段階の目標は非常にシンプルです:入力を意味のある方法でトークン(ID)に分割すること。
2. データサンプリング
この第二段階の目標は非常にシンプルです:入力データをサンプリングし、通常は特定の長さの文にデータセットを分け、期待される応答も生成することでトレーニングフェーズの準備をすること。
3. トークン埋め込み
この第三段階の目標は非常にシンプルです:語彙内の各トークンに対して、モデルをトレーニングするために必要な次元のベクトルを割り当てること。語彙内の各単語はX次元の空間内の点になります。 最初は、空間内の各単語の位置は「ランダムに」初期化され、これらの位置はトレーニング中に改善されるトレーニング可能なパラメータです。
さらに、トークン埋め込み中に別の埋め込み層が作成され、これは(この場合)トレーニング文における単語の絶対位置を表します。このように、文中の異なる位置にある単語は異なる表現(意味)を持ちます。
4. アテンションメカニズム
この第四段階の目標は非常にシンプルです:いくつかのアテンションメカニズムを適用すること。これらは、語彙内の単語と現在トレーニング中の文の隣接単語との関係を捉えるための多くの繰り返し層になります。 これには多くの層が使用されるため、多くのトレーニング可能なパラメータがこの情報を捉えることになります。
5. LLMアーキテクチャ
この第五段階の目標は非常にシンプルです:完全なLLMのアーキテクチャを開発すること。すべてをまとめ、すべての層を適用し、テキストを生成したり、テキストをIDに変換したり、その逆を行うためのすべての関数を作成します。
このアーキテクチャは、トレーニング後のテキストの予測にも使用されます。
6. プレトレーニングとモデルの読み込み
この第六段階の目標は非常にシンプルです:ゼロからモデルをトレーニングすること。これには、定義された損失関数とオプティマイザを使用して、データセットをループしながらすべてのパラメータをトレーニングするために、前のLLMアーキテクチャが使用されます。
7.0. LoRAによるファインチューニングの改善
LoRAの使用は、すでにトレーニングされたモデルをファインチューニングするために必要な計算を大幅に削減します。
7.1. 分類のためのファインチューニング
このセクションの目標は、すでにプレトレーニングされたモデルをファインチューニングする方法を示すことです。新しいテキストを生成するのではなく、LLMが与えられたテキストが各カテゴリに分類される確率を選択することです(例えば、テキストがスパムかどうか)。
7.2. 指示に従うためのファインチューニング
このセクションの目標は、テキストを生成するだけでなく、指示に従うためにすでにプレトレーニングされたモデルをファインチューニングする方法を示すことです。例えば、チャットボットとしてタスクに応答することです。
Last updated