| --- |
| 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由来の誤字、歴史的な差別表現を生成し得ます。医療・法律・金融その他の意思決定には使用しないでください。 |
| |