AI Navigate

300ドルのCPUでゼロから訓練したGPTトランスフォーマー — 39分、0.82Mパラメータ、GPU不要

Reddit r/LocalLLaMA / 2026/3/21

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical UsageModels & Research

要点

  • PyTorchでCPUのみ(GPUなし)を用いて、0.82Mパラメータの文字レベルGPTトランスフォーマーをゼロから訓練し、300ドルのマシン上で39分で完了した。
  • モデルは語彙ベースではなく文字パターンを学習し、語彙サイズは28で、微調整や事前学習済みの重みを使わずにエンドツーエンドの訓練を示している。
  • 訓練過程では継続的な改善が見られ、訓練損失と検証損失がともに低下し、3000ステップにわたって過学習は観察されなかった。
  • 生成された出力は、学習済みの物語構造や登場人物名を明らかにする一方で、綴りと全体的な一貫性には欠陥があり、文字レベルの理解を反映している。
  • 今後の方針として、データを100万文字以上へ拡張し、訓練を5000〜10000回の反復に拡大し、データ量・反復回数を増やした後により大きなモデルを検討する。

文字レベルの 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 設定があります

投稿者 /u/Suspicious_Gap1121
[リンク] [コメント]