Prompt概述
Prompt
即提示词,很多人可能对提示词会有点陌生,从表面上看提示词就像是普通的文本输入,但如果我们把AI
想象成一个具有各种超能力的魔法伙伴,那么你输入的文本就是魔法咒语,让这个伙伴帮你完成各种不可思议的床走。
过去,人们通常是通过命令或者输入特定的指令来与AI进行交互。但是,随着自然语言处理和计算机视觉等技术的发展,人们可以更加自然地与AI
进行交互,这意味着人与AI
之间的交互方式正在发生一场深刻的变革。
这种新的交互方式的核心是将AI
看作一个与人类相似的能够理解自然语言并且回应的实体,而不是一个简单的程序或者工具,人们能够像与人类交流一样与AI
进行交互。这种交互方式会让人与AI
的关系更加亲密,更加自然,更加有趣。基于自然语言的交互方式(即LUI
)正是这种新范式的一个关键组成部分。通过自然语言处理技术,人们可以使用自己熟悉的语言与AI
进行交流,而不需要特定的命令或者语法规则。这种交互方式可以使得人与AI
的交流更加直观、自然、易懂,也可以提高人与AI
之间的交互效率和效果。
当我们将目光投向人工智能的各个分支时,我们惊奇地发现,不管是文本生成、图像生成,还是音乐和视频的生成,各个方向在经历了不同的进化过程后,最终都汇集到了同一个方向,也就是用人类语言与指导AI
的生成。AI
画图、AI
写作、AI
作曲、AI
视频,这些我们曾经觉得门槛极高的方向,竟然在经过自然语言处理后,用如此优雅的方式,得到了统一的最优解,而这就是Prompt
,提示词。
提示词的使用让人们能够轻松地掌握人工智能的创作能力,且不需要具备深厚的专业知识或技能。同时,由于提示词可以根据用户的需要进行定制和修改,因此用户可以根据自己的需求和兴趣来生成不同的内容,从而实现个性化的创作。
随着AI
技术的不断发展和进步,提示词的应用范围也在不断扩大。例如,在文本生成领域,可以使用提示词来生成新闻报道科技文章、小说等不同类型的文本;在图像生成领域,可以使用提示词来生成人像、风景、动物等不同主题的图像;在音乐和视频生成领域,可以使用提示词来生成不同风格和类型的音乐和视频。
提示词看似简单,但其实是一个人的综合能力的体现。这也是为什么同样的AI
工具,在有的人手里可以妙笔生花,下笔千言在有的人手中,就始终用不起来。其实问题的核心就在于,很少有人去深人思考,提示词是一种能力。既然是一种能力,那么它就是可以训练出来的。
Prompt Engneering
即提示词工程,是指通过开发和优化提示词(Prompt
),帮助语言模型用于各种应用场景和研究领域。
Prompt 的定义和作用
Prompt
是指输给AI
模型的文本或语句,用来引导模型生成相关的输出。在使用AI
工具时,Prompt
可以起到非常重要的作用因为它可以指导模型产生特定的输出,并且提高输出的准确性和可靠性。举个例子,如果你正在使用AI
语言模型生成一篇文章,你可以输入一个 Prompt
,如“写一篇关于人工智能的文章”,以此引导模型产生与人工智能相关的内容。在这种情况下,Prompt
可以帮助模型理解你的意图并生成更加准确的输出。Prompt
的设计和选择也可以影响模型的输出结果,因此在使用AI
工具时,选择合适的 Prompt是非常重要的。
prompt
的作用并不局限于生成文本,它还可以用于训练和微调模型。通过提供有针对性的Prompt
,模型可以更好地理解所需的输出,并且可以通过反复使用类似的Prompt
进行训练,从而提高模型的准确性和可靠性。
此外,Prompt
也可以用于控制生成内容的风格、主题和情感色彩等。通过使用不同的Prompt
,可以引导模型生成特定风格或情感色彩的内容,例如正面或负面情感、科技或娱乐主题等。
Prompt
的设计和选择对于模型的输出结果至关重要,不同的Prompt
会导致不同的结果。因此,在使用Prompt
时,需要进行适当的测试和评估,以确保输出结果符合预期。
最后,Prompt
也可以作为一种人机交互的方式,通过输入不同的Prompt
,与AI
模型进行交互和对话,从而获得更加智能化的人机交互体验。
Prompt的应用前景
Prompt Engineering的应用前景非常广阔,因为它能够显著提高自然语言处理(NLP)和人工智能(AI)模型在多种场景下的性能。以下是一些Prompt Engineering可能的应用前景:
- 内容创作与生成:Prompt Engineering可以帮助创作文章、报告、故事、诗歌等文本内容。通过精心设计的提示,可以引导模型生成符合特定风格、主题和长度的文本。
- 教育与培训:在在线教育平台中,Prompt Engineering可以用于创建个性化的教学材料和互动式问题,以适应不同学生的学习需求和兴趣。
- 客户服务:通过Prompt Engineering,可以设计聊天机器人或虚拟助手的提示,以提供更加自然和有效的客户服务体验。
- 编程与软件开发:Prompt Engineering可以用于生成代码片段、文档和调试建议,帮助开发者提高编程效率。
- 语言翻译与本地化:通过调整提示,可以指导模型生成特定语言和文化的翻译文本,从而提高翻译的质量和准确性。
- 数据分析和报告:Prompt Engineering可以帮助生成数据分析报告,通过提示模型关注特定的数据点和趋势,从而提供更加深入和相关的见解。
- 健康咨询与诊断:在医疗领域,Prompt Engineering可以用于创建聊天机器人,以回答患者的问题并提供初步的健康咨询。
- 娱乐与游戏:在游戏和娱乐内容中,Prompt Engineering可以用于生成对话、故事情节和角色描述,提供更加丰富和沉浸式的用户体验。
- 社交媒体管理:通过Prompt Engineering,可以自动生成社交媒体帖子、评论回复和营销文案,以增强品牌形象和用户互动。
- 个人助理和语音助手:Prompt Engineering可以用于改进语音助手(如Siri、Alexa)的理解和回应能力,使其更加智能和个性化。
随着技术的不断进步,Prompt Engineering的应用范围将继续扩大,它将帮助人们以新的方式与AI互动,并从AI模型中获取更有价值的信息和创意内容。同时,这也带来了对伦理和责任的考虑,确保AI的输出符合社会标准和法律法规。
编写ChatGLM4.0调用代码
1 | import os |
1 | def chat(prompt, model="glm-4", messages=[]): |
1 | chat("你好") |
'你好!有什么我可以帮助你的吗?'
提示词工程相关技巧
使用清晰,明确,避免模糊的词语
1 | prompt = "请你使用简短语言描述一下,什么是大模型?" |
大模型是一种规模庞大、参数数量多、计算结构复杂的机器学习模型,通常基于深度神经网络技术。它们可以处理大量数据,学习复杂的模式和特征,并在自然语言处理、计算机视觉等多个领域展现强大的预测和表达能力。
1 | prompt = "请你使用3-5句话描述一下,什么是大模型?可分点描述。" |
大模型,通常指的是:
1. 规模庞大的机器学习模型,拥有数十亿甚至更多参数。
2. 能够处理大量数据,学习复杂的模式和特征。
3. 常用于自然语言处理、图像识别等任务,具有很高的准确性和泛化能力。
4. 需要强大的计算资源和存储空间进行训练和维护。
5. 在人工智能领域,大模型正逐渐成为研究和应用的热点,推动技术不断进步。
使用指定的分隔符将指令和待处理的内容分开
1 | prompt = """ |
Please translate the following sentences into English with ornate language.
- What are commonly referred to as "large models" are artificial intelligence systems characterized by their immense scale and complexity.
- These models, often powered by advanced machine learning techniques, possess a vast repository of knowledge and the ability to process and generate data on an unprecedented scale.
- They are designed to mimic human cognitive functions, enabling them to understand, learn, and create in a manner reminiscent of human intellect.
- Such models are at the forefront of AI innovation, pushing the boundaries of what's possible in fields as diverse as natural language processing, image recognition, and problem-solving.
可以看到大模型返回的结果,和我们实际的需要不符合。
1 | prompt = """ |
Translate the sentence into English with ornate language.
当我们把要翻译的文本使用指定的分隔符进行分隔时,大模型可以准确的明白我们的意图。
输出指定格式
当我们的提示词指令写完后,为了得到稳定的输出结果,可以指定一下输出的格式。
浙江大学, 上海, 清华大学, 马云, 北京, 深圳, 复旦大学, 广州, 张艺谋, 王思聪, 王菲, 杭州, 姚明, 上海交通大学, 北京大学
1 | prompt = """ |
人名:
- 马云
- 张艺谋
- 王思聪
- 王菲
- 姚明
地名:
- 上海
- 北京
- 深圳
- 广州
- 杭州
高校名称:
- 浙江大学
- 清华大学
- 复旦大学
- 上海交通大学
- 北京大学
从结果来看大模型已经能够准确的将我们提出来的问题解决掉。但是大家可以自己尝试一下将这个问题多重复执行几次,每次大模型返回的结果都不一样,在某些场景下可能对于我们的应用会产生一定的影响。
1 | prompt = """ |
人名:马云, 张艺谋, 王思聪, 王菲, 姚明
地名:上海, 北京, 深圳, 广州, 杭州
高校名称:浙江大学, 清华大学, 复旦大学, 上海交通大学, 北京大学
给定了输出的格式要求后,大模型也可以按照我们的要求输出结果,并且多次执行结果也不会变化。
1 | prompt = """ |
1
2
3
4
5
{
"人名": ["马云", "张艺谋", "王思聪", "王菲", "姚明"],
"地名": ["上海", "北京", "深圳", "广州", "杭州"],
"高校名称": ["浙江大学", "清华大学", "复旦大学", "上海交通大学", "北京大学"]
}
也可以直接指定为常见的一些数据格式。例如:JSON
、XML
等等。
角色扮演
健身私人教练
1 | prompt = """ |
以下是一个基本的减肥计划,但请记住,在开始任何减肥计划之前,建议咨询医生或营养师以确保计划适合您的健康状况。
**减肥计划**
**1. 饮食调整:**
- 早餐:确保营养均衡,例如全麦面包、鸡蛋、低脂牛奶或酸奶。
- 中餐和晚餐:增加蔬菜和蛋白质的摄入,减少精制碳水化合物和高脂肪食物。
- 控制分量:尝试使用小盘子和碗来控制食物的分量。
- 避免快餐和高糖饮料:尽量选择全天然食物,减少加工食品的摄入。
**2. 增加活动量:**
- 每周至少进行150分钟的中等强度运动,如快走、游泳或骑自行车。
- 加入至少两天的力量训练,以增加肌肉量,提高新陈代谢率。
- 尝试日常活动中增加更多步行,例如走楼梯而不是乘电梯。
**3. 健康生活习惯:**
- 确保充足的睡眠:每晚7-9小时。
- 减少压力:练习冥想、深呼吸或瑜伽来管理压力。
- 避免酒精和高热量零食:这些往往会导致热量摄入过多。
**4. 监测进度:**
- 定期记录体重和体型的变化。
- 使用食物日记或应用程序来跟踪日常饮食摄入。
**5. 保持动力:**
- 设定实际可行的短期和长期目标。
- 给自己一些非食物的奖励,如新衣服或电影之夜,作为达成目标的奖励。
请记住,减肥是一个渐进的过程,需要耐心和持续的努力。保持积极的心态,关注整体健康和福祉,而不仅仅是体重数字。
1 | messages = [{ |
当然,很高兴能够帮助你制定一个减肥计划。在开始之前,我需要强调,任何减肥计划都应该建立在健康饮食和规律运动的基础上,同时还需要考虑你的个人健康状况、生活方式以及目标。以下是一个基本的减肥计划框架:
### 健康饮食建议:
1. **热量控制**:
- 确定每日所需热量:根据你的年龄、性别、体重和活动水平计算基础代谢率(BMR),然后根据你的减肥目标(每周减少0.5-1公斤)调整食物摄入量。
2. **均衡膳食**:
- 确保每餐摄入适量的蛋白质、复合碳水化合物和健康脂肪。
- 多吃蔬菜和水果,它们富含纤维和营养素,有助于提高饱腹感。
3. **定时定量**:
- 尽量避免暴饮暴食,分小餐多次进食,有助于维持血糖稳定。
4. **水分补充**:
- 每天至少喝8杯水,保持身体水分平衡,有时候人们会误将口渴当作饥饿。
5. **减少加工食品和高糖食品**:
- 尽量减少这类食品的摄入,它们通常热量高、营养价值低。
### 运动计划:
1. **有氧运动**:
- 每周至少进行3-5次有氧运动,如快走、慢跑、游泳或骑自行车,每次30-60分钟。
- 选择你喜欢的运动,这样更容易坚持。
2. **力量训练**:
- 每周至少进行2-3次全身力量训练,增加肌肉量有助于提高基础代谢率。
- 可以选择使用自由重量、器械或自身体重进行训练。
3. **伸展运动**:
- 每次运动前后进行适当的伸展,提高柔韧性,减少受伤风险。
### 其他建议:
1. **充足睡眠**:
- 确保每晚7-8小时的睡眠,不足的睡眠可能会影响你的代谢和食欲激素。
2. **压力管理**:
- 学习压力管理技巧,因为压力过大可能会导致暴饮暴食。
3. **监测进度**:
- 定期记录体重和体脂百分比,调整计划以确保持续进步。
4. **寻求支持**:
- 加入健身小组或与私人教练合作,以获得额外的支持和鼓励。
请记住,每个人的身体都是独一无二的,这个计划可能需要根据你的具体情况做出调整。在开始任何新的饮食或运动计划之前,建议咨询医生或注册营养师。希望这个计划能够帮助你达到减肥目标!
指定了角色后,模型输出的结果更加专业,详细。
苏格拉底
1 | prompt = """ |
尽管AI技术在多个领域都展现出了强大的能力,但学习依然具有重要的意义:
1. **个性与情感培养**:AI无法替代人类的个性和情感。学习不仅仅是获取知识,还包括情感、价值观和个性的培养,这些都是AI无法给予的。
2. **文化理解与传承**:学习帮助我们理解人类文化的深度和广度,通过学习艺术、文学等,我们可以更好地传承和发展人类文化。
3. **批判性思维与决策能力**:在学习过程中,我们可以培养批判性思维和解决问题的能力,这些是AI无法完全代替的人类特质。
4. **适应性和创新能力**:社会在不断变化,新的职业和技能需求不断出现。学习使我们能够适应这些变化,并培养创新能力,这是AI难以实现的。
5. **道德和伦理判断**:AI缺乏道德和伦理的判断力,而人类在学习过程中形成的价值观和伦理观对社会的发展至关重要。
因此,即使AI很强,学习仍然是必要的,它关乎个人的全面发展,社会的进步,以及人类文明的持续发展。
1 | messages = [{ |
哦,这是一个深奥而重要的问题。让我们一起来探索它吧。你能否告诉我,你认为学习的意义是什么?它对你来说代表着什么?或者,你是在质疑学习的重要性,因为现在有了像我这样的AI存在?我们可以一起探讨这个话题。
告诉大模型,提问的用户是什么样的角色
1 | prompt = """ |
提高英语成绩可以通过以下几个方法:
1. **坚持日常学习**:每天都要安排一定时间学习英语,哪怕只是阅读一篇短文或者记几个单词,保持学习的连贯性非常重要。
2. **词汇积累**:单词是英语的基础,可以使用软件或者单词卡片来记忆单词,每天学习一定数量的新词汇,并复习旧词汇。
3. **听力训练**:可以通过听英文歌曲、观看英语电影或电视节目、使用英语听力软件等方式来提高听力。
4. **口语练习**:找语伴练习或者利用语言交换平台进行口语练习,也可以尝试模仿英语视频中的发音和语调。
5. **阅读提升**:广泛阅读英文材料,如英文报纸、杂志、小说等,这不仅能提高阅读理解能力,也能学习到不同的表达方式。
6. **写作训练**:坚持写英文日记或短文,可以练习写作技巧,同时也能巩固语法知识。
7. **语法学习**:系统学习英语语法,理解不同语法点的用法,并通过写作和口语来实践。
8. **模拟考试**:定期进行模拟考试,分析自己的弱点并针对性地进行改进。
9. **使用技术辅助**:利用各种在线学习资源和APP,如Duolingo、Rosetta Stone等,使学习更高效、更有趣。
10. **保持积极心态**:学习英语是一个长期的过程,保持积极的心态,不要因为一时的挫折而放弃。
每个人的学习方式和进度不同,找到适合自己的学习方法是最关键的。
此时大模型的回答没有针对性,给出了一个适用于大多数人的一些建议。
1 | prompt = """ |
对于5岁的幼儿园小朋友来说,提高英语成绩主要是通过培养兴趣和互动学习来实现的。以下是一些建议:
1. **听力训练**:通过听英文儿歌、看英文动画片和故事书来提高对英语语音的敏感度和理解能力。
2. **日常对话**:家长可以在日常生活中用简单的英语与孩子交流,如问候、简单的指令等,让孩子在实践中学习。
3. **互动游戏**:参与英语互动游戏,如字母卡片游戏、单词接龙等,以提高孩子的学习兴趣。
4. **英语启蒙课程**:参加专门的幼儿英语启蒙课程,通过专业教师的教学和同龄孩子的互动来学习。
5. **重复练习**:通过重复练习来记忆单词和简单句子,如每天学习几个新单词,并复习旧单词。
6. **亲子共读**:家长和孩子一起读英文绘本,增进亲子关系的同时,也能提高孩子的英语水平。
在这个阶段,重要的是培养孩子对英语的兴趣,而不是强迫他们学习。通过游戏和活动让学习变得有趣,可以有效提高孩子的英语成绩。记住,每个孩子的学习速度都不同,家长应该耐心陪伴,鼓励孩子进步。
可以看到回答的会更有针对性。
1 | prompt = """ |
作为一名25岁的程序员,你已经取得了相当不错的托福成绩(105分),但如果你想进一步提高英语成绩,以下是一些建议:
1. **加强听说练习**:多听英语广播、播客、电影和电视节目,尤其是那些带有字幕的,以提高听力理解能力。同时,尝试模仿发音,多与他人进行英语对话。
2. **扩大词汇量**:每天学习新单词和短语,并尝试在日常对话中使用它们。可以使用词汇书、应用程序或在线资源来辅助学习。
3. **阅读练习**:阅读英文报纸、杂志、学术文章和书籍,以增加阅读理解能力和词汇量。
4. **写作练习**:定期练习写作,可以是日记、博客或针对特定话题的文章。如果可能的话,找母语为英语的人帮你修改和提供建议。
5. **模拟考试**:定期进行托福或其他英语水平测试的模拟考试,以熟悉考试格式和时间限制。
6. **参加英语课程**:如果可能,参加英语提高班或在线课程,这样可以有系统地学习和练习。
7. **语言交换**:找一个英语母语的语伴进行语言交换,这样你可以在提高英语的同时,帮助他们学习你的母语。
8. **持之以恒**:学习语言是一个长期的过程,需要持续不断的努力和实践。
9. **使用技术辅助**:利用各种应用程序和在线资源,如Duolingo、Rosetta Stone、BBC Learning English等,来辅助你的学习。
10. **设定目标**:为自己设定具体的学习目标和时间表,比如每周学习多少个新单词,每月完成多少篇写作练习等。
通过这些方法,你可以逐步提高英语水平,并在未来的托福考试或其他英语水平测试中取得更好的成绩。
大模型首先肯定了我们取得的成绩,然后在此基础上给出一些更具有针对性的建议。
完整案例
1 | messages = [{ |
在你的代码中,我注意到了一个小的错误。在你交换两个元素的时候,你应该是要和 `arr[j+1]` 交换,而不是 `arr[j-1]`。下面是修正后的代码,我在错误的地方添加了注释:
1
2
3
4
5
6
7
8
9
10
11
12
13
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 将每次未排序的最大元素“冒泡”到正确位置
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
# 交换元素
# 下面这行原本有错误,应该是和 arr[j+1] 交换,而不是 arr[j-1]
# arr[j], arr[j-1] = arr[j], arr[j-1]
arr[j], arr[j+1] = arr[j+1], arr[j] # 修改后
# 注释掉的错误代码行可以删除或者保留作为参考
# arr[j], arr[j-1] = arr[j], arr[j-1] # 错误代码行
注意:现在代码中的交换逻辑已经是正确的了,注释中的 `# 错误代码行` 可以安全地删除,如果你希望保留代码的整洁性。此外,当 `arr[j]` 和 `arr[j+1]` 交换时,我们不需要再写 `arr[j], arr[j+1] = arr[j+1], arr[j]`,直接使用一行 `arr[j], arr[j+1] = arr[j+1], arr[j]` 就可以完成交换。