Sizhe Chen*、Arman Zharmagambetov、David Wagner、Chuan Guo*(* は同等の技術的貢献を示す)
🔥 Meta-SecAlignモデルは、このコードベースが非商用利用のみにライセンスされているにもかかわらず、現在Llamaコミュニティライセンスの下で商用利用がライセンスされています。
Meta-SecAlign-70Bは、プロンプトインジェクション防御を内蔵した初の完全オープンソースの商用グレードLLMであり、エージェント(ツール/ウェブ)セキュリティにおいてgpt-5やgemini-3-proに匹敵します。当社の最先端のトレーニングレシピは、これまでで最も包括的な評価に基づいても、各種ユーティリティスコアに目立った低下を引き起こしません。
git clone --recurse-submodules https://github.com/facebookresearch/Meta_SecAlign.git
cd Meta_SecAlign
uv venv metasecalign --python 3.13
source metasecalign/bin/activate
uv pip install -r requirements.txt
uv pip install torchtune==0.6.0 --index-url https://download.pytorch.org/whl/cu126
python setup.py
data/openai_configs.yamlでOpenAIキー(ユーティリティ評価に使用)を設定します。このファイルにはAzureOpenAI経由でOpenAI APIにアクセスする例が含まれています。より詳細な例はこちらで入手できます。data/gemini_configs.yamlでGeminiキーを設定します。demo.pyには、当社の2つのMeta-SecAlignモデルを使用するための最小限のコードが含まれています。新しいサンプルやプロンプトインジェクションを自由に試したり、ご自身のコードベースでモデルをテストしたりしてください:python demo.py
run_tests.pyには、論文で報告された評価結果を再現するためのコマンドが含まれています。これはtests.py、test_lm_eval.py、test_agentdojo.py、test_injecagent.pyを順番に呼び出します。結果は[model_path]/summary.tsvに記録されます。python run_tests.py -m [model_path] --lora_alpha [lora_alpha]
model_pathはテスト対象モデルのパスです。以下をサポートしています:
meta-llama/Llama-3.1-8B-Instruct_SecAlign(setup.pyによってダウンロードされるMeta-SecAlign-8B): 最先端のプロンプトインジェクション防御を備えた初の完全オープンモデルmeta-llama/Llama-3.3-70B-Instruct_SecAlign(setup.pyによってダウンロードされるMeta-SecAlign-70B): 最先端のプロンプトインジェクション防御を備えた初の完全オープンモデルmeta-llama/Llama-3.1-8B-Instructmeta-llama/Llama-3.3-70B-Instructgpt-4o-mini: 命令階層プロンプトインジェクション防御を備えた初の商用モデル。gpt-4o: 後継のフラッグシップモデルで、同様にプロンプトインジェクション防御を備えています。gpt-5: 当社の評価において最新かつ最も安全な商用モデル。--gpt5_reasoning_effortを指定することで推論レベルを変更できます(デフォルトはhigh)。gemini-2.0-flash: プロンプトインジェクション防御を主張するGoogleの商用モデルgemini-2.5-flash: プロンプトインジェクション防御を主張するGoogleの商用モデルgemini-2.0-pro: Googleのフラッグシップモデル(プロンプトインジェクション防御を含むとは主張されていない)gemini-2.5-pro: Googleのフラッグシップモデル(プロンプトインジェクション防御を含むとは主張されていない)gemini-3-pro-preview: 強力なプロンプトインジェクション防御を備えた最先端のGoogleモデルlora_alphaはMeta-SecAlignモデルのテスト時ハイパーパラメータです。デフォルトは8で、トレーニングされた通りの正確なMeta-SecAlignモデルを使用します。0から8の間のlora_alpha値は、防御なしモデルと当社の防御済みモデルの間を補間し、柔軟なユーティリティとセキュリティのトレードオフを可能にします。lora_alphaを8を超えて外挿することも可能ですが、テストされていません。meta-llama/Meta-Llama-3-8B-Instructからの参照応答と比較するためにAlpacaEval2プロンプティングを使用します)secalign_plus_plus.pyは、当社のトレーニングレシピSecAlign++を使用して、meta-llama/Llama-3.1-8B-Instruct(デフォルト)またはmeta-llama/Llama-3.3-70B-Instruct(ファインチューニングするには該当行のコメントを解除)を堅牢なLoRAモデルに防御的ファインチューニングするためのコマンドを提供します。python secalign_plus_plus.py
SecAlignから大幅に改善されたMeta-SecAlignのコードの大部分は、CC-BY-NCの下でライセンスされています。プロジェクトの一部は別個のライセンス条件の下で利用可能です: AgentDojo、TaskTracker、およびlm-evaluation-harnessはMITの下でライセンスされています。他のリポジトリからのコードには、AgentDojo(agentdojo)、TaskTracker(setup.py)、およびlm_eval_harness(lm_eval_config)が含まれます。このソフトウェアおよび/またはデータは、2025年にBAIR Open Research Commonsリポジトリに寄託されました。