微信扫码
与创始人交个朋友
我要投稿
前言
许多人认为prompt就是用来和AI交互提问的方式,只要会说话就会提prompt,为什么还需要系统学习prompt呢?还整出来个“提示词工程”的专业术语,而且市面上还有不少讲AI提示词工程的书,竟然还专门设有prompt engineer的职位。难道是我自己的理解肤浅了?带着这些疑问我翻了几本市面上写prompt提示词的书,同时还学习了吴恩达的《ChatGPT Prompt Engineering for Developers》,最后在open AI 的官方文档里找到了答案。
本来想写一篇文章的,鉴于内容还是有些多,于是拆成2篇。
1. 什么是“Prompt工程”?
2. 为什么需要系统学习Prompt工程
2.1 Prompt工程的2个核心内容
为了让AI能更好的理解人类指令,Prompt工程实际上包含2层核心内容,User prompt和System prompt。然而,大多书里并没有指出这一点,它们更多是在讲基于chatGPT 用户界面使用的User prompt,却忽略了System prompt.
如果想更多的了解chatGPT 内置的system prompt,可参考:https://platform.openai.com/examples
2.2 Base LLM 和 Instruction Tuned LLM
为了区别预训练原始模型和预先定义了Prompt指令的模型,Andrew Ng.吴恩达老师在他的课程里将LLM分为这两类, Base LLM 和Instruction Tuned LLM.
在举个例子进一步说明什么是Base LLM 和Instruction Tuned LLM.
当用户提问“what is the captial of France?”的时候,
Base LLM 根据高相关性概率的回复是:What is Franc's largest city? 很显然这不符合我们的预期。
Instruction Tuned LLM 根据预定义promopt会很好的执行并回复“The capital of France is Paris.”
2.3 LLM 的Instrunction Tuning 和 Fine Tuning 的区别
看上去Instrunction Tuning和 Fine Tuning(微调)都是提升LLM模型性能的方法,但实际上是有本质区别的:
Instruction Tuning 是在模型已经训练好的基础上,通过提供具体的任务指令(prompts)和示例,进一步优化模型的工作性能,以便它更好地理解和执行不同类型的任务。这种调优方式不直接改变模型的权重参数,而是通过改进模型如何解释和响应指令来提高性能。这种方法常用于提高模型在多任务环境中的表现。
Fine Tuning是在模型基础上使用特定领域或任务的数据进行训练,从而调整模型的权重参数,使其在该特定领域或任务上表现更好。Fine Tuning涉及直接修改模型的权重参数,因此从根本上改变了模型的内部结构。这种方法常用于需要高精度、特定领域的应用。
3. Instruction Tuning 集成方法
预定义的prompt可以被写入配置文件,这些配置文件会在模型启动时加载。
在一些应用中,prompt可能会通过API调用传递给模型。
4. 定义和优化Prompt的6大策略
【I】 Write clear instructions (编写清晰的指令)
【II】 Provide reference text(提供参考资料)
在一些特定的场景和背景下用户希望AI的回答能更加贴切和准确,那么是需要在提示词中提供一些参考资料。
【III】Split complex tasks into simpler subtasks(将复杂任务拆解成更简单的子任务)
正如在软件工程中,将复杂系统分解为一系列模块化组件是一种良好的做法,提交给语言模型的任务也是如此。复杂任务的错误率往往高于简单任务。此外,复杂任务通常可以重新定义为一系列简单任务的工作流程,其中早期任务的输出用于构建后续任务的输入。
下面3条是针对长文本或者复杂业务类型(如,客户服务)对于如何提示模型的一些建议,可以参考。
【IV】Give the model time to "think" (让模型更充分的思考)
这个策略主要是按照提示词中提示的步骤或思路引导模型更好更全面的思考,而不是着急匆忙的给出一个不见的正确的答案。这么做的目的是为了让模型可以更好的完成任务。
【V】Use external tools (使用外部工具)
可以通过为模型提供其他工具的输出来弥补模型的不足。例如,文本检索系统(有时称为RAG或检索增强生成)可以向模型提供有关相关文档的信息,调用外部API,或访问其他特殊函数。
【VI】 Test changes systematically(系统地测试模型性能)
通常在写好提示词后,我们需要对写好的提示词进行调试,测试它是否按照预期来很好的完成了任务。
*Gold Standard Answer(黄金标准答案)**指的是在某一特定问题或任务中,被公认为正确和权威的答案。这些答案通常是基于广泛的专家共识或经过严格验证的事实。在评估模型输出时,可以将生成的答案与黄金标准答案进行对比,评估其准确性和完整性。可以通过模型查询来计算答案中包含多少个必需的事实。
Prompt知识补充
除了以上6大策略之外,deeplearning.AI 《ChatGPT Prompt Engineering for Developers》课程也给出了一些最佳实践。大部分和OpenAI 官网类似,大家可以参考一下这个总结。
值得一提的是,“Iterative prompt development” 是一个很好的思路,即通过迭代优化的方式来不断调整和优化prompt, 使prompt(提示词)能更好的提升模型的性能。
同时,可以使用OpenAI Evals框架进行批量测试,分析不同版本prompt的表现。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-21
致继刚,感谢你继承乔哈里视窗和提示词心法
2024-11-20
郭美青 | 从Demo到商用—构建企业级提示词工程,加速AI应用商用落地
2024-11-20
云中江树 | 重塑自然语言编程,Agent 训练的核心探索
2024-11-20
一个让AI智商暴涨300%的Prompt Engineer 万能方法论
2024-11-19
从乡下放牛娃到大厂AI顾问:我用本硕七年,重写自己的人生
2024-11-18
智能对决:提示词攻防中的AI安全博弈
2024-11-15
AI对话的日常思考:当我们在讨论提示词时,到底在纠结什么?
2024-11-14
你不需要招一个天才Prompt少年,也不需要玄幻的prompt来做开发
2024-06-29
2023-06-08
2024-08-20
2024-06-27
2024-06-14
2024-07-09
2024-07-12
2024-09-17
2024-06-26
2024-06-29