
LLM à poids ouverts et code d'entraînement/évaluation pour se défendre contre les attaques par injection de prompt, avec des benchmarks pour la sécurité des appels d'outils agentiques et du suivi d'instructions.
Sizhe Chen*, Arman Zharmagambetov, David Wagner, Chuan Guo* (* pour contributions techniques égales)
🔥 Les modèles Meta-SecAlign sont désormais sous licence pour un usage commercial selon les licences de la communauté Llama, bien que cette base de code soit sous licence pour un usage non commercial uniquement.
Meta-SecAlign-70B est le premier LLM open source de qualité commerciale entièrement ouvert avec une défense intégrée contre l'injection de prompt - comparable à gpt-5 et gemini-3-pro en matière de sécurité agentique (outils/web). Notre recette d'entraînement SoTA n'entraîne aucune baisse notable des divers scores d'utilité selon les évaluations les plus complètes à ce jour.
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. Ce fichier contient un exemple d'accès à l'API OpenAI via AzureOpenAI. Un exemple plus détaillé est disponible ici.data/gemini_configs.yaml si vous souhaitez évaluer les modèles Gemini.demo.py contient le code minimal pour utiliser nos deux modèles Meta-SecAlign. N'hésitez pas à essayer de nouveaux échantillons et injections de prompt, ou à tester les modèles sur votre base de code :python demo.py
run_tests.py contient les commandes pour reproduire les résultats d'évaluation rapportés dans notre article. Il invoque séquentiellement tests.py, test_lm_eval.py, test_agentdojo.py et test_injecagent.py. Les résultats seront enregistrés dans [model_path]/summary.tsv.python run_tests.py -m [model_path] --lora_alpha [lora_alpha]
model_path est le chemin vers le modèle testé. Nous prenons en charge :
meta-llama/Llama-3.1-8B-Instruct_SecAlign (Meta-SecAlign-8B téléchargé par setup.py) : le premier modèle entièrement ouvert avec une défense de pointe contre l'injection de promptmeta-llama/Llama-3.3-70B-Instruct_SecAlign (Meta-SecAlign-70B téléchargé par setup.py) : le premier modèle entièrement ouvert avec une défense de pointe contre l'injection de promptmeta-llama/Llama-3.1-8B-Instructmeta-llama/Llama-3.3-70B-Instructgpt-4o-mini : le premier modèle commercial avec une défense contre l'injection de prompt par hiérarchie d'instructions.gpt-4o : le modèle phare suivant, également doté d'une défense contre l'injection de prompt.gpt-5 : le modèle commercial le plus récent et le plus sécurisé de notre évaluation ; modifiez les niveaux de raisonnement en spécifiant --gpt5_reasoning_effort (par défaut high).gemini-2.0-flash : un modèle commercial de Google avec une défense contre l'injection de prompt revendiquéegemini-2.5-flash : un modèle commercial de Google avec une défense contre l'injection de prompt revendiquéegemini-2.0-pro : un modèle phare de Google (sans défense contre l'injection de prompt revendiquée)gemini-2.5-pro : un modèle phare de Google (sans défense contre l'injection de prompt revendiquée)gemini-3-pro-preview : le modèle de pointe de Google avec une forte défense contre l'injection de promptlora_alpha est un hyper-paramètre de test pour les modèles Meta-SecAlign. Il vaut 8 par défaut, ce qui utilise exactement les modèles Meta-SecAlign tels qu'entraînés. Une valeur de lora_alpha entre 0 et 8 interpole entre le modèle non défendu et notre modèle défendu pour permettre un compromis flexible entre utilité et sécurité. Une extrapolation de lora_alpha au-delà de 8 est possible mais non testée.meta-llama/Meta-Llama-3-8B-Instruct)secalign_plus_plus.py fournit les commandes pour effectuer un fine-tuning défensif de meta-llama/Llama-3.1-8B-Instruct (par défaut) ou meta-llama/Llama-3.3-70B-Instruct (décommentez la ligne spécifique pour l'affiner) vers un modèle LoRA robuste en utilisant notre recette d'entraînement, SecAlign++.python secalign_plus_plus.py