谈谈LangChain的提示工程| 豆包MarsCode AI刷题

96 阅读4分钟

LangChain是一个用于构建基于大型语言模型(LLM)的应用程序的开源框架。它通过提供一系列的工具、套件和接口,简化了LLM应用程序生命周期的各个阶段,包括开发、生产化和部署。今天具体学习了提示工程。 提示工程是一种与生成性人工智能模型交互的技术,它涉及设计和优化文本输入,以引导模型产生预期的回答或行为。以下是提示工程的一些详细介绍: 提示工程是创建文本输入的过程,这些输入能够有效地与生成性AI模型沟通。这些提示以自然语言书写,指明我们希望AI执行的任务。它们可以是简单的问题,比如请求解释数学定理,也可以是更有创造性的请求,LangChain中提供String(StringPromptTemplate)和Chat(BaseChatPromptTemplate)两种基本类型的模板,并基于它们构建了不同类型的提示模板:

image.png 我也使用了PromptTemplate进行实例演示,

image.png 这是我运用了kimi的api来写的一个生成鲜花的营销文案,我的API密钥设置在了环境变量中方便直接调用,并指定了API的基础URL。然后,定义了一个模板字符串,用于生成针对不同鲜花和价格的文案提示。接着创建了一个PromptTemplate对象,并遍历一个包含鲜花名称和价格的列表,为每种鲜花生成一个提示文本。在尝试获取模型的完成(即文案)时,因为经常请求超时或者请求频率过快,我就设置了,如果遇到请求频率超限错误,它会等待3秒后重试,直到成功为止。最后,它会打印出由模型生成的文案。

image.png 在langchain的提示方面有很多的模板还有很多的思路,最重要的FewShot的思路:

image.png 通过本章内容的学习我知道了提供示例对于解决某些任务至关重要,通常情况下,FewShot的方式能够显著提高模型回答的质量。不过,当少样本提示的效果不佳时,这可能表示模型在任务上的学习不足。在这种情况下,我们建议对模型进行微调或尝试更高级的提示技术。还学习了Chain of Thought,Few-Shot CoT

image.png 图左和图右,大模型都读入了OneShot示例,但是图左只给出了答案,而图右则在OneShot示例中给出了解题的具体思路。结果,只给出了答案的模型推理错误,而给出解题思路后,同一个模型生成了正确的答案。以下是假设我们正在开发一个AI花店助手,它的任务是帮助用户选择他们想要的花,并生成一个销售列表。在这个过程中,我们可以使用CoT来引导AI的推理过程。

image.png CoT这种思想,为大模型带来了更好的答案,然而,对于需要探索或预判战略的复杂任务来说,传统或简单的提示技巧是不够的。ToT是一种解决复杂问题的框架,它在需要多步骤推理的任务中,引导语言模型搜索一棵由连贯的语言序列(解决问题的中间步骤)组成的思维树,而不是简单地生成一个答案。ToT框架的核心思想是:让模型生成和评估其思维的能力,并将其与搜索算法(如广度优先搜索和深度优先搜索)结合起来,进行系统性地探索和验证。

image.png ToT 框架为每个任务定义具体的思维步骤和每个步骤的候选项数量。例如,要解决一个数学推理任务,先把它分解为3个思维步骤,并为每个步骤提出多个方案,并保留最优的5个候选方案。然后在多条思维路径中搜寻最优的解决方案。

  • CoT的核心思想是通过生成一系列中间推理步骤来增强模型的推理能力。在Few-Shot CoT和Zero-Shot CoT两种应用方法中,前者通过提供链式思考示例传递给模型,后者则直接告诉模型进行要按部就班的推理。
  • ToT进一步扩展了CoT的思想,通过搜索由连贯的语言序列组成的思维树来解决复杂问题。我通过一个鲜花选择的实例,展示了如何在实际应用中使用ToT框架。