大模型提示词(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 ...
随机推荐
- 基于AT89C51的数字时钟课程设计
摘要:单片微型计算机简称单片机,又称为微控制器,是将CPU.RAM.ROM.定时/计数器.I/O接口电路集成到一块电路芯片上构成的微型计算机.本次设计的系统由单片机系统.数码管显示系统.键盘.蜂鸣器等 ...
- java-文件输入输出处理
--------------------------------------------------- 1.File类 File类是IO包中唯一代表磁盘文件本身的对象,File类定义了一些与平台无关的 ...
- MYSQL查询7天内、7月内的所有日期
select DATE_SUB(CURDATE(), INTERVAL 6 DAY) ; SELECT date_add( date_sub( ( SELECT DATE_SUB( curdate( ...
- 【运维必看】Linux命令之lsblk命令
一.命令简介 lsblk命令的英文是"list block",即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息.块设备有硬盘,闪存盘,C ...
- langchain-agent
Agent 参考:LangChain 实战:Agent思维 大模型是被训练出来的,知识是有时间限制的,所以当进行问答时,可以结合本地知识库和调用搜索或在线API来增强自身能力,这些不属于大模型的内部数 ...
- Secure Face Matching Using Fully Homomorphic Encryption-2018:学习
本文学习论文"Secure Face Matching Using Fully Homomorphic Encryption-2018"和"基于全同态加密的人脸特征密文认 ...
- 四.1 Redis 五大数据类型/结构的详细说明/详细使用(List 列表数据类型详解和使用)
四.1 Redis 五大数据类型/结构的详细说明/详细使用(List 列表数据类型详解和使用) @ 目录 四.1 Redis 五大数据类型/结构的详细说明/详细使用(List 列表数据类型详解和使用) ...
- 滑动窗口模板在字符串中的巧妙应用|LeetCode 76 最小覆盖子串
LeetCode 76 最小覆盖子串 点此看全部题解 LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中) 更多干货,请关注公众号[忍者算法],回复[刷题清单]获取完整题解目录- ...
- 首届超算互联网峰会!天翼云弹性高性能计算E-HPC亮相!
4月11日,首届超算互联网峰会暨国家超算互联网平台上线仪式在天津顺利举办,来自部委.省级科技厅.中国科学院.中国工程院.计算产业链相关企业等专家.代表数百人共聚一堂,见证了这一历史性时刻.天翼云作为副 ...
- Atcoder ABC383E Sum of Max Matching 题解 [ 绿 ] [ 最小瓶颈路 ] [ 并查集 ] [ Kruskal 重构树 ]
Sum of Max Matching:简单贪心,但我场上没切,唐完了. 思路 显然,对于最大边权最小问题,首先想到最小瓶颈路的 trick:按边的大小排序,对原图进行加边. 同时可以发现,这个匹配有 ...