locuslab/open-unlearning

[NeurIPS 2025] The one-stop repository for LLM unlearning

📚 OpenUnlearning とは?

OpenUnlearning は、LLM アンラーニング のベンチマーク、手法、データセット、評価指標を単一の拡張可能なコードベースにまとめたオープンソースの Python フレームワークです。研究者やエンジニアは、大規模言語モデル(LLM)に対して「忘却」実験(例:モデルから特定の知識を削除する)を実行し、共通のツールセットで多くのアプローチを比較できます。


🎯 コアアイデア

アンラーニング研究は断片的でした。各論文が独自のコード、データ、評価スクリプトを提供することがよくあります。OpenUnlearning はこれらの要素を統合し、次のことを可能にします。

  1. ベンチマークを選択 – TOFU、MUSE、WMDP、DUET。
  2. モデルファミリーを選択 – Llama‑3.x、Llama‑2、Phi‑3.5、Qwen2.5、Gemma、Zephyr など。
  3. アンラーニング手法を選択 – GradAscent、GradDiff、NPO、SimNPO、DPO、RMU、UNDIAL、AltPO、SatImp、WGA、CE‑U、PDU。
  4. 評価指標スイートを実行 – 逐語確率/ROUGE、知識 QA ROUGE、モデル有用性、忘却品質、真実比率、抽出強度、正確な記憶、6 つのメンバーシップ推論攻撃、さらに完全な lm‑evaluation‑harness セット(MMLU、GSM8K など)。

これらのコンポーネントはすべて Hydra で設定可能であり、新しい手法、データセット、指標を追加して、既存のベースラインリーダーボードとすぐに比較できます。


🛠️ 主な機能(README に記載)

カテゴリ 提供内容
ベンチマーク TOFU、MUSE、WMDP、DUET – それぞれ複数のデータ分割と保持/忘却セット。
アンラーニング手法 12 以上のアルゴリズム(勾配ベース、表現エンジニアリング、ポリシーベースなど)。
評価指標 記憶、有用性、プライバシー攻撃をカバーする 10 以上の指標。lm‑evaluation‑harness との統合。
データセット MUSE‑News(BBC)、MUSE‑Books(ハリー・ポッター)、TOFU 分割、WMDP‑Bio/Cyber、DUET Wikidata 事実。
モデルファミリー Llama‑3.2/3.1/2、Qwen2.5、Gemma、Phi‑3.5/1.5、Zephyr、および Hugging Face 経由のその他。
拡張性 Hydra ベースの設定システム。新しい手法、ベンチマーク、指標を追加するための文書化されたガイド。
再現性 ベースライン実行用スクリプト、コミュニティリーダーボード、完全な環境を含む Docker イメージ。
リソース Hugging Face でホストされている事前学習済みの「ターゲット」および「保持」モデル。arXiv のテクニカルレポート(2506.12618)。

🚀 クイックスタート(README より)

# 1️⃣ 環境を作成
conda create -n unlearning python=3.11 && conda activate unlearning

# 2️⃣ パッケージをインストール(lm‑eval harness の追加機能を含む)
pip install ".[lm-eval]"
# flash‑attention をインストール(オプションですがトレーニングを高速化)
pip install --no-build-isolation flash-attn==2.8.3
#   または README に示されているビルド済み wheel リンクを使用

# 3️⃣ 評価ログを取得(保持モデルと比較する指標に必要)
python setup_data.py --eval

# 4️⃣ アンラーニング実験を実行(例:TOFU forget10 で GradAscent)
python src/train.py \
  --config-name=unlearn.yaml \
  experiment=unlearn/tofu/default \
  forget_split=forget10 retain_split=retain90 \
  trainer=GradAscent task_name=SAMPLE_UNLEARN

# 5️⃣ 結果のモデルを評価
model=Llama-3.2-1B-Instruct
python src/eval.py \
  --config-name=eval.yaml \
  experiment=eval/tofu/default \
  model=${model} \
  model.model_args.pretrained_model_name_or_path=open-unlearning/tofu_${model}_full \
  retain_logs_path=saves/eval/tofu_${model}_retain90/TOFU_EVAL.json \
  task_name=SAMPLE_EVAL

ワンクリックセットアップ用の Docker イメージ(filyp/open-unlearning)も提供されています。


📊 典型的な使用例

  • 研究 – 複数のベンチマークで新しいアンラーニングアルゴリズムを 12 以上のベースラインと比較。
  • モデル監査 – デプロイされた LLM からプライベートまたは著作権情報をどの程度削除できるかを測定。
  • 教育 – 既製のスクリプトとリーダーボードを使用して、教室でアンラーニングの概念をデモンストレーション。
  • 製品開発 – データ削除リクエストに準拠する必要があるパイプラインにフレームワークを統合。

🤝 貢献とコミュニティ

このリポジトリは貢献を奨励しています:

  • 文書化された contributing.md ガイドを通じて、新しいアンラーニング手法、ベンチマーク、データセット、指標を追加。
  • コミュニティリーダーボード(community/leaderboard.md)に結果を提出。
  • GitHub のイシュートラッカーで問題を報告したり質問したりする。

📜 ライセンス

OpenUnlearning は MIT ライセンス の下でリリースされています。


📚 参考文献

  • テクニカルレポート(arXiv 2506.12618)– 詳細な設計と実験結果。
  • 背景情報のための元の TOFU および MUSE ベンチマークリポジトリへのリンク。
  • docs/ フォルダには、Hydra 設定、実験管理、評価の詳細に関するより深いガイドが含まれています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト