自分で入力した文章だけを使い、BPEトークナイザーとGPT型言語モデルをゼロから学習させるローカル学習アプリです。学習済みLLMや外部APIを呼び出して結果だけを表示するものではありません。PyTorchで実装した因果的自己注意(Causal Self-Attention)とTransformerを、CPU・CUDA・Apple Silicon(MPS)で実際に訓練します。
- 入力データからBPEの語彙が作られていく過程
文字列 → Token ID → Embedding → Self-Attention → FFN → 語彙確率のモデル構造- 学習中のLoss、検証Loss、Perplexity、学習率、勾配ノルム
- 同じプロンプトに対する学習途中の予測変化
- 各Attention Headが、どのトークンを参照したかを示すヒートマップ
- 文章生成時の上位候補トークンと確率
- EOS・句点・改行による自然な長さの自動停止(最大Token数の安全上限あり)
Python 3.10以上を推奨します。
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux / macOS
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -e .
python -m deep_learning_studio通常の pip install torch でCUDAを含まないPyTorchが入ると、NVIDIA GPUを搭載していてもCUDAは利用できません。このプロジェクトには、CUDA版PyTorchを専用仮想環境へ導入して検証するPowerShellスクリプトがあります。
powershell -ExecutionPolicy Bypass -File scripts/install_windows_cuda.ps1
.venv\Scripts\python -m deep_learning_studio標準では互換性を重視してCUDA 12.6版を使用します。新しいドライバー環境では -CudaVariant cu130 または -CudaVariant cu132 も選択できます。
powershell -ExecutionPolicy Bypass -File scripts/install_windows_cuda.ps1 -CudaVariant cu130アプリの「GPU・アクセラレータ診断を表示」では、PyTorchの種類、CUDA Runtime、GPU名、NVIDIA Driver、利用できない理由を確認できます。PyTorchは実行環境に応じて次の順で自動選択します。
- CUDA(NVIDIA)またはROCm(AMD)
- XPU(Intel GPU)
- MPS(Apple Silicon)
- DirectML(Windows上の各社GPU、
torch-directml導入時) - CPU
NVIDIA以外では、各バックエンドに対応したPyTorchを先に導入してください。DirectMLは pip install torch-directml で追加でき、アプリが自動検出します。最新の正式な導入方法は PyTorch公式インストール案内 を参照してください。
コマンドラインだけで診断することもできます。
python scripts/diagnose_accelerator.py- 「データと設定」へ、同じ文体・話題を持つ文章を貼り付けます。
- 「トークナイザーを構築」を押し、語彙が作られる様子を確認します。
- 小型モデル設定を選び、「学習を開始」を押します。
- グラフとAttentionを見ながらLossが下がる様子を観察します。
- 「文章生成」で学習データに含まれる書き出しを入力し、続きを生成します。
数行でも動作しますが、言語らしい出力には最低でも数千文字、できれば数万文字以上が必要です。入力したデータは外部送信されません。
| 設定 | 層 | 埋め込み | Head | 用途 |
|---|---|---|---|---|
| 学習用ミニ | 2 | 64 | 4 | CPUで仕組みを観察 |
| 標準 | 4 | 128 | 4 | 小規模コーパスの実験 |
| 本格 | 6 | 192 | 6 | GPU推奨 |
これは教育用の「小型GPT」です。構造と計算はLLMと同系統ですが、ChatGPT級の能力には巨大なデータセット、計算資源、アラインメント工程が必要です。
python -m unittest discover -s tests -v詳細設計は docs/architecture.md を参照してください。