微信扫码
与创始人交个朋友
我要投稿
在设计 Prompt 时,给予 LLMs 充足的推理时间非常重要。LLMs 与人一样,需要时间来思考并解决复杂问题。如果让 LLMs 匆忙给出结论,其结果很可能不准确。例如,若要 LLMs 推断一本书的主题,仅提供简单的书名和一句简介是不足够的。这就像让一个人在极短时间内解决困难的数学题,错误在所难免。
相反,我们应通过 Prompt 指引 LLMs 进行深入思考。在 Prompt 中添加逐步推理的要求,能让 LLMs 投入更多时间逻辑思维,输出结果也将更可靠准确。
举个例子,假设我们要 LLMs 判断一个数学问题的解答是否正确。仅仅提供问题和解答是不够的,LLMs 可能会匆忙做出错误判断。
相反,我们可以在 Prompt 中先要求语言模型自己尝试解决这个问题,思考出自己的解法,然后再与提供的解答进行对比,判断正确性。这种先让 LLMs 自主思考的方式,能帮助它更深入理解问题,做出更准确的判断。
我们给出一个问题和一份来自学生的解答,要求 LLMs 判断解答是否正确:
prompt = f"""
判断学生的解决方案是否正确。
问题:
我正在建造一个太阳能发电站,需要帮助计算财务。
土地费用为 100美元/平方英尺
我可以以 250美元/平方英尺的价格购买太阳能电池板
我已经谈判好了维护合同,每年需要支付固定的10万美元,并额外支付每平方英尺10美元
作为平方英尺数的函数,首年运营的总费用是多少。
学生的解决方案:
设x为发电站的大小,单位为平方英尺。
费用:
土地费用:100x
太阳能电池板费用:250x
维护费用:100,000美元+100x
总费用:100x+250x+100,000美元+100x=450x+100,000美元
"""
response = get_completion(prompt)
print(response)
输出:
学生的解决方案是正确的。他正确地计算了土地费用、太阳能电池板费用和维护费用,并将它们相加得到了总费用。
但是注意,学生的解决方案实际上是错误的。(_维护费用项100x应为10x,总费用450x应为360x_)
我们通过指导 LLMs 先自行找出一个解法来解决这个问题。
在这个 Prompt 中,要求模型先自行解决这个问题,再根据自己的解法与学生的解法进行对比,从而判断学生的解法是否正确。同时,我们给定了输出的格式要求。通过拆分任务、明确步骤,让模型有更多时间思考,有时可以获得更准确的结果。在这个例子中,学生的答案是错误的,但如果我们没有先让 LLMs 自己计算,那么可能会被误导以为学生是正确的。
prompt = f"""
请判断学生的解决方案是否正确,请通过如下步骤解决这个问题:
步骤:
首先,自己解决问题。
然后将您的解决方案与学生的解决方案进行比较,对比计算得到的总费用与学生计算的总费用是否一致,并评估学生的解决方案是否正确。
在自己完成问题之前,请勿决定学生的解决方案是否正确。
使用以下格式:
问题:问题文本
学生的解决方案:学生的解决方案文本
实际解决方案和步骤:实际解决方案和步骤文本
学生计算的总费用:学生计算得到的总费用
实际计算的总费用:实际计算出的总费用
学生计算的费用和实际计算的费用是否相同:是或否
学生的解决方案和实际解决方案是否相同:是或否
学生的成绩:正确或不正确
问题:
我正在建造一个太阳能发电站,需要帮助计算财务。
- 土地费用为每平方英尺100美元
- 我可以以每平方英尺250美元的价格购买太阳能电池板
- 我已经谈判好了维护合同,每年需要支付固定的10万美元,并额外支付每平方英尺10美元;
作为平方英尺数的函数,首年运营的总费用是多少。
学生的解决方案:
设x为发电站的大小,单位为平方英尺。
费用:
1. 土地费用:100x美元
2. 太阳能电池板费用:250x美元
3. 维护费用:100,000+100x=10万美元+10x美元
总费用:100x美元+250x美元+10万美元+100x美元=450x+10万美元
实际解决方案和步骤:
"""
response = get_completion(prompt)
print(response)
输出:
实际解决方案和步骤:
1. 土地费用:每平方英尺100美元,所以总费用为100x美元。
2. 太阳能电池板费用:每平方英尺250美元,所以总费用为250x美元。
3. 维护费用:固定费用为10万美元,额外费用为每平方英尺10美元,所以总费用为10万美元+10x美元。
4. 总费用:将上述三项费用相加,得到总费用为100x美元+250x美元+10万美元+10x美元=360x+10万美元。
学生计算的总费用:450x+10万美元
实际计算的总费用:360x+10万美元
学生计算的费用和实际计算的费用是否相同:否
学生的解决方案和实际解决方案是否相同:否
学生的成绩:不正确
给予 LLMs 充足的推理时间,是 Prompt Engineering 中一个非常重要的设计原则。这将大大提高LLMs 处理复杂问题的效果,也是构建高质量 Prompt 的关键之处。开发者应注意给 LLMs 留出思考空间,以发挥 LLMs 的最大潜力。
关于更多提示工程请参考吴恩达老师的课程:Short Courses | Learn Generative AI from DeepLearning.AI
Chain-of-Thought(CoT) 是一种改进的 Prompt 技术,目的在于提升 LLMs 在复杂推理任务上的表现,如算术推理(arithmetic reasoning)、常识推理(commonsense reasoning)、符号推理(symbolic reasoning)。思维链(CoT)是一种用于设计 Prompt 的方法,即 Prompt 中除了有任务的输入和输出外,还包含推理的中间步骤(中间思维)。研究表明,CoT 能极大地提升 LLMs 的能力,使之无需任何模型更新便能解决一些难题。
引入思维链(CoT)提示通过中间推理步骤实现了复杂的推理能力。可以将其与少样本提示相结合,以获得更好的结果,以便在回答之前进行推理的更复杂的任务。
思维链(CoT)提示有几个吸引人的特性,作为促进 LLMs 推理的方法。
基本上涉及将“让我们逐步思考”添加到原始提示中。尝试一个简单的问题,看看模型的表现如何:
输入:
我去市场买了10个苹果。我给了邻居2个苹果和修理工2个苹果。然后我去买了5个苹果并吃了1个。我还剩下多少苹果?
输出:
11个苹果
答案是不正确的!现在让我们尝试使用特殊提示——“让我们逐步思考”。
输入:
我去市场买了10个苹果。我给了邻居2个苹果和修理工2个苹果。然后我去买了5个苹果并吃了1个。我还剩下多少苹果?
让我们逐步思考。
输出:
首先,您从10个苹果开始。
您给了邻居和修理工各2个苹果,所以您还剩下6个苹果。
然后您买了5个苹果,所以现在您有11个苹果。
最后,您吃了1个苹果,所以您还剩下10个苹果。
当使用思维链提示时,这个过程需要手工制作有效且多样化的例子。这种手动工作可能会导致次优解决方案。Auto-CoT 提出了一种消除人工的方法,即利用 LLMs “让我们一步一步地思考” 提示来生成一个接一个的推理链。这种自动过程仍然可能在生成的链中出现错误。为了减轻错误的影响,示例的多样性很重要。通过对具有多样性的问题进行采样,并生成推理链来构建示例。
Auto-CoT 主要由两个阶段组成:
简单的启发式方法可以是问题的长度(例如,60 个 tokens)和理由的步骤数(例如,5 个推理步骤)。这鼓励模型使用简单而准确的示例。
该过程如下图所示:
LLMs 的任务规划能力是指其能够根据给定的任务和目标,自动生成一系列合理的步骤和计划,以完成任务。这需要 LLMs 具备对任务的理解、对环境的感知、对资源的管理和对行动的预测等多方面的能力。
LLMs 的 planning 能力具有很多价值:
遇到一个复杂的问题,通常首先是进行任务分解,把一个大的问题分解成一个个小问题,再针对每个问题进行问题解决。问题解决过程中,总是难免会遇到各种错误,一旦错误发生,首先是对这个错误进行反思,然后思考下一步如何解题。
检索增强思维 (RAT) 方法结合了 RAG 和 CoT 的优势,利用从外部来源检索相关信息的能力,同时鼓励 LLMs 通过思维链明确阐明其推理过程技术。
RAT的实施通常遵循以下步骤:
通过将 RAG 的检索功能与 CoT 的显式推理过程相结合,RAT 方法旨在减轻 LLMs 输出中有时可能出现的幻觉和事实不一致。检索到的信息作为基础机制,为 LLMs 提供相关上下文和事实知识以纳入其推理过程,而思想链提示则确保推理过程透明且可以细化或纠正如所须。
免费领取:? 知乎大模型免费公开课
参考资料:
Short Courses | Learn Generative AI from DeepLearning.AI (https://www.deeplearning.ai/short-courses/)
Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (https://arxiv.org/pdf/2201.11903.pdf)
Large Language Models are Zero-Shot Reasoners (https://arxiv.org/abs/2205.11916)
Automatic Chain of Thought Prompting in Large Language Models (https://arxiv.org/abs/2210.03493)
GitHub:Auto-CoT (https://github.com/amazon-science/auto-cot)
???求关注哈???
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-04-26
2024-05-10
2024-04-12
2024-05-28
2024-05-14
2024-04-25
2024-07-18
2024-04-26
2024-05-06
2024-12-22
2024-12-21
2024-12-21
2024-12-21
2024-12-21
2024-12-20
2024-12-20
2024-12-19