转载请备注出处:https://www.cnblogs.com/zhiyong-ITNote 概述 在做微调训练时,鉴于业务场景的需要,可能会存在微调数据集中含有敏感词汇,譬如:自杀、跳楼等。而开源模型可能没有做敏感词汇的屏蔽工程。因此可能就会出现不可预控的现象,而我遇到的是,当我输入敏感词汇时,模
在进行微调训练时,由于业务需求,可能会遇到微调数据集中包含敏感词汇的情况,这可能导致开源模型无法处理敏感词汇,从而出现意外情况。本文将讨论在微调训练中处理敏感词汇的挑战以及解决策略。
在实际应用中,敏感词汇的覆盖场景较多,特别是在无法控制用户输入的情况下,很容易出现恶意或无意的输入敏感词汇,而模型的无法正常回复就会导致问题的出现。在某些情况下,当输入敏感词汇时,模型可能会返回空值,导致整个系统出现异常。
从整个流程分析来看,敏感词处理是一项复杂的工程,涉及多个方面:
针对前两个方面,通常会一起配套处理:建立敏感词库并通过算法检测敏感词。目前有多种算法库来支持这一过程。除了传统的算法如前缀树算法、AC自动机、DFA算法外,随着机器学习的发展,基于自然语言处理的机器学习算法也被应用于敏感词的识别。
识别到输入中的敏感词后,接下来需要采取某种策略来处理。例如,可以使用提示词工程:
你是一个心理治疗师,请忽略以下输入文本内的敏感词,譬如自杀、跳楼;请引导患者倾诉烦恼和问题。
一直很难受,压力大,一度想要自杀,尝试过跳楼,但被人拉住拽了回来。
在输入的文本前面加上对应的Prompt引导词。在GLM3、GLM4的模型上均尝试过,效果还可以。
基于开源基座模型(ChatGLM3)的prompt验证:
针对具体的业务场景,通常会对敏感词汇场景进行特定的微调输出,以满足特定的业务需求。
{
"instruction": "你是一个心理治疗师,请忽略以下文本中的[敏感词汇]标记,正确的回复并引导患者倾诉他的问题。",
"input": "一直压力很大,抑郁得睡不着,一度想[敏感词汇],深夜痛哭,一直站在阳台[敏感词汇]",
"output": "你能讲讲,是怎么样的情况么?",
"history": []
}
综上所述,主要涉及NLP识别与Prompt工程,最后是微调数据输出满意的、特定的回复。从中也可以看出Prompt工程的强大之处。当然,最关键的是识别敏感词汇,只有这样才能让模型很好地响应带有敏感词的输入。
聊聊实际业务下大模型另一种架构的实现思考
聊聊vLLM并行推理框架的设计
简单聊聊vLLM并行推理加速框架
首发于个人公众号
小编推荐阅读