
[NeurIPS 2025] Un codice sorgente ufficiale per il 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
1Università Nazionale di Singapore, 2Università Tecnologica di Nanyang
Per migliorare la sicurezza dei VLM, questo articolo introduce un nuovo modello di guardia per VLM basato sul ragionamento, chiamato GuardReasoner-VL. L'idea centrale è incentivare il modello di guardia a ragionare deliberatamente prima di prendere decisioni di moderazione tramite RL online. Innanzitutto, costruiamo GuardReasoner-VLTrain, un corpus di ragionamento con 123K campioni e 631K passaggi di ragionamento, che copre input testuali, immagini e testo-immagine. Quindi, basandoci su di esso, avviamo a freddo la capacità di ragionamento del nostro modello tramite SFT. Inoltre, potenziamo ulteriormente il ragionamento relativo alla moderazione attraverso RL online. Nello specifico, per aumentare la diversità e la difficoltà dei campioni, eseguiamo un rejection sampling seguito da data augmentation tramite la proposta concatenazione di dati sensibile alla sicurezza. Inoltre, utilizziamo un parametro di clipping dinamico per incoraggiare l'esplorazione nelle fasi iniziali e lo sfruttamento nelle fasi successive. Per bilanciare prestazioni ed efficienza dei token, progettiamo una ricompensa di sicurezza sensibile alla lunghezza che integra accuratezza, formato e costo dei token. Estesi esperimenti dimostrano la superiorità del nostro modello. Notevolmente, supera il secondo classificato del 19.27% di F1 score in media.
Figura 1: Panoramica di GuardReasoner-VL.
Per valutare GuardReasoner-VL, esegui il seguente codice.
python ./evaluate.py
I risultati vengono salvati nel file result.csv.
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
Figura 2: Prestazioni medie di GuardReasoner-VL sui benchmark multi-modali di guardrail.
Tabella 1: Prestazioni del compito di rilevamento della dannosità dei prompt.
Tabella 2: Prestazioni del compito di rilevamento della dannosità delle risposte.
Per riprodurre il processo di generazione di GuardReasoner-VL, esegui il seguente codice.
bash test.sh
Per utilizzare GuardReasoner-VL, esegui il seguente codice.
CUDA_VISIBLE_DEVICES=0 python deploy.py
Per riprodurre il processo di addestramento di GuardReasoner, consulta la pipeline di addestramento.
Il nostro metodo si basa in parte sulle seguenti risorse. Grazie per i loro fantastici lavori.
Se trovi utile questo repository, ti preghiamo di citare il nostro articolo.
@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}
}
(torna su)