文字レベルの GPT トランスフォーマーを PyTorch から一から構築 — 純粋なアーキテクチャとゼロからの訓練。ファインチューニングなし、事前訓練済みウェイトなし、クラウド計算なし。
300ドルのマシンで訓練可能
Git hub リポジトリ : https://github.com/Eamon2009/Transformer-language-model
私が訓練した内容:
パラメータ数 : 0.82M データセット : 子どもの物語の201K文字 語彙サイズ : 28 のユニーク文字 ハードウェア : CPU のみ — AMD Ryzen 5 訓練時間 : 39 分 最良の検証値 : 1.3145 — ステップ 3000 でもまだ改善中 完全な訓練ログ:
[ 0/3000] train=3.2961 val=3.2981 << best! [ 200/3000] train=2.3038 val=2.2490 << best! [ 400/3000] train=2.2469 val=2.1950 << best! [ 800/3000] train=1.9742 val=1.9103 << best! [ 1400/3000] train=1.5889 val=1.5360 << best! [ 2000/3000] train=1.4604 val=1.4081 << best! [ 2600/3000] train=1.3501 val=1.3446 << best! [ 2999/3000] train=1.3191 val=1.3145 << best! 各チェックポイントはすべて改善された。過学習は全くなし — 訓練損失と検証損失は実行全体を通して同時に減少した。
実際にモデルが生成した出力:
one day and was arroom him that she rabbing animals the dreezed at neard had to there man owl them one smiled the mushrought boy he rabbit to havin after the but help 物語の構成を学習。キャラクター名を学習。語りの流れを学習。綴りは文字ごとに動作するため崩れる — fr の後に i,e,n,d が来ると学習したが、時にはその連結をわずかに間違える。単語の概念はなく、文字パターンのみ。
正しい点と誤っている点:
✓ 物語構成 → "one day..."、段落、語りの流れ ✓ キャラクター名 → jack, tim, lucy, mary ✓ 文のパターン → "he said"、"she was"、"they went" ✗ 綴り → "driendly"、"mushrought"、"surpring" ✗ 論理 → 文は一貫して結びつかない このアーキテクチャはどのハードウェアでも動作します:
batch_size = 16 block_size = 128 n_embd = 128 n_head = 4 n_layer = 4 dropout = 0.2 GPU をお持ちの場合は、設定の 4 行を変更して 10.8M パラメータにスケールしてください。モデルはまだ天井に達していません — ステップ 3000 でも検証損失は低下し続けました。より多くのデータとより多くのステップは出力を直接改善します。
これを拡張したい人にとっての次に最も影響力のある手順:
1. データを 1M+ 文字にスケール — TinyStories データセットが最適 2. max_iters を 5000-10000 に増やす 3. 手順 1 および 2 の後により大きなモデル リポジトリには完全な訓練ログ、出力分析、過学習の内訳、GPU 設定があります
[リンク] [コメント]

