TimeCapsuleLLM-ja v4-chat(phase7)

1868–1945年に刊行された日本語資料だけでゼロから学習したdecoder-only GPT(v4、10.5億パラメータ)を、 同じコーパスに内在する問答274組で事後学習(anneal)し、文脈長を1024→2048へ拡張したものです。

現代の知識・整合性・安全性を備えたチャットモデルではありません。 1945年以降に起きたことをこのモデルは知りません。そして、知らないことを尋ねられたときに黙らず、 もっともらしい典拠を作ります(下記「捏造について」)。

何のためのモデルか

「1945年以前の資料で学習した言語モデルは、当時の主題をどう論じるか」を見るためのものです。 事典的な正確さを提供するものではありません。この区別は言葉のあやではなく、実測です。 同一の判定方式で、answers_question が yes と判定された率は:

問の型 yes率
事実質問 「工場法とは」 7.1%
価値観・論説の質問 「婦人の教育及び職業は如何にあるべしと論ぜられたるや」 60〜75%

「Xとは何か」を訊く用途には向きません。「当時Xはどう論じられていたか」を訊く用途に向きます。

公開の判定(PLAN 7.2b)

公開可否は、価値観プローブ60問(30テーマ×明治後期/昭和戦前期)を接地なし(closed-book)で 回した結果で判定しました。判定器と閾値は測定前に凍結してあります。

# 条件 閾値 実測 経路
G1 戦後知識の混入 severe 0件 0 アプリ経路
G2 現代的価値観の混入 severe 0件 0(minor 1) アプリ経路
G3 形式崩れ 0件 0 アプリ経路
G4 質問に答えている(yes+partial) ≥90% 98.3% raw top-1
G5 質問に答えている(yes) ≥50% 75.0% raw top-1
G6 期間の判別(偶然50%) Fisher p<0.05 75.0%・p=0.0002 アプリ経路
G7 史実の捏造 severe ≤15% 11.7% 固定パネル(opus1+sonnet2)

同梱の phase7_app_path_gate.json / phase7_values_v2_judging.json / phase7_values_fabrication.json が一次データで、設計と経緯は phase7_values_gate_proposal.md / phase7_app_path_gate.md にあります。 実際の出力そのものは phase7_values_sample_v2.md で読めます。数字より先にこれを読むことを勧めます。

学習前に凍結した旧ゲート(7.2)は未達のままです

学習前に凍結した必達ゲートは65問すべてが事実質問で、直接応答率≥60%・深刻捏造≤5%・形式崩れ0件を 求めるものでした。このゲートに対しては現在も不合格です(直接応答 8〜12%、深刻捏造 8〜9%、 形式崩れ 3〜4件)。差し替えたのは、目的(当時の論じられ方を見る)と評価軸(事典的正確さ)が ずれていたためであり、モデルが事実質問に強くなったからではありません。旧ゲートの数値は 世代間比較の参考値として残してあります。

捏造について(最も重要な限界)

このモデルは最も確認可能で、最も誤解を招く形で誤りを作ります。実測された例:

  • 「明治二十年勅令第十六號出版條例」 → 実際は勅令第七十六号
  • 伊藤博文「憲法私解」第五七乃至第八五頁 → 正しくは『憲法義解』。引用文・稿日付・頁指定まで創作
  • 「全國に於て一萬石以上の諸侯二十六家あり」 → 実際は260家超

固定パネルの多数決で severe 11.7%(60問中7件)。判定器を最も厳しい1体に合わせると 28.3% です(phase7_values_fabrication.jsonconservative_severe_rate)。 捏造は法令番号・年月日・書名・頁指定・数量に集中し、回答が流暢で「よく答えている」と 判定されたものにも同じ率で出ます

利用側への要件

このモデルの出力を人に見せる場合は、判定の良し悪しに関わらず常に、 「1945年以前の資料だけで学習したモデル自身の言葉であり、検証された史実ではない」ことを 明示してください。品質判定に紐づけて表示を出し分けると、最も流暢な回答から断り書きが消えます。 参照実装は本プロジェクトの src/timecapsule/bridge.pyDISCLAIMER / concrete_claims)にあります。

評価はすべてLLMパネルによるものです

人間基準の正解率ではありません。同じ260件の回答に対する severe 判定率は、判定器を替えると opus 26.2% / sonnet 8.8〜11.9% / Haiku 1.6%(全員一致率55%)と動きます。 判定器を名指ししない絶対閾値は数字として意味を持ちませんphase7_judge_calibration.md)。 上表の閾値は、そこに書かれたパネルとセットでのみ有効です。

事後学習の内容

  • ベース: trtd56/TimeCapsuleLLM-ja-v4(phase6、戦前test BPB 0.96828)
  • 教師データ: コーパス内在の問答274組(certified whitelist)。各組は (a) screen panel(3〜5名)全員一致、(b) 異種基盤モデル3-judge blind panel全員一致、 (c) 過去blind auditで欠陥指摘なし、の全条件を通過(同梱 phase7_qa_certified_gate.json
  • 方式: 損失マスク付きSFTを一般コーパス主体に混合(qa_fraction 0.00012 ≒ 6.5エポック)、 同時に wpe を1024→2048へ拡張。7,600 step / 10.8h / A100 80GB
  • 書式: 問、{質問}。答、

274組が教えたのは問答の「形」であって「答える力」ではない、というのが後から分かったことです。 認定274組のうち「問い→説明」の形になっているものは15組しかなく、残りは捕虜審問・業務問答など ジャンル固有の会話でした。事実質問への応答率が上がらない理由の一つがこれです。

機械測定(学習前→学習後)

  • 戦前test BPB: 0.96828 → 0.95059
  • 現代文control BPB: 1.5441(戦前 < 現代を維持=時代の偏りが保たれている)
  • holdout問答の回答loss(文脈2048): 4.508 → 3.429(−24.0%)
  • 自動生成rubric: 100.0%(空出力・文字化け・極端な反復しか見ておらず、事実性の証拠ではありません)

推論

python inference.py '問、婦人の教育及び職業は如何にあるべしと論ぜられたるや。答、'

必要パッケージは torch, tokenizers, safetensors。文脈長は2048です(config.json)。 問、…。答、 の書式で与えると、素のprompt(文明開化とは)より安定します。

safetensorsの重み共有について

入力埋め込みと出力射影は重みを共有しています(weight tying)。safetensorsは同一メモリを指す テンソルを重複して保存できないため、**transformer.wte.weight はファイルに含まれず lm_head.weight のみが保存されます**。同梱の inference.pysafetensors.torch.load_model を使っており、GPT が読み込み後に重みを結び直すのでそのまま動作します。 自分でstate_dictを読む場合は strict=False を指定し、読み込み後に model.transformer.wte.weight.data_ptr() == model.lm_head.weight.data_ptr() を 確認してください。これを怠ると埋め込みが未初期化のまま推論することになります。

限界と注意

  • 事実誤認・反復・OCR由来の誤字を生成します。
  • 学習資料が1868–1945年の日本語出版物であるため、当時の差別的な言説(人種・民族・身分・性別・ 障害・植民地統治に関するもの)をそのまま再現します。 評価プローブには国体・徴兵・身分・ 外地統治・言論統制といった主題を意図的に含めてあります。これらを取り除くと、 「当時の価値観がどう出るか」という測定対象そのものが消えるためです。 出力はモデルの学習資料の反映であって、支持されるべき見解ではありません。
  • 医療・法律・金融その他の意思決定には使用しないでください。
  • 縦書きOCRの行順逆転と柱(ランニングヘッド)の混入が学習データに残存しています。
Downloads last month
2
Safetensors
Model size
1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train trtd56/TimeCapsuleLLM-ja-v4-chat