首页 > 教程 > 微调训练中敏感词汇处理的挑战与解决策略

微调训练中敏感词汇处理的挑战与解决策略

时间:2024-04-16 | 来源: | 阅读:122

话题: 策略

转载请备注出处:https://www.cnblogs.com/zhiyong-ITNote 概述 在做微调训练时,鉴于业务场景的需要,可能会存在微调数据集中含有敏感词汇,譬如:自杀、跳楼等。而开源模型可能没有做敏感词汇的屏蔽工程。因此可能就会出现不可预控的现象,而我遇到的是,当我输入敏感词汇时,模

在进行微调训练时,由于业务需求,可能会遇到微调数据集中包含敏感词汇的情况,这可能导致开源模型无法处理敏感词汇,从而出现意外情况。本文将讨论在微调训练中处理敏感词汇的挑战以及解决策略。

概述

在实际应用中,敏感词汇的覆盖场景较多,特别是在无法控制用户输入的情况下,很容易出现恶意或无意的输入敏感词汇,而模型的无法正常回复就会导致问题的出现。在某些情况下,当输入敏感词汇时,模型可能会返回空值,导致整个系统出现异常。

解决策略

从整个流程分析来看,敏感词处理是一项复杂的工程,涉及多个方面:

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

敏感词识别检测

针对前两个方面,通常会一起配套处理:建立敏感词库并通过算法检测敏感词。目前有多种算法库来支持这一过程。除了传统的算法如前缀树算法、AC自动机、DFA算法外,随着机器学习的发展,基于自然语言处理的机器学习算法也被应用于敏感词的识别。

Prompt提示词

识别到输入中的敏感词后,接下来需要采取某种策略来处理。例如,可以使用提示词工程:

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

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

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

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

模型微调

针对具体的业务场景,通常会对敏感词汇场景进行特定的微调输出,以满足特定的业务需求。

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

总结

综上所述,主要涉及NLP识别与Prompt工程,最后是微调数据输出满意的、特定的回复。从中也可以看出Prompt工程的强大之处。当然,最关键的是识别敏感词汇,只有这样才能让模型很好地响应带有敏感词的输入。

系列文章

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

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

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

首发于个人公众号


湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网