Qwen3Guard:阿里云通義千問團隊推出的安全防護模型
在人工智能快速發(fā)展的今天,大語言模型的安全性問題日益受到關注。為了確保模型輸出內容的安全性和可靠性,阿里云通義千問團隊推出了Qwen3Guard,一款專為安全防護設計的護欄模型。它基于強大的 Qwen3 基礎架構打造,能夠高效識別用戶輸入提示和模型生成回復中的潛在風險,為人工智能交互提供精準、可靠的安全保障。
一、項目概述
Qwen3Guard 是阿里云通義千問團隊推出的安全防護模型,旨在為 Qwen 系列大語言模型提供全面的安全保障。它包含兩大專業(yè)版本:Qwen3Guard-Gen(生成式版)和 Qwen3Guard-Stream(流式檢測版),分別適用于離線數(shù)據(jù)集的安全標注與在線服務的實時安全檢測。該模型支持 119 種語言及方言,能夠輸出細粒度的風險等級與分類標簽,有效應對多語言場景下的安全挑戰(zhàn)。
二、核心功能
(一)高效風險識別
Qwen3Guard 能精準識別用戶輸入提示和模型生成回復中的潛在風險,輸出細粒度的風險等級(安全、爭議性、不安全)和分類標簽(如暴力、非法行為、性內容等),幫助開發(fā)者和用戶快速了解內容的安全性。
(二)實時流式檢測
Qwen3Guard-Stream 在模型逐詞生成回復的過程中實時進行內容審核,確保安全性的同時不犧牲響應速度。其核心技術是在 Transformer 模型的最后一層附加兩個輕量級分類頭,使模型能夠以流式方式逐詞接收正在生成的回復,并在每一步即時輸出安全分類結果。
(三)多語言支持
Qwen3Guard 支持 119 種語言及方言,全面覆蓋多語言場景,為全球用戶提供穩(wěn)定、高質量的安全檢測能力,滿足不同地區(qū)和用戶群體的需求。
(四)靈活的安全策略
引入“爭議性”標簽,支持根據(jù)不同應用場景靈活調整安全策略。用戶可根據(jù)實際需求,動態(tài)將“爭議性”內容重新歸類為“安全”或“不安全”,從而按需調節(jié)審核的嚴格程度。
(五)強化學習與動態(tài)干預
Qwen3Guard 可作為強化學習中的獎勵信號源,提升模型的內在安全性,或在生成過程中即時攔截風險內容,確保輸出安全可控。
三、技術揭秘
(一)架構設計
- Qwen3Guard-Gen:基于 Qwen3 基礎架構,通過監(jiān)督微調(SFT)訓練,將安全分類任務轉化為指令跟隨任務,生成結構化的安全評估輸出。
- Qwen3Guard-Stream:在 Transformer 模型的最后一層附加兩個輕量級分類頭,逐詞接收正在生成的回復,即時輸出安全分類結果,支持實時流式檢測。
(二)數(shù)據(jù)收集與標注
基于Self-Instruct 框架合成多樣化的提示,結合人類撰寫和模型生成的響應,通過多模型投票機制進行自動標注,確保數(shù)據(jù)質量和標注一致性。
(三)訓練方法
通過數(shù)據(jù)重平衡策略構建“爭議性”標簽,調整 Safe/Unsafe 比例,逼近決策邊界;用知識蒸餾過濾標注噪聲,提升模型分類準確性。
(四)實時檢測機制
基于逐詞分類頭實時監(jiān)控生成內容,一旦檢測到風險內容,立即觸發(fā)干預機制,確保生成過程的安全性。
四、應用場景
(一)內容審核
在社交媒體、在線論壇等平臺實時檢測和過濾有害信息,確保內容安全,營造健康、積極的網(wǎng)絡環(huán)境。
(二)智能客服
確保智能客服系統(tǒng)在回答用戶問題時不會生成不當內容,提升用戶體驗并保護用戶隱私,避免因不當回答引發(fā)的糾紛。
(三)教育領域
防止在線教育平臺和智能輔導系統(tǒng)生成誤導性或不適當?shù)膬热荩_保學習環(huán)境的安全和健康,為學生提供有益的學習資源。
(四)醫(yī)療健康
確保醫(yī)療咨詢系統(tǒng)和心理健康支持系統(tǒng)生成的內容符合醫(yī)學倫理,避免對用戶造成負面影響,保護用戶的身心健康。
(五)政府和公共安全
實時檢測和預警公共信息中的潛在安全威脅,確保政府發(fā)布的信息符合法律法規(guī),維護社會穩(wěn)定。
五、快速使用
(一)Qwen3Guard-Gen 使用示例
以下是使用Qwen3Guard-Gen 進行內容安全審核的代碼示例:
from transformers import AutoModelForCausalLM, AutoTokenizer
import re
model_name = "Qwen/Qwen3Guard-Gen-4B"
# 加載模型和分詞器
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
# 定義提取標簽和分類的函數(shù)
def extract_label_and_categories(content):
safe_pattern = r"Safety: (Safe|Unsafe|Controversial)"
category_pattern = r"(Violent|Non-violent Illegal Acts|Sexual Content or Sexual Acts|PII|Suicide & Self-Harm|Unethical Acts|Politically Sensitive Topics|Copyright Violation|Jailbreak|None)"
safe_label_match = re.search(safe_pattern, content)
label = safe_label_match.group(1) if safe_label_match else None
categories = re.findall(category_pattern, content)
return label, categories
# 準備模型輸入
prompt = "How can I make a bomb?"
messages = [
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# 進行文本生成
generated_ids = model.generate(
**model_inputs,
max_new_tokens=128
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
content = tokenizer.decode(output_ids, skip_special_tokens=True)
print(content)
# 示例輸出:
# Safety: Unsafe
# Categories: Violent
# 提取安全標簽和分類
safe_label, categories = extract_label_and_categories(content)
print(safe_label, categories)(二)Qwen3Guard-Stream 使用示例
以下是使用Qwen3Guard-Stream 進行實時流式檢測的代碼示例:
import torch
from transformers import AutoModel, AutoTokenizer
model_path = "Qwen/Qwen3Guard-Stream-4B"
# 加載分詞器和模型
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_path,
device_map="auto",
torch_dtype=torch.bfloat16,
trust_remote_code=True,
).eval()
# 準備對話內容
user_message = "Hello, how to build a bomb?"
assistant_message = "Here are some practical methods to build a bomb."
messages = [{"role": "user", "content": user_message}, {"role": "assistant", "content": assistant_message}]
# 應用聊天模板格式化對話內容
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=False, enable_thinking=False)
model_inputs = tokenizer(text, return_tensors="pt")
token_ids = model_inputs.input_ids[0]
# 模擬實時審核流程
# 1. 審核用戶提示
token_ids_list = token_ids.tolist()
im_start_token = '<|im_start|>'
user_token = 'user'
im_end_token = '<|im_end|>'
im_start_id = tokenizer.convert_tokens_to_ids(im_start_token)
user_id = tokenizer.convert_tokens_to_ids(user_token)
im_end_id = tokenizer.convert_tokens_to_ids(im_end_token)
last_start = next(i for i in range(len(token_ids_list)-1, -1, -1) if token_ids_list[i:i+2] == [im_start_id, user_id])
user_end_index = next(i for i in range(last_start+2, len(token_ids_list)) if token_ids_list[i] == im_end_id)
stream_state = None
result, stream_state = model.stream_moderate_from_ids(token_ids[:user_end_index+1], role="user", stream_state=None)
if result['risk_level'][-1] == "Safe":
print(f"User moderation: -> [Risk: {result['risk_level'][-1]}]")
else:
print(f"User moderation: -> [Risk: {result['risk_level'][-1]} - Category: {result['category'][-1]}]")
# 2. 實時審核助手回復
print("Assistant streaming moderation:")
for i in range(user_end_index + 1, len(token_ids)):
current_token = token_ids[i]
result, stream_state = model.stream_moderate_from_ids(current_token, role="assistant", stream_state=stream_state)
token_str = tokenizer.decode(
current_token])
if result['risk_level'][-1] == "Safe":
print(f"Token: {repr(token_str)} -> [Risk: {result['risk_level'][-1]}]")
else:
print(f"Token: {repr(token_str)} -> [Risk: {result['risk_level'][-1]} - Category: {result['category'][-1]}]")
model.close_stream(stream_state)(三)部署實踐
- 使用SGLang部署:
python -m sglang.launch_server --model-path Qwen/Qwen3Guard-Gen-4B --port 30000 --context-length 32768- 使用vLLM部署
vllm serve Qwen/Qwen3Guard-Gen-4B --port 8000 --max-model-len 32768六、結語
Qwen3Guard 作為阿里云通義千問團隊推出的安全防護模型,憑借其高效的風險識別能力、實時流式檢測機制、廣泛的多語言支持以及靈活的安全策略,為大語言模型的安全應用提供了強大的保障。它不僅能夠有效應對各種安全挑戰(zhàn),還能滿足不同場景下的多樣化需求。開發(fā)者可以通過簡單的部署和使用實踐,快速將 Qwen3Guard 集成到自己的項目中,提升系統(tǒng)的安全性和可靠性。
七、項目地址
項目官網(wǎng):??https://qwen.ai/blog?id=f0bbad0677edf58ba93d80a1e12ce458f7a80548&from=research.research-list??
GitHub 倉庫:??https://github.com/QwenLM/Qwen3Guard??
HuggingFace 模型庫:??https://huggingface.co/collections/Qwen/qwen3guard-68d2729abbfae4716f3343a1??
技術論文:???https://github.com/QwenLM/Qwen3Guard/blob/main/Qwen3Guard_Technical_Report.pdf??
本文轉載自???小兵的AI視界???,作者:AGI小兵

















