兰州企业网站排名优化,郑州量站站软件开发有限公司,邯郸网站建设网站开发,媒体发稿平台Prompt工程与实践
一、Prompt与大模型
1.1 大模型的定义
大模型本质上就是一个概率生成模型#xff0c;该模型的模型参数足够大#xff0c;并且在训练过程中阅读了非常多的各个领域的语料。这个时候#xff0c;如果通过一个正确的、有效的指令去引导这个模型#xff0c;…
Prompt工程与实践
一、Prompt与大模型
1.1 大模型的定义
大模型本质上就是一个概率生成模型该模型的模型参数足够大并且在训练过程中阅读了非常多的各个领域的语料。这个时候如果通过一个正确的、有效的指令去引导这个模型就能够生成我们想要的内容。
1.2 大模型的用途
信息抽取
将长段文字提取出结构化信息
信息检索
通读结果并根据你的查询生成针对性的回答
对话系统
根据制定规则进行对话
辅助开发
辅助编写代码降低门槛
Agent
Agent模型加上外围的技术架构可以让大模型去完成一个具体的任务将任务背后的若干个工作都做好。 其中的智能工单系统就一边跟你沟通一边去调用后端的一些接口将自身的诉求下发到接口里帮助你直接去问完成。比如说智能导购系统通过我们在前端构建一个用户和这个机器的一个聊天的一个交互的界面然后在背面我们把更多丰富的像商品搜索的接口、下订单的接口都连接起来让用户和模型在对话的过程中执行各种后端的工具完成一个闭环的完整任务。
Agent的价值就是模型可以充分利用多个API换而言之每个人都可以构建一个垂直领域的Agent的机器人然后调用平台各种开发的工具完成自己想让他完成的一个特定领域的任务。 预训练环节是模型厂商会大量做的工作目的是让模型具备一个基础的智能然后它可以面对各行各业的问题能够有一个比较好的基础的认知能够去分析、推理。进一步到了这个具体的场景当中我们可以通过微调和指令工程这俩个方式然后去调用大模型的能力去解决具体的业务问题。特别是微调这个环节可以使用较多的监督性语料从而去改变模型的参数使其在这个具体的事情上做得更加充分。
对于指令工程我们要考虑**如何用工程化的方式写好一个指令**它没有特别多的模板更多的是一些指导性的思路。我个人的建议是**写好一个Prompt在刚接触的情况下可以先基于一些基本的框架进行套用结合原理以及一些指导性的思路对指令进行添加和改写。**如果在可以的情况下可以预先准备好数据集包含了Input、Output、Output tips、Reason等等部分并且不断地通过LLM的反馈来进一步修正Prompt。
二、Prompt框架
不同的任务类型对应不同的Prompt框架不同的Prompt框架对应不同的思考逻辑每个框架都有自身适合的场景。
2.1 CO-STAR框架
介绍
CO-STAR Framework是最新一届的新加坡政府举办的Prompt工程大赛的冠军选手的框架可以予以借鉴。
如何应用CO-STAR框架
·©上下文为任务提供背景信息通过为大语言模型(LLM)提供详细的背景信息可以帮助它精确理解讨论的具体场景确保提供的反馈具有相关性。 ·(O)目标明确你要求大语言模型完成的任务 清晰地界定任务目标可以使大语言模型更专注地调整其回应以实现这一具体目标 ·(S)风格明确你期望的写作风格 你可以指定一个特定的著名人物成某个行业专家的写作风格。如商业分析师或CEO。这将指导大语言模型以一种符合你需求的方式和词汇选择进行回应。 ·(T)语气设置回应的情感调 设定话当的语气确保大语言模型的回应能够与预测的情感或情绪背景相协调。可能的语气包括正式、幽默、富有同情心等。 ·(A)受众识别目标受众 针对特定受众定制大语言模型的回应无论是领域内的专家初学者还是儿童都能确保内容在特定上下文中适当且容易理解。 ·®响应规定输出的格式 确定输出格式是为了确保大语言模型按照你的具体需求进行输出便于执行下游任务。常见的格式包括列表、JSON格式的数据、专业报告等。对于大部分需要程序化处理大语言模型输出的应用来说JSON格式是理想的选择。
2.2 其他框架 ICIO框架
将指令的内容分为四个部分第一部分是介绍角色、任务和背景知识第二部分是给出执行的步骤、思维链、样例数据第三部分是给出输入数据第四部分是给出输出的定义和指引。
LangGPT
这个框架更偏向开发给了很多的细节要求里面有一部分涉及到洞察力比如说工程师需要自行判断这个指令的目标用户是什么因此写指令不仅需要我们的逻辑能力也需要我们的产品能力。
三、Prompt原则
3.1 清晰明确 可以考虑将我的理想输出内容细化为多个部分限定字数来使其更加清晰明确。
3.2 给模型思考的空间和路径 将模型做这件事情的思考过程尽可能地讲清楚比如说在标黄的三部分对开头、主体和结尾三大部分给模型一个具体的思考逻辑。写好一个指令的前提是需要有一个清晰的目标有些问题可能比较有难度光给他目标也不够此时就应该附加一些具体的思考逻辑和路径。
四、Prompt的指导性思路
4.1 Few Shot 给出示例来解释内容
Few Shot其实是一个Context Learning的思路通过说不改变模型的思路仅仅通过指令的上下文窗口去调优模型生产内容提供一些示例让模型自己去学。
4.2 COT(Chain Of Thought)
让其输出思考过程将COT量化出来提升模型输出的准确性。 进一步强化的话可以给一些具体的COT的示例。
4.3 Temperature
temperature用于控制模型输出内容的多样性。temperature越低内容越稳定temperature越高内容越多样。
利用指令追求正确性的过程中大模型的创造性在很多场景对于一些难题或者一些需要创造性答案的题很有帮助。 4.4 top_p
top_p影响每次输出选词集中的程度。
top_p越低选词词数越集中top_p越高选词词数越发散。 4.5 Tree Of Thought
将任务拆分为多个子任务再通过不同的Prompt指令进行实现。 4.6 Agent
此处我们以定义一个智能客服的Agent为例。
第一部分我要在其中定义好工具对于一个智能客服我们需要定义像订单情况的查询天气的查询计算器政策赔偿查询等等。第二部分是我要告诉指令你该怎么去做思考遇到每个工具返回的过程性结果应该如何去做思考第三部分是对于每个思考都需要有具体的行动和调用的工具最终得到Final Action做出行动。
Agent的明显优势就是能够独立完成一个完整的任务这对Prompt工程设计的要求程度更高我们至少要定义清楚这个工具的用途以便让模型知道应该调用哪个工具并且需要告诉模型在这个场景下应该去如何拆解任务。因此大家可以看到随着模型能力的不断增强指令在这其中发挥的作用只会越来越大。
五、Prompt Engineering是什么
迭代没有人能直接写出100分的指令评测像训练算法模型一样优化你的指令
我们需要通过评测集对指令不断地去调优判断该指令是否能够放到生产环境中去用。
六、调优Prompt
Prompt的调优一般从内容和结构两个方面进行入手。
6.1 从内容上调优指令
角色迭代
告知大模型他应该扮演的角色例如你是口语对话教练
任务迭代
对于指令中的关键动作尝试不同的近义词或其他相近的描述来提升准确性。 避免负向指令通过更换概念等方式尽量告诉模型应该输出什么。 逻辑完备避免在无的时候大模型自由发挥、臆造信息。 Few Shot迭代 使添加的样例比例更加均匀。
6.2 从结构上迭代指令
分隔符将文本上下文、不同的知识模块做分隔避免无关知识模块的影响。 分条目 顺序
先输出的内容会影响后输出的内容。可尝试不同的顺序避免提取项之间的干扰找到最佳的提取效果。 嵌套
对于每一个要求尽量让模型都独立的做出判断 位置
指令的首部和尾部的指令遵循效果较好适当的调整位置 七、指令工程实战
7.1 用户情绪识别
1.增加COT告知思考过程是如何判断正向还是负向的 2.将具体的细节表述得更清晰 3.在正向、负向、中性情绪的判断增加一些Few Shot 4.对输出的格式进行强约束 给文章打分(从文章中抽取信息) 赋予角色添加修辞关键特征、分析原因 加示例、引号强调 增添一些反面示例