File size: 2,165 Bytes
6f645f3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | ---
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由来の誤字、歴史的な差別表現を生成し得ます。医療・法律・金融その他の意思決定には使用しないでください。
|