提示词工程师(Prompt Engineer)是在与人工智能模型交互时,负责设计和优化提示的专业人员。他们的目标是通过精心构造的提示,引导模型产生准确、有用和相关的回答。
提示词工程师的主要职责包括:
提示词工程师需要具备以下技能和知识:
以下是一些提示词工程师工作的实际案例:无需微调,仅用提示词工程就能让 LLM 获得 tool calling 的功能。其实现原理主要有两部分代码组成:提示词注入和工具结果回传。提示词注入用于将工具信息以及使用工具的提示词添加到系统提示中。工具结果回传则是解析 tool calling 的输出,并将工具返回的内容再次嵌入 LLM。
在基本概念方面,您可以通过简单的提示词获得大量结果,但结果质量与提供的信息数量和完善度有关。一个提示词可以包含传递到模型的指令、问题等信息,也可以包含上下文、输入或示例等详细信息。通过这些元素能更好地指导模型并获得更好的结果。当使用 OpenAI 的聊天模型时,可以使用 system、user 和 assistant 三个不同角色来构建 prompt,system 有助于设定 assistant 的整体行为。提示工程就是探讨如何设计出最佳提示词,用于指导语言模型高效完成某项任务。以上示例基本说明了现阶段的大语言模型能够执行各种高级任务,如文本概括、数学推理、代码生成等。
提示词工程师(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能力。
您可以通过简单的提示词(Prompts)获得大量结果,但结果的质量与您提供的信息数量和完善度有关。一个提示词可以包含您传递到模型的_指令_或_问题_等信息,也可以包含其他详细信息,如_上下文_、_输入_或_示例_等。您可以通过这些元素来更好地指导模型,并因此获得更好的结果。看下面一个简单的示例:提示词输出结果如果使用的是OpenAI Playground或者其他任何LLM Playground,则可以提示模型,如以下屏幕截图所示:需要注意的是,当使用OpenAI的gpt-4或者gpt-3.5-turbo等聊天模型时,您可以使用三个不同的角色来构建prompt:system、user和assistant。其中system不是必需的,但有助于设定assistant的整体行为,帮助模型了解用户的需求,并根据这些需求提供相应的响应。上面的示例仅包含一条user消息,您可以使用user消息直接作为prompt。为简单起见,本指南所有示例(除非明确提及)将仅使用user消息来作为gpt-3.5-turbo模型的prompt。上面示例中assistant的消息是模型的响应。您还可以定义assistant消息来传递模型所需行为的示例。您可以在[此处(opens in a new tab)](https://www.promptingguide.ai/models/chatgpt)了解有关使用聊天模型的更多信息。从上面的提示示例中可以看出,语言模型能够基于我们给出的上下文内容`"The sky is"完成续写。而输出的结果可能是出人意料的,或远高于我们的任务要求。但是,我们可以通过改进提示词来获得更好的结果。让我们试着改进以下:提示词输出结果结果是不是要好一些了?本例中,我们告知模型去完善句子,因此输出的结果和我们最初的输入是完全符合的。提示工程(Prompt Engineering)就是探讨如何设计出最佳提示词,用于指导语言模型帮助我们高效完成某项任务。以上示例基本说明了现阶段的大语言模型能够发挥的功能作用。它们可以用于执行各种高级任务,如文本概括、数学推理、代码生成等。