Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
OLMo-Twin — OLMo 2 に対するメンバーシップ推論攻撃の制御された研究のための再現コードであり、文書挿入、中間トレーニング、事後トレーニング、スコアリング、分析を網羅しています。 | Kitploit
ツール/GitHubGitHub/ali-bana/olmo-twin
データ流出プライバシー機械学習論文と研究AIセキュリティ
GitHubali-bana/olmo-twin

OLMo-Twin

OLMo 2 に対するメンバーシップ推論攻撃の制御された研究のための再現コードであり、文書挿入、中間トレーニング、事後トレーニング、スコアリング、分析を網羅しています。

リポジトリを見る
708日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

OLMo-Twin

このリポジトリには、以下の論文のコードが含まれています。

From Training Exposure to Membership Evidence: A Controlled Study of OLMo 2
Ali Banaei, Muhammad Shahab Shahzad, Gerald Q. Maguire Jr., Marco Chiesa, Dejan Kostić
KTH Royal Institute of Technology. arXiv preprint (to appear).

私たちは、OLMo 2 1B の公式な 500 億トークン中間トレーニング段階を再実行しました。この際、マッチしたペアからランダムに選んだ一連の文書をトレーニングストリームに挿入しました。同じ段階における AI2 の公開済み実行が対照群として機能します。2 つの実行は、文書を挿入した位置を除いて、同じトレーニングデータを同じ順序で読み込みました。その後、両方のモデルに AI2 のポストトレーニングレシピを適用しました。すべての文書は各段階で両方のモデルによってスコアリングされたため、1 つの文書に対するトレーニングがモデルをどれだけ変化させるか、そしてその変化のうちどれだけをメンバーシップ推論攻撃が検出できるかを測定できます。

問い

メンバーシップ推論とは、ある文書がモデルのトレーニングデータに含まれていたかどうかを問うものです。これは著作権やデータの来歴、トレーニングデータの透明性、ベンチマークの汚染にとって重要です。言語モデルに対するメンバーシップ推論攻撃の評価のほとんどは、メンバーと非メンバーを事後的に収集します。たとえば、トレーニングのカットオフより前に公開された文書と後に公開された文書などです。すると 2 つのグループは、メンバーシップだけでなく、トピック、スタイル、日付においても異なります。攻撃はこの分布のずれを検出することで成功し得ます。攻撃が失敗したとしても、それはトレーニングが痕跡を残さなかったことを示すものではありません。

これらの説明を切り分けるには、メンバーシップが既知であり、あらゆる文書の属性から独立して割り当てられ、トレーニングの残りの部分を変えないような設定が必要です。本論文は次のように問います。実際の文書が確立されたトレーニングレシピに 1 回含められたとき、モデルはどれだけ変化するのか、そしてその変化のうちどれだけを既存の攻撃が利用できるのか。

設計

                    AI2's released stage-1 checkpoint (4T tokens)
                                       |
            +--------------------------+---------------------------+
            |                                                      |
  AI2's released seed-42 run                     our re-run of the same stage:
  of the 50B-token stage                         same start, data and order;
  (23,852 updates)                               24,081 of 12,212,224 chunks replaced
            |                                    by copies of inserted documents
            v                                                      v
         control                                             treated model
            |                                                      |
            v                                                      v
   SFT -> DPO -> RLVR stage 1 -> RLVR stage 2  (same data, order and seeds for both)
  • 公式の学習ステージの再実行。 OLMo 2 1B は2つのステージで学習される。約4兆トークンの事前学習、続いて500億トークンの中間学習ステージである。AI2は中間学習が始まる時点のチェックポイントを、そのオプティマイザ状態を含めて公開した。AI2はまた、中間学習データ、その設定、および3つのデータ順序シードに対する完全な中間学習実行も公開した。我々は公開されたチェックポイントから開始し、AI2の設定と未改変のOLMoトレーナーを用いてこのステージを再実行した。我々はseed-42のデータ順序を正確に再構築した。
  • マッチングされたペアとコイントス。 我々は7,814組の文書ペアを構築した。ペアの2つの文書は同じソースと同じコホートに由来し、長さと難易度(学習前の開始チェックポイント下でのbits per byte)でマッチングされている。各ペアについて、コイントスにより一方の文書を挿入用に選び、もう一方は除外した。挿入された文書のコピーは、ステージ全体に分散した計画された位置で学習チャンク全体を置き換える。12,414個のコピーが12,212,224個のチャンク位置のうち24,081個(0.197%)を置き換え、挿入されたテキストは合計6,730万トークン(ストリームの0.135%)に達する。その他のすべての位置にはAI2のチャンクが入る。
  • 対照としての公開実行。 AI2が公開したseed-42の実行は、その他のすべての位置で同じチャンクを同じ順序で見ているため、反事実として機能する。論文ではこれをツインと呼ぶ。2つの実行は実行設定(GPU数、アテンションおよびシャーディングカーネル)が異なるため、ビット単位で同一ではない。AI2のseed-42069の実行(同じレシピを異なるデータ順序で実行したもの)は再学習された参照として機能する。ステージ開始時点の公開チェックポイントは、より弱い参照として機能する。
  • 未見であることを検証済みの文書。 ほとんどの文書は、モデルのデータカットオフ後に出現したarXiv論文、Wikipediaページ、StackExchange投稿、または学習データ内のスナップショットに欠けているWikipediaページである。13のコホートは、ソース、長さ、コピー数(最大32)、コピーのタイミング、テキスト形式(LaTeX由来かPDF由来か)を変化させる。学習データに含まれるWikipediaページの編集版は再露出を測定し、合成テキストはさまざまなサプライザルにわたる。未見であることを意図したコホートの候補は、公開された事前学習および中間学習コーパスの全13コンポーネント(8.3 TiB)に対して網羅的に検索された。この検索は40語以上のすべての逐語的な重複を検出し、そのような重複を持つ候補は除外された。検索の最後の部分はペアが形成された後に完了した。それはそのような重複を持つさらに156の候補を発見した。それらは削除され、そのペアは学習前に補充された。
  • ポストトレーニング。 処置モデルと対照モデルの両方が、OLMo 2 1B向けのAI2のポストトレーニングレシピ(教師ありファインチューニング(SFT)、直接選好最適化(DPO)、および検証可能な報酬を用いた強化学習(RLVR)の2ステージ)に通された。両モデルは同じデータ、順序、シードを得た。
  • 測定。 22,681個の評価文書(すべてのペアの両方の文書、および一度も挿入されなかった7,053個の文書)は、以下に基づいてトークンごとにスコアリングされる。
    • 処置モデル、対照、再学習された参照、および開始チェックポイント。
    • 3つの中間学習実行それぞれが1,000更新ごとに保存した24個のチェックポイント。
    • 両アームのすべてのポストトレーニングステージのモデル。

主な発見

別段の記載がない限り、以下の数値は、未見であることを検証済みで一度だけ挿入された4,832組の文書ペアについて、対照に対して測定したものである。論文では信頼区間とさらなる注意事項が示されている。

  • 1回の露出は、小さく一貫した痕跡を残す。 各文書について、そのゲインとは、対照モデルから処理済みモデルへの平均トークンあたり対数尤度の変化量である。平均して、挿入された文書はそのホールドアウトされたパートナーよりも0.0221 nats/token多くゲインする。挿入された文書の方がゲインが大きいのは、ペアの85.4%である。
  • その痕跡が単一の文書を特定することはまれである。 対照を基準とすると、参照比はAUC 0.767に達する。ドメインをまたいだ単一の閾値では、1%の偽陽性率でメンバーの3.8%を検出する。各文書の比をそのトークンレベルのノイズで標準化すると、これは8.8%に上昇する。ドメインごとに個別に設定した閾値では、両方の率が16.5%と31.4%に上昇するが、これには同じドメインの非メンバーが必要である。
  • プールされた証拠はコレクションに対する学習を検出する。 対照を基準とすると、13組のマッチしたペアに対するペア検定は、5%水準で推定80%の検出力を持つ。この検定にはすべてのメンバーに対してマッチした非メンバーが必要であるため、これは任意のコレクションレベルの監査の性能ではない。
  • 再学習した参照は対照とほぼ同等であり、参照不要の攻撃はほぼ偶然の水準に近い。 参照として、AI2のseed-42069実行は、偶然に対する対照のAUC優位性の92%を回復し、同じ検出力には14組のペアを必要とする。公開された開始チェックポイントでは87組のペアを必要とする。難易度をマッチさせた非メンバーに対しては、参照不要の攻撃はドメインをまたいでプールした場合、偶然から0.07 AUC以内にとどまる。
  • 挿入されなかった文書も動く。 一度も挿入されなかったarXiv論文は0.0421 nats/tokenゲインし、これは挿入されたarXiv論文のペア内効果(0.0232)よりも大きい。したがって、マッチした非メンバーを伴わない比較は、ドメイン全体のレベルでのシフトに支配される可能性がある。
  • 反復、忘却、ポストトレーニング。 効果はコピー数に対してほぼ線形に増大し(フィットした指数1.00、最大32コピー)、ほとんどのメンバーは4~8コピーで1%の偽陽性率において検出可能になる。最初の4,000更新で挿入された文書は、ミッドトレーニング終了時に測定されたピーク効果の最大21%を保持する。完全なポストトレーニングレシピの後、公開されたOLMo 2 1B Instructに対応するチェックポイントでは、ペア内効果の89%と、偶然に対するAUC優位性の74%が残る。

これらの結果は、1つの1Bパラメータモデル、トークンの0.135%が置き換えられた1つの中間トレーニング段階、および我々が評価した攻撃統計に関するものである。参照比は分析前に指定された。その他の分析は後から追加されたものであり、探索的である。

リポジトリのレイアウト

OLMo-Twin/
├── olmo_twin/        small shared package; paths.py resolves the data root
├── collection/       candidate documents and their search against the OLMo 2 training data
├── design/           matched pairs, coin flips, copy positions: the frozen design
├── training/
│   ├── midtrain/     AI2's inputs, the training stream with the inserted documents, the launcher
│   ├── checks/       checks of the finished run (data order, inserted copies, configuration)
│   └── posttrain/    SFT, DPO and RLVR with AI2's open-instruct, for both models
├── scoring/          per-token log-probabilities under every model and checkpoint
├── analysis/         membership statistics, attacks, trajectories, post-training analysis
├── figures/          the paper's tables, numbers and figures
├── env/              software environments (requirements files, Dockerfiles)
└── docs/             reproduction guide and data documentation

各ディレクトリには、そのステップを詳しく説明する README があります。 docs/REPRODUCING.md は、各ステップを順番に並べ、それぞれの 入力と出力を示しています。docs/data.md はデータ レイアウト、予定されているデータ公開、およびライセンスについて説明しています。 docs/paper_outputs.md は、論文の各図表を それを生成するコマンドに対応付けています。

はじめに

インストール

分析、図の生成、およびチェックは CPU 上で実行されます。 env/analysis/requirements.txt に固定されたバージョンには、Python 3.12 以降が必要です。

git clone https://github.com/ali-bana/OLMo-Twin.git
cd OLMo-Twin
python3 -m venv .venv && . .venv/bin/activate
pip install -r env/analysis/requirements.txt
pip install -e .

リポジトリをチェックアウトとして使用します。何もインストールせずにスクリプトを実行することも、パッケージを編集可能モード(pip install -e .)でインストールすることもできます。通常の pip install . はサポートされていません。これは、パッケージが自身の場所からリポジトリのルート、ひいてはデフォルトのデータルートを導出するためです。文書コレクション、トレーニング実行、スコアリングは別の環境を使用します。env/README.md にそれらが記載されており、GPU イメージ用の Dockerfile も含まれています。

データの保存場所

パスはハードコードされていません。すべてのスクリプトは、以下の順序で解決される単一のデータルートの下で入力と出力を見つけます。

  1. スクリプト自身のコマンドラインオプション(例えば --out)が存在する場合、それら;
  2. 環境変数 OLMO_TWIN_DATA;
  3. リポジトリ内の data/(git により無視される。シンボリックリンクの場合もあります)。
export OLMO_TWIN_DATA=/path/to/olmo-twin-data
python -m olmo_twin.paths              # prints the resolved layout and which directories exist

データルートは固定レイアウトを持ちます。bundle/ は凍結された設計用、analysis/ は分析テーブル用、run/ はスコアとチェックポイント用、assets/ は AI2 の公開入力用などです。シェルスクリプトは eval "$(python3 -m olmo_twin.paths --shell)" から(リポジトリルートで実行するか、pip install -e . の後に実行)、同じパスを OLMO_TWIN_<NAME> 変数として取得します。docs/data.md には各ディレクトリ、それを書き込むステップ、それを読み込むステップが一覧されています。

論文のテーブルと図の再生成

データリリース(利用可能になった時点)の分析テーブルとスコアをデータルートに置いた状態で、以下のいずれかのコマンドで論文のテーブル、マクロ、図を再生成できます:

ツールをダウンロード