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