SafeWork-R1
📂 GitHub · 📜Technical Report · 💬Online Chat
Overview
We introduce SafeWork-R1, a cutting-edge multimodal reasoning model demonstrating the coevolution of safety and general intelligence under the guiding principle of the AI-45° Law.
SafeWork-R1 is built upon the SafeLadder framework, which integrates large-scale, progressive, safety-oriented reinforcement learning post-training supported by multi-principled verifiers. Unlike conventional RLHF that simply learns human preferences, SafeLadder enables SafeWork-R1 to develop intrinsic safety reasoning and self-reflection abilities, leading to emergent safety “aha” moments.
Model Zoo
| Model Variant | Parameters | Base Model | Link |
|---|---|---|---|
| SafeWork-R1 | 72B | Qwen2.5-VL-72B | 🤗 link |
| SafeWork-R1-InternVL3-78B | 78B | InternVL3-78B | 🤗 link |
| SafeWork-R1-DeepSeek-70B | 70B | Deepseek-R1-DistillLlama-70B | 🤗 link |
| SafeWork-R1-Qwen2.5VL-7B | 7B | Qwen2.5-VL-7B | 🤗 link |
Performance
Safety Benchmarks
| Model | MM-SafetyBench | MSSBench | XSTest-Safe | SIUO | Avg. |
|---|---|---|---|---|---|
| Gemini 2.5 pro | 79.3 | 70.5 | 100.0 | 76.7 | 81.6 |
| Claude Opus 4 | 82.1 | 59.6 | 96.8 | 62.8 | 75.3 |
| GPT-4.1 | 78.2 | 69.1 | 96.4 | 92.9 | 84.1 |
| GPT-4o | 70.2 | 58.8 | 94.0 | 51.8 | 68.7 |
| Qwen2.5-VL-72B | 70.4 | 53.8 | 91.2 | 38.2 | 63.4 |
| SafeWork-R1 | 92.0↑21.6 | 74.8↑21.0 | 99.2↑8.0 | 90.5↑52.3 | 89.2↑25.8 |
Value Benchmarks
| Model | FLAMES | M³oralBench (Judge) | M³oralBench (Classification) | M³oralBench (Response) | Avg. |
|---|---|---|---|---|---|
| Gemini 2.5 Pro | 16.8 | 70.0 | 66.2 | 86.8 | 44.7 |
| Claude Opus 4 | 38.1 | 70.7 | 74.7 | 72.5 | 52.2 |
| GPT-4.1 | 33.3 | 74.4 | 62.7 | 61.7 | 53.0 |
| GPT-4o | 36.6 | 72.4 | 65.9 | 79.7 | 55.5 |
| Qwen2.5-VL-72B | 39.1 | 58.4 | 48.1 | 75.7 | 49.9 |
| SafeWork-R1 | 65.3↑26.2 | 68.1↑9.7 | 54.6↑6.5 | 70.9↓4.8 | 64.9↑15.0 |
General Benchmarks
| Model | MMMU | MathVista | Olympiad | GPQA Diamond | GAOKAO-MM | Avg. |
|---|---|---|---|---|---|---|
| Gemini 2.5 Pro | 82.0 | 83.0 | 81.8 | 86.9 | 87.2 | 84.2 |
| Claude Opus 4 | 73.0 | 73.0 | 68.5 | 74.7 | 73.7 | 72.6 |
| GPT-4.1 | 72.4 | 72.0 | 49.0 | 69.2 | 60.2 | 64.6 |
| GPT-4o | 70.6 | 61.6 | 33.7 | 46.9 | 33.8 | 49.3 |
| Qwen2.5-VL-72B | 67.2 | 74.8 | 40.4 | 50.5 | 73.1 | 61.2 |
| SafeWork-R1 | 70.9↑3.7 | 76.1↑1.3 | 59.9↑19.5 | 59.6↑9.1 | 78.2↑5.1 | 68.9↑7.7 |
Quick Start
from transformers import AutoProcessor, AutoModelForCausalLM
import torch
model_name = "AI45Research/SafeWork-R1"
processor = AutoProcessor.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", torch_dtype="auto", trust_remote_code=True)
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "file:///path/to/image",
},
{"type": "text", "text": "Prompt containing harmful content."},
],
}
]
# Preparation for inference
text = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
padding=True,
return_tensors="pt",
)
inputs = inputs.to("cuda")
# Inference: Generation of the output
generated_ids = model.generate(**inputs, max_new_tokens=8192)
generated_ids_trimmed = [
out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)
License
This project is released under the Apache 2.0 license.
Citation
If you find this work useful, feel free to give us a cite.
@misc{lab2025safework,
title={SafeWork-R1: Coevolving Safety and Intelligence under the AI-45 Law},
author={Lab, Shanghai AI and Bao, Yicheng and Chen, Guanxu and Chen, Mingkang and Chen, Yunhao and Chen, Chiyu and Chen, Lingjie and Chen, Sirui and Chen, Xinquan and Cheng, Jie and others},
journal={arXiv preprint arXiv:2507.18576},
year={2025}
}
- Downloads last month
- 17
