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