
[NeurIPS 2025] An official source code for paper "GuardReasoner-VL: Safeguarding VLMs via Reinforced Reasoning".
Yue Liu, Shengfang Zhai, Mingzhe Du
Yulin Chen, Tri Cao, Hongcheng Gao, Cheng Wang
Xinfeng Li, Kun Wang, Junfeng Fang, Jiaheng Zhang, Bryan Hooi
1National University of Singapore, 2Nanyang Technological University
Um die Sicherheit von VLMs zu erhöhen, stellt dieses Papier ein neuartiges reasoning-basiertes VLM-Wächtermodell namens GuardReasoner-VL vor. Die Kernidee besteht darin, das Wächtermodell dazu anzuregen, vor Moderationsentscheidungen durch Online-RL bewusst nachzudenken. Zunächst erstellen wir GuardReasoner-VLTrain, ein Reasoning-Korpus mit 123K Beispielen und 631K Reasoning-Schritten, das Text-, Bild- und Text-Bild-Eingaben umfasst. Dann starten wir darauf aufbauend die Reasoning-Fähigkeit unseres Modells mittels SFT kalt. Darüber hinaus verbessern wir das Reasoning in Bezug auf Moderation durch Online-RL weiter. Konkret führen wir Rejection Sampling gefolgt von Data Augmentation mittels der vorgeschlagenen sicherheitsbewussten Datenverkettung durch, um die Vielfalt und Schwierigkeit der Beispiele zu erhöhen. Außerdem verwenden wir einen dynamischen Clipping-Parameter, um in frühen Phasen die Erkundung und in späteren Phasen die Ausnutzung zu fördern. Um Leistung und Token-Effizienz in Einklang zu bringen, entwickeln wir eine längenbewusste Sicherheitsbelohnung, die Genauigkeit, Format und Token-Kosten integriert. Umfangreiche Experimente zeigen die Überlegenheit unseres Modells. Bemerkenswerterweise übertrifft es den Zweitplatzierten im Durchschnitt um 19.27% F1-Score.
Abbildung 1: Überblick über GuardReasoner-VL.
Um GuardReasoner-VL zu evaluieren, führen Sie den folgenden Code aus.
python ./evaluate.py
Die Ergebnisse werden in der Datei result.csv gespeichert.
Performance of GuardReasoner-VL (GuardReasoner-VL-7B):
ToxicChat ,HarmBenchPrompt ,OpenAIModeration ,AegisSafetyTest ,SimpleSafetyTests ,WildGuardTest ,Average (Text) ,HarmImageTest ,SPA-VL-Eval ,Average (All)
76.51 ,98.30 ,70.98 ,90.13 ,98.99 ,88.35 ,79.88 ,70.84 ,85.60 ,79.07
HarmBenchResponse ,SafeRLHF ,BeaverTails ,XSTestReponseHarmful,WildGuardTest ,Average (Text) ,SPA-VL-Eval ,Average (All)
87.22 ,66.37 ,84.76 ,92.72 ,79.04 ,79.42 ,73.22 ,77.58
Performance of GuardReasoner-VL (GuardReasoner-VL-Eco-7B):
ToxicChat ,HarmBenchPrompt ,OpenAIModeration ,AegisSafetyTest ,SimpleSafetyTests ,WildGuardTest ,Average (Text) ,HarmImageTest ,SPA-VL-Eval ,Average (All)
76.26 ,98.73 ,70.82 ,90.34 ,99.50 ,88.54 ,79.82 ,64.84 ,85.26 ,77.49
HarmBenchResponse ,SafeRLHF ,BeaverTails ,XSTestReponseHarmful,WildGuardTest ,Average (Text) ,SPA-VL-Eval ,Average (All)
86.22 ,66.15 ,85.51 ,93.33 ,78.60 ,79.51 ,70.81 ,76.94
Performance of GuardReasoner-VL (GuardReasoner-VL-3B):
ToxicChat ,HarmBenchPrompt ,OpenAIModeration ,AegisSafetyTest ,SimpleSafetyTests ,WildGuardTest ,Average (Text) ,HarmImageTest ,SPA-VL-Eval ,Average (All)
74.45 ,89.10 ,70.83 ,88.79 ,99.50 ,88.92 ,78.77 ,70.93 ,86.47 ,78.73
HarmBenchResponse ,SafeRLHF ,BeaverTails ,XSTestReponseHarmful,WildGuardTest ,Average (Text) ,SPA-VL-Eval ,Average (All)
85.76 ,66.37 ,85.16 ,93.08 ,76.07 ,78.83 ,71.19 ,76.56
Performance of GuardReasoner-VL (GuardReasoner-VL-Eco-3B):
ToxicChat ,HarmBenchPrompt ,OpenAIModeration ,AegisSafetyTest ,SimpleSafetyTests ,WildGuardTest ,Average (Text) ,HarmImageTest ,SPA-VL-Eval ,Average (All)
73.47 ,88.58 ,70.87 ,89.04 ,99.50 ,89.16 ,78.43 ,66.79 ,85.82 ,77.39
HarmBenchResponse ,SafeRLHF ,BeaverTails ,XSTestReponseHarmful,WildGuardTest ,Average (Text) ,SPA-VL-Eval ,Average (All)
84.72 ,66.96 ,85.39 ,93.59 ,77.39 ,79.31 ,72.01 ,77.14
Abbildung 2: Durchschnittliche Leistung von GuardReasoner-VL auf multimodalen Guardrail-Benchmarks.
Tabelle 1: Leistung der Erkennungsaufgabe für schädliche Prompts.
Tabelle 2: Leistung der Erkennungsaufgabe für schädliche Antworten.
Um den Generierungsprozess von GuardReasoner-VL zu reproduzieren, führen Sie den folgenden Code aus.
bash test.sh
Um GuardReasoner-VL zu verwenden, führen Sie den folgenden Code aus.
CUDA_VISIBLE_DEVICES=0 python deploy.py
Um den Trainingsprozess von GuardReasoner zu reproduzieren, siehe Trainingspipeline.
Unsere Methode basiert teilweise auf den folgenden Ressourcen. Danke für ihre großartigen Arbeiten.
Wenn Sie dieses Repository hilfreich finden, zitieren Sie bitte unser Paper.
@article{GuardReasoner,
title={GuardReasoner: Towards Reasoning-based LLM Safeguards},
author={Liu, Yue and Gao, Hongcheng and Zhai, Shengfang and Jun, Xia and Wu, Tianyi and Xue, Zhiwei and Chen, Yulin and Kawaguchi, Kenji and Zhang, Jiaheng and Hooi, Bryan},
journal={arXiv preprint arXiv:2501.18492},
year={2025}
}
@article{GuardReasoner-VL,
title={GuardReasoner-VL: Safeguarding VLMs via Reinforced Reasoning},
author={Liu, Yue and Zhai, Shengfang and Du, Mingzhe and Chen, Yulin and Cao, Tri and Gao, Hongcheng and Wang, Cheng and Li, Xinfeng and Wang, Kun and Fang, Junfeng and Zhang, Jiaheng and Hooi, Bryan},
journal={arXiv preprint arXiv:2505.11049},
year={2025}
}