自去年7月开始,我们已经做过了超10场与Prompt提示工程相关的公益沙龙。内容迭代多次,此次应邀学员们需求,做一个完整汇总。
本次课程文章共有7篇,参考资料均来自于github上优质项目中的提示话术,课程会不断完善
提示工程(Prompt Engineering)是一个相对较新的领域,专注于开发和优化提示,以便有效地使用语言模型(LMs)来处理各种应用和研究主题。提示工程技能有助于更好地理解大型语言模型(LLMs)的能力和局限性。研究人员使用提示工程来提高LLMs在广泛常见和复杂任务(如问答和算术推理)上的能力。开发者使用提示工程来设计与LLMs和其他工具接口的稳健且有效的提示技术。本指南涵盖了标准提示的基础知识,以提供如何使用提示与大型语言模型(LLMs)进行交互和指导的基本概念。去年我们主要教程案例是基于ChatGPT 3.5版本来实操,今年国内厂商的免费版本服务也已基本达到3.5版本效果,并且对中文等本土化优化体验更佳,所以我们也会同步在国内模型上做实操。国内模型我们使用比较多的有:通义千问、kimi、deepseek、tigerbot、讯飞星火等。
大语言模型最厉害的地方在于实现了通用自然语言处理的丝滑性,我们可以使用提示实现很多功能,但结果的质量取决于您提供给它的信息量。提示可以包含信息,如您传递给模型的指令或问题,并包括其他详细信息,如输入或示例。以下是一个基本提示的简单示例:_提示_
The sky is输出:
blue
The sky is blue on a clearday. On a cloudy day, thesky may be gray or white.正如您所见,语言模型输出了与上下文“The sky is”相符的字符串的延续。输出可能与我们所期望的任务相去甚远。这个基本示例也强调了提供更多上下文或指令的必要性,以明确我们具体想要实现的目标。让我们尝试改进一下:_提示:_
Complete the sentence:
The sky is输出:
so beautiful today.这样更好吗?我们告诉模型完成句子,所以结果看起来好多了,因为它完全按照我们告诉它做的去做(“完成句子”)。这种设计最佳提示以指导模型执行任务的方法就是所谓的提示工程。上面的例子只是今天大型语言模型(LLMs)可能实现的基本示例。今天的LLMs可以执行各种高级任务,从文本摘要到数学推理到代码生成。
在处理提示时,您将通过API或直接与LLM进行交互。您可以配置几个参数来为您的提示获得不同的结果。温度(Temperature)- 简而言之,温度越低,结果越确定,因为总是选择概率最高的下一个令牌。增加温度可能会导致更多的随机性,鼓励更多样化或创造性的输出。我们实际上是在增加其他可能令牌的权重。就应用而言,对于事实性的QA,我们可能希望使用较低的温度来鼓励更事实性和简洁的响应。对于诗歌生成或其他创意任务,提高温度可能是有益的。Top_p- 同样,使用温度采样技术称为核采样(nucleus sampling),您可以控制模型在生成响应时的确定性。如果您正在寻找确切和事实性的答案,请保持较低的值。如果您正在寻找更多样化的响应,请增加到更高的值。一般建议是更改一个,而不是两个。在开始一些基本示例之前,请记住,使用LLM的版本不同,结果可能会有所不同。
我们尝试了一个非常简单的提示。标准提示的格式如下:
<Question>?这可以格式化为QA格式,这在很多QA数据集中很常见,如下所示:
Q: <Question>?
A:根据上述标准格式,一种流行的有效提示技术称为少样本提示(few-shot prompting),其中我们提供示例。少样本提示可以格式化为如下:
<Question>?
<Answer>
<Question>?
<Answer>
<Question>?
<Answer>
<Question>?您可以猜到,其QA格式版本如下所示:
Q: <Question>?
A: <Answer>
Q: <Question>?
A: <Answer>
Q: <Question>?
A: <Answer>
Q: <Question>?
A:请记住,不一定非要使用QA格式。格式的选择取决于任务本身。例如,您可以执行一个简单的分类任务,并提供示例来演示任务,如下所示:_提示:_
This is awesome! // Positive
This is bad! // Negative
Wow that movie was rad! //Positive
What a horrible show! //输出:
Negative少样本提示允许模型在仅提供几个示例的情况下进行学习,即上下文学习。我们将在后续的指南中看到更多这方面的内容。
随着我们介绍更多可能的提示工程示例和应用,您会发现构成提示的某些元素。提示可以包含以下任何组件:Instruction指令- 您希望模型执行的特定任务或指令Context上下文- 可以涉及外部信息或其他上下文,这些信息可以引导模型给出更好的响应Input Data输入数据- 是我们感兴趣的输入或问题,我们希望找到响应Output Indicator输出指示器- 指示输出类型或格式并非所有组件都是提示所必需的,格式取决于任务本身。我们将在后续的指南中介绍更多具体的例子。
在设计提示时,请记住,这是一个需要大量实验才能获得最佳结果的迭代过程。使用OpenAI的或Cohere的简单游乐场是一个很好的起点。您可以从简单的提示开始,并随着您追求更好的结果而添加更多元素和上下文。在此过程中对提示进行版本控制至关重要。正如您在阅读本指南时所见,通常,具体性、简洁性和简洁性会为您带来更好的结果。当您有一个涉及许多不同子任务的大任务时,您可以尝试将任务分解为更简单的子任务,并随着您获得更好的结果而逐步构建。这样可以避免在提示设计过程中一开始就增加太多复杂性。
您可以使用命令来指示模型您想要实现的目标,从而为各种简单任务设计有效的提示,例如“Write”、“Classify”、“Summarize”、“Translate”、“Order”
等。
请记住,您还需要进行大量实验以查看什么效果最好。尝试使用不同的指令、不同的关键词、上下文和数据,看看什么最适合您的特定用例和任务。通常,上下文与您尝试执行的任务越相关,效果就越好。我们将在后续的指南中讨论采样和添加更多上下文的重要性。其他人建议将指令放在提示的开头。还建议使用一些明显的分隔符(如“###”)来分隔指令和上下文。例如:_提示:_
### 指令 ###
将下面的文本翻译成西班牙语:
文本:“hello!”输出:
Hola!关于您希望模型执行的指令和任务,请务必非常具体。提示越详细、描述性越强,结果就越好。当您寻求特定的输出结果或生成风格时,这一点尤为重要。没有特定的令牌或关键词可以带来更好的结果。更重要的是要有良好的格式和描述性提示。在提示中提供示例对于获得特定格式的期望输出非常有效。在设计提示时,您还应考虑提示的长度,因为在这方面存在限制。考虑您应该有多具体和详细是您需要考虑的问题。不必要的细节过多并不一定是一个好方法。细节应该是相关的,并有助于当前的任务。您需要进行大量实验。我们鼓励您进行大量实验和迭代,以优化提示以满足您的应用需求。例如,让我们尝试一个简单的提示,从一段文本中提取特定信息。_Prompt:_
Extract the name of places inthe following text.
Desired format:
Place: <comma_separated_list_of_places>
Input: "Although thesedevelopments are encouragingto researchers, much is stilla mystery. “We often have ablack box between the brainand the effect we see in theperiphery,” says HenriqueVeiga-Fernandes, aneuroimmunologist at theChampalimaud Centre for theUnknown in Lisbon. “If we wantto use it in the therapeuticcontext, we need to understandthe mechanism."Output:
Place: Champalimaud Centrefor the Unknown, Lisbon考虑到上述关于详细性和改善格式的提示,很容易陷入想要在提示上过于聪明的陷阱,并可能创建不精确的描述。通常最好具体和直接。这里的类比与有效沟通非常相似——越直接,信息传达得越有效。例如,您可能对了解提示工程的概念感兴趣。您可能会尝试以下方法:
解释提示工程的概念。请简短解释,只用几句话,不要过于详细。从上面的提示不清楚应该使用多少句子以及应该采用什么风格。您仍然可能使用上述提示得到相当好的响应,但更好的提示应该是非常具体、简洁和切中要点的。例如:
用2-3句话向高中生解释提示工程的概念.在设计提示时,另一个常见提示是避免说不要做什么,而是说应该做什么。这鼓励了更多的具体性和专注于导致模型产生良好响应的细节。以下是一个电影推荐聊天机器人失败的例子,因为我写的指令——专注于不应该做什么。_提示:_
以下是一个向客户推荐电影的代理。不要询问兴趣。不要询问个人信息。
客户:请根据我的兴趣推荐一部电影。
代理:输出:
当然,我可以根据您的兴趣推荐一部电影。您想看哪种类型的电影?您喜欢动作片、喜剧片、爱情片还是其他类型的?以下是更好的提示:_提示:_
以下是一个向客户推荐电影的代理。代理负责从全球最受欢迎的电影中推荐一部电影。它应该避免询问用户的偏好,避免询问个人信息。如果代理没有电影推荐,它应该回答“对不起,今天找不到电影推荐。”。
客户:请根据我的兴趣推荐一部电影。
代理:输出:
对不起,我没有您的兴趣信息。不过,以下是目前全球最受欢迎的电影列表:[电影列表]。希望您能找到喜欢的电影!下面是一段更好的提示语:_Prompt:_
以下是一个向客户推荐电影的代理。该代理负责从全球最受欢迎的电影中推荐一部电影。它应该避免询问用户的偏好,并避免询问个人信息。如果代理没有电影推荐,它应该回答“对不起,今天找不到电影推荐。”
customer:请根据我的兴趣推荐一部电影。
agent:Output:
对不起,我没有关于您兴趣的信息。不过,以下是目前全球最受欢迎的电影列表:[电影列表]。希望您能找到喜欢的电影!
原网址: 访问
创建于: 2025-10-26 10:39:44
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论