避免不期望的输出的方法
每个基础模型都有可能产生包含错误甚至有害内容的输出。 了解可生成的不良输出的类型,不良输出的原因以及可采取的降低危害风险的步骤。
IBM watsonx.ai 中提供的基础模型可以生成包含幻觉,个人信息,仇恨言论,滥用,脏话和偏见的输出。 以下方法可帮助降低风险,但不保证生成的输出将不含不良内容。
查找相关技术,帮助您避免地基模型输出中出现以下类型的不良内容:
幻觉
当基础模型产生离题、重复、不正确的内容或编造细节时,这种行为有时被称为幻觉。
由于生成的输出的解码中存在伪随机性,因此会发生离题幻觉。 在最佳情况下,这种随机性会产生奇妙的创造性输出。 但随机性也会导致无用的输出。
当提示模型生成文本时,该模型可能会以编造的详细信息的形式返回幻觉,但没有给出足够的相关文本可供借鉴。 例如,如果在提示中包含正确的详细信息,那么模型不太可能产生幻觉并构成详细信息。
避免产生幻觉的方法
为避免产生幻觉,请测试以下一种或多种技术:
选择具有与您的域和正在执行的任务相匹配的预训练和微调的模型。
在提示中提供上下文。
如果您指示一个基础模型生成一个在其预训练数据中并不常见的主题文本,而您又没有在提示中添加有关该主题的信息,那么该模型就更有可能产生幻觉。
指定 "最小令牌数" 和 "最大令牌数" 参数的保守值,并指定一个或多个停止序列。
为 "最小令牌数" 参数指定高值时,可以强制模型生成比模型自然返回的提示更长的响应。 该模型更有可能产生幻觉,因为它会向输出添加文字以达到所需的限制。
对于在生成的输出中不需要太多创意的用例,请使用贪婪解码。 如果您希望使用采样解码,请确保为 temperature , top-p 和 top-k 参数指定保守值。
要减少生成的输出中的重复文本,请尝试增大重复惩罚参数。
如果您在使用贪婪解码时在生成的输出中看到重复的文本,并且如果您的用例可以接受一些创意,那么请尝试改为使用采样解码。 请确保为 temperature , top-p 和 top-k 参数设置适度的低值。
在您的提示中,指示模型在没有自信或高概率答案时应执行的操作。
例如,在问答方案中,可以包含以下指示信息:
If the answer is not in the article, say “I don't know”.
个人信息
基础模型的词汇是由其预训练数据中的单词形成的。 如果预训练数据包含从因特网提取的 Web 页面,那么模型的词汇表可能包含以下类型的信息:
- 文章作者姓名
- 来自公司 Web 站点的联系信息
- 来自在开放式社区论坛中发布的问题和评论的个人信息
如果您使用基础模型为广告电子邮件的一部分生成文本,生成的内容可能包括另一家公司的联系信息!
如果你要求一个基础模型撰写一篇有引文的论文,该模型可能会包含一些看起来合法但并不合法的参考文献。 它甚至可能将这些定制引用归属于来自正确字段的真实作者。 基础模型很可能会产生形式正确但缺乏事实根据的模仿引文,因为模型善于将极有可能同时出现的词语(包括名称)串联起来。 该模型通过在引文中包含真人的名字作为作者,使这种形式的幻觉具有说服力和可信性。 这也让这种形式的幻觉变得危险。 人们如果相信引证是真实的,就会陷入困境。 更不用说能给那些被列为他们没有写的作品作者的人带来的伤害了。
排除个人信息的方法
要排除个人信息,请尝试以下方法:
在您的提示中,指示模型避免提及姓名,联系方式或个人信息。
例如,当您提示模型生成广告电子邮件时,指示模型包含您的公司名称和电话号码。 另外,指示模型 "不包含其他公司或个人信息"。
从 watsonx.ai API 中,可以在提交推论请求时在
moderations字段中启用 PII 过滤器。更多信息,请参阅API 参考文档。
在大型应用程序、管道或解决方案中,对基础模型生成的内容进行后处理,以查找并删除个人信息。
仇恨言论,虐待和亵渎
与个人信息一样,当预训练数据中包含仇恨、辱骂或亵渎用语时,基于该数据训练的基础模型的词汇中也会包含这些问题用语。 如果模型词汇中有不恰当的语言,基础模型可能会生成包含不良内容的文本。
使用基础模型为业务生成内容时,必须执行以下操作:
- 认识到这种输出总是可能的。
- 采取步骤降低触发模型产生这种有害输出的可能性。
- 将人员复审和验证流程构建到解决方案中。
降低仇恨言论,虐待和亵渎的风险的技术
为避免仇恨言论,虐待和脏话,请测试以下一种或多种技术:
在 Prompt Lab 中,将人工智能护栏开关设置为 "开"。 启用此功能后,输入提示或生成的输出中包含有害语言的任何语句都将替换为一条消息,该消息指出已除去潜在有害文本。
请勿在提示中包含仇恨言论,滥用或脏话,以防止模型以实物方式进行响应。
在提示中,指示模型使用干净的语言。
例如,根据输出所需的语气,指示模型使用 "正式" , "专业" , "PG" 或 "友好" 语言。
从 watsonx.ai API 中,可以在提交推断请求时在
moderations字段中启用 HAP 过滤器。更多信息,请参阅API 参考文档。
在大型应用程序、管道或解决方案中,对基础模型生成的内容进行后处理,以删除不需要的内容。
降低模型输出中的偏差风险
在预训练过程中,基础模型会根据某些词在训练数据中的出现方式,学习这些词跟随其他词的统计概率。 训练数据中的任何偏差都将训练到模型中。
例如,如果培训数据更频繁地将医生称为男性,将护士称为女性,那么这种偏见很可能反映在模型中这些词之间的统计关系中。 因此,该模式很可能产生更频繁地将医生称为男性,将护士称为女性的产出。 有时,人们认为算法可以比人类更公平和不偏不倚,因为算法 "只是用数学来决定"。 但是,训练数据中的偏差反映在基于该数据训练的基础模型所生成的内容中。
减少偏差的方法
基础模型是根据有偏差的数据预先训练出来的,很难对其输出结果进行去伪存真。 但是,您可以通过在提示中包含内容来消除可能适用于您的用例的偏差,从而改进结果。
例如,您可以指示模型 "列出心脏病发作症状" ,而不是指示模型 "列出心脏病发作症状,包括男性常见的症状和女性常见的症状"。