跳转到主要内容

标签(标签)

资源精选(342) Go开发(108) Go语言(103) Go(99) LLM(84) angular(83) 大语言模型(67) 人工智能(56) 前端开发(50) LangChain(43) golang(43) 机器学习(40) Go工程师(38) Go程序员(38) Go开发者(36) React(34) Go基础(29) Python(24) Vue(23) Web开发(20) 深度学习(20) Web技术(19) 精选资源(19) Java(19) ChatGTP(17) Cookie(16) android(16) 前端框架(13) JavaScript(13) Next.js(12) ChatGPT(11) LLMOps(11) 聊天机器人(11) 安卓(11) 提示工程(10) typescript(10) 资料精选(10) mlops(10) NLP(10) 第三方Cookie(9) 智能体(9) Redwoodjs(9) RAG(9) Go语言中级开发(9) 自然语言处理(9) PostgreSQL(9) 区块链(9) 安全(9) 全栈开发(8) OpenAI(8) Linux(8) AI(8) GraphQL(8) iOS(8) 数据科学(8) 软件架构(7) Go语言高级开发(7) AWS(7) C++(7) whisper(6) Prisma(6) 隐私保护(6) Agent(6) JSON(6) DevOps(6) 数据可视化(6) wasm(6) 计算机视觉(6) 算法(6) Rust(6) 微服务(6) 隐私沙盒(5) FedCM(5) 语音识别(5) Angular开发(5) 快速应用开发(5) 生成式AI(5) LLaMA(5) 低代码开发(5) Go测试(5) gorm(5) REST API(5) kafka(5) 推荐系统(5) WebAssembly(5) GameDev(5) 数据分析(5) CMS(5) CSS(5) machine-learning(5) 机器人(5) 游戏开发(5) Blockchain(5) Web安全(5) nextjs(5) Kotlin(5) 低代码平台(5) 机器学习资源(5) Go资源(5) Nodejs(5) PHP(5) Swift(5) RAG架构(4) devin(4) LLM Agent(4) Blitz(4) javascript框架(4) Redwood(4) GDPR(4) 生成式人工智能(4) Angular16(4) Alpaca(4) 编程语言(4) SAML(4) JWT(4) JSON处理(4) Go并发(4) 移动开发(4) 移动应用(4) security(4) 隐私(4) spring-boot(4) 物联网(4) 网络安全(4) API(4) Ruby(4) 信息安全(4) flutter(4) MCP(3) 专家智能体(3) Chrome(3) CHIPS(3) 3PC(3) SSE(3) 人工智能软件工程师(3) Remix(3) Ubuntu(3) GPT4All(3) 模型评估(3) 软件开发(3) 问答系统(3) 开发工具(3) 最佳实践(3) RxJS(3) SSR(3) Node.js(3) Dolly(3) 移动应用开发(3) 低代码(3) IAM(3) Web框架(3) CORS(3) 基准测试(3) Go语言数据库开发(3) Oauth2(3) 并发(3) 主题(3) Theme(3) earth(3) nginx(3) 软件工程(3) azure(3) keycloak(3) 生产力工具(3) gpt3(3) 工作流(3) C(3) jupyter(3) 认证(3) prometheus(3) GAN(3) Spring(3) 逆向工程(3) 应用安全(3) Docker(3) Django(3) Machine Learning(3) R(3) .NET(3) 大数据(3) Hacking(3) 渗透测试(3) C++资源(3) Mac(3) 微信小程序(3) Python资源(3) JHipster(3) SQL(2) Apache(2) Hashicorp Vault(2) Spring Cloud Vault(2) Go语言Web开发(2) Go测试工程师(2) WebSocket(2) 容器化(2) AES(2) 加密(2) 输入验证(2) ORM(2) Fiber(2) Postgres(2) Gorilla Mux(2) Go数据库开发(2) 模块(2) 泛型(2) 指针(2) HTTP(2) PostgreSQL开发(2) Vault(2) K8s(2) Spring boot(2) R语言(2) 深度学习资源(2) 半监督学习(2) semi-supervised-learning(2) architecture(2) 普罗米修斯(2) 嵌入模型(2) productivity(2) 编码(2) Qt(2) 前端(2) Rust语言(2) NeRF(2) 神经辐射场(2) 元宇宙(2) CPP(2) spark(2) 流处理(2) Ionic(2) 人体姿势估计(2) human-pose-estimation(2) 视频处理(2) deep-learning(2) kotlin语言(2) kotlin开发(2) burp(2) Chatbot(2) npm(2) quantum(2) OCR(2) 游戏(2) game(2) 内容管理系统(2) MySQL(2) python-books(2) pentest(2) opengl(2) IDE(2) 漏洞赏金(2) Web(2) 知识图谱(2) PyTorch(2) 数据库(2) reverse-engineering(2) 数据工程(2) swift开发(2) rest(2) robotics(2) ios-animation(2) 知识蒸馏(2) 安卓开发(2) nestjs(2) solidity(2) 爬虫(2) 面试(2) 容器(2) C++精选(2) 人工智能资源(2) 备忘单(2) 编程书籍(2) angular资源(2) 速查表(2) cheatsheets(2) SecOps(2) mlops资源(2) R资源(2) DDD(2) 架构设计模式(2) 量化(2) Hacking资源(2) 强化学习(2) flask(2) 设计(2) 性能(2) Sysadmin(2) 系统管理员(2) Java资源(2) 机器学习精选(2) android资源(2) android-UI(2) Mac资源(2) iOS资源(2) Vue资源(2) flutter资源(2) JavaScript精选(2) JavaScript资源(2) Rust开发(2) deeplearning(2) RAD(2)

category

虽然设计提示没有对错之分,但您可以使用一些常见的策略来影响模型的响应。严格的测试和评估对于优化模型性能仍然至关重要。

大型语言模型(LLM)在大量文本数据上进行训练,以学习语言单元之间的模式和关系。当给出一些文本(提示)时,语言模型可以预测接下来可能会发生什么,就像一个复杂的自动补全工具。因此,在设计提示时,要考虑可能影响模型预测结果的不同因素。

提示的工程工作流程


快速工程是一个测试驱动的迭代过程,可以提高模型性能。在创建提示时,重要的是要明确界定每个提示的目标和预期结果,并对其进行系统测试,以确定需要改进的领域。

下图显示了提示工程工作流程:

提示工程工作流程图


如何创建有效的提示


提示的两个方面最终会影响其有效性:内容和结构。

内容:


为了完成任务,模型需要与任务相关的所有相关信息。此信息可以包括说明、示例、上下文信息等。有关详细信息,请参阅提示的组件。

结构:


即使在提示中提供了所有必需的信息,给出信息结构也有助于模型解析信息。排序、标签和分隔符的使用都会影响响应的质量。有关提示结构的示例,请参见示例提示模板。

提示的组成部分

 

ComponentDescriptionExample
ObjectiveWhat you want the model to achieve. Be specific and include any overarching objectives. Also called "mission" or "goal."Your objective is to help students with math problems without directly giving them the answer.
InstructionsStep-by-step instructions on how to perform the task at hand. Also called "task," "steps," or "directions."
  1. Understand what the problem is asking.
  2. Understand where the student is stuck.
  3. Give a hint for the next step of the problem.
Optional components
System instructions

Technical or environmental directives that may involve controlling or altering the model's behavior across a set of tasks. For many model APIs, system instructions are specified in a dedicated parameter.

System instructions are available in Gemini 2.0 Flash and later models.

You are a coding expert that specializes in rendering code for front-end interfaces. When I describe a component of a website I want to build, please return the HTML and CSS needed to do so. Do not give an explanation for this code. Also offer some UI design suggestions.
PersonaWho or what the model is acting as. Also called "role" or "vision."You are a math tutor here to help students with their math homework.
ConstraintsRestrictions on what the model must adhere to when generating a response, including what the model can and can't do. Also called "guardrails," "boundaries," or "controls."Don't give the answer to the student directly. Instead, give hints at the next step towards solving the problem. If the student is completely lost, give them the detailed steps to solve the problem.
ToneThe tone of the response. You can also influence the style and tone by specifying a persona. Also called "style," "voice," or "mood."Respond in a casual and technical manner.
ContextAny information that the model needs to refer to in order to perform the task at hand. Also called "background," "documents," or "input data."A copy of the student's lesson plans for math.
Few-shot examplesExamples of what the response should look like for a given prompt. Also called "exemplars" or "samples."input: I'm trying to calculate how many golf balls can fit into a box that has a one cubic meter volume. I've converted one cubic meter into cubic centimeters and divided it by the volume of a golf ball in cubic centimeters, but the system says my answer is wrong.
output: Golf balls are spheres and cannot be packed into a space with perfect efficiency. Your calculations take into account the maximum packing efficiency of spheres.
Reasoning stepsTell the model to explain its reasoning. This can sometimes improve the model's reasoning capability. Also called "thinking steps."Explain your reasoning step-by-step.
Response formatThe format that you want the response to be in. For example, you can tell the model to output the response in JSON, table, Markdown, paragraph, bulleted list, keywords, elevator pitch, and so on. Also called "structure," "presentation," or "layout."Format your response in Markdown.
RecapConcise repeat of the key points of the prompt, especially the constraints and response format, at the end of the prompt.Don't give away the answer and provide hints instead. Always format your response in Markdown format.
SafeguardsGrounds the questions to the mission of the bot. Also called "safety rules."N/A


下表显示了提示的基本和可选组件:

组件描述示例
目标您希望模型实现什么。要具体,包括任何总体目标。也称为“任务”或“目标”。你的目标是帮助学生解决数学问题,而不是直接给他们答案。
 
说明如何执行手头任务的分步说明。也称为“任务”、“步骤”或“方向”
  • 了解问题在问什么。
  • 了解学生被困在哪里。
  • 给出问题下一步的提示。
可选组件
系统说明

可能涉及控制或改变模型在一组任务中的行为的技术或环境指令。对于许多模型API,系统指令在专用参数中指定。

Gemini 2.0 Flash和更高版本的型号中提供了系统说明。

您是一位专门为前端接口渲染代码的编码专家。当我描述我想构建的网站的一个组件时,请返回所需的HTML和CSS。不要对这段代码进行解释。还提供了一些UI设计建议。
Persona模型扮演的是谁或什么。也称为“角色”或“愿景”您是这里的数学导师,帮助学生完成数学作业。
约束生成响应时模型必须遵守的限制,包括模型能做什么和不能做什么。也称为“护栏”、“边界”或“控制”。不要直接给学生答案。相反,给出解决问题的下一步的提示。如果学生完全迷路了,给他们详细的解决问题的步骤。
语气回应的语气。您还可以通过指定角色来影响风格和基调。也称为“风格”、“声音”或“情绪”。以随意和技术性的方式回应。
上下文模型需要参考的任何信息,以便执行手头的任务。也称为“背景”、“文档”或“输入数据”。学生数学课程计划的副本。
Few-shot examples对于给定的提示,响应应该是什么样子的例子.也称为“示例”或“样本”。

输入:我试图计算一个体积为一立方米的盒子里能装多少个高尔夫球。我把一立方米换算成立方厘米,然后除以高尔夫球的体积(立方厘米),但系统说我的答案是错误的。

输出:高尔夫球是球体,不能以完美的效率装入空间。您的计算考虑了球体的最大包装效率。

推理步骤告诉模型解释其推理过程。这有时可以提高模型的推理能力.也称为“思考步骤”。逐步解释你的推理。
响应格式您希望响应采用的格式。例如,您可以告诉模型以JSON、表格、Markdown、段落、项目符号列表、关键字、电梯间距等格式输出响应。也称为“结构”、“演示文稿”或“布局”。用Markdown格式化您的响应。
Recap在提示末尾简要重复提示的关键点,特别是约束和响应格式。不要泄露答案,而是提供提示。始终以Markdown格式格式化您的回复。
Safeguards保障措施将问题与机器人的任务联系起来。也称为“安全规则”N/A


根据手头的具体任务,您可以选择包含或排除一些可选组件。您还可以调整组件的顺序,并检查这如何影响响应。

示例提示模板

 

<OBJECTIVE_AND_PERSONA>
You are a [insert a persona, such as a "math teacher" or "automotive expert"]. Your task is to...
</OBJECTIVE_AND_PERSONA>

<INSTRUCTIONS>
To complete the task, you need to follow these steps:
1.
2.
...
</INSTRUCTIONS>

------------- Optional Components ------------

<CONSTRAINTS>
Dos and don'ts for the following aspects
1. Dos
2. Don'ts
</CONSTRAINTS>

<CONTEXT>
The provided context
</CONTEXT>

<OUTPUT_FORMAT>
The output format must be
1.
2.
...
</OUTPUT_FORMAT>

<FEW_SHOT_EXAMPLES>
Here we provide some examples:
1. Example #1
Input:
Thoughts:
Output:
...
</FEW_SHOT_EXAMPLES>

<RECAP>
Re-emphasize the key aspects of the prompt, especially the constraints, output format, etc.
</RECAP>


以下提示模板显示了一个结构良好的提示示例:

提示模板示例:

<OBJECTIVE_AND_PERSONA>
你是一个[插入一个角色,比如“数学老师”或“汽车专家”]。你的任务是。。。
</OBJECTIVE_AND_PERSONA>

<说明>
要完成此任务,您需要执行以下步骤:
1.
2.
...
</说明>

-------------可选组件------------

<约束>
以下方面的注意事项
1.剂量
2.不要
</约束>

<上下文>
提供的上下文
</CONTEXT>

<输出格式>
输出格式必须为
1.
2.
...
</OUTPUT_FORMAT>

<FEW_SHOT_EXAMPLES>
这里我们提供一些例子:
1.示例#1
输入:
思想:
输出:
...
</flow_SHOT_EXAMPLES>

<回顾>
再次强调提示的关键方面,特别是约束、输出格式等。
</RECAP>

最佳实践


快速设计最佳实践包括以下内容:

  • 给出清晰具体的指示
  • 包括几个镜头示例
  • 分配角色
  • 添加上下文信息
  • 使用系统说明
  • 结构提示
  • 指导模型解释其推理过程
  • 分解复杂任务
  • 参数值实验
  • 快速迭代策略


即时健康检查表


如果提示没有按预期执行,请使用以下检查表来识别潜在问题并提高提示的性能。

写作问题

  • 拼写错误:检查定义任务的关键字(例如,sumarize而不是summarize)、技术术语或实体名称,因为拼写错误可能会导致性能不佳。
  • 语法:如果一个句子难以解析,包含连读片段,主语和动词不匹配,或者在结构上感到尴尬,模型可能无法正确理解提示。
  • 标点符号:检查逗号、句号、引号和其他分隔符的使用情况,因为不正确的标点符号会导致模型误解提示。
  • 使用未定义的术语:避免使用特定领域的术语、首字母缩略词或首字母缩写,除非在提示中明确定义。
  • 清晰度:如果你发现自己对范围、要采取的具体步骤或所做的隐含假设感到疑惑,提示可能不清楚。
  • 歧义:避免使用缺乏具体、可衡量定义的主观或相对限定词。相反,提供客观的约束条件(例如,“写一个不超过3句的总结”,而不是“写一篇简短的总结”)。
  • 缺少关键信息:如果任务需要了解特定文档、公司政策、用户历史记录或数据集,请确保信息明确包含在提示中。
  • 糟糕的单词选择:检查提示中是否有不必要的复杂、模糊或冗长的措辞,因为这可能会混淆模型。
  • 二次审查:如果模型继续表现不佳,请另一个人审查您的提示。


说明和示例问题

  • 公开操纵:从提示中删除核心任务之外的语言,这些语言试图通过情感诉求、奉承或人为压力来影响绩效。虽然第一代基础模型在某些情况下显示出了改进,并给出了“如果你不正确,就会发生非常糟糕的事情”等指示,但基础模型的性能将不再提高,在许多情况下会变得更糟。
  • 指令和示例冲突:通过审核提示来检查指令或指令与示例之间的逻辑矛盾或不匹配。
  • 冗余的说明和示例:查看提示和示例,看看是否以略微不同的方式多次陈述了完全相同的说明或概念,而没有添加新的信息或细微差别。
  • 无关的说明和示例:检查所有说明和示例是否对核心任务都是必不可少的。如果可以在不降低模型执行核心任务的能力的情况下删除任何指令或示例,它们可能无关紧要。
  • 使用“少镜头”示例:如果任务很复杂,需要特定的格式,或者有微妙的语调,请确保有具体的、说明性的示例来显示示例输入和相应的输出。
  • 缺少输出格式规范:避免离开模型猜测输出的结构;相反,在您的几个镜头示例中,使用清晰、明确的指令指定格式并显示输出结构。
  • 缺少角色定义:如果要让模型扮演特定角色,请确保在系统说明中定义了该角色。

提示和系统设计问题

  • 未指定的任务:确保提示的指令为处理边缘情况和意外输入提供清晰的路径,并提供处理丢失数据的指令,而不是假设插入的数据总是存在且格式良好。
  • 模型能力之外的任务:避免使用要求模型执行已知基本限制的任务的提示。
  • 任务太多:如果提示要求模型在一次传递中执行几个不同的认知动作(例如,1。总结,2。提取实体,3。翻译,4。起草一封电子邮件),它可能试图完成太多工作。将请求分解为单独的提示。
  • 非标准数据格式:当模型输出必须是机器可读的或遵循特定格式时,使用广泛认可的标准,如JSON、XML、Markdown或YAML,这些标准可以被通用库解析。如果您的用例需要非标准格式,请考虑要求模型输出为通用格式,然后使用代码转换输出。
  • 不正确的思维链(CoT)顺序:避免提供示例,显示模型在完成逐步推理之前生成了最终的结构化答案。
  • 内部引用冲突:避免使用非线性逻辑或条件编写提示,这些逻辑或条件要求模型将提示中多个不同位置的零碎指令拼凑在一起。
  • 提示注入风险:检查是否有针对插入提示中的不可信用户输入的明确保护措施,因为这可能是一个重大的安全风险。


下一个是什么

文章链接