提示词工程师(Prompt Engineer)是在与人工智能模型交互时,负责设计和优化提示的专业人员。他们的目标是通过精心构造的提示,引导模型产生准确、有用和相关的回答。
提示词工程师的主要职责包括:
提示词工程师需要具备以下技能和知识:
以下是一些提示词工程师工作的实际案例: 在推理任务方面,目前对于大语言模型来说具有挑战性,但通过更高级的提示词工程技术可以改进。例如在涉及数学能力的推理任务中,通过设计不同的提示词和示例来展示算术功能。
在实现让 LLM 获得 tool calling 的功能方面,采用的提示词工程主要有两部分代码组成:提示词注入和工具结果回传。提示词注入用于将工具信息以及使用工具的提示词添加到系统提示中,包含 TOOL_EAXMPLE、tools_instructions、REUTRN_FORMAT 三个部分。工具结果回传则是解析 tool calling 的输出,并将工具返回的内容再次嵌入 LLM。利用正则表达式抓取输出中的“tool”和“parameters”参数,对于不同工具采用相应的处理方式。通过以上提示词工程,可以避免微调,让完全没有 tool calling 能力的 LLM 获得稳定的 tool calling 能力。
提示词工程师是一个新兴的职业,随着人工智能技术的不断发展,对提示词工程师的需求将会越来越大。
提示词工程师(Prompt Engineer)是指在与人工智能模型进行交互时,负责设计和优化提示的专业人员。他们的目标是通过精心构造的提示,引导模型产生准确、有用和相关的回答。作为提示词工程师,他们需要具备一定的领域知识、理解人工智能模型的能力以及对用户需求的敏感性。提示词工程师的主要职责包括:设计提示:提示词工程师需要根据用户需求和模型能力设计有效的提示。他们需要考虑提示的长度、结构、措辞和信息量等因素,以确保提示能够清晰地传达用户意图并引导模型生成满意的结果。优化提示:提示词工程师需要不断优化提示,以提高模型的性能。他们可以通过收集用户反馈、分析模型结果和实验不同的提示策略等方式来优化提示。评估提示:提示词工程师需要评估提示的有效性。他们可以使用各种指标来评估提示,例如模型的准确率、流畅度和相关性等。提示词工程师需要具备以下技能和知识:领域知识:提示词工程师需要对他们所工作的领域有深入的了解,以便能够设计出有效的提示。自然语言处理(NLP):提示词工程师需要了解NLP的基本原理和技术,以便能够理解和生成自然语言文本。人工智能(AI):提示词工程师需要了解AI的基本原理和技术,以便能够理解和使用AI模型。沟通能力:提示词工程师需要具备良好的沟通能力,以便能够与用户、团队成员和其他利益相关者有效沟通。提示词工程师是一个新兴的职业,随着人工智能技术的不断发展,对提示词工程师的需求将会越来越大。以下是一些提示词工程师工作的实际案例:
目前对于大语言模型来说,推理任务算是最具有挑战性的了。推理任务最让人兴奋的地方就是可以促使各种复杂的应用程序从大语言模型中诞生。目前,涉及数学能力的推理任务已经有了一些改进。对于当前的大型语言模型来说,执行推理任务可能会有一些难度,因此就需要更高级的提示词工程技术。我们会在后面的指南中介绍这些高级技术。现在,我们将介绍几个基本示例来展示算术功能。提示词输出结果来,我们加大难度:提示词输出结果这不对!我们试着用提示词去改进它:提示词输出结果好多了吧?顺便说一句,我试过几次,有时还是会失败。如果你可以用示例给模型说明一下,可能会获得更准确的结果。我们后面还会在本章节中介绍更多常见应用示例。在后面的章节,我们将介绍更高级的提示工程概念和技术,以完成更困难任务。
本文采用的提示词工程主要有两部分代码组成:提示词注入和工具结果回传。提示词注入用于将工具信息以及使用工具的提示词添加到系统提示中。工具结果回传则是解析tool calling的输出,并将工具返回的内容再次嵌入LLM。[heading2]1、提示词注入阶段[content]INSTRUCTION为最后注入到系统提示中的字符串,他又包含了TOOL_EAXMPLE、tools_instructions、REUTRN_FORMAT三个部分。TOOL_EAXMPLE用于提示LLM如何理解tool以及如何使用tool。在编写TOOL_EAXMPLE时,请注意用一些无关紧要的工具作为示例,例如本文使用的将数字加一和数字减一的工具,从而避免LLM混淆真正可以使用的工具与示例工具。tools_instructions是由目前通用的工具字典转换成LLM可读的工具列表。实际使用LLM时,可以通过输入不同的工具来动态调整tools_instructions,让LLM得知目前可用的工具有哪些以及如何使用。REUTRN_FORMAT定义了调用API的格式。[heading2]2、工具结果回传阶段[content]利用正则表达式抓取输出中的"tool"和"parameters"参数。对于interpreter工具,使用了另一种正则表达式来提取LLM输出的代码,提高LLM使用interpreter工具的成功率。本文使用代码如下:通过识别LLM返回的调用工具的字典,提取出对应的值,再传入相应的工具函数,最后将工具返回的结果以observation的角色返回给LLM。对于一些不接受observation、tool、function角色的LLM接口,可以改为回传给user角色,例如:通过以上提示词工程,可以避免微调,让完全没有tool calling能力的LLM获得稳定的tool calling能力。