Prompt 设计和迭代指南

机核

  ·  

2025-03-18 10:00:00

  ·  

0次阅读

笔者从2023年OpenAI发布GPT3.5开始接触大模型,所负责的游戏领域Text-to-SQL产品在国内众多竞品中脱引而出,成功实现商业化落地。

本指南主要分享这2年Prompt设计和调试迭代实践经验(目前市面上还没有看到类似理解的文章),希望对机核社区相关从业伙伴有所帮助。

一、Prompt是什么

直观理解,提示(Prompt)是输入给大模型(LLM)的文本信息,是对大模型的指令,明确地告诉模型想要解决的问题或完成的任务,也是模型理解用户需求并生成预期结果的基础。

二、如何设计Prompt

OpenAI:Prompt engineering

Anthropic:Prompt engineering overview

阿里百炼:文生文Prompt指南

业内大家设计Prompt的结构基本变化不大,核心主要包括几部分:角色、目标、步骤、返回样式、案例(推理模型不建议使用案例)。

  • 角色:告诉大模型需要扮演的角色,比如:“作为游戏行业数据开发和数据分析专家,你非常擅长根据业务需求编写SQL进行数据提取”。
  • 目标:需要结合哪些内容做什么事情。比如:你的目标是结合"用户问题"和"行业领域知识",按以下步骤对"用户问题"进行润色处理。
  • 步骤:目标实现步骤,非常重要。明确的步骤能得到更符合预期的结果。
  • 返回样式:规定模型输出样式,考虑下游集成调用,一般返回json格式,使用三引号 json ...
  • 样例:通常few-shot(多条样例)能够让非推理模型返回更准确的结果,但是DeepSeek-R1这类带长CoT的推理模型,建议不包含任何样例。

三、如何迭代Prompt

有一定Prompt编写经验的同学可能会遇到以下疑问:

  • 模型返回的结果和预期不一致,应该从哪儿下手,好像迭代的指令加到这里也行那里也行?
  • 调来调去,怎么调试模型也不理解我的意思,应该怎么办?

先分享3个核心观点:

  • 注意力是有层次的:类比大家看一段文字,会被其中的```符号或者案例吸引,但是可能会更关注“案例”的内容,说明few-shot的注意力层次更高;
  • 不同注意力层次的迭代指令一致性是不一样的:这个也很好理解,比如我在一篇文字中将所有关键词都用```括起来,“一致性”是很高的。但是如果我想给这篇文字加上10条说明,可能它们之间就会出现“一致性冲突”的情况;
  • 一致性对模型存在影响:Prompt的内容在模型看,是高维的向量参。迭代是为了让向量越来越偏移到真实答案的向量位置。如下图所示,```迭代方向高一致,但是不一定能达到预期效果;few-shot迭代方向一致性不高,有可能可以快速达到预期效果,但是随着迭代样本越多,引发的干扰和未知性也会越大,也就是为什么few-shot一般不会有特别多条样例的原因。

因此,我们我们一般按照从左下到右上的方向迭代prompt。

四、一些有意思的实验和思考

过程中做了一些有意思的实验:

第一个实验的灵感起源于:如果我们自己去解决一个问题,可能有一些更高维的方法论或思考框架。尝试在“步骤”前面增加一个“步骤框架”,发现并没有起到正向效果。有可能是因为“步骤框架”和“步骤”在模型视角看方向一致。

第二个实验灵感来源于ToT(Tree of Thought),多个专家一起做一件事情并投票选择最优解决。100以内有一定效果,数量再多并不能产生效果了。为什么会有这个结论呢?可能和分布有关系。

第三个实验来源于SoT(Story of Thought),给定一个明确的场景。为什么这个会有正向效果,可能“场景”固定了一个高维空间,能减少向量非一致性干扰。

写在后面和参考资料

大模型刚出来,大家觉得Prompt工程是一个新的领域,OpenAI等大模型公司会发布自己Prompt工程指南,吴恩达老师也做了相关课程。

目前我的认知是:Prompt工程跟传统算法工程师的调参工作反而更接近,都是通过改变参数让模型更接近预期结果,不同的是Prompt是通过自然语言进行调参。可能不是那么重要。

如果我们把当前大模型技术下的生态位分5层:

业务理解 -> 平台开发 -> Prompt工程 -> 模型微调和强化 -> 数据集构建

核心可能在于一头一尾:

  • “如果获得更高级的业务理解”能力不必说,业务能做的事情是没有上限的。
  • “如果构建数据集”:随着今年DeepSeek-R1开源,强化学习拉高了大模型的上限,但是业内训练模型的数据集仍然更多是通识领域,仍然没有看到toB领域知识数据集构建的pipeline,是一件非常有意义的事情。

以下是参考资料,供参考:

Prompt工程指南 中包含了提示工程介绍和各种技术,比如:Few-CoT、CoT、ToT 、RAG等

Can Stories Help LLMs Reason?