LangChain学习之提示工程

105 阅读4分钟

在LangChain的应用中,利用LangChain中的提示模板,做好提示工程是非常重要的一步。退一步说,即使不进行大语言模型的开发应用,了解提示工程能够更好的指引我们去使用大语言模型。

从第一性出发,我们先来回答什么是提示工程,它涉及设计和编写提示文本,以引导大型语言模型(Large Language Models, LLMs)生成符合特定要求的语言输出。提示工程可以包括选择合适的词汇、语法、上下文和主题等元素,以及使用不同的技巧和策略来影响模型的生成行为和结果。通过优化提示工程,可以使大语言模型更加准确、可控,并适应不同的任务和应用场景。根据提示工程的定义,我们自然的相信以下几个提示工程的设计策略是可靠的。

  1. 写清晰的指示
  2. 给模型提供参考(也就是示例)
  3. 将复杂任务拆分成子任务
  4. 给GPT时间思考
  5. 使用外部工具
  6. 反复迭代问题

我们进一步的给LangChain的提示工程分类,可以分为String类型和Chat类型,对应的编码为PromptTempate和ChatPromptTemplate。而FewShotPromptTemplate是比较常用的方式,在Few-Shot学习设置中,模型会被给予几个示例,以帮助模型理解任务,并生成正确的响应。

我们更进一步的学习,提示工程的思维很像一个链条,我们用思维链也就是CoT(Chain of Thought)的概念来引导模型的推理,让模型生成更详实、更完备的文案。类似的,再更进一步,我们可以想到从链条到树结构,也就是思维树ToT(Tree of Thought),其让模型生成和评估其思维的能力,并将其与搜索算法结合起来,进行系统性地探索和验证。

image.png

这种方法的优势在于,模型可以通过观察和评估其自身的思维过程,更好地解决问题,而不仅仅是基于输入生成输出。这对于需要深度推理的复杂任务非常有用。此外,通过引入强化学习、集束搜索等技术,可以进一步提高搜索策略的性能,并让模型在解决新问题或面临未知情况时有更好的表现。 下面我们应用ToT的思想,给出一个鲜花运营方面的示例。

假设一个顾客在鲜花网站上询问:“我想为我的妻子购买一束鲜花,但我不确定应该选择哪种鲜花。她喜欢淡雅的颜色和花香。”  

AI(使用ToT框架):  

思维步骤1:理解顾客的需求。

顾客想为妻子购买鲜花。

顾客的妻子喜欢淡雅的颜色和花香。  

思维步骤2:考虑可能的鲜花选择。

候选1:百合,因为它有淡雅的颜色和花香。

候选2:玫瑰,选择淡粉色或白色,它们通常有花香。

候选3:紫罗兰,它有淡雅的颜色和花香。

候选4:桔梗,它的颜色淡雅但不一定有花香。

候选5:康乃馨,选择淡色系列,它们有淡雅的花香。  

思维步骤3:根据顾客的需求筛选最佳选择。

百合和紫罗兰都符合顾客的需求,因为它们都有淡雅的颜色和花香。

淡粉色或白色的玫瑰也是一个不错的选择。

桔梗可能不是最佳选择,因为它可能没有花香。

康乃馨是一个可考虑的选择。  

思维步骤4:给出建议。

“考虑到您妻子喜欢淡雅的颜色和花香,我建议您可以选择百合或紫罗兰。淡粉色或白色的玫瑰也是一个很好的选择。希望这些建议能帮助您做出决策!”

总结来说,提示工程的核心在于,通过精心设计的输入(即提示),来引导AI模型产生最佳输出。这些输入被称为提示,编写这些提示的过程被称为提示工程。熟练的提示工程师设计的输入可以与AIGC工具中的其他输入进行最佳交互,从而从人工智能模型中得出更好的答案。提示工程不仅仅是关于设计和研发提示词,它包含了与大语言模型交互和研发的各种技能和技术。用户可以通过提示工程来提高大语言模型的安全性,也可以赋能大语言模型,比如借助专业领域知识和外部工具来增强大语言模型能力。