--- license: apache-2.0 language: - ja tags: - historical - text-generation datasets: - trtd56/TimeCapsuleLLM-ja-corpus-v4 --- # TimeCapsuleLLM-ja phase6 1868–1945年に限定した日本語コーパスからゼロから学習したdecoder-only GPTです。現代の知識や安全性を備えたチャットモデルではありません。 ## 学習データと評価 対応データセットは `trtd56/TimeCapsuleLLM-ja-corpus-v4` です。青空文庫の時代・権利フィルタ通過作品と、1945年以前刊行かつPDMであるNDL OCR品質通過資料を使用しました。test作品はフェーズ間で固定しています。 - Parameters: 1,046,066,688 - Processed tokens: 11,875,123,200 - Training iterations: 45,300 - 戦前test BPB: 0.9683 - 現代文control BPB: 1.6044 - 自動生成rubric: 100.0% 詳細な設定、checksum、固定プローブ出力は同梱の `training_config.yaml`、`artifact_manifest.json`、`evaluation.json` を参照してください。 ## 推論 `python inference.py '文明開化とは'` を実行してください。必要パッケージは `torch`, `tokenizers`, `safetensors` です。 ### safetensorsの重み共有について 入力埋め込みと出力射影は重みを共有しています(weight tying)。safetensorsは同一メモリを指す テンソルを重複して保存できないため、**`transformer.wte.weight` はファイルに含まれず `lm_head.weight` のみが保存されます**。同梱の `inference.py` は `safetensors.torch.load_model` を使っており、`GPT` が読み込み後に重みを結び直すのでそのまま動作します。 自分でstate_dictを読む場合は `strict=False` を指定し、読み込み後に `model.transformer.wte.weight.data_ptr() == model.lm_head.weight.data_ptr()` を 確認してください。これを怠ると埋め込みが未初期化のまま推論することになります。 ## 限界 小型モデルであり、事実誤認、反復、OCR由来の誤字、歴史的な差別表現を生成し得ます。医療・法律・金融その他の意思決定には使用しないでください。