摘要:在使用提示词与大语言模型交互时的一些常见设置,包括温度(Temperature)、Top_p、最大长度(Max Length)、停止序列(Stop Sequences)、频率惩罚(Frequency Penalty)和存在惩罚(Presence Penalty
在使用提示词与大语言模型交互时的一些常见设置,包括温度(Temperature)、Top_p、最大长度(Max Length)、停止序列(Stop Sequences)、频率惩罚(Frequency Penalty)和存在惩罚(Presence Penalty)等参数的作用及调整建议,同时提醒最终结果可能因大语言模型版本而异。
Temperature 参数:值越小,模型结果越确定,适用于质量保障等任务;值调高,结果更随机,可能带来更多样化或创造性产出,如诗歌生成任务。Top_p 参数:用于控制模型返回结果的确定性,值调低可获得准确事实答案,值调高则响应更多样化,较低值会选择最有信心的响应。Max Length 参数:可控制大模型生成的 token 数,防止生成冗长或不相关响应并控制成本。Stop Sequences 参数:是阻止模型生成 token 的字符串,可控制大模型响应长度和结构。Frequency Penalty 和 Presence Penalty 参数:对重复的 token 施加惩罚,前者与 token 出现次数成比例,后者对所有重复 token 惩罚相同,一般调整其中一个参数即可。指令:想要模型执行的特定任务或指令。上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应。输入数据:用户输入的内容或问题。输出指示:指定输出的类型或格式。提示词的设计常用技巧:
从简单开始:设计提示是一个迭代过程,可从简单提示词入手,逐渐添加元素和上下文,也可将大任务分解为简单子任务,避免初始过于复杂。指令:用命令指示模型执行任务,需大量实验以确定最有效方式,指令可置于提示开头或用分隔符隔开,上下文具体且相关效果更好。具体性:提示应具体描述任务,提供示例有助于获得期望输出,但要注意长度,避免不必要细节,需通过实验优化。避免不明确:提示应具体直接,避免过于复杂或不明确的描述,说“要做什么”比“不要做什么”更有效。提示:
将文本分类为中性、负面或正面。文本:我认为这次假期还可以。情感:输出:
中性上面的提示是没有提供任何样例数据的,这样的提示就是零样本提示。
提示:
“whatpu”是坦桑尼亚的一种小型毛茸茸的动物。一个使用whatpu这个词的句子的例子是:我们在非洲旅行时看到了这些非常可爱的whatpus。“farduddle”是指快速跳上跳下。一个使用farduddle这个词的句子的例子是:输出:
当我们赢得比赛时,我们都开始庆祝跳跃。可以看到到,模型通过提供一个示例(即1-shot)已经学会了如何执行任务。对于更困难的任务,可以尝试增加演示(例如3-shot、5-shot、10-shot等)。
链式思考(CoT)提示通过中间推理步骤实现了复杂的推理能力。可以将其与少样本提示相结合,以获得更好的结果,以便在回答之前进行推理的更复杂的任务。提示:
这组数中的奇数加起来是偶数:4、8、9、15、12、2、1。A:将所有奇数相加(9、15、1)得到25。答案为False。这组数中的奇数加起来是偶数:17、10、19、4、8、12、24。A:将所有奇数相加(17、19)得到36。答案为True。这组数中的奇数加起来是偶数:16、11、14、4、8、13、24。A:将所有奇数相加(11、13)得到24。答案为True。这组数中的奇数加起来是偶数:17、9、10、12、13、4、2。A:将所有奇数相加(17、9、13)得到39。答案为False。这组数中的奇数加起来是偶数:15、32、5、13、82、7、1。A:输出:
将所有奇数相加(15、5、13、7、1)得到41。答案为False。提示:
我去市场买了10个苹果。我给了邻居2个苹果和修理工2个苹果。然后我去买了5个苹果并吃了1个。我还剩下多少苹果?让我们逐步思考。输出:
首先,您从10个苹果开始。您给了邻居和修理工各2个苹果,所以您还剩下6个苹果。然后您买了5个苹果,所以现在您有11个苹果。最后,您吃了1个苹果,所以您还剩下10个苹果。这里仅仅多了一个让我们逐步思考。就可以完成思维链的过程。
阶段1:问题聚类:将给定问题划分为几个聚类阶段2:演示抽样:从每组数组中选择一个具有代表性的问题,并使用带有简单启发式的 Zero-Shot-CoT 生成其推理链自我一致性旨在“替换链式思维提示中使用的天真贪婪解码方法”。其想法是通过少样本 CoT 采样多个不同的推理路径,并使用生成结果选择最一致的答案。这有助于提高 CoT 提示在涉及算术和常识推理的任务中的性能。
提示:
输入:希腊比墨西哥大。知识:希腊的面积约为131,957平方公里,而墨西哥的面积约为1,964,375平方公里,使墨西哥比希腊大了1,389%。输入:眼镜总是会起雾。知识:当你的汗水、呼吸和周围的湿度中的水蒸气落在冷的表面上,冷却并变成微小的液滴时,会在眼镜镜片上产生冷凝。你看到的是一层薄膜。你的镜片相对于你的呼吸会比较凉,尤其是当外面的空气很冷时。输入:鱼有思考能力。知识:鱼比它们看起来更聪明。在许多领域,如记忆力,它们的认知能力与或超过非人类灵长类动物等“更高级”的脊椎动物。鱼的长期记忆帮助它们跟踪复杂的社交关系。输入:一个人一生中吸烟很多香烟的常见影响是患肺癌的几率高于正常水平。知识:那些一生中平均每天吸烟不到一支香烟的人,患肺癌的风险是从不吸烟者的9倍。在每天吸烟1到10支香烟之间的人群中,死于肺癌的风险几乎是从不吸烟者的12倍。输入:一块石头和一颗卵石大小相同。知识:卵石是一种根据Udden-Wentworth沉积学尺度的颗粒大小为4到64毫米的岩屑。卵石通常被认为比颗粒(直径2到4毫米)大,比卵石(直径64到256毫米)小。输入:高尔夫球的一部分是试图获得比其他人更高的得分。知识:输出:
高尔夫球的目标是以最少的杆数打完一组洞。一轮高尔夫球比赛通常包括18个洞。每个洞在标准高尔夫球场上一轮只打一次。每个杆计为一分,总杆数用于确定比赛的获胜者。下一步是将知识整合并得出预测。问题重新格式化为 QA 格式,以指导答案格式。提示:
问题:高尔夫球的一部分是试图获得比其他人更高的得分。是或否?知识:高尔夫球的目标是以最少的杆数打完一组洞。一轮高尔夫球比赛通常包括18个洞。每个洞在标准高尔夫球场上一轮只打一次。每个杆计为一分,总杆数用于确定比赛的获胜者。解释和答案:答案:
不是,高尔夫球的目标不是获得比其他人更高的得分。相反,目标是以最少的杆数打完一组洞。总杆数用于确定比赛的获胜者,而不是总得分。答案的好坏其实很依赖知识的生成,如果生成错误的知识,往往答案是很容易出错的。
为了提高大语言模型的性能使其更可靠,一个重要的提示工程技术是将任务分解为许多子任务。 确定子任务后,将子任务的提示词提供给语言模型,得到的结果作为新的提示词的一部分。 这就是所谓的链式提示(prompt chaining),一个任务被分解为多个子任务,根据子任务创建一系列提示操作。
思维树(Tree of Thoughts,简称ToT)是一种利用大型语言模型进行问题解决的框架。这个框架借鉴了人类认知研究的成果,特别是关于人类在做决策时的两种思维方式:快速、自动、无意识的模式(称为“系统1”)和慢速、经过深思熟虑、有意识的模式(称为“系统2”)。ToT框架试图模仿人类的这种双重处理过程,通过在语言模型中引入更深层次的规划和搜索机制,以提高问题解决的能力。
ToT框架通过将问题解决过程表示为一棵树,其中每个节点代表问题的一部分解决方案,树枝则代表到达该节点的操作。ToT会主动维护这样一棵树,并在树上搜索不同的解决方案。这个过程涉及到以下几个关键步骤:
思维分解(Thought decomposition):将问题分解为一系列连贯的思维步骤,每个步骤都是一个语言序列,作为问题解决的中介。思维生成(Thought generator):为每个树状结构的状态生成潜在的思维步骤。状态评估(State evaluation):评估每个状态的潜在价值,作为搜索算法的启发式标准。搜索算法(Search algorithm):使用不同的搜索算法(如广度优先搜索或深度优先搜索)来探索思维树,以找到最优解决方案。ToT框架的优势在于它的通用性和模块化,它可以适应不同的问题特性、语言模型能力和资源约束。这意味着ToT可以应用于各种问题,而不需要对语言模型进行额外的训练。
尽管ToT框架有其优势,但它也可能面临一些局限性。例如,它依赖于语言模型的能力来生成和评估思维步骤,这可能受到模型本身限制的影响。此外,ToT的效率和效果可能取决于所使用的搜索算法和启发式方法的优化程度。
总的来说,思维树(Tree of Thoughts)是一种创新的框架,旨在通过模拟人类的决策过程,提高大型语言模型的问题解决能力。
该框架使用冻结的LLM自动生成包含中间推理步骤的程序,在完成任务时交替运用CoT提示和工具,具有强大且稳健的特点。工作原理
接新任务时从任务库选多步推理和工具使用示范。测试中调用外部工具时暂停生成,整合输出后继续。引导模型总结示范,拆分新任务并在合适处用工具,采用零样本形式,可手动扩展。ART 引导模型总结示范,将新任务进行拆分并在恰当的地方使用工具。ART 采用的是零样本形式。ART 还可以手动扩展,只要简单地更新任务和工具库就可以修正推理步骤中的错误或是添加新的工具。这个过程如下:
自动提示工程师 (APE)是一个用于自动指令生成和选择的框架。指令生成问题被构建为自然语言合成问题,使用 LLMs 作为黑盒优化问题的解决方案来生成和搜索候选解。
第一步涉及一个大型语言模型(作为推理模型),该模型接收输出演示以生成任务的指令候选项。这些候选解将指导搜索过程。使用目标模型执行指令,然后根据计算的评估分数选择最合适的指令。
思维链(CoT)方法依赖于一组固定的人工注释范例。问题在于,这些范例可能不是不同任务的最有效示例。为了解决这个问题,Diao 等人(2023)最近提出了一种新的提示方法,称为 Active-Prompt,以适应 LLMs 到不同的任务特定示例提示(用人类设计的 CoT 推理进行注释)。
下面是该方法的说明。第一步是使用或不使用少量 CoT 示例查询 LLM。对一组训练问题生成 k 个可能的答案。基于 k 个答案计算不确定度度量(使用不一致性)。选择最不确定的问题由人类进行注释。然后使用新的注释范例来推断每个问题。
Li 等人,(2023)提出了一种新的提示技术,以更好地指导 LLM 生成所需的摘要。
训练了一个可调节的策略 LM 来生成刺激/提示。越来越多地使用RL来优化 LLM。
下图显示了方向性刺激提示与标准提示的比较。策略 LM 可以很小,并且可以优化以生成指导黑盒冻结 LLM 的提示。
生成推理轨迹使模型能够诱导、跟踪和更新操作计划,甚至处理异常情况。操作步骤允许与外部源(如知识库或环境)进行交互并且收集信息。
ReAct 框架允许 LLMs 与外部工具交互来获取额外信息,从而给出更可靠和实际的回应。
结果表明,ReAct 可以在语言和决策任务上的表现要高于几个最先进水准要求的的基线。ReAct 还提高了 LLMs 的人类可解释性和可信度。总的来说,作者发现了将 ReAct 和链式思考 (CoT) 结合使用的最好方法是在推理过程同时使用内部知识和获取到的外部信息。
ReAct 的灵感来自于 “行为” 和 “推理” 之间的协同作用,正是这种协同作用使得人类能够学习新任务并做出决策或推理。
链式思考 (CoT) 提示显示了 LLMs 执行推理轨迹以生成涉及算术和常识推理的问题的答案的能力,以及其他任务 (Wei 等人,2022)。但它因缺乏和外部世界的接触或无法更新自己的知识,而导致事实幻觉和错误传播等问题。
ReAct 是一个将推理和行为与 LLMs 相结合通用的范例。ReAct 提示 LLMs 为任务生成口头推理轨迹和操作。这使得系统执行动态推理来创建、维护和调整操作计划,同时还支持与外部环境(例如,Wikipedia)的交互,以将额外信息合并到推理中。下图展示了 ReAct 的一个示例以及执行问题回答所涉及的不同步骤。
自我反思是一个通过语言反馈来强化基于语言的智能体的框架。根据 Shinn et al. (2023),“自我反思是一种‘口头’强化的新范例,它将策略参数化为智能体的记忆编码与 LLM 的参数选择配对。”
在高层次上,自我反思将来自环境的反馈(自由形式的语言或者标量)转换为语言反馈,也被称作 self-reflection,为下一轮中 LLM 智能体提供上下文。这有助于智能体快速有效地从之前的错误中学习,进而提升许多高级任务的性能。
如上图所示,自我反思由三个不同的模型组成:
参与者(Actor):根据状态观测量生成文本和动作。参与者在环境中采取行动并接受观察结果,从而形成轨迹。链式思考(CoT) 和 ReAct 被用作参与者模型。此外,还添加了记忆组件为智能体提供额外的上下文信息。 评估者(Evaluator):对参与者的输出进行评价。具体来说,它将生成的轨迹(也被称作短期记忆)作为输入并输出奖励分数。根据人物的不同,使用不同的奖励函数(决策任务使用LLM和基于规则的启发式奖励)。 自我反思(Self-Reflection):生成语言强化线索来帮助参与者实现自我完善。这个角色由大语言模型承担,能够为未来的试验提供宝贵的反馈。自我反思模型利用奖励信号、当前轨迹和其持久记忆生成具体且相关的反馈,并存储在记忆组件中。智能体利用这些经验(存储在长期记忆中)来快速改进决策。 总的来说,自我反思的关键步骤是a)定义任务,b)生成轨迹,c)评估,d)执行自我反思,e)生成下一条轨迹。下图展示了自我反思的智能体学习迭代优化其行为来解决决策、编程和推理等各种人物的例子。自我反思(Refelxion)通过引入自我评估、自我反思和记忆组件来拓展 ReAct 框架。
来源:ChatGPT扫地僧一点号