
[NeurIPS 2025] Um código-fonte oficial do artigo "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
Para aprimorar a segurança dos VLMs, este artigo apresenta um novo modelo de guarda para VLM baseado em raciocínio, denominado GuardReasoner-VL. A ideia central é incentivar o modelo de guarda a raciocinar deliberadamente antes de tomar decisões de moderação por meio de RL online. Primeiro, construímos o GuardReasoner-VLTrain, um corpus de raciocínio com 123K amostras e 631K etapas de raciocínio, abrangendo entradas de texto, imagem e texto-imagem. Em seguida, com base nele, inicializamos a frio a capacidade de raciocínio do nosso modelo via SFT. Além disso, aprimoramos ainda mais o raciocínio relacionado à moderação por meio de RL online. Concretamente, para aumentar a diversidade e a dificuldade das amostras, realizamos amostragem por rejeição seguida de aumento de dados por meio da concatenação de dados consciente de segurança proposta. Além disso, usamos um parâmetro de clipping dinâmico para incentivar a exploração nas fases iniciais e o aproveitamento nas fases posteriores. Para equilibrar desempenho e eficiência de tokens, projetamos uma recompensa de segurança ciente do comprimento que integra precisão, formato e custo de tokens. Extensos experimentos demonstram a superioridade do nosso modelo. Notavelmente, ele supera o segundo colocado por 19.27% na pontuação F1, em média.
Figura 1: Visão geral do GuardReasoner-VL.
Para avaliar o GuardReasoner-VL, execute o seguinte código.
python ./evaluate.py
Os resultados são armazenados no arquivo 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: Desempenho médio do GuardReasoner-VL em benchmarks multimodais de guardrail.
Tabela 1: Desempenho na tarefa de detecção de nocividade de prompts.
Tabela 2: Desempenho na tarefa de detecção de nocividade de respostas.
Para reproduzir o processo de geração do GuardReasoner-VL, execute o seguinte código.
bash test.sh
Para usar o GuardReasoner-VL, execute o seguinte código.
CUDA_VISIBLE_DEVICES=0 python deploy.py
Para reproduzir o processo de treinamento do GuardReasoner, consulte o pipeline de treinamento.