大模型提示词(Prompt)模板推荐
只有提示词写得好,与大模型的互动才能更高效。提示词不仅仅是与AI对话的起点,更是驱动模型产生高质量输出的关键因素。本文将介绍大模型提示词的概念、意义,并分享一些实用的提示词模板,帮助AI玩家更好地利用大语言模型。
大模型提示词的介绍
提示词(Prompt),是用于大语言模型的一段引导性文字,用以触发模型生成特定方向的内容或执行专门任务。提示词的设计和质量直接影响模型输出的准确性、相关性和创造性。
1. 概念解析
提示词可以是一个简单的问题、一段描述、一个命令或任何形式的文本输入。其核心目的是为模型提供上下文和方向,以确保生成的内容符合用户需求。
现阶段提示词既是单一的又是多样的。其是由文本这一单一模态组成的;使用方式上既可以是系统提示词(System Prompt),也可以是用户提示词(User Prompt),作用过程上既可以是全过程的,也可以是阶段性的;组织形式上既可以是结构化的,也可以是非结构化的;提示类型上是多样的、没有限制的。需要注意的是,不同的模型对提示词的多样性适应程度不同,在采用模型前需查看模型信息了解模型特性。
2. 提示词的使用方式
- 系统提示词(System Prompt):全局全过程提示词,一般用在预训练的模型、基于预训练模型创建的新模型、API调用中,由模型创建者、脚本开发者或用户添加,相当于给这个新模型“下定义”。
- 用户提示词(User Prompt):一般性提示词,由用户根据实际需求在与大模型的对话中使用,也可在API调用时使用,形式和内容上可与系统提示词一样。
3. 提示词的组织形式
- 非结构化:一般性提示词,没有相应结构,可以是一句话,也可以是一段文字,还可以是一堆杂乱无章的文字片段。
- 结构化:按照一定格式组织的文字段落,有相对严谨的结构,通常以markdown形式书写,分段且带小标题,结构可复杂可简洁,架构可固定可调整。
4. 提示词的类型
提示词从表达上大体可分为以下几类:
- 指令型提示词:直接告诉模型执行某个具体任务,例如,“多个表格合并,请帮我写出python代码”“请将时间xx换算成unix时间戳”。
- 描述型提示词:提供详细背景信息,让模型在此基础上生成内容,例如,“我今天看了一部电影,电影名称是xx,电影讲述了xx,我的工作是xx,请根据以上内容为我写一篇心得体会,要求结合工作、言语凝练、感悟深刻,1000字左右”。
- 问题型提示词:以问题形式提出,要求模型回答或解释,例如,“什么是大模型提示词?”。
- 情景型提示词:设定特定场景,让模型在该场景中生成对话或故事,例如,“现在你是一名准备手术的医生,如何解释手术风险给患者?”。
提示词类型没有明确界限,往往是多种类型灵活组合。
其中,因为大模型的参数、训练数据、幻觉等各方面原因,问题型提示词可能得不到正确回答,切勿轻信;其所产生的内容要辩证看待,同一个提示词所产生的内容有时相似,有时不同,得到的代码、文章、决策有时可用,有时不可用,要注意分辨、测试。
提示词的底层应用逻辑,是在大模型配置文件中
在开源大模型社区:https://huggingface.co(镜像站:https://hf-mirror.com),查看tokenizer_config.json文件的chat_template行
或是在ollama的manifest清单中找到image.template哈希对应的blob文件,都可以找到该模型的聊天模板
以下是模型Qwen2.5-14B-Instruct的chat_template信息
"chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n"
可以看到,该模型指定,如果用户未给出系统提示词,则默认以'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.'作为系统提示词,系统提示词在对话模板中的位置是放在最前面的。不同模型的chat_template可能会有所不同,但系统提示词一般是在靠前位置。
用好大模型提示词的意义
1. 提高输出质量
精准的提示词能够显著提高模型输出的质量,避免冗长、无关或模糊的回答。例如,精准提示词可以帮助模型理解更具体、更细致的需求,从而生成更贴近用户意图的内容。
2. 增强互动体验
好的提示词设计可以使与大语言模型的互动更加流畅和富有成效,提升用户体验。例如,通过引导性提问和指令,可以让互动变得更加有条理和富有逻辑性。
3. 节省时间和精力
通过有效的提示词,用户可以更快速地获得所需信息或完成特定任务,减少反复试错的时间和精力投入。
大模型提示词开源模板推荐
1. 非结构化提示词
awesome-chatgpt-prompts-zh: ChatGPT 中文调教指南。各种场景使用指南。学习怎么让它听你的话。
https://github.com/PlexPt/awesome-chatgpt-prompts-zh
awesome-chatgpt-prompts: This repo includes ChatGPT prompt curation to use ChatGPT better.
https://github.com/f/awesome-chatgpt-prompts
2. 结构化提示词
LangGPT: LangGPT: Empowering everyone to become a prompt expert! Structured Prompt,Language of GPT, 结构化提示词,结构化Prompt
https://github.com/langgptai/LangGPT
其中LangGPT目录下含“Prompt工程师”用于辅助用户按固定结构生成prompt的提示词示例
3. 提示工程指南
提示工程指南 | Prompt Engineering Guide
https://www.promptingguide.ai/zh
在大语言模型的应用中,提示词的设计至关重要。通过理解提示词的概念和意义,并运用有效的提示词模板,AI玩家能够更好地利用大语言模型,提升互动质量和工作效率。希望本文分享的提示词模板能为你的实际应用提供有价值的参考。
大模型提示词(Prompt)模板推荐的更多相关文章
- 免费Midjourney AI绘画Prompt提示词平台合集
Midjourney AI绘图最关键的地方在于Prompt提示词写的好,一个好的提示词可以让AI模型创造出更优质的绘图,以下是8个免费的Midjourney Prompt提示词辅助平台. 编辑切换 ...
- Midjourney 提示词工具(10 个国内外最好最推荐的)
Midjourney,是一个革命性的基于人工智能的艺术生成器,可以从被称为提示的简单文本描述中生成令人惊叹的图像.Midjourney已经迅速成为艺术家.设计师和营销人员的首选工具(包括像我这样根本不 ...
- AI绘画提示词创作指南:DALL·E 2、Midjourney和 Stable Diffusion最全大比拼 ⛵
作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 自然语言处理实战系列:https://www.showmeai.tech ...
- 文心大模型api使用
文心大模型api使用 首先,我们要获取硅谷社区的连个key 复制两个api备用 获取Access Token 获取access_token示例代码 之后就会输出 作文创作 作文创作:作文创作接口基于文 ...
- Semantic Kernel 入门系列:🥑突破提示词的限制
无尽的上下文 LLM的语言理解和掌握能力在知识内容的解读和总结方面提供了强大的能力. 但是由于训练数据本身来自于公共领域,也就注定了无法在一些小众或者私有的领域能够足够的好的应答. 因此如何给LLM ...
- 无插件的大模型浏览器Autodesk Viewer开发培训-武汉-2014年8月28日 9:00 – 12:00
武汉附近的同学们有福了,这是全球第一次关于Autodesk viewer的教室培训. :) 你可能已经在各种场合听过或看过Autodesk最新推出的大模型浏览器,这是无需插件的浏览器模型,支持几十种数 ...
- 搜索实时个性化模型——基于FTRL和个性化推荐的搜索排序优化
本文来自网易云社区 作者:穆学锋 简介:传统的搜索个性化做法是定义个性化的标签,将用户和商品通过个性化标签关联起来,在搜索时进行匹配.传统做法的用户特征基本是离线计算获得,不够实时:个性化标签虽然具有 ...
- zz【清华NLP】图神经网络GNN论文分门别类,16大应用200+篇论文最新推荐
[清华NLP]图神经网络GNN论文分门别类,16大应用200+篇论文最新推荐 图神经网络研究成为当前深度学习领域的热点.最近,清华大学NLP课题组Jie Zhou, Ganqu Cui, Zhengy ...
- 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅
摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...
- 千亿参数开源大模型 BLOOM 背后的技术
假设你现在有了数据,也搞到了预算,一切就绪,准备开始训练一个大模型,一显身手了,"一朝看尽长安花"似乎近在眼前 -- 且慢!训练可不仅仅像这两个字的发音那么简单,看看 BLOOM ...
随机推荐
- Springboot+Vue进行Web开发时特别需要注意的小事项
Springboot+Vue进行Web开发时特别需要注意的小事项: 1.在测试页面效果时,如果没有特别设置安全Http访问,在输入url请求测试网页时,只能使用http://......,而不能使用h ...
- Uniapp仿ChatGPT Stream流式输出(非Websocket)
前言 最近写一个chagpt小程序,流式输出可以使用websocket也可以使用stream来实现,这里就不折腾websocket的了,我发现uniapp实现流式输出的方式挺多的,主要是有些小程序还不 ...
- 零基础Windows Server搭建部署Word Press 博客系列教程(1):从萌新到菜鸡之云主机配置与备案
不知道这个教程能帮助到多少想要长期建站的新手朋友. 下面进入正题.如果你想搭建一个基于wordpress的个人博客或者网站,但是不懂Linux,也没有命令行的操作经验,更不懂复杂的代码,那么找这篇文章 ...
- vue基础2
1.表单 表单里面有单选框,多选框,下拉框,文本域 vue单页应用 SPA:signal page application(单页应用) 多页面:1个url->1个html文件 多个url-> ...
- 支付宝分布式事务服务-DTS
分布式事务服务简介 注意:为向用户提供更加优质的服务,蚂蚁金融云已对中间件产品完成进一步升级改造,并计划于 2018 年 3 月 31 日下线本产品. 分布式事务服务(Distributed Tran ...
- Android性能测试(内存、cpu、fps、流量、GPU、电量)——adb篇
adb 常用命令 获取连接设备号:adb devices 列出设备所有已安装的包名 (不需root权限) adb shell "pm list packages",可以加上 ...
- excel表格里面数据统计有几个(相同的算1个)
例如:1 2 3 4 5 6 7 1 2 3 统计出来的结果 是 7个! 相同的算1个. 假设数据在A1:A10区域内,在B1单元格中显示结果,则在B1单元格中输入公式: =SUMPRODUCT(1/ ...
- 牛客周赛 Round 77
题目链接:牛客周赛 Round 77 A. 时间表 tag:签到 B. 数独数组 tag:签到 Description:给定n个数,每个数的范围为1-9,问能否经过排列,使其每个长度为9的连续子数组都 ...
- Codeforces 1749E Cactus Wall 题解 [ 紫 ] [ 01 BFS ] [ 图论建模 ] [ 构造 ] [ adhoc ]
一道很好的思维题,被教练碾压了. 观察 首先从题目给的样例入手: 5 5 ..... ..... ..... ..... ..... 这种情况最终的答案是: YES ....# ...#. ..#.. ...
- nginx 如何强制跳转 https
本项目 nginx 作为代理服务 项目上线,客户说要加个安全证书 ,于是安全证书是加上了,可是htttp和https都能访问网站,客户要求不行必须强制用带有https的地址访问 开整 这是 http ...