たった100ドルで自分だけのChatGPTを作れる!AI研究の民主化プロジェクト — nanochat

karpathy/nanochatPython46.5k

nanochatは、大規模言語モデル(人間のように文章を書くAI)を自分で一から作って、ChatGPTのような対話画面で会話できるようにするツールです。2019年に約600万円かかったGPT-2というAIの訓練を、わずか約7,000円〜48ドル(約2時間)で再現できます。トークナイザー(文章を細かく分割する仕組み)の訓練からAIの事前学習、対話用の調整、評価、そしてWebブラウザでの対話まで、AIチャットボットを作る全工程をカバーしています。AIの研究者だけでなく、AIの仕組みを学びたい人が手を動かしながら理解するのにも最適で、コードは極力シンプルに書かれており、改造しやすい設計になっています。著名なAI研究者Andrej Karpathy氏が開発しており、コミュニティと共にスピード記録の更新を競うリーダーボードも用意されています。

🔥 なぜ話題?

2019年に数百万円かかったAI訓練が1万円以下で可能になったという衝撃的なコスト削減が話題を呼んでいます。また、著名AI研究者Andrej Karpathy氏が手がけるプロジェクトであり、コードがシンプルでハックしやすい点がAI学習者・研究者コミュニティに刺さっています。

💡 こう使える!

例えば、AIに興味がある大学生が、クラウドのGPUサーバーを数時間レンタルして『bash runs/speedrun.sh』を実行するだけで、自分だけのChatGPTもどきが完成し、ブラウザから『空はなぜ青いの?』『物語を書いて』と話しかけて、AIが返答する様子をリアルタイムで体験できます。

ユースケース: 自分でゼロからChatGPTのようなAIチャットボットを作り、対話して遊んだり、AIの仕組みを実践的に学んだりする用途。

  • GPT-2級のAIをたった約2時間・48ドルで訓練できる(2019年は約43,000ドルかかった)
  • トークナイザー訓練→事前学習→SFT→強化学習→評価→Web UI対話まで全工程を1つのリポジトリでカバー
  • 『--depth』という1つのパラメータを変えるだけで最適なモデルサイズが自動決定される
  • ChatGPTライクなWeb UIでブラウザから自作AIと会話可能
  • GPT-2到達までの速度を競うリーダーボードでコミュニティが協力して改善中
GitHubで見る →

The best ChatGPT that $100 can buy.

技術情報

言語

Python

ライセンス

MIT

最終更新

2026-03-10

スター数

46,463

フォーク数

6,130

Issue数

76

技術詳細

アーキテクチャ・仕組み

  • GPT Transformerモデル(nanochat/gpt.py)を核としたLLMパイプライン
  • --depth(Transformerの層数)という1つのパラメータだけで、幅・ヘッド数・学習率・訓練ステップ数・Weight Decayなどすべてのハイパーパラメータが自動計算される「計算最適」設計
  • GPT-2相当の能力はdepth 24〜26付近で達成
  • オプティマイザはAdamW + Muon(nanochat/optim.py)、分散訓練にも対応
  • KVキャッシュを用いた効率的な推論エンジン(nanochat/engine.py
  • Pythonコード実行ツール機能(nanochat/execution.py)も搭載

全パイプライン

ステージスクリプト説明
トークナイザー訓練scripts/tok_train.pyBPEトークナイザー(GPT-4スタイル)
事前学習scripts/base_train.py分散データローダー対応
SFT(教師あり微調整)scripts/chat_sft.pySmolTalk等のデータで対話能力付与
強化学習scripts/chat_rl.pyさらなる対話品質向上
評価scripts/base_eval.py, scripts/chat_eval.pyDCLM CORE、BPB、ARC、GSM8K、MMLU等
推論・対話scripts/chat_cli.py, scripts/chat_web.pyCLI/WebUI

対応環境

  • 推奨: 8×H100 GPU(SM 80+)、8×A100でも動作
  • 単一GPU: torchrunを省略すれば動作(勾配累積に自動切替、8倍遅い)
  • CPU / Apple Silicon MPS: 動作可能(runs/runcpu.shで小規模モデル訓練)
  • VRAM 80GB未満の場合は --device_batch_size を32→16→8…と下げる

精度(dtype)管理

torch.amp.autocastは不使用。COMPUTE_DTYPEでグローバル制御:

ハードウェアデフォルト備考
CUDA SM 80+(A100/H100)bfloat16ネイティブbf16テンソルコア
CUDA SM < 80(V100/T4)float32NANOCHAT_DTYPE=float16でfp16可(GradScaler自動有効)
CPU / MPSfloat32-

モデル重みはfp32保存(オプティマイザ精度のため)、forward時にCOMPUTE_DTYPEにキャスト。Embeddingは直接COMPUTE_DTYPEで保存しメモリ節約。

パフォーマンス・ベンチマーク

  • GPT-2(1.6Bパラメータ)のDCLM COREスコア: 0.2565
  • 最新リーダーボード記録: 1.80時間でCOREスコア0.2690達成(8×H100)
  • 2019年のGPT-2訓練コスト約$43,000 → nanochatで約$48(スポットインスタンスなら約$15)
  • 訓練計算量: 約4e19 FLOPs

評価タスク

  • DCLM CORE: 主要ベンチマーク指標
  • ARC: 科学の選択問題
  • GSM8K: 小学校レベルの算数8,000問
  • MMLU: 幅広い分野の選択問題
  • HumanEval: Pythonコーディングタスク
  • SpellingBee: スペル・文字数え

カスタマイズ

  • アイデンティティの注入: 合成データを生成してSFTに混ぜることでAIの人格をカスタマイズ可能
  • 新しい能力の追加: 例として「strawberryのrを数える」タスクの追加ガイドあり
  • NANOCHAT_DTYPE環境変数で精度を強制指定可能

データセット

  • 事前学習: NVIDIA ClimbMix(最新リーダーボードで使用)
  • SFT: HuggingFace SmolTalk

ライセンス

  • MIT License — 商用利用含め自由に利用可能

貢献ポリシー

  • PRにはLLMが実質的に貢献した部分の開示が必要
  • 変更はすべてのdepth設定で動作する原則的なものである必要がある

インストール・クイックスタート

前提条件

8×H100(またはA100)GPU搭載のサーバーが推奨。単一GPUでも動作可能(8倍遅い)。

GPT-2を訓練して会話する手順

  1. GPUサーバーを起動し、リポジトリをクローン
  2. 訓練スクリプトを実行(約2〜3時間):
bash runs/speedrun.sh
  1. 訓練完了後、仮想環境を有効化してWeb UIを起動:
source .venv/bin/activate
python -m scripts.chat_web
  1. ブラウザで表示されたURL(例: http://209.20.xxx.xxx:8000/)にアクセスして会話開始

CPU / Apple Siliconで試す場合

bash runs/runcpu.sh

※ 非常に小さなモデルになるため、性能は限定的です。

参考になる外部の関連記事

過去のトレンド履歴

関連リポジトリ

PDF・Word・Excel・画像…なんでもMarkdownに一発変換!AI時代の万能ファイル変換ツール — markitdown

microsoft/markitdownPython109.1k

MarkItDownは、PDF、Word、Excel、PowerPoint、画像、音声、HTMLなど、さまざまな形式のファイルをMarkdown(シンプルな書式付きテキスト)に変換するPython製の

LLMアプリのレシピ集!ChatGPTから音声エージェントまで実例満載 — awesome-llm-apps

Shubhamsaboo/awesome-llm-appsPython99.0k

awesome-llm-appsは、ChatGPTやGeminiなどの大規模言語モデル(AIの文章生成技術)を使った実用的なアプリケーションの作り方を集めたレシピ集です。AIエージェント(自動でタスク

写真1枚でリアルタイム顔入れ替え!ワンクリックでディープフェイク映像を生成 — Deep-Live-Cam

hacksider/Deep-Live-CamPython90.5k

Deep-Live-Camは、たった1枚の写真を用意するだけで、ウェブカメラの映像やビデオの中の顔をリアルタイムに別人の顔に入れ替えられるソフトウェアです。「顔を選ぶ→カメラを選ぶ→ライブボタンを押す

使うほど賢くなるAIエージェント — 学習・記憶・自動化を全部入りで月5ドルから運用 — hermes-agent

NousResearch/hermes-agentPython87.5k

Hermes Agentは、Nous Research社が開発した「自己改善するAIエージェント」です。会話するたびに経験からスキルを自動生成し、ユーザーの好みや過去のやり取りを記憶して、使えば使うほ

AIに「このサイトで○○して」と頼むだけ!ブラウザ操作を全自動化するエージェント — browser-use

browser-use/browser-usePython84.1k

browser-useは、AI(人工知能)にウェブブラウザを操作させて、オンラインの作業を自動化できるPython製のツールです。「この求人に応募して」「買い物リストの商品をカートに入れて」といった自