
[NeurIPS 2025] Официальный исходный код для статьи «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
1Национальный университет Сингапура, 2Наньянский технологический университет
Чтобы повысить безопасность VLM, в этой статье представлена новая защитная модель для VLM на основе рассуждений, получившая название GuardReasoner-VL. Основная идея заключается в том, чтобы побудить защитную модель обдуманно рассуждать перед принятием решений о модерации с помощью онлайн-обучения с подкреплением (online RL). Во-первых, мы создаём GuardReasoner-VLTrain — корпус рассуждений с 123K примерами и 631K шагами рассуждений, охватывающий текстовые, графические и текстово-графические входные данные. Затем на его основе мы выполняем холодный старт способности модели к рассуждениям с помощью SFT. Кроме того, мы дополнительно улучшаем рассуждения, связанные с модерацией, с помощью online RL. В частности, для повышения разнообразия и сложности примеров мы применяем выборку с отклонением (rejection sampling) с последующей аугментацией данных с помощью предложенной конкатенации данных с учётом безопасности (safety-aware data concatenation). Кроме того, мы используем динамический параметр отсечения (clipping), чтобы поощрять исследование на ранних этапах и эксплуатацию на поздних. Чтобы сбалансировать производительность и эффективность использования токенов, мы разрабатываем награду за безопасность с учётом длины (length-aware safety reward), которая учитывает точность, формат и стоимость токенов. Обширные эксперименты демонстрируют превосходство нашей модели. Примечательно, что она превосходит модель, занявшую второе место, в среднем на 19,27% по F1-метрике.
Рисунок 1: Обзор GuardReasoner-VL.
Чтобы оценить GuardReasoner-VL, выполните следующий код.
python ./evaluate.py
Результаты сохраняются в файл 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
Рисунок 2: Средняя производительность GuardReasoner-VL на мультимодальных guardrail-бенчмарках.
Таблица 1: Производительность на задаче выявления вредоносности промптов.
Таблица 2: Производительность на задаче выявления вредоносности ответов.
Чтобы воспроизвести процесс генерации GuardReasoner-VL, выполните следующий код.
bash test.sh
Чтобы использовать GuardReasoner-VL, выполните следующий код.
CUDA_VISIBLE_DEVICES=0 python deploy.py
Чтобы воспроизвести процесс обучения GuardReasoner, см. тренировочный конвейер.
Наш метод частично основан на следующих ресурсах. Спасибо их авторам за отличные работы.
Если этот репозиторий оказался для вас полезным, пожалуйста, процитируйте нашу статью.
@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}
}
(к началу)