"); //-->
前言
曾经有一批强大的 AI 模型摆在我面前,我却未曾珍惜,知道发现别人能够轻松驾驭它发挥巨大价值,才后悔莫及,如果上天给我重来一次的机会,我会努力学习经验和技巧,成为第一批熟练驾驭 AI 模型的人!
随着 ChatGPT 的问世,各行各业深受震撼,国内外各种新的大模型也如雨后春笋般相继出现。一些对机遇反应迅速的人已经开始将 AI 运用到学习和工作中,甚至已经开始借助 AI 赚钱了。
目前市场上的 AI 模型众多,包括国外的 ChatGPT、Claude、Bard 等,国内的文心一言、通义千问、讯飞星火大模型等。现阶段不是缺少 AI 工具,而是缺乏使用这些工具的经验。多人由于缺乏经验,用了几次大模型后发现回答不符合预期就感到失望弃之不用,这非常可惜。其实不同的模型之间能力有差异,但是相同的模型不同人用起来效果也会相差很大,这里的关键在于提示词技巧和使用和业务接入过程中遇到的常见问题是否有好的办法去解决。
虽然现在已经进入 AI 时代,已经可以用自然语言和模型交互,但对提示词的要求还是有点高,在 AI 工具发展的相对早期,很多问题还没有完全解决,很多功能还不完善。在我看来,现在大多数人使用大模型存在两类主要问题:
一类是提示词写的不够好,导致回答不满意;
一类是大模型的使用和接入经验不足,很多常见问题不知道该如何解决。
提示词掌握不好,可能会遇到下面的困惑:
大模型的回答总是简略、空洞和机械,怎么办?
大模型的回答总是不能够按照自己想要的格式输出,怎么办?
大模型的回答总是不够完善,怎么办?
大模型使用技巧掌握不足,可能会遇到下面的困惑:
优化了很多版本提示词,答案总不满意,怎么办?
想在公司里使用 ChatGPT ,但是又担心数据泄露,怎么办?
和 AI 多轮对话之后, AI 似乎忘记了自己的任务是什么,怎么办?
问 AI 问题,但又担心它“说假话”,怎么办?
每次都要输入相似的提示词,嫌麻烦,怎么办?
收费模型有次数限制(如 GPT-4),如何让它发挥更大作用?
业务接入大模型的经验不足,可能会遇到下面的问题:
认为大模型是万能的,啥功能都想用大模型来解决,结果事倍功半。
刚开始调通模型就匆忙上线,导致效果不理想,用户流失。
构造人工标注太耗费时间。
算法工程师不足,开发人员自己训练模型,做了很多优化效果都不理想。
如果你也遇到上述问题,那么本文将对你有所帮助。接下来我将主要介绍如何通过精准的提示词技巧获得想要的答案,以及在使用大模型使用和接入的过程中遇到的常见问题该如何解决。
很多人试用几次大模型,得不到想要的答案,顿感失望然后弃之不用。其实多半是自己的提示词写的不够好导致的。网上的提示词教程五花八门,要么不成体系,要么过于复杂。接下来将用相对接地气的方式,谈谈提示词的标准、提示词该如何写效果更好。
2.1.1 提示词的标准和原则在我看来,一个粗略而简单的标准就是:你身边的人是否能够轻松听懂。如果你写一个提示词,还需要别人再问你好几个问题才能真正明白什么意思,那么这个提示词就不是好的提示词。
好的提示词应该遵循清晰具体,重点突出,充分详尽的原则。在提示词中给出他回答问题所需要的主要信息,并且清楚具体地告诉它要做什么事情。
2.1.2 提示词公式
对于相对简单、通用的任务,由于模型对这类任务通常比较擅长,一般遵循前面所讲的原则直接写提示词即可
示例 1:
请根据 XXX 起 5 个有吸引力的标题
示例 2:
请帮我找出下面段落中的错别字,段落内容为:XXX。
示例 3:
请给我一个 Java 语言实现策略设计模式的示例代码。
对于相对复杂、专用的任务,可以参考下面的公式:立角色 + 说问题 + 定目标 + 给示例 + 加背景+ 补要求,往往可以得到更好的回答。实际使用过程中并非这四项都要有,可以根据实际情况进行灵活组合。
示例:
2.1.3 提示词技巧我想让你充当我的导游(立角色),我计划从青岛出发去杭州旅游,预算是 10000 元,总共 2 个人,行程 3 天,请给我出一份攻略(说问题,定目标)。注意行程不要安排过于紧凑,不想去网红打卡点,想去有文化底蕴的景点,另外推荐景点时,请附上景点的价格,不去太高档的餐厅吃饭(补要求)。
提示词的技巧有很多,这里给出一些自己实践过的非常有用的一些经验,更多进阶技巧大家可以再网上搜索更多资料进一步学习。
加分隔符帮助模型区分不同的区块如果提示词包含多个部分,为了更好地区分开来,可以使用分隔符。如使用三个反引号将命令和待处理的段落分开。
示例 :
执行下面的步骤:
1 将下面由三个引号分隔的文本总结为一句话。
2 将总结翻译成英文
3 统计英文中的每个字母的数量
4 参考三个#分割的文本格式进行输出
"""{text}"""
###{"a":1,"b":2}###
通过加限定词提要求规范模型的输出
如果 AI 模型输出的风格不符合你的要求,可以通过设置口吻、说明面向的人群等,让大模型按照你的意图来回答问题。如果 AI 模型输出的内容存在 Bad Case,你可以通过强势的情态副词对结果进行干预,如“一定要”,"一定不要","必须"、“不许”、“应该”等。身边就有朋友反馈用 AI 写出的内容有“机器味道”,采用了通过设置口吻和设定要求等优化提示词后,写出的内容让他非常满意。
示例 1:
你是一位知名儿童文学作家,请使用亲和力的口吻,帮我写一篇面向幼儿园儿童的,能够体现亲情重要性的故事。
要求:
1 文章内容需要涉及至少两个动物。
2 文章内容要具有想象力。
3 文章内容需积极向上,绝不能出现血腥、暴力的内容。
4 ...
说明:提示词中讲口吻、面向人群和具体要求给出到模型,更容易写出让你满意的故事。在提示词中通过“绝不能”的限定,模型构造故事时会刻意避免。
示例 2:
请使用 PlantUML 的语法,帮我生成一个时序图。
时序的对象包括:A、B、C。时序如下:XXX
说明:如果不交代时序对象,模型提取的对象可能和你想的有偏差,而提示词中直接将时序对象交代给 AI 模型,更容易绘制出让你满意的时序图。
示例3:
执行下面的步骤:
1 将下面由三个引号分隔的文本总结为一句话。
2 将总结翻译成英文
3 统计英文中的每个字母的数量
4 参考三个#分割的文本格式进行输出
5 不需要输出中间过程,只需要参考三个#分割的文本格式输出最终结果即可(一定不要输出开头和结尾分隔符#)
"""{text}"""
###{"a":1,"b":2}###
说明:如果不加上 “一定不要输出开头和结尾的分隔符#”,有些模型会输出结果时前后带上三个 #,通过限定可以完美解决这个问题。
提供参考示例让模型更好理解你的意图
在提示词中给出一些示例,有助于大模型更好地理解你的意图,回答出更符合你要求的答案。
示例 1:
请你充当标题优化助手,我将给你发送一个主题,请从下面的原则中选择最适合的一个原则,给出 5 个参考标题。
好的文章标题遵循三个原则:
(1)数字法则。如“写文章的 5 种技巧”、“工作 5 年,我学到了这 10 点”、“3 种姿势帮你做出精美简历”。
(2)给出结论和价值。如“重构的必要性和方法”、“关于软件复杂度的思考”、“工程师也要有产品思维”。
(3)激发好奇心。如“DDD 最短学习路径”、“原来设计模式还可以这么用”、“ 99% 程序员理解错了字符串的可变性”、“不写代码,程序员最重要的技能”。
主题:XXX
示例 2:
请帮我写一个正则表达式,匹配的规则如下:数字或下划线#some.com,并且不能以下划线开头。
正确示例:123#some.com 、 123#some.com、1_23#some.com
错误示例:123#some.com、12ac#some.com
示例 3:
你是一个知名互联网论坛的编辑,请帮我校对一篇专业博文,请指出其中的专业术语错误、拗口的句子等,并给出修改建议。
参考输出格式见三个引号分隔的部分:
"""
第1处
原文:在软件开发流程中代码审校非常重要,能够帮助程序员提前发现问题。
原因:“代码审校”专业术语错误,应该是“代码审查”
修改:在软件开发流程中代码审校非常重要,能够帮助程序员提前发现问题。
第2处
原文:使用命令 dune init project my_compiler 创建新项目。
原因:此句中对命令的描述不够通顺,建议增加“来”字来连接动作与目的。
修改:使用命令 dune init project my_compiler 来创建新项目。
"""
思维链 (Chain-of-Thought,CoT)
人们解决复杂问题时,通常会将其分为一些中间的步骤逐步解决,最终得到答案。思维链就是参考人类的解决办法,思维链提示词模式包括输入问题、思维链和输出结论。让模型可以学习这种推理过程,从而提高大模型在复杂推理时的准确率。
(图片来源:《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 》论文)
2.2 模型使用过程中常见问题和解决办法2.2.1 想使用外部大模型,又担心业务数据泄露很多人想在公司里使用 AI 工具,但对业务数据泄露持有顾虑。
如果你在大厂,可以考虑公司内部自研的合规模型。也可以选择公司代理(会进行安全过滤)的外国 AI 模型。如果想直接使用 ChatGPT 、Bard 之类的外国大语言模型试试效果,可以将数据先脱敏、构造 mock 数据或者尝试将遇到的问题转成一个通用的问题来提问即可,得到靠谱的方案或代码再移植到公司内部。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。