AI・機械学習
上級

MEMIT(大規模知識編集)(メミット ダイキボチシキヘンシュウ)

ROMEを拡張し、LLMに数千〜数万件の事実を一括で書き込める大規模知識編集フレームワーク。複数のFF層に分散してRank-1更新を適用することでスケールを実現する。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
知識編集
LLM
大規模編集
MEMIT
FF層

MEMIT(大規模知識編集)

概要

MEMIT(Mass-Editing Memory In a Transformer)は、LLMに数千〜数万件の新しい事実を一括で書き込める大規模知識編集フレームワークだ。Meng et al.(2023)がROMEを拡張して発表し、知識編集研究の実用化を大幅に前進させた。

ROMEとの違い

特性ROMEMEMIT
同時編集件数1件最大10,000件+
更新する層単一FF層複数FF層(分散)
処理時間(1000件)不可(逐次のみ)数十秒
汎化性中高

多層分散更新の仕組み

MEMITの核心は「更新を複数のFF層に分散する」戦略だ:

  1. 対象層の選択: モデルの中間〜後期FF層(例:GPT-Jなら第3〜8層)を選択
  2. 更新量の分配: 各層への更新量を均等または重要度加重で分配
  3. 一括Rank-1更新: 各層で ΔW_i = C_i R_i^T (R_i R_i^T)^{-1} を適用
編集対象事実セット E = {(s1,r,o1), (s2,r,o2), ..., (sN,r,oN)}
      ↓
各事実のKey(K)とValue(V*)を計算
      ↓
複数FF層に更新を分散
W_L1 += ΔW_L1, W_L2 += ΔW_L2, ...
      ↓
副作用最小化

実装例

from memit import MEMITHyperParams, apply_memit_to_model

# 1000件の事実を一括編集
requests = [
    {"prompt": f"The capital of {country} is",
     "subject": country,
     "target_new": {"str": new_capital},
     "target_true": {"str": old_capital}}
    for country, new_capital, old_capital in updates
]

model_edited, _ = apply_memit_to_model(
    model, tok, requests, hparams
)

評価ベンチマーク(COUNTERFACT)

  • Efficacy Score(ES): 編集後に正しい答えを出す割合 → 98.6%
  • Paraphrase Score(PS): 言い換え表現でも正解する割合 → 92.4%
  • Neighborhood Score(NS): 無関係の事実に影響しない割合 → 97.8%

ユースケース

  • モデル知識の更新: 古い情報(2023年以前の事実)を新情報に一括置換
  • ドメイン特化: 医療・法律・特定企業情報を大量注入
  • 誤情報修正: 偽情報や有害な思い込みの大規模訂正

限界

  • 大規模編集ほど副作用(無関係な事実への波及)が増加する
  • 類似した事実を多数編集するとコンフリクトが発生
  • モデルの一般能力(推論・数学)への影響は未解明
この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/7