这是本系列的第六篇文章,在这篇中我们需要了解并处理语言模型最为棘手的问题,也就是AI"幻觉”(Hallucination)问题。在大型语言模型和聊天机器人的世界里,"幻觉"现象指的是这些智能系统有时会基于给定的提示,创造出并不存在的信息或事实。简而言之,就是这些先进的AI在对话过程中可能会偶尔"脱轨",提供与问题无关的回答,或者讲述一些与现实不符的内容。这种现象反映了AI在理解和生成语言时,尽管它们通常表现出色,但有时仍会犯错或产生与期望不符的输出。
这种AI"说胡话"的问题大家如有关注过LLM都见过。如今,大模型厂商各显神通,幻觉缓解手段也是层出不穷。通过Prompt技术在一定程度上可以很好的缓解AI幻觉问题,尽管幻觉现阶段不能避免,但我们可以提高我们prompt技能去有效针对它。本章节将详细介绍LLM幻觉问题和Prompt应对技巧。
“幻觉”的含义是:在没有相应的外部或躯体刺激的情况下的感觉知觉,并根据其发生的感觉域进行描述。无论是否了解幻觉的本质,幻觉都可能发生。人工智能幻觉隐喻性地借鉴了这个概念,将人工智能产生的不准确信息描述为“幻觉”。
不知道大家有没有关注最近的论文,有一篇《Hallucination is Inevitable: An Innate Limitation of Large Language Models》,名为幻觉是不可避免的:大型语言模型的内在局限,这标题就已经很炸裂了:
论文表明:幻觉已经被广泛认为是大型语言模型(LLM)的一个显著缺点。到目前为止,这些努力大多是实证性的,无法回答是否可以完全消除这种现象的根本问题。在本文中表明在LLM中消除幻觉是不可能的。具体来说,我们定义了一个形式世界,其中幻觉被定义为可计算LLM和可计算地面真值函数之间的不一致。通过使用学习理论的结果,LLM不能学习所有的可计算函数,因此总是会产生幻觉。由于形式世界是更复杂的现实世界的一部分,幻觉对于现实世界LLM来说也是不可避免的。
在自然语言处理中,幻觉通常被定义为“生成的内容,这些内容与提供的源内容无关或不忠实”。文本和表示之间的编码和解码错误会导致幻觉。产生不同反应的人工智能训练也可能导致幻觉。较大的数据集可能会产生参数知识问题,如果系统对其硬连线知识过于自信,则会产生幻觉。
例如,当用户向这些大模型询问一些具有争议性或模糊性的问题时,这些模型可能会给出具有误导性的回答,这些回答可能与其训练数据中的某些特定样本有关,而并非所有情况下的准确回答。
AI出现所谓的“幻觉”,或者生成与现实不符的信息,主要是由于以下几个原因:
防止“AI幻觉”的直观方法之一是对大型语言模型进行定制化微调,但这种方法实际上与大语言模型设计的初衷——强大的泛化能力和零样本学习能力相违背。此外,微调过程本身对数据的数量和质量都有较高要求,需要进行精细的数据预处理和选择,以确保数据的有效性和与模型训练的兼容性。
而且,训练大型模型需要消耗大量的计算资源,这对于大多数开发者来说可能是一个不小的挑战。更重要的是,经过微调的模型可能在特定任务上表现得更好,但却可能牺牲了模型原有的广泛适用性,这意味着其成本效益可能不如预期。简而言之,虽然定制化微调能在一定程度上减少AI的幻觉现象,但这种做法可能会让模型失去其原有的灵活性和泛化能力,同时伴随着高昂的成本和资源消耗。
那么想要用Prompt工程来进行一定程度上的AI幻觉遏制是比较不错的策略。
在AI幻觉遏制策略下编写prompt(提示)是一种旨在最大限度减少大型语言模型(如GPT系列)生成不准确或不相关信息的方法。这种策略要求精心设计prompt,使其能够引导AI以更准确、可靠的方式响应。
提供具体、明确的指令,告诉模型你需要什么样的信息或回答。
确保在prompt中包含足够的背景信息以便模型可以理解请求的上下文。这不仅有助于模型更准确地识别问题的核心,还能够提高回答的相关性和具体性。
错误:“告诉我关于机器学习的最新研究。”
改进:“基于2023年的研究,简述机器学习在自然语言处理领域的三项最新进展。”
提出具体明确的问题可以减少模型的解释空间,从而减少产生不准确或无关信息的可能性。
错误:“机器学习是什么?”
改进:“请解释机器学习在医疗图像分析中的应用,并给出两个具体例子。”
在prompt中明确指出你希望获取信息的范围和深度,可以帮助模型更好地聚焦于问题的关键点,避免产生广泛但浅显的回答。
错误:“介绍下深度学习。”
改进:“请列出深度学习在语音识别方面的三个关键技术突破,并简要描述它们各自的技术原理。”
如果有特定的回答格式需求,应在prompt中明确指出。这可以是回答的结构(如列表、段落)、使用的语言风格(如正式、通俗)等。
错误:“讲一个科技创新的故事。”
改进:“请以列表形式列举三项2023年的重要科技创新,并对每项创新简要说明其科技价值和社会影响。”
在prompt中加入足够的背景信息,帮助模型更好地理解请求的上下文。例如,如果询问关于某一特定事件的问题,提供事件发生的时间、地点和相关背景。
错误:“解释经济衰退。”
改进:“考虑到2023年全球经济因多国政策变动而面临不确定性,解释经济衰退及其可能对中小企业的影响。”
提及具体的日期、时间段或相关事件,可以提供时间上的上下文,使AI生成的信息更加准确和及时。
错误:“讲述人工智能的发展。”
改进:“从2010年至2023年,概述人工智能在健康医疗领域的三个关键发展阶段及其影响。”
清楚地指示期望的答案形式(如案例研究、理论分析、列表等),可以进一步指导模型生成具有特定结构和内容的回答。
错误:“怎样提高工作效率?”
改进:“提供三个基于最新心理学研究的方法,说明如何通过改变工作环境来提高软件开发团队的效率。”
开放式问题鼓励模型探索多种可能的答案,而具体性则确保探索在正确的方向上进行。这种问题设计有助于获取深入、细致的信息,同时避免过于泛泛而谈的回答。
错误:“AI的未来是什么?”
改进:“在教育领域,AI在未来五年内最可能实现哪些创新?请给出具体例子并解释其潜在影响。”
通过设置特定的条件或假设场景,可以引导模型进行更有针对性的思考和分析,从而产生更加准确和丰富的内容。
错误:“描述气候变化的影响。”
改进:“如果全球温度在未来二十年内上升2度,这将如何影响南极的冰层及全球海平面?”
在问题中明确提及特定的领域知识或背景信息,可以帮助模型更好地定位答案的范围和深度,减少生成过于一般或不相关的内容。
错误:“如何提升个人健康?”
改进:“考虑到心理健康对整体福祉的重要性,哪些基于认知行为疗法的日常实践能够有效提升个人心理健康?”
较为主流的LLM模型框架设计可以基于链式思考(CoT)、思维树 (ToT)和检索增强生成 (RAG)。采取以上方法均可一定程度上极大限制AI幻觉:
数据索引——数据检索——LLM生成,整体架构如上述描述。可以通俗的来讲
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。