AI大模型 prompt 工程指南实战

美国对全球贸易加征关税这件史诗级大事,对社会经济领域产生巨大影响,舆情的节奏也在加速震荡。一夜醒来,川建国给自己搞了个台阶,继续搞变脸戏法、实行延期大法,给软蛋们90天期限继续求他。而春江水暖鸭先知,这波震荡影响何时触底,静待相关靴子落地,仍需要一段时间。不管影响几何,闹剧何时休,本次全球经济增速减缓,大家最为看好最有潜力的增长引擎,还得是AI应用进步发展。

一、前言背景

二、message role 类型意义

2.1 role角色

2.2 message实现多轮会话记忆

2.3 prompt的核心三要素

三、prompt 提示优化技术

3.1 少样本提示

3.2 CoT(chain-of-thought) 链式思考提示

3.3 prompt chaining 链式提示-LLM的秘密

3.4 思维树ToT提示

3.5 其他prompt工程技术

四、巨人肩膀-让AI大模型生成提示词

一、前言背景

随着大模型推理能力不断增强,日常普通的应用,普通输入就可以得到较好的响应。然而在商业应用实践,对结果的确定性、专业性、稳定性等方面有极高的要求,极致的AI体验将是研发目标。

因此,研发人员在AI大模型应用实践过程中,无法避开高阶的prompt engineering。prompt涉及的内容非常多,模型参数、prompt的设计、样本提示、RAG、工具引用、响应要求、合规伦理要求等都需要考虑。今天我们尽可能整理分享实践过程中非常核心且实用的要点供大家参考。

二、message role 类型意义

在系列1 prompt部分,已经介绍过模型参数temperature、top_p、响应最大token数max length、频率惩罚frequency penalty参数、惩罚Presence Penalty等参数。

模型参数配置完成后,开始向大模型输入内容。每条内容由role+content组成。比如通过deepseek api,让大模型生成一个五子棋游戏的demo传参:

2.1 role角色

role角色它有三个可选值:

**system:**表示系统指令,通常用来传达开发者定义好的核心指令,用于当前会话,比如让大模型扮演角色的要求定义,以及控制会话行为、风格、任务,让大模型输出具有稳定性和适应特定任务的案例。但通常为非必须,此外也考虑避免注入指令攻击,影响大模型稳定性。

user: 表示用户输入的内容,通常直接作为用户消息的prompt。目前我们所输入的prompt 内容,都是在这个role=user的content内容里。在不应用system role情况下,在特定垂直领域场景通常在prompt锲入指定角色定义,帮助大模型识别任务角色定义。比如在prompt里开头(也就是用户输入内容之前)增加一段【你是一名xx人员,客户回答xx问题,采用xx风格,提供xxx信息】,然后再拼接用户输入内容,提交到大模型提问。此外,还可以在这里增加其他上下文信息,以及响应输出的要求。

assistant:是大模型回答返回的内容。

比如这个demo,大模型返回:

2.2 message实现多轮会话记忆

大模型会话请求调用是没有状态的,比如当前会话,最开头你告诉大模型你的名字,经过多次对话后,大模型依然记得你的名字,是因为背后的请求默认将messages上下文拼接发送给大模型。比如deepseek的多轮会话demo:

第二次提问最终提交给deepseek api的message就是:

2.3 prompt的核心三要素

面对较为复杂的任务场景,完整的提示词通常包括上下文背景、输入的内容、输出的指示。

上下文背景:通过介绍任务背景、相关上下文、样本案例信息,帮助大模型更专注处理响应任务。上下文越具体,数据和任务越相关,模型响应效果越好。

输入的内容:一般特指用户输入的原文内容。

输出指示:对大模型响应内容的要求、格式、字数限制等。

围绕这三要素,出现很多prompt优化技术,但更多的是在上下文背景上进行深入探索实践,并为最近输出结果质量提高保障。

三、prompt 提示优化技术

目前经过大量数据训练的LLM能够很好执行用户简单直接的prompt输入,当零样本提示效果不理想,我们可以通过给与少样本提示、或者RAG搜索增强、利用其他系统服务来给与足够上下文信息,获得理想AI效果。

3.1 少样本提示

少样本提示,就是在真正提问之前,提供一段示例样本,供大模型推理参考。比如:

3.2 CoT(chain-of-thought)链式思考提示

由于之前低版本的大模型推理能力相对较弱,面对一下复杂的算术、符号、常识的推理,即使提供少量样本提示,响应并不可靠和稳定。这时候可以提供CoT 链式思考,让大模型学习正确的思维链去处理解决特定任务。

链式思考提示,实际就是在少样本提示内容里,增加人类思考或者解决方案内容过程。

比如算术推理题,在prompt里给了思考推理模板,最终大模型也参考改思维链去推理,得到正确答案:

而对于普通的算术推理,目前的deepseek可以自行思考,最终给出正确的推理答案。

链式思考提示,里面又有零样本CoT提示、自动思维链Auto-CoT提示。

零样本的CoT,简洁到不提供思考样本,只在问题末尾新增一句话:【xxx,让我们逐步思考 or 请一步一步地思考,or let us think step by step】。

自动思维链,面对复杂任务的时候,会先将问题分类,然后选择具有代表性的问题,通过使用零样本CoT提示,去生成推理链。

3.3 prompt chaining 链式提示-LLM的秘密

在一些复杂任务场景,比如文档总结、摘要提取、文章引用等任务,我们要求知道大模型结果响应的依据,prompt chaining就是一个很实用的技术。

链式提示核心主要分两步,第一步分解任务,第二步根据子任务去构建最终的提示prompt。

比如知识库AI,基于已有的文档或者私域数据进行回答问题。prompt的设计,就可以分两步:

1、【你是一个百科全书助手,你的任务是根据知识库回到问题。第一步从知识库里提取与问题相关的知识作为引文,请用'括起来引文列表。】

2、根据第一步得到的引用列表(xx具体引文列表),和原始知识库,对用户xx输入问题进行回答,请xx..

链式提示背后实现,就好比大模型的思考的秘籍,可以减少幻觉,提高结果的可解释性。这个链式提示,和现在的RAG实现思路有异曲同工之妙。

3.4 思维树ToT提示

对于需要深度探索、预测分析、推理计算设计的复杂任务,传统提示技巧难以得到满意响应。思维树tree of thoughts框架提示,引导AI模型把思维作为解决复杂问题的中间步骤,让大模型可以对自己的推理过程进行评估调整。

思维树的核心原理,本质是通过多轮对话搜索形式,增强LLM解决问题的能力。而每一轮对话,都进行评估,并向前尝试验证局部解,并抽样得到评估结果,通过多轮探索继续向前或者回溯验证,得到最终结果。

对于ToT提示法,hulbert将ToT的框架概括成了一段简短的提示词,可以直接参考指导LLM在推理过程对中间思维进行评估:

【假设三位不同的专家来回答这个问题。

所有专家都写下他们思考这个问题的第一个步骤,然后与大家分享。

然后,所有专家都写下他们思考的下一个步骤并分享。

以此类推,直到所有专家写完他们思考的所有步骤。

只要大家发现有专家的步骤出错了,就让这位专家离开。

请问...】

3.5 其他prompt工程技术

在AI大模型实践过程中,除了直接在prompt输入进行优化,最终目标都是引导LLM向人类专家智脑一样解决复杂问题。而专家解决问题的方式有非常多种,这也就可以衍生非常多种prompt工程框架。

比如RAG、function call、React、ART等技术。

四、巨人肩膀-让AI大模型生成提示词

在AI时代,一切都可以AI。prompt提示工程方法框架众多,如果自己的选择和尝试没有得到理想结果,我们还可以让大模型帮我们生成多个提示词,并从中评估选择最优提示词模板,解决业务问题。

比如deepseek 提供一个提示词生成demo案例:

相关推荐
周末程序猿19 分钟前
机器学习|MCP(Model Context Protocol)实战
人工智能·机器学习·mcp
muxue17829 分钟前
go:实现最简单区块链
开发语言·后端·golang
编程毕设1 小时前
【开题报告+论文+源码】基于SpringBoot+Vue的招聘管理系统的设计与实现
vue.js·spring boot·后端
Asthenia04121 小时前
DNS 污染是什么?原理、影响与应对
后端
谦行1 小时前
前端视角 Java Web 入门手册 5.2:真实世界 Web 开发——Spring Boot 应用启动流程
java·后端
Asthenia04121 小时前
RocketMQ 消息积压怎么处理?
后端
谦行1 小时前
使用 MCP 让企业 Coding 十倍提效
ai编程·mcp
风象南2 小时前
SpringBoot中的4种重试机制实现方案
java·spring boot·后端
Asthenia04128 小时前
为什么说MVCC无法彻底解决幻读的问题?
后端
Asthenia04128 小时前
面试官问我:三级缓存可以解决循环依赖的问题,那两级缓存可以解决Spring的循环依赖问题么?是不是无法解决代理对象的问题?
后端