SERAC(Semi-Parametric Editing with a Retrieval-Augmented Counterfactual Model)(セラック)
SERAC(Semi-Parametric Editing with a Retrieval-Augmented Counterfactual Model)とは、ベースモデルの重みを変更せず、外部メモリに修正知識を格納し推論時にリトリーバーで参照する Memory-Augmented 型の知識編集手法である。編集数に上限がなく局所性が非常に高い。
SERAC(Semi-Parametric Editing with a Retrieval-Augmented Counterfactual Model)とは
SERAC は 2022年に Eric Mitchell ら(Stanford、MEND と同著者)が提案した Memory-Augmented 型の知識編集手法である。ROME や MEMIT がモデルの重みを直接書き換えるのに対し、SERAC は ベースモデルの重みを一切変更せず、編集された知識を外部メモリ(Counterfactual Memory)に格納し、推論時にリトリーバーで該当するかを判定して応答を切り替える。
概要
SERAC のアーキテクチャは3つのコンポーネントで構成される:
- Scope Classifier(スコープ分類器): 入力クエリが編集対象の知識に関連するかを判定するバイナリ分類器
- Counterfactual Model(反事実モデル): 編集された知識に基づく応答を生成する小型モデル
- Explicit Memory(明示メモリ): 編集リクエスト(入力-出力ペア)を保存するデータストア
推論時のフロー:
- ユーザーの入力を Scope Classifier に通す
- 編集対象に該当すると判定された場合 → Counterfactual Model が応答
- 該当しない場合 → ベースモデルがそのまま応答
主な特徴・仕組み
- 重み非破壊: ベースモデルの重みを一切変更しないため、他の知識への影響がゼロ
- 無制限の編集数: メモリ容量の許す限り、理論上無制限の知識を編集可能
- 高い局所性: Scope Classifier の精度に依存するが、適切に学習すれば局所性 0.99+
- モデル非依存: GPT-2, T5, BERT, LLaMA 等、任意のモデルに後付け可能
- 編集の取り消し: メモリからエントリを削除するだけで即座に復元可能
- 推論時オーバーヘッド: Scope Classifier の実行 + メモリ検索で 10-20ms の遅延追加
- Scope Classifier 精度: 適切な学習データで F1 0.95+ を達成
- Counterfactual Model: ベースモデルの 1/10〜1/5 サイズの小型モデルで十分
アーキテクチャ詳細
| コンポーネント | 役割 | モデルサイズ | レイテンシ |
|---|---|---|---|
| Scope Classifier | 編集対象判定 | 125M (DistilBERT) | 3ms |
| Counterfactual Model | 修正応答生成 | 774M (GPT-2 Medium) | 15ms |
| Explicit Memory | 編集知識保存 | N/A (KVストア) | 5ms |
| 合計オーバーヘッド | 約 20ms |
SERAC vs パラメトリック手法の比較
| 指標 | SERAC | ROME | MEMIT | MEND |
|---|---|---|---|---|
| 重みの変更 | なし | あり | あり | あり |
| 局所性 | 0.99+ | 0.953 | 0.961 | 0.872 |
| 編集数上限 | 無制限 | 1件/回 | 10,000件/回 | 1件/回 |
| 推論遅延追加 | +20ms | なし | なし | なし |
| 編集取消し | 即座 | 困難 | 困難 | 困難 |
| メモリ追加 | 必要 | 不要 | 不要 | 不要 |
ユースケースと実用例
1. プロダクション LLM の安全な知識更新
本番環境のモデル重みを一切変更せずに知識を更新できるため、デプロイリスクがゼロ。金融や医療など、モデル変更の承認プロセスが厳格な業界で有効。
2. マルチテナント知識カスタマイズ
テナントごとに異なる Explicit Memory を持たせることで、同一ベースモデルで顧客ごとにカスタマイズされた応答を提供。SaaS 型 LLM サービスに最適。
3. 段階的知識ロールアウト
新しい知識を一部ユーザーの Memory にだけ追加し、品質を確認してから全体展開。A/B テストとの親和性が高い。
4. コンプライアンス対応
特定地域の法規制に応じた知識の出し分け。EU 向けと US 向けで異なる Memory を参照。
課題と限界
- 推論レイテンシの増加: 各クエリで Scope Classifier + メモリ検索が必要で、20ms のオーバーヘッド
- Scope Classifier の学習: 高品質な学習データ(肯定例・否定例)の準備が必要。分布外のクエリで精度が低下
- Counterfactual Model の品質: ベースモデルより小型のため、複雑な推論を含む応答では品質が劣る
- メモリ管理: 編集数が増えるとメモリ検索の遅延が増加。10万件以上で ANN インデックスが必要
よくある質問(FAQ)
Q1: SERAC は RAG と何が違いますか? A: RAG は外部ドキュメントを検索して回答を生成するが、SERAC は「モデルの既存知識を修正する」目的に特化。RAG は知識の追加、SERAC は知識の修正という使い分け。実装面では、SERAC の Scope Classifier がクエリルーティングを担当し、RAG のリトリーバーとは異なる学習目的を持つ。
Q2: メモリに何万件も入れたら遅くならないですか? A: 1,000件程度までは線形探索で実用的(+5ms)。それ以上では FAISS や Qdrant 等の ANN インデックスを使えば 10万件でも +10ms 以内に収まる。100万件規模ではシャーディングが必要。
Q3: ベースモデルを更新(アップグレード)しても使えますか? A: Scope Classifier と Counterfactual Model の再学習が必要になるが、Explicit Memory のデータ自体は再利用可能。モデル更新のたびに 1-2時間の再学習コストが発生する。
まとめ
- SERAC はベースモデルの重みを変更せず、外部メモリで知識を編集する非破壊型手法
- Scope Classifier + Counterfactual Model + Explicit Memory の3コンポーネント構成
- 局所性 0.99+、編集数無制限、即座の編集取り消しが可能
- 推論時 +20ms のオーバーヘッドがトレードオフ
- プロダクション環境やマルチテナント SaaS での安全な知識管理に最適