0010: 私的資料のLLM投入は「学習利用の有無」で判断する
- 日付: 2026-07-10
- 状態: 採用
- 関連: 0008(接地原則)
背景
私的資料(自分史・障害年金書類等)の取扱いは当初 「外部LLMへ投入しない」だったが、執筆支援・抽出も外部LLM(Fable 5、 Codex等)で行っている以上、「外部か否か」は基準として一貫しない。
決定
判断基準を「そのログ・入力が事業者の学習に使われるか」「保持期間」に置く。 「外部LLMだから禁止」ではなく、経路ごとに学習利用ポリシーを確認して判定する。
判定表(確認状況とともに更新する):
経路 学習利用 判定 bge-m3(自前vLLM) なし(ローカル) 無条件可 Fable 5(Claude Code) なし(学習利用トグルをオフに設定済みと本人確認、2026-07-10) 可 Codex(ChatGPT OAuth) なし(Data Controlsで学習利用オフと本人確認、2026-07-10) 可 OpenCode Go(DeepTutor既定LLM) なし(ゼロ保持・学習不使用と事業者が明記。opencode.ai/docs/go Privacy節、2026-07-10原文確認。ホスティングはUS/EU/Singapore) 匿名化済み資料は可(決定3の匿名化ゲートは維持) 匿名化が先、LLMは後。 私的資料は、役割語・仮名化+日付の粗視化を 辞書ベースの機械的置換(LLM不使用)で行い、本人が目視承認した匿名版のみ をパイプラインに投入できる。原本はいかなる経路にも投入しない。
私的資料の研究データ化を正式なスコープとする。 障害年金書類は 法制度×精神医学×生活記録が一枚の様式上で衝突する一次資料であり、 匿名化後に
research/hypothesis_hypergraphで抽出して研究グラフに接続する (単一事例研究・制度の理念と実装の乖離)。agave_project(本人著作の AIガバナンス規範)も同様に一次資料として扱い、研究知見をAgave側へ 還流させる双方向ループとする。
却下した代替案
- 「外部LLM一律禁止」の維持: Fable 5での執筆支援と矛盾し、基準として 機能しない。却下。
- 匿名化をLLMに任せる: 匿名化前の原本がLLMを通過してしまい本末転倒。 機械的置換+人間承認のみとする。
未決定事項
- Fable 5・Codexの学習利用トグルの確認結果の反映(ユーザー確認待ち)。
- OpenCode Goの「ゼロ保持」は事業者の表明であり監査手段はない。表明ベースの 判定であることを認識した上で、匿名化ゲート(決定3)を防御の二重化として 恒久維持する。
- 匿名化置換辞書の管理場所(リポジトリ外、
~/knowledge/personal/配下を想定)。
追記: R2の認証分離(2026-07-13)
personal/(自分史・障害年金・匿名化辞書等、最高機微)を専用バケット personal-archive+専用トークン(rclone remote [r2personal])へ分離した。 従来はpaper-civic-kitバケット(研究資料・翻訳データ等と共有トークン)に 同居しており、機微度の低いデータ(旧translation-ft)を先に分離していたのに 最高機微のpersonal/が未分離という、リスクの向きが逆転した状態だった。 分離テスト済み(personal-archive用トークンはpaper-civic-kitバケットに 403で届かないことを確認)。移行元は空を確認済み。
追記: Bonsai-27Bの判定表追加(2026-07-20)
anonymize-residual-scan系(辞書置換後の残存識別情報スキャン、決定3の副の 安全網)で使うBonsai-27B(自前llama.cpp、ガレリア/RTX3080またはMac mini、 tailnet内のみ)を判定表に追加する。
| 経路 | 学習利用 | 判定 |
|---|---|---|
| Bonsai-27B(自前llama.cpp) | なし(ローカル) | 無条件可 |
bge-m3と同じ「自前・ローカル・学習利用なし」に該当する。加えて、仮に 将来anonymize.py適用後の匿名化済みテキストが大学の学習文脈で使われる としても、対象は本人の過去の経験(自分史)に限られ、他者の識別情報を 含まない——決定3の匿名化ゲート(辞書置換→人間承認)を経ている前提は 崩さない。
追記: 匿名化ゲート通過後のデータはpaper-civic-kit-lawdataへ(2026-07-22)
決定4(私的資料の研究データ化を正式なスコープとする)を、R2 Data Catalog (Iceberg、icd11-cron/law-fulltext-cron/estat-cronが使うpaper-civic-kit-lawdata バケット)へのカタログ化という形で実装する。
分離が要る対象を明確にする(2026-07-13の追記が対象を曖昧にしていたため):
- 原本(自分史・障害年金の生データ):
personal-archiveバケットに置いたまま。paper-civic-kit-lawdata側には絶対に置かない。 - 匿名化置換辞書そのもの(仮名⇔実名の対応表): 最高機微のまま
personal-archiveに留める。辞書が漏れれば匿名化そのものが無効化される ため、成果物とは別次元で保護する。 - 匿名化ゲート(決定3の辞書置換+人間承認+Bonsai-27Bの残存識別情報 スキャン)を通過した最終テキスト: これは分離原則が保護しようとしている 「個人情報」ではなくなっている。
paper-civic-kit-lawdataのR2 Data Catalogへ、他の研究データ(法令・ICD-11・政府統計)と同じ形でカタログ化 してよい。0010の分離原則の目的は「個人情報を混ぜない」ことであり、 ゲートを厳格に通した成果物を永続的に隔離し続けることではない。
運用上の要件: 取り込みは無人cronにしない。ゲート通過(辞書置換→人間の 目視承認→残存識別情報スキャン)を経た記録だけを、都度人間が確認しながら 取り込む。取り込み先の名前空間は他の研究データと区別する (例: paper-civic-kit-lawdataバケット内にpersonal_anonymized.*のような 専用namespaceを切る)。