京东开源了一款大模型安全框架:JoySafety,说是京东内部已应用,实现95%+攻击拦截率
京东开源的大模型安全框架:JoySafety —— 实现95%+攻击拦截率,保障大模型安全
📋 目录
- 项目简介
- ✨ 特性
- 🚀 快速开始
- 📖 使用指南
- 🏆 最佳实践
- 🏗️ 架构设计
- 🛠️ 开发
- 📄 许可证
- 📅 计划
- Star History
项目简介
随着生成式人工智能的应用逐渐深入,如何保障大模型的安全性成为了企业必须面对的重要挑战。内容安全、数据泄露、提示词攻击等问题不容忽视。为了解决这一系列问题,京东正式开源了其大模型安全框架——JoySafety。
JoySafety已经在京东多个业务场景中成功应用,包括AI导购、物流客服、销售助手、医疗问诊、商家工作台、法务咨询和安全问答等。该框架可以智能识别、检测多轮对话中的安全风险,支持日均亿级调用,且拥有95%+的攻击拦截率。
JoySafety通过多维响应策略来确保大模型输出内容符合安全规范。它能够即时阻断高风险内容、使用预设的合规知识库进行红线代答、智能纠偏并引导正向回答。该框架支持多种原子能力模块,包括BERT、FastText、Transformer等主流模型,且具有极高的扩展性和易用性。
GitHub 地址
✨ 特性
🚀 生产级别
企业级实战验证
- ✅ 保障京东多个生产级AI应用的安全稳定运行
- ✅ 在复杂业务场景中得到验证,持续迭代优化
- ✅ 支持横向扩展,满足高并发业务需求
- ✅ 策略变更支持分钟级热更新
高可靠性保障
- 🔄 原子能力热插拔,业务不中断
- ⚡ 配置动态生效,快速响应业务变化
- 📊 生产环境长期稳定性验证
📈 高扩展性
灵活的架构设计
- 🧩 支持多种原子能力模块(BERT、FastText、Transformer等主流模型)
- 🔌 标准化原子能力接口,便于扩展新模型
- 🏗️ 支持独立部署或集中部署两种模式
- ⚙️ 轻量编排引擎,按需灵活配置
智能负载均衡
- 🌐 集群化部署支持水平扩展
- ⚡ 异步检测机制,提升并发处理能力
- 🎯 窗口化检测策略,平衡性能与准确性
💡 易用性
开箱即用
- 🐳 一键Docker Compose启动,零配置门槛
- 📱 DAG编排,配置更灵活
- 🔧 标准化API接口,快速集成现有系统
🎯 核心技术亮点
1. 大模型多轮会话智能识别
可以智能识别多轮对话中的安全风险,确保对话中的内容合规且无害。
2. 采用Free-Taxi异步输出模式
通过Free-Taxi异步输出模式,大幅提升检测响应速度,实现用户体验与安全性的完美平衡。
3. 多维响应策略矩阵
- 🎯 精准拦截:高风险内容即时阻断
- ⏸️ 红线代答:使用红线知识库应答
- 🔄 智能纠偏:自动引导正向回答
🚀 快速开始
环境依赖
请确保已安装以下软件:
- git
- git-lfs (用于下载模型文件)
- docker
- docker compose
0. 克隆项目
#1. 克隆项目git clone https://github.com/MaoTouHU/JoySafety.git#2. 进入项目路径cd JoySafety#3. 设置环境变量export SAFETY_ROOT_PATH=`pwd`# 正常为 JoySafety 根路径echo ${SAFETY_ROOT_PATH}
1. 下载模型文件(Huggingface)
- 模型说明
- 推荐使用 git-lfs 拉取大模型文件
# 进入项目路径cd $SAFETY_ROOT_PATHgit lfs install# 方案1git clone https://huggingface.co/jdopensource/JoySafety ${SAFETY_ROOT_PATH}/data/models# 方案2# 可从[ModelScope](https://modelscope.cn/models/syf20240814/joysafety/files)下载
2. 配置 .env 文件
- 在项目根路径复制
.env.example
或手动创建.env
:
cd $SAFETY_ROOT_PATHcp -f .env.example .env# 修改.env文件中变量: SAFETY_MODEL_DIR,路径需与模型实际下载路径一致SAFETY_MODEL_DIR=
3. 一键启动(Docker Compose)
docker-compose --env-file .env up
4. API 测试
详细的 API 测试案例及使用说明请参考 quickstart/README.md。获取最新的 API 测试脚本和案例说明。
📖 使用指南
如何接入一个业务
- 注册原子能力(如果需要用的原子能力未注册过),参考原子能力管理参考: function_api.md
- 增加一个业务,参考 business_api.md
- 为业务增加策略,参考:dag_api.md 和 策略样例
如何配置策略(DAG)
识别策略整体是DAG,从rootId对应的node开始,逐层执行识别策略。每个node分为两部分:function和router。function是当前结点执行的具体能力,router则基于当前结点的识别结果决定执行的下一个结点。
常用的router包括stupid_end和groovy,前者表示直接结束,后者则是通过groovy脚本根据识别结果返回下一步的node_id。
如何管理敏感词
支持按分组+业务
来管理敏感词,all
业务下的敏感词对所有业务生效。可以参考:sensitive_words_api.md。
🏆 最佳实践
最佳实践请参考 best_practice.md。
🏗️ 架构设计
项目目录结构
.
├── README.md
├── deploy
│ ├── docker-compose.yml // 打包启动服务(各个模块也可以单独启动)
│ └── thirdparty // 第三方依赖相关配置及文档
│ ├── mysql
│ ├── redis
│ └── vearch
├── safety
│ ├── safety-admin // 配置和数据管理后台服务
│ ├── safety-api // 对外提供能力的api服务
│ ├── safety-basic // 核心服务,支撑所有主要功能
│ ├── safety-demo // 使用safety-api的多语言示例
│ └── safety-skills // 各项能力的实现及部署
└── quickstart // 用于用户快速体验的脚本和样例
技术架构说明
1. 配置时期流程图
2. 执行时期流程图
📅 计划
JoySafety 致力于构建完整的大模型安全解决方案,后续将推出:
- 安全审核大模型:开源部分安全审核大模型并集成实现风险合规审计能力
- 大模型安全评测:针对大模型上线前的安全风险检测
- Agent安全防护:包括身份、权限、数据、防护工具、执行安全等能力
Star History
Star History of JoySafety on GitHub
作者✍️名片