60 / 90

第60日: 事後評価、課金監査、Safetensors形式エクスポートと解体

モデル困惑度と生成品質の検証、クラウド請求書のドル単位照合、Safetensors出力、および完全なリソース物理削除。

モデルと事前学習 480 分(8時間)
01 120 分

最終チェックポイント検証、パープレキシティと生成品質評価

Agent支援エンジニアリングチェック

前提条件

第59日クラウド事前学習実行および第53日検証評価メトリクス。

学習目標

留保検証データセット上で最終チェックポイントを評価し、検証損失とパープレキシティを算出し、自己回帰サンプリングでテキストの一貫性を検証する。

手順

1. 最終チェックポイントを map_location='cpu'(または GPU)で読み込み、新しく構築したモデルにその 'model' 状態を読み込んで model.eval() を呼ぶ。
2. 保持しておいた検証バッチの固定リストを作り、2 つのチェックポイントを常に同じトークンで比べられるようにする。
3. torch.no_grad() の中でそれらのバッチの平均交差エントロピーとして L_val を計算し、PPL = exp(L_val) とする。
4. 一様ベースライン ln(V) と比べる:文字レベルの Shakespeare では V = 65、ln(65) = 4.1744 なので、L_val が 4.0 未満ならモデルが当て推量に勝っていることになる。
5. 同じプロンプトから temperature=0.8、top_k=40 でサンプルを 5 つ生成し、それぞれについて退化したループ(1 つのトークンの長い連続、または異なるトークンが少なすぎる)を調べる。
6. サンプルを自分で読み、チェックポイントのステップ、L_val、PPL、サンプル、デコード設定、シードを記録する。

時間配分(120 分):読解 20 + 演習 70 + 確認 30。 読解:nanoGPT の estimate_loss とサンプリングのコード、CS336 の評価に関するノート。演習:最終チェックポイントで手順 1-6。確認:L_val と PPL の閾値を ln(V) からノートなしで説明する。

演習と予測記録

最終チェックポイントで評価スクリプトを実行せよ。検証損失がランダム初期化より低いこと(Shakespeare では L_val < 4.0、または PPL < 50)と、生成文に単一トークンの反復ループが含まれないことを assert する。

独立習得基準

パープレキシティの数理的改善と生成文の定性的整合性を実証できる。

公式ソースリソースと権利証跡

linking MIT

nanoGPT: train.py pretraining loop

著者・提供機関: Andrej Karpathy | オリジナル出所URL ↗

該当セクション・タイムスタンプ: train.py: estimate_loss() averages eval_iters batches per split; run every eval_interval; best_val_loss decides when a checkpoint is saved

検証バージョンと日付: Git master commit 71c3905 (Verified: 2026-10-30)

選定理由:

Compact historical code reference for the named implementation functions; CS336 spring2025 provides the lead component exercises. Do not infer top-p, atomic persistence or cloud budget enforcement from nanoGPT.

ソース前提知識:

Python, PyTorch, and Day 46-48 Transformer model architecture.

安全フォールバック(オフライン回復性):

Runnable pretraining scripts and step-by-step tensor mechanics are fully self-contained in the curriculum lessons.

比較対象候補リソースと選定評価 (2)
Hugging Face Accelerate / Trainer ↗ compared_alternative [Apache-2.0]

Heavy abstraction layer wrapping distributed training; nanoGPT exposes raw PyTorch loops without framework overhead.

Megatron-LM (NVIDIA) ↗ compared_alternative [BSD-3-Clause]

High-performance enterprise distributed framework; unsuitable for local educational first-principles comprehension.

linking MIT

CS336 Assignment 1: Basics (Spring 2025 tagged release)

著者・提供機関: Stanford University CS336 Staff | オリジナル出所URL ↗

該当セクション・タイムスタンプ: README setup; tests/adapters.py; tests/test_optimizer.py; tests/test_nn_utils.py; tests/test_serialization.py

検証バージョンと日付: spring2025 tag; README, tests and MIT LICENSE checked 2026-11-01

選定理由:

Lead assignment-driven source for pretraining component practice and tests. nanoGPT remains a compact historical code-reading companion, not the current recommended training curriculum.

ソース前提知識:

Fluent Python, PyTorch, and linear algebra

安全フォールバック(オフライン回復性):

Local self-contained pretraining scripts run on standard local CPUs or budget GPUs without Stanford cluster dependency.

比較対象候補リソースと選定評価 (2)
Karpathy nanoGPT ↗ compared_alternative [MIT]

Simpler code layout, useful complementary reference for minimal PyTorch Transformer.

Hugging Face Transformers Course ↗ compared_alternative [Apache-2.0]

High-level API focus rather than building from raw tensor fundamentals.

02 120 分

包括的クラウド課金監査とトークンあたりコストの厳密な算定

独立習得チェック(AI 支援なし)

前提条件

第60日アクティビティ1および第58日予算上限知識。

学習目標

クラウド利用明細を精査し、GPU実稼働費、ストレージ維持費、データ転送量を全項目照合し、10億トークンあたりの実質単価を確定する。

手順

1. 合計額だけでなく、その実行に対するプロバイダの利用内訳をエクスポートする。
2. 費用を分解する:計算(時間 * $/時間)、ストレージ(GB * $/GB 月 * 日数 / 30.4)、ネットワーク送信(GB * $/GB)。各行を単位付きで書く。
3. 各行を足し、セント単位に丸めるのは最終合計だけにする。
4. Day 58 の事前予算と照合する。上限は (0, 20.0] の範囲になければならない:PASS か FAIL かを述べ、FAIL なら超過額と、上限内に収まった最大の計算時間を示す。
5. 効率指標を計算する:10 億トークンあたりのコスト = 合計 / トークン数 * 1e9、および暗黙のスループット トークン数 / (時間 * 3600)。
6. 超過があればその原因を 1 文で、次回それを防ぐ変更を 1 文で書く。

時間配分(120 分):読解 20 + 演習 65 + 確認 35。 読解:EleutherAI Transformer Math の計算コストの節と Day 58 の事前チェック報告。演習:明細書と照合。確認:変形(計算 12 時間)の照合を補助なしでやり直す。

演習と予測記録

A100 を 16.7 時間($1.50/時間)使用し、50GB のストレージを 1 日間($0.10/GB/月 = $0.16)、2GB のチェックポイントをダウンロード($0.08/GB = $0.16)して、10B トークンの学習を行いました。総請求額と、10 億トークンあたりのコストを計算してください。次に Day 58 の上限 $20 と照合してください:この実行は合格ですか。不合格なら、超過額と、上限内に収まる最大の計算時間を示してください。

独立習得基準

クラウドの全課金項目を詳細に精査し、トークン単価を算出できる。

公式ソースリソースと権利証跡

linking CC-BY 4.0

Transformer Math 101

著者・提供機関: Quentin Anthony, Stella Biderman, Hailey Schoelkopf | オリジナル出所URL ↗

該当セクション・タイムスタンプ: Engineering Takeaways for Compute Costs

検証バージョンと日付: EleutherAI Research Blog (Verified: 2026-10-30)

選定理由:

Widely cited, practical industry guide deriving 6ND compute FLOPs, activation memory, KV cache size, and VRAM estimation.

ソース前提知識:

Transformer matrix dimensions and matrix multiplication FLOP counting.

安全フォールバック(オフライン回復性):

The 6ND derivation (2ND forward, 4ND backward) and peak VRAM estimation models are fully worked out in the curriculum.

比較対象候補リソースと選定評価 (2)

Rigorous academic formulation; Transformer Math 101 provides accessible step-by-step arithmetic equations.

Kaplan et al. Section 2.1 Compute Budgeting ↗ compared_alternative [Open Access]

Original 6ND approximation; EleutherAI expands on activation memory and KV cache.

linking MIT

CS336 Assignment 1: Basics (Spring 2025 tagged release)

著者・提供機関: Stanford University CS336 Staff | オリジナル出所URL ↗

該当セクション・タイムスタンプ: README setup; tests/adapters.py; tests/test_optimizer.py; tests/test_nn_utils.py; tests/test_serialization.py

検証バージョンと日付: spring2025 tag; README, tests and MIT LICENSE checked 2026-11-01

選定理由:

Lead assignment-driven source for pretraining component practice and tests. nanoGPT remains a compact historical code-reading companion, not the current recommended training curriculum.

ソース前提知識:

Fluent Python, PyTorch, and linear algebra

安全フォールバック(オフライン回復性):

Local self-contained pretraining scripts run on standard local CPUs or budget GPUs without Stanford cluster dependency.

比較対象候補リソースと選定評価 (2)
Karpathy nanoGPT ↗ compared_alternative [MIT]

Simpler code layout, useful complementary reference for minimal PyTorch Transformer.

Hugging Face Transformers Course ↗ compared_alternative [Apache-2.0]

High-level API focus rather than building from raw tensor fundamentals.

03 120 分

Safetensors形式への変換エクスポートと完全なクラウド解体手順

Agent支援エンジニアリングチェック

前提条件

第60日アクティビティ1〜2、Safetensors仕様、クラウドリソース削除手順。

学習目標

重みを安全なゼロコピーSafetensors形式に変換してローカル退避後、クラウドインスタンスとストレージを不可逆的に破棄して課金を停止する。

手順

1. checkpoint.pt を CPU 上で読み込み、'model' の重みだけを残す。オプティマイザ状態やその他の訓練メタデータは捨てる。
2. torch.compile がすべてのキーに付ける '_orig_mod.' 接頭辞を取り除く。
3. 共有された重みを扱う:safetensors はストレージを共有するテンソルを拒否する(GPT では lm_head.weight が transformer.wte.weight そのもの)。各テンソルの独立した連続コピーを保存し、読み込み後に再び共有させる。
4. メタデータ付きで model.safetensors を保存し、load_file で読み直して、ビット単位で同一の往復(同じキー、すべてのテンソルで torch.equal)を assert する。
5. ファイルサイズと SHA-256 を記録し、rsync でファイルを手元にコピーし、クラウドに触れる前に手元のダイジェストと比べる。
6. 順に片付ける:インスタンスを終了する(停止ではなく終了)、この実行のボリューム・スナップショット・バケットをすべて削除する、後でもう一度一覧を取り、稼働インスタンス = 0、稼働ボリューム = 0 を確認する。

時間配分(120 分):読解 20 + 演習 70 + 確認 30。 読解:safetensors のドキュメント(形式と torch API)と nanoGPT train.py のチェックポイント構造。演習:エクスポートスクリプトと片付けのチェックリスト。確認:safetensors が pickle の危険を取り除く理由と、共有重みにコピーが必要な理由をノートなしで説明する。

演習と予測記録

checkpoint.pt からモデル重みのみを抽出し、model.safetensors へ安全に変換・保存して正常に再読み込みできることを確認してください。

独立習得基準

モデル重みを安全なSafetensors形式でエクスポートし、クラウド解体証跡を確定できる。

公式ソースリソースと権利証跡

linking Apache-2.0

Safetensors: Simple, Safe and Fast Tensor Storage

著者・提供機関: Nicolas Patry, Hugging Face Team | オリジナル出所URL ↗

該当セクション・タイムスタンプ: README 'Format' (8-byte header size, JSON header, tensor byte buffer)

検証バージョンと日付: Safetensors 0.4.x / GitHub (Verified: 2026-10-30)

選定理由:

Widely adopted format for secure model checkpoint export, preventing arbitrary code execution vulnerability inherent to Python pickle.

ソース前提知識:

Binary serialization, memory mapping (mmap), and tensor state dictionaries.

安全フォールバック(オフライン回復性):

Zero-copy tensor slicing and header dictionary parsing are demonstrated in pure Python.

比較対象候補リソースと選定評価 (2)
Python pickle module documentation ↗ compared_alternative [PSF License]

Default PyTorch serialization; Safetensors replaces pickle to eliminate arbitrary code execution security hazards.

ONNX Model Format Specification ↗ compared_alternative [Apache 2.0]

Full computational graph interchange format; Safetensors focuses strictly on zero-overhead raw weight storage.

linking MIT

nanoGPT: train.py pretraining loop

著者・提供機関: Andrej Karpathy | オリジナル出所URL ↗

該当セクション・タイムスタンプ: train.py: checkpoint dict {'model', 'optimizer', 'model_args', 'iter_num', 'best_val_loss', 'config'} written with torch.save to out_dir/ckpt.pt; the init_from == 'resume' branch reloads it

検証バージョンと日付: Git master commit 71c3905 (Verified: 2026-10-30)

選定理由:

Compact historical code reference for the named implementation functions; CS336 spring2025 provides the lead component exercises. Do not infer top-p, atomic persistence or cloud budget enforcement from nanoGPT.

ソース前提知識:

Python, PyTorch, and Day 46-48 Transformer model architecture.

安全フォールバック(オフライン回復性):

Runnable pretraining scripts and step-by-step tensor mechanics are fully self-contained in the curriculum lessons.

比較対象候補リソースと選定評価 (2)
Hugging Face Accelerate / Trainer ↗ compared_alternative [Apache-2.0]

Heavy abstraction layer wrapping distributed training; nanoGPT exposes raw PyTorch loops without framework overhead.

Megatron-LM (NVIDIA) ↗ compared_alternative [BSD-3-Clause]

High-performance enterprise distributed framework; unsuitable for local educational first-principles comprehension.

04 120 分

評価課題: 4言語対応の事前学習再現実験レポートの作成

独立習得チェック(AI 支援なし)

前提条件

第60日アクティビティ1〜3の全習得。

学習目標

訓練パラメータ、達成メトリクス、費用決算、リソース解体完了証跡をまとめた標準的な再現実験技術報告書を4言語で完成させる。

手順

1. 数値を出所から集める:最終ステップと損失は実行ログから、MFU は Day 59 の監視ツールから、総費用は活動 2 の照合から、片付けの証拠はプロバイダ CLI の出力から。
2. 各数値を 1 か所にだけ保存し、その 1 つの記録から各言語のセクションを作り、版の間で食い違えないようにする。
3. 内部の整合性を確かめる:PPL = exp(L_val)、MFU は 0 から 1 の間の割合である。
4. 報告全体を秘密情報と非公開アドレス(IP アドレス、アクセスキー、トークン、秘密鍵ブロック)について走査する。
5. 予算の結果を正直に報告する:活動 2 で上限 $20 に不合格なら、すべての版がそう書き、原因を示す。
6. 片付けの承認は証拠があるときだけにする:インスタンス = 0、ボリューム = 0、日付付き。

時間配分(120 分):読解 15 + 演習 75 + 確認 30。 読解:CS336 の報告に関するノートと活動 1-3 の記録。演習:報告を埋めてチェックを実行する。確認:すべての assert が通る習熟実行と、各版の読み直し。

演習と予測記録

四言語版の再現レポートのテンプレートを完成させてください。すべての数値指標が実際の実験ログと一致していること、および解体チェックリストに承認が付いていることを検証してください。

独立習得基準

客観的証跡と厳密な費用対比を含む4言語再現レポートを完成できる。

公式ソースリソースと権利証跡

linking MIT

CS336 Assignment 1: Basics (Spring 2025 tagged release)

著者・提供機関: Stanford University CS336 Staff | オリジナル出所URL ↗

該当セクション・タイムスタンプ: README setup; tests/adapters.py; tests/test_optimizer.py; tests/test_nn_utils.py; tests/test_serialization.py

検証バージョンと日付: spring2025 tag; README, tests and MIT LICENSE checked 2026-11-01

選定理由:

Lead assignment-driven source for pretraining component practice and tests. nanoGPT remains a compact historical code-reading companion, not the current recommended training curriculum.

ソース前提知識:

Fluent Python, PyTorch, and linear algebra

安全フォールバック(オフライン回復性):

Local self-contained pretraining scripts run on standard local CPUs or budget GPUs without Stanford cluster dependency.

比較対象候補リソースと選定評価 (2)
Karpathy nanoGPT ↗ compared_alternative [MIT]

Simpler code layout, useful complementary reference for minimal PyTorch Transformer.

Hugging Face Transformers Course ↗ compared_alternative [Apache-2.0]

High-level API focus rather than building from raw tensor fundamentals.

linking Apache-2.0

Safetensors: Simple, Safe and Fast Tensor Storage

著者・提供機関: Nicolas Patry, Hugging Face Team | オリジナル出所URL ↗

該当セクション・タイムスタンプ: README 'Format' (8-byte header size, JSON header, tensor byte buffer)

検証バージョンと日付: Safetensors 0.4.x / GitHub (Verified: 2026-10-30)

選定理由:

Widely adopted format for secure model checkpoint export, preventing arbitrary code execution vulnerability inherent to Python pickle.

ソース前提知識:

Binary serialization, memory mapping (mmap), and tensor state dictionaries.

安全フォールバック(オフライン回復性):

Zero-copy tensor slicing and header dictionary parsing are demonstrated in pure Python.

比較対象候補リソースと選定評価 (2)
Python pickle module documentation ↗ compared_alternative [PSF License]

Default PyTorch serialization; Safetensors replaces pickle to eliminate arbitrary code execution security hazards.

ONNX Model Format Specification ↗ compared_alternative [Apache 2.0]

Full computational graph interchange format; Safetensors focuses strictly on zero-overhead raw weight storage.