聊聊大模型的屏蔽词工程

转载请备注出处:https://www.cnblogs.com/zhiyong-ITNote

概述

在做微调训练时,鉴于业务场景的需要,可能会存在微调数据集中含有敏感词汇,譬如:自杀、跳楼等。而开源模型可能没有做敏感词汇的屏蔽工程。因此可能就会出现不可预控的现象,而我遇到的是,当我输入敏感词汇时,模型(基于ChatGLM3)大多数时候返回空,继续正常提问,还是空的。此时模型相当于已经挂了。

普遍来看,敏感词汇的覆盖场景是比较多的,尤其是控制不了用户的输入,很有可能就会恶意或无意的输入敏感词,而模型如果不能正常的回复,或是屏蔽这类词汇,很容易就会出现我的问题。

解决策略

从整个流程分析来看,敏感词处理是一件大工程,涉及到的方面比较多。如下:

  1. 建立敏感词库
  2. 算法------识别敏感词
  3. 模型训练时,提前对输入的敏感词预处理
    1. 屏蔽或删除敏感词汇
    2. 使用占位符替换敏感词
  4. 针对敏感词,模型的回复处理
    1. 直接提示,并拒绝相关回答
    2. 安慰疏导

敏感词识别检测

对于前两者,一般是配套一起的;建立了敏感词库,通过算法检测识别敏感词。目前也有各种算法库来支持。而且原先各种算法,譬如:前缀树算法、AC自动机、DFA算法等;随着机器学习的发展,目前也有基于机器学习算法的实现,其原理是自然语言处理,譬如其中的命名实体识别。

Prompt提示词

识别到输入中的敏感词后,接下来就是采取某种策略来处理。譬如用提示词工程:

复制代码
你是一个心理治疗师,请忽略以下输入文本内的敏感词,譬如自杀、跳楼;请引导患者倾诉烦恼和问题。

一直很难受,压力大,一度想要自杀,尝试过跳楼,但被人拉住拽了回来。

在输入的文本前面加上对应的Prompt引导词。在GLM3、GLM4的模型上均尝试过,效果还可以:

基于开源基座模型(ChatGLM3)的prompt验证:

总的来说,满足我的需求,效果还是不错的。

模型微调

对于具体的业务场景,一般都会针对敏感词场景做一些特定的微调输出,满足特定的业务内容,譬如:

json 复制代码
{
  "instruction": "你是一个心理治疗师,请忽略以下文本中的[敏感词汇]标记,正确的回复并引导患者倾诉他的问题。",
  "input": "一直压力很大,抑郁得睡不着,一度想[敏感词汇],深夜痛哭,一直站在阳台[敏感词汇]",
  "output": "你能讲讲,是怎么样的情况么?",
  "history": []
}

总结

总结来说,主要是NLP识别与Prompt工程,最后就是微调数据输出满意的、特定的回复。从这,也看到了Prompt工程的强大了。当然最关键的是识别敏感词汇,才能让模型很好的响应带有敏感词的输入。

系列文章

聊聊实际业务下大模型另一种架构的实现思考

聊聊vLLM并行推理框架的设计

简单聊聊vLLM并行推理加速框架

转载请备注出处:https://www.cnblogs.com/zhiyong-ITNote

首发于个人公众号

相关推荐
司南OpenCompass15 小时前
司南“六位一体”评测体系的一年演进
人工智能·大模型·多模态模型·大模型评测·司南评测·ai评测
KG_LLM图谱增强大模型16 小时前
OntoMetric:破解ESG报告难题的“大模型+本体知识图谱”新范式,准确率提升10倍
人工智能·大模型·知识图谱
喜欢吃豆1 天前
OpenAI Realtime API 深度技术架构与实现指南——如何实现AI实时通话
人工智能·语言模型·架构·大模型
前端程序猿之路1 天前
基于扣子(Coze)工作流 API 的微信小程序开发实践总结
前端·微信小程序·小程序·大模型·api·ai编程·扣子
xixixi777771 天前
大模型的运行离不开芯片和搭载在它上面的计算框架
机器学习·大模型·编程·编译·芯片·计算框架·技术框架
模型启动机1 天前
港大联合字节跳动提出JoVA:一种基于联合自注意力的视频-音频联合生成模型
人工智能·ai·大模型
AI人工智能+2 天前
融合OCR与大模型的智能文本信息抽取技术,推动合同管理从静态文档向智能化商业载体的转型
大模型·ocr·文本信息抽取
Eastmount2 天前
[论文阅读] (47)LAMD: 基于大模型上下文驱动的Android恶意软件检测与分类
android·论文阅读·大模型·系统安全·恶意代码检测
模型启动机2 天前
阿里通义开源GUI智能体SOTA:2B到235B端云协同重新定义移动端GUI智能体
人工智能·ai·大模型
菜鸟冲锋号2 天前
适配AI大模型非结构化数据需求:数据仓库的核心改造方向
大数据·数据仓库·人工智能·大模型