English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

ゲスト
1 / ?

言語モデルが予測するもの

確率的継続エンジン

言語モデルはトークンのシーケンスを受け取り、次のトークンにどのような確率分布が割り当てられるかを計算します。the cat sat on the を入力すると、語彙全体にわたる確率を出力します:matfloorcouch に高い確率;xylophoneTuesday に低い確率。


その分布からサンプリングし、トークンを追加してフィードバックする:そのループでテキストを1トークンずつ生成します。Autoregressive generation(自己回帰生成)と呼ばれ、各ステップが自身の以前の出力に回帰するためです。


言語モデルを定義する3つの数字


語彙サイズ (V)。 モデルが生成できる異なるトークンの数。ANDREA-12Mは4,353トークンを使用;ANDREA-120Mは8,449を使用。


コンテキストウィンドウ (T)。 1回のフォワードパスに収まるトークンの数。ANDREAモデルはT = 1,024を使用。


パラメータ数 (P)。 内部に学習された重みがどれだけ存在するか。12M、120M、& 480MはPでファミリーを命名。


3つのファミリー


バリエーションd_modelヘッドレイヤーコンテキストパラメータ
ANDREA-12M384126102412.8M
ANDREA-120M76812121024~120M
ANDREA-480M153624161024~480M

3つのノブでスケール:d_model(すべての内部ベクトルの幅)、n_layer(積み重ねられたトランスフォーマーブロックの深さ)、n_head(並列アテンションプロジェクション)。語彙とコンテキストはファミリー全体で固定。

ファミリーテーブルの読み方

ANDREA-12M (d_model=384, 6 layers, 12 heads) を ANDREA-120M (d_model=768, 12 layers, 12 heads) と比較せよ。12Mから120Mへスケールする2つのアーキテクチャ軸と、一定のものを1つ挙げよ。各スケール選択の1文の理由を。

小さいモデルが重要な理由

制約としての解放

数百億のパラメータを持つ大規模言語モデルは、数千のGPU、独自データセット、企業予算を必要とします。訓練できる人はほとんどいません。修理できる人もほとんどいません。


1つのGPU上の小型言語モデルはそれを逆転させます。4090(または3060)を持っている誰でも、オープンデータからANDREAを再現できます。訓練レシピはモデルカードを兼ねます。オープンコード、オープンウェイト、オープンデータ;72時間の計算で完全な出所が得られます。


容量 vs 品質

小型モデルは訓練コーパスを記憶できません。12.8MパラメータのANDREA-12Mは、事実的内容を保存する容量が不足しており、ターン構造、語彙分布、応答形状を学習します。10倍の容量を持つANDREA-120Mは、事実の想起、多段落の一貫性、ドメインの広さ(生物学および信号処理サンプルの外部評価で9.5/10)を学習します。


要点: 容量は上限を設定します。カリキュラムは、その上限に到達するかどうかを決定します。アクティビティ14-23はカリキュラムを扱います。 [TITLE decoder_only/]

3つのTransformerのバリエーション

Encoder、Decoder、両方

オリジナルのTransformer(Vaswani et al., 2017)は、翻訳のためにエンコーダーとデコーダーを備え、それらを結合して提供されました。この論文から3つのアーキテクチャの系統が派生しています:


Encoder-only(BERT系統)。双方向アテンション、カジュアルマスクなし。分類に最適化されており、生成には不向きです。トークンはトレーニング中に過去と未来の両方を見ます。


Encoder-decoder (T5, BART)。エンコーダーが入力を読み取り、デコーダーがエンコーダーへのクロスアテンションで出力生成。翻訳、要約に使用。


Decoder-only (GPT, ANDREA)。因果マスク:各トークンは過去のみ参照。次のトークン予測で訓練。生成が容易;訓練と推論が同一のフォワードパスを共有。


なぜDecoder-Onlyが1つのGPUで勝つか

3つの理由:


1. 単一の目的。 次のトークン予測は任意のテキストで機能。ペアのソース/ターゲット不要。

2. トレーニングと推論の対称性。 同一のフォワードパスで、特別な生成ロジックなし。

3. メモリの単純さ。 クロスアテンションなし;レイヤーの1つのスタック;アクティベーションの1つの流れ。


ANDREA は microGPT から decoder-only の選択を継承し、microGPT は nanoGPT から、nanoGPT は GPT-2 から継承しています。系統は標準のまま;トークナイゼーション、トレーニングインフラ、& カリキュラムで変化が生じます。

ANDREA が Decoder-Only を使用する理由

トレーニングデータ視点から1つの理由と、推論行動視点から1つの理由を挙げて、ANDREA が T5 のような encoder-decoder ではなく decoder-only トランスフォーマーを使用する理由を説明してください。

24 GB に収まるもの

パラメータあたりのバイト数

RTX 4090 は 24 GB の VRAM を搭載しています。ANDREA-12M の訓練には 1.4 GB が使用されました。ANDREA-120M は大幅に多く使用しました。この差は単純な会計計算に起因します:訓練中、すべてのパラメータがメモリ上で複数回現れます。


各パラメータに対して、訓練中は以下を保持します:

- 重み自体 (1× 重み)

- Adam 一次モーメント (m): 重みと同じ形状 (1× 重み)

- Adam 二次モーメント (v): 重みと同じ形状 (1× 重み)

- 勾配: 重みと同じ形状 (1× 重み)

- 活性化 & 一時変数: ~2-4× 重み (バッチ & コンテキストにより変動)


合計: 重み数の ~6-8×、精度によりバイト数が決定。


精度がすべてを倍増させる


精度パラメータあたりのバイト120M重みの合計備考
FP324480 MBベースライン; 最も安全、遅い
FP162240 MBcuBLAS、メモリの半分
FP8 E4M31120 MBテンソルコア、NaNリスク

トレーニング時の完全なフットプリントに対して6-8倍を掛けてください。ANDREA-120MはFP16で快適にトレーニング可能(重み + オプティマイザ + 勾配で約2 GB);FP8 E4M3はRTX 4090テンソルコアでトレーニング時間を半分にします。


Activity 13 (grow_a_language_model_precision) は FP 精度のトレードオフを詳細に解説します。

ANDREA-120M のオプティマイザ状態のサイズ計算

ANDREA-120M は約 120,000,000 パラメータを持ちます。各 FP32 ウェイトは 4 バイトを占有します。AdamW は各ウェイトごとに 2 つの追加のオプティマイザ状態浮動小数点数 (m, v) を保存します。計算せよ: (a) FP32 のウェイトのみ、MB で; (b) FP32 のウェイト + オプティマイザ状態、MB で; (c) FP16 のウェイト + オプティマイザ状態、MB で。算術を示せ。

25のアクティビティ

2つの半分

このコースは明確に2つに分かれています。最初の半分はmicroGPTが分野に教えた内容を扱います:1つのGPUで動作するトランスフォーマー。2番目の半分はANDREAの実際の貢献を扱います:学習するカリキュラム。


半分1:1つのGPU上のトランスフォーマー(アクティビティ2-13)


#アクティビティビート
2Harris形態素トークナイザー分布的分離、256+N+1語彙
3トークナイザー-ダイエットアライメント飽和点、なぜ12Mが63.6%無駄になったか
4埋め込み & 位置学習されたトークン + 位置ルックアップ
5スケールドドット積アテンションQ·Kᵀ/√d、因果マスク、softmax
6マルチヘッドアテンションヘッド分割、並列射影
7TransformerブロックMLP、残差接続、レイヤー正規化
8クロスエントロピー & ペルプレキシティ対数尤度、SMMA損失
9カスタムCUDAでのバックプロパゲーションmicrogpt_cuda.cuを横断する連鎖律
10AdamW分離型重み減衰; なぜバニラAdamが死んだか
11LR warmup + cosine decay2000ステップのランプ; なぜ即時ピークが120Mを破壊するか
12勾配クリッピンググローバルL2ノルム; 3 CUDAカーネル
13FP32 / FP16 / FP8 E4M3精度のトレードオフ; テンソルコア

後半: 学習するカリキュラム (アクティビティ14-24)


#アクティビティビート
14多腕バンディットUCB1、探索 vs 活用
15フェーズベースのダイス制御7/14/21/28/42 フェーズ、1d3/1d4 ダイス
16報酬帰属 & EMAソースごとの損失 EMA、1000× スケーリング
17ソースフロア & エポックペナルティ1/(1+epochs) で記憶化を防止
18カバレッジボーナスドキュメントレベルの追跡、1.3× 新鮮度
19カリキュラムウォームアップ最初の 20K ステップで 7 つのチャット/散文ソース
20形状によるフィルタリング、文字数ではないhas_system_prompt_shape()
21コヒーレンスゲート付き早期停止bigram/trigram/word/char auto-halt
22チェックポイント、再開、シグナルformat, SIGTERM/SIGUSR1, loss.json continuity
23サンプル監査 & 外部評価実行の読み取り, 9.5/10 領域
24microGPT から ANDREA-120M へv1 崩壊, v2 修正, v2.5 パッチ, v3 洗練

さらにコンパニオンとして:geometry_of_andrea 各層を幾何学として扱う(埋め込み空間、注意機構を射影として、損失表面、バンディットを離散単純体上の歩行として)。


提案順序

アクティビティ2-13で動作するトランスフォーマーを構築します。トランスフォーマーのトレーニング経験がある場合はパート2にスキップしてください;好奇心が湧いたら戻ってきてください。


可能な限り各アクティビティは独立しています。Math beatsリファレンスは名前で以前のアクティビティを参照します(see activity 5: scaled dot-product attention)。コードリファレンスは~/git/uncloseai-cli/内のmicrogpt/microgpt_cuda.cu & microgpt/training_proxy.pyを指します。

どこから始めますか?

24のアクティビティ + ジオメトリ補足を見て、始めたいアクティビティを1つ挙げ、その理由を1つ述べてください:知識のギャップ、業務上の関連性、または純粋な好奇心。間違いはありません;コースの経路はあなたのものであり。