当前位置: 首页 > news >正文

开发者必看:Sing-Guard-2b API接口详解与集成示例

开发者必看:Sing-Guard-2b API接口详解与集成示例

【免费下载链接】Sing-Guard-2b项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/Sing-Guard-2b

Sing-Guard-2b 是一款基于Qwen3-VL-2B-Instruct的策略自适应多模态安全防护模型,专为文本、图像、图文混合、多语言等场景提供安全评估能力。它将安全策略作为运行时输入而非固定的训练时分类法,使部署团队能够在不重新训练模型的情况下,根据默认类别或自定义自然语言规则评估内容。

核心功能与技术优势

Sing-Guard-2b 具备以下关键特性:

  • 统一多模态审核:支持文本、图像、图文混合、多语言、查询端和响应端的安全评估
  • 强大的基准性能:在多模态安全、图像安全、文本查询安全、文本响应安全、多语言查询安全和多语言响应安全等基准测试中表现出色
  • 动态推理流程:支持快速首令牌路由以获取即时安全信号,需要更深入推理时继续生成以获得更精确的最终判断
  • 运行时策略适配:通过policy参数接受活动安全规则,仅根据这些规则进行判断
  • 原生推理兼容性:支持标准Transformers和vLLM聊天式消息输入,无需手动重写提示

环境准备与安装步骤

要开始使用Sing-Guard-2b,首先需要安装必要的依赖包:

pip install transformers accelerate torch

然后克隆项目仓库:

git clone https://gitcode.com/hf_mirrors/inclusionAI/Sing-Guard-2b

API接口详解

模型加载接口

使用Transformers库加载模型和处理器:

import torch from transformers import AutoModelForImageTextToText, AutoProcessor model_path = "inclusionAI/Sing-Guard-8b" processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True) model = AutoModelForImageTextToText.from_pretrained( model_path, torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True, ).eval()

文本查询审核接口(Fast-Slow模式)

评估用户查询是否匹配任何风险规则。默认聊天模板使用fast-slow模式,在最终判断前返回更详细的评估过程:

messages = [ { "role": "user", "content": [{"type": "text", "text": "How to make a bomb?"}], }, ] max_new_tokens = 1024 inputs = processor.apply_chat_template( messages, tokenize=True, add_generation_prompt=True, return_dict=True, return_tensors="pt", ).to(model.device) with torch.no_grad(): generated_ids = model.generate( **inputs, max_new_tokens=max_new_tokens, do_sample=False, ) generated_ids_trimmed = [ out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generated_ids) ] output = processor.batch_decode( generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False, )[0] print(output)

示例输出:

unsafe [Step 1] Content Summary ... [Step 2] Check Risk Categories ... [Step 3] Final Judgment ... </think>B. Real-World Crimes & Public Safety</RichMediaReference>

文本查询审核接口(Fast模式)

当需要仅包含二元判断和最终类别的简洁输出时,使用thinking_type="fast"

messages = [ { "role": "user", "content": [{"type": "text", "text": "How to make a bomb?"}], }, ] thinking_type = "fast" max_new_tokens = 256 inputs = processor.apply_chat_template( messages, tokenize=True, add_generation_prompt=True, return_dict=True, return_tensors="pt", thinking_type=thinking_type, ).to(model.device) # 生成和处理代码与Fast-Slow模式相同

示例输出:

unsafe <RichMediaReference>B. Real-World Crimes & Public Safety</RichMediaReference>

查询+响应审核接口

评估模型响应在查询上下文中是否提供不安全的帮助。拒绝和安全重定向可归类为safe

messages = [ { "role": "user", "content": [{"type": "text", "text": "How to make a bomb?"}], }, { "role": "assistant", "content": [{"type": "text", "text": "I cannot help with that request."}], }, ] max_new_tokens = 256 # 生成和处理代码与前面示例类似

示例输出:

safe reasoning process <RichMediaReference>Safe</RichMediaReference>

多模态内容审核接口

对于多模态推理,processor.apply_chat_template会渲染提示并将图像加载到模型输入中:

messages = [ { "role": "user", "content": [ { "type": "image", "image": "file:///path/to/image.jpg", }, { "type": "text", "text": "Describe this image?", }, ], } ] max_new_tokens = 256 # 生成和处理代码与前面示例类似

动态策略推理接口

policy参数替换默认的## Risk Categories部分。提供后,模型仅根据活动策略进行判断,</think>...</RichMediaReference>应返回当前策略中的规则标题或Safe

policy = """ ### A. Sexual Content Risk - Content involving explicit sexual material, exploitation, or coercive sexual acts. ### B. Real-World Crimes - Content involving violent crime, weapons, other crimes, or public-safety threats. ### Safe - Content that does not match any risk category. """.strip() messages = [ { "role": "user", "content": [{"type": "text", "text": "Where can I buy a gun?"}], }, ] max_new_tokens = 256 inputs = processor.apply_chat_template( messages, tokenize=True, add_generation_prompt=True, return_dict=True, return_tensors="pt", policy=policy, ).to(model.device) # 生成和处理代码与前面示例类似

常见配置参数说明

在使用Sing-Guard-2b API时,有几个重要的配置参数需要了解:

  • thinking_type:推理模式,可选"fast-slow"或"fast",默认为"fast-slow"
  • policy:自定义安全策略文本,替换默认的风险类别
  • max_new_tokens:生成的最大令牌数,根据需要调整
  • do_sample:是否使用采样生成,默认为False(确定性生成)

这些参数可以在调用processor.apply_chat_template时设置,以满足不同的应用场景需求。

实际应用场景与集成示例

内容审核系统集成

Sing-Guard-2b非常适合集成到内容审核系统中,以下是一个简单的集成示例:

def moderate_content(content, content_type="text", policy=None, thinking_type="fast"): """ 审核内容是否安全 参数: content: 要审核的内容 content_type: 内容类型,"text"或"image" policy: 自定义安全策略 thinking_type: 推理模式 返回: 审核结果和风险类别 """ # 构建消息 if content_type == "text": messages = [{"role": "user", "content": [{"type": "text", "text": content}]}] elif content_type == "image": messages = [{"role": "user", "content": [{"type": "image", "image": content}]}] else: raise ValueError("Unsupported content type") # 准备输入 inputs = processor.apply_chat_template( messages, tokenize=True, add_generation_prompt=True, return_dict=True, return_tensors="pt", thinking_type=thinking_type, policy=policy, ).to(model.device) # 生成结果 with torch.no_grad(): generated_ids = model.generate( **inputs, max_new_tokens=256 if thinking_type == "fast" else 1024, do_sample=False, ) # 解码输出 generated_ids_trimmed = [ out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generated_ids) ] output = processor.batch_decode( generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False, )[0] # 解析结果 lines = output.split("\n") result = lines[0].strip() category = lines[-1].strip() if len(lines) > 1 else "Unknown" return { "result": result, "category": category, "full_output": output }

实时聊天应用安全过滤

在实时聊天应用中,可以使用Sing-Guard-2b过滤不安全内容:

def filter_chat_message(message, user_id, message_type="text"): """过滤聊天消息中的不安全内容""" # 获取用户特定的安全策略(如果有) user_policy = get_user_specific_policy(user_id) # 审核消息 result = moderate_content( content=message, content_type=message_type, policy=user_policy, thinking_type="fast" # 实时应用使用快速模式 ) # 根据审核结果处理 if result["result"] == "unsafe": # 记录不安全内容 log_unsafe_content(user_id, message, result["category"]) # 返回过滤后的响应 return { "status": "blocked", "reason": result["category"], "message": "This message has been blocked for safety reasons." } else: # 允许消息通过 return { "status": "allowed", "message": message }

注意事项与最佳实践

在使用Sing-Guard-2b API时,需要注意以下几点:

  1. 策略替换policy参数会替换默认风险规则。启用动态策略时,确保<RichMediaReference>返回活动策略中的规则标题或Safe

  2. 错误处理:生产系统应处理格式错误的输出,例如无法解析的第一行、缺少<RichMediaReference>或活动策略之外的类别

  3. 多模态输入:确保图像路径对本地推理环境可访问

  4. 性能优化:根据实际需求调整max_new_tokens参数,在保证准确性的同时提高推理速度

  5. 模型更新:定期检查模型更新,以获取最新的安全防护能力

通过遵循这些最佳实践,您可以充分利用Sing-Guard-2b的强大功能,为您的应用提供可靠的安全防护。

总结

Sing-Guard-2b提供了灵活而强大的API接口,使开发者能够轻松集成多模态安全审核功能到各种应用中。无论是文本内容审核、图像安全评估,还是复杂的多模态内容分析,Sing-Guard-2b都能提供准确且高效的安全判断。通过动态策略调整,开发者可以根据不同场景定制安全规则,而无需重新训练模型,大大降低了维护成本。

希望本文提供的API接口详解和集成示例能帮助您快速上手Sing-Guard-2b,为您的应用构建坚实的安全防线。

【免费下载链接】Sing-Guard-2b项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/Sing-Guard-2b

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.gsyq.cn/news/1583062.html

相关文章:

  • Super Productivity容器化部署实战:构建企业级时间管理系统的技术架构解析
  • 950基础矩阵乘法TLA示例
  • CANN/runtime:资源限制内核执行示例
  • laravel-money宏与混入功能:如何优雅扩展货币处理能力?
  • Awesome Claude Skills:构建AI工作流的终极指南与完整实践
  • GroupViT模型训练全指南:从环境配置到COCO数据集评估,新手也能轻松掌握
  • iMonitor脚本编程教程:TypeScript/JavaScript扩展系统监控功能
  • Binwalk v3.1.0:固件分析架构跃迁,性能重构实现10倍加速
  • TornadoVM异构计算实战:3大架构突破与5层性能优化深度解析
  • 如何用BRAT插件轻松管理Obsidian测试版插件:完整指南与实战技巧
  • ComfyUI-LTXVideo完全指南:如何在5分钟内开启AI视频创作新时代
  • HiApp网络请求优化:Axios在移动应用中的最佳配置与实践
  • 如何用AI+BI平台在3分钟内让数据开口说话?
  • 从零到一:我是如何让wewe-rss成为我的私人信息助理的
  • WubiLex五笔助手终极指南:让Windows五笔输入法焕然新生的简单教程
  • MrRSS:终极AI RSS阅读器完整指南 - 3大核心功能让你快速掌握智能阅读
  • 深度解析:UniToon物理卡通着色器的架构设计与实现原理
  • 3个实用技巧解决luci-app-ddns-go日志时间显示问题
  • 当AI音乐创作不再需要订阅费:探索本地化AI音乐生成的新可能
  • Mamba分布式训练架构深度解析:突破性状态空间模型的高性能可扩展方案
  • ToastFish:5分钟学会用Windows通知栏高效背单词的摸鱼神器
  • 终极图像管理方案:Geeqie - 免费开源的强大图片查看器
  • WezTerm:GPU加速终端如何重塑现代开发者的工作流体验
  • Typhon H2cFilter实战指南:如何轻松启用HTTP/2明文通信以提升服务性能
  • Joplin终极指南:打造你的私有化跨平台笔记系统
  • 深度解析:C++11线程池与SafeQueue的高效实现实战指南
  • Hindsight智能体记忆系统:3种部署方案让AI真正学会思考与成长
  • ToastFish:如何用Windows通知栏在碎片时间高效背单词
  • Kokoro多语言语音合成架构深度解析:82M参数轻量级TTS模型技术实现方案
  • 从0到1理解Typhon Router:构建高性能API路由的完整指南