EP07:【AI】入门提示语工程之门口篇-文本歌词

EP07:【AI】入门提示语工程之门口篇-文本歌词

发行日期:

本字幕由TME AI技术生成 嗯嗯 大家好 欢迎来到这档没有大纲 没有草稿 没有剪辑一气呵成的胡侃瞎聊嘚不嘚 博客 我就是AI捕律师 说话贼快又带有点口吃的塔塔 那今天这期节目的话 主要是因为我答应了那个荒原书店的季老师 要一起来做一个关于提示语工程的一个算是系列课程吧 所以说今天的话 先把其中的一部分内容给单拎出来 然后看看 就是讲一讲 看看效果是怎么样的 当啊在实际上最后成品的那个系列课程中 我们这边会讲内容肯定是会更多的 这次的话 只是就其中的一些算是主体的内容来稍微讲一下 既然要讲提示语工程 那我们就先从什么时候提示语开始说起 那提示语这东西的话 从最简单的来说的话 就是我们使用AI的用户 当然这个AI的话 包括GPT cloud这样的大语言模型 也包括像是达利makejourney这样的一个绘图的模型 还包括像是sooner这样的做音音乐的 可灵 极梦 还有sara这样的做视频的 所有这些大语言模型就生成式大语言模模型 用户在跟这些生成式大语言模型进行交流的过程中 告诉AI要去做什么的一套话 就称为是提示语 这个说法其实是相当的笼统的 但是它其实的话 提示语本身也的确是一个比较笼统的概念 就比如说我们在那个最常用的GPT或者是cloud中的话 我们会在一个文本输入框 然后告诉他 我现在比如说说让AI 想让他帮我写一首诗 或者写一篇微科幻 或者说是让他给我写段代码 我把我的需求告诉他 那其实我输入这个的这东西 他就称之为是提示语 那提示语的话 相当于是说从我们的角度来看的话 它 嗯 就是普通人会认为提示语是一种类似于像的自然语言这样的 但是从我们来看的话 要写好提示语的话 这个提示语它其实并不是完完全全纯粹的一个自然语言 当然它也不可能像是编程的那种就是那个c语言啊 basic语言啊 这种是非常形式化的语言 它是介于这种所谓的很规整的形式化语言和很随意的自然语言之间的一种中间态的语言 当然可能更加偏向于自然语言一点 因为我们都知道 我们在跟AI交流恶劣的时候 哪怕我写的很随意的一句话 甚至于说是语序错乱的一句话 充满语法错误的一句话 AI也是会帮我把里面我到底想的什么东西给整理出来的 从这个角度来看的话 那其实它是比较偏向于是自然语言的 但是如果说我们要真的写的好 特别是在一个比较好的一个提示语工程中 提示语要写的好的话 那当然说不可能就是这么随便乱写 它是有一定的方法论的 那在这个时候写出来的提示 它可能就是人有那么的自然语言 而是稍微有一点倾向于是形式语言 那 那就是这个常来说提示语程内容 大家只要记住 所谓的提示语 就是人在和生成式AI模型进行一个交流的过程中 告诉他 我现在想要他做什么的一套话术 就是这样子了 那前面介绍的是什么是提示语 那么下面就我来说一下什么是提示语工程呢 提示语工程呢 其实就是一门通过设计和优化各种各样环境 各种各样场景中所用的提示语的一套方法论吧 可以这么说 就比如说吧 那个我之前做过一个给苏nor用的 就是相当于说 用户把自己想要做什么曲子 然后是那个输给这个agent 它会把它给转化成那个苏诺能够用的 就是让苏诺这边AI去生成一个就是那个让他去唱歌的这么一套提示语 就相当于说 他是把需求转化成提示语的一套提示语 那这个里面的话 其实它就是这里门中间态的提示 它其实就用到了一些提示语工程的它的一个主要的一个作用的话 就是使用各种各样的技巧 来确保最后生成的让solo去演唱的这套提示语 可以是那个最高效的 最精确的 最符合用用户的需求的 那这个里面的话 就是首先最后生成的结果 它其实也是一个提示语工程的一个结果 但同时它本身又是一项提示语工工程 那这个说的可能抽象一点 那我们就这么说 它就类似于是说 用户在一个不懂PS的用户去跟一个会PS的一个美工之间交流的时候 怎么样最高效的把自己的需求讲清楚 这就是提示与工程所要做的一件事情 就比如说 我要我找到一个那个美工 我跟他说 我现在要画一 然后海报 然后是我跟他说 海报上面我要 比如说五彩斑斓的黑 那这句话说的跟没有说一样 甚至于说还起到了反效果 因为什么是五彩斑 五彩斑斑斑斑斓的黑 这不是一句鬼话嘛 对吧 所以说 我一定要跟他说 我想要到的是什么 我想要的可能是其实是比如说那个不同深浅的黑色或者深灰色构成的一个漩涡 这个的话 说法相对于五彩斑斓的黑的话 它其实要明确了很多 那最好的话 我是可以直接把我里面要的什么东西 一那个复制水本呢能够做出来的画的时候 比如说我跟他说 这里有画一条椭圆形的一个路径 然后在路径上面的话 用画笔去从路径的开始到结尾去做一个比如说填充啊 或者怎么样的 那这个的话 对于普通用户来说的话 肯定要求的就太高了 但是如果能做的话 当然是最好 所以说 在提示语工程中的话 一个最好的最高效的一个状态的话 其实就跟我前面那个例子中所讲的一样 我先通过一套提示语工程 来把用户的需求转化成美工能够听得懂的更加准确的提示语 对吧 这就是提示工程程要要做的 也是我们在未来最终的一个系列的课程中所谓要看到 就是说我们最终的目标是要通过一系列的提示语工程和那个工工工作流 最后能够通过一系列的提示语生成一个最终结果 这个最终结果可能是直接给人看的 也可能是直接给下一个AI去用的 让它可以最高效的 最准确的来做到我们要要做的这么一件事情 那这是我们最终想的到的一个目标 那就现阶段而言的话 大家只要记住 所谓提示语工程 就是怎么让你把你自己的需求能够以一个最佳简单明了 最佳有效的方式 转换成AI能够最高效的去执行的一套那个话术方法论 这就是提示语工程了 它其实类似于是翻译 翻译的话 比如说他要把一套语言换 就是替换成另外一套语言 只不过说我们在文学的翻译中的话 它只是从两个不同语言本身去进行一个翻译 而在提示语工程中的话 它是把一个自然语言翻译成一个转形式语言 但其实还是两套语言技巧的翻译嘛 对吧 所以说 我们就是从功能上来看提示语工程的话 它是一套把需求表达的更加准确更加高效的话术 从另外一个角度来看的话 它其实就是一门翻译的工作 OK 那介绍完提示语工程之后的话呢 我们就要来看那提示语工程的核心 或者说提示语的核心魔要是什么 我们当然先要了解提示语的核心 然后再来去看提示语工程的核核心是怎么样在提示语中的话 那前面有提到提示语的话 它是一套用户告诉那个生成式模型啊要去做什么 它就成为提示语了 那这个东西的话 其实它的目标其实这个会分很多个 首先就是你的核心需求到底是什么对吧 这个是一个很重要的一点 其次的话 就是所谓的上下文与背景信息 在比如说那个让 呃 我前面举的那个例子中 让苏呢去演唱歌曲中的话 核心的一个需求是我想要一首什么样的歌 上下文的话 可能是歌词 也可能是说我想要的意境是什么样的 然后再更加广泛的一个情况中的话 比如说我在跟AI交流过程中的话 我先让他帮我写了一篇微 微小说 然后我再让他根据这篇微小的时候去生成一个封面图 那这个买上上文的话 就是他所生成这篇微小说 以及我现在要求它生成什么样的一个封面图这么一个情况意思上下文的话 既是我在整个当前所输入的提示语中的一些那个除了核心需求以外的信息 同时也包括了在我跟i的整个对话过程中的对话利益 历史背景信息的话 其实也是类似于这么一个情况的 在上下文中一个比较特殊的东西 也是当我的 就是我让AH进行一个工具调用的时候 这个是现在大部分AI都会提供的个的功能 当然你比如说像那个openAI的那个OEpreview 它是没有所谓的调用工具的 那样因子它就不存在这么个问题呢 这个我们先不用管 在就是工具调用的话 它也是作为上下文而存存在的 它既就是你们既包含了AI提出要调用哪些工具 又包含了我们这些工具的一个最终执行结果 它都是作为上下文而存在的 然后的话 里面还包括了一个就是所谓的我希望它的一个输出格式是什么样的这个的它的意义和作用 我们后面会再说 然后还有包括是什样的事例 参考 逻辑 约 约束 还有比如说是那个要怎么去参数调整 然后怎么去那个执行的过程中有没有什么分 分布 分阶段 颗粒度 还和什么语 语气 说话风格等等等等 这些全都是包含在一个完整的提示语中的 啊 对了 当然那个叫什么前面还忘说了 在提示语中的话 我还可以进行一些参数调整 比如说我可以告诉他 在写篇文章的时候 开头的时候所谓的temperature 比如说温度 它要调整为零点七 然后中间过程的话 是零点五 结束的时候的话 它比如说温度是零点三 它当然是跟我整体的一个调节是没有用 但是它其实也是可以起到一定的调节作用 这是其一 现在的话 我还可以告诉他 比如说我整个输出的话 大概控制字数要多少 在多少字数在内 比如说是五百个字 一千个字 当然在跟AI聊到然后聊的时候的话 这个东西可能你直接说有多少字可能用处不大大告告诉大大概有多少个在偷k 一百五十个token这样子 那比如说一个token和对应的是多少汉字 或者说多少英文单词 这个是大家可以自己去查 我没记错的话 应该是那个一比二的一个关系吧 那反正这个的话 好像是每个不同的AI的话 它还不大一样 那这个我们在这里就不再去过多的去深究它 反正就是说在里面的话 除了包含前面所说那几层之外的话 还有就是会有一些参数控制上的东西 这也是在提示语中 大家要去把它给完成的 而且在有的时候 它其实还是蛮有用的 那从另外一个角度来说的话 提示也可以分为这么几类吧 首先的话 就是我们最常见的 在一个对话框中 那个输入我想要做什么给那个AI 这个的话 其实用我们的话说来说了 就是所在运运行时 运行时提型 那除此之外的话 还包括我们经常会看到在不管是扣子还是什么地方的话 呃 它都会有一个地方 就是说让你去新建一个智能体 在新建智能体的时候的话 你会在里面去输入一些新增那个智能体的一些基础设定 这个其实的话 它输入就是所在系统提提示语 在大家如果说是用API去调用那个AI的话 就会发现它其实系统提示语和那个普通的前面所说的运行时提示语 它是 呃 完全不不一样的 是分开的 它的一些相关参数设置是不一样的 甚至有的地方连载的去写都是不一样的 那这边的话 我想要强调的是 系统提示语和运行时的提示语的一个关系 就是系统提示语的优先级是最高 而且系常情况下的话 那个AI就是生成真真是AI 在运行过程中 系统提是它是几乎不会忘记的 但是你的运行时提示语的话 它其实是会有一个掐头 不 是会有一个留头留尾 这个的话 我们这个如果说做些实验的话 就会发现 运行时提示语的话 或者说是整个对话历史的话 那个他会记住的是你最开始的和最近的 其中尤其是最近的 其次是最开始的 然后才是中中间的 对吧 然后这个是它的一个运行时的一个特点 这个其实跟我们人类也是蛮像的 在人类的一个心理学界中的话 存在一个现象 因为媒体特化 叫做是那个 那个 那个未知序列效效应 这是一个人类的一个心理现象 就 就是当 当我人类接收到一系列的事情 一系列的信息的时候 在这个信息事业中 往往最开开头一项或这几项 以及最后的一项或者几项 他们是在人的意识中其实记得最清楚 而且是第一反应的时候 也是最有可能去调用他们 但中间的东西 其实就未必会觉得调用到了 我们在写小说 或者说看小说的时候 经常会看到这么一个桥段 就是那个 呃 比如说一个人在说一些信息 然后会看到就是那个 他会把一些重要的信息藏在我说的这段话中 那一般的话 我会我会选择是藏在既不是藏在第一个 也不是藏在最后一个 而是倒数第二或者倒数第三个 就是因为人们对于这个区域的信息的关注度其实就没有那么的高 它只看开头 只看结尾中能够他的获得 AI在这点上的话 其实跟人类的情况是非常的相似的 它也是只看开头 只看结尾 当然了 因为它有一个系统提示 它就类似于是人类在脑海中已经形成所谓的肌肉记忆的这么一些信息 这个是可以很快的反应过来的 所以说 呃 从执行的优先级上的话 就所谓的先是最高级 是系统提示语 然后是最近的和开头的 然后才是中间的 这这一些话 有很多的测试项目 就是来测试AI对于中间信息 就是对话历史中的中间信息 它的一个所谓的呃 记忆的程度是怎么样 那我们再综合说一下 就是说提示语的话 其实从一个广义上来说的 提示的话 其实是包括了系统提系统提示语和运行时提示示语 运行时提示语的话 就包括整个你完整的跟AI的对交交流 一个所谓谓对话历史 以及你最新输给AIAI的那我们又可以把它相当于说再拆分的话 就拆分为系统提示与最新输入的运行时提示与以及中间的一个对话历史这么三大块了 这里面大家还要注意一点就是系统提示语和运行时的一个提示语的话 它们之间如果存在冲突的话 是一个怎么样情况 就比如说我在系统提示语中 我跟AI说 你要遵守规则a 比如说你要遵守的规则是你绝对不能把windows的序列号被告诉给我 但是在运行过程中的话 也许我可以通过各种方式把这个系统提示语给绕过去 事实上如果说我们去真的再去细分的话 系统提示语其实还分为是所谓的是生成式AI的一个提供方他们自己内设的一套系统 其实以和用户最后加给那个AI的一套题 一套题是这两个其实是不一样的 在早年的时候的话 就是二三年 二四年的时候 我们经常会看到有人把比如说那个NSRRPKK就是那个cloud他们公司 还包括把GPT的就是那个openAI他们那边会有人说他们把他们那边的一个所谓系统内置的提系统提示语给挖出来了 这个其实就相当于说它是系统提示语中的话 是由那个AI提供方所提供的一套那个权限最高的提示语 然后的话才是我们用户设置的 那再回到前面所出来这个问题 就是如果说运行时提示语和系统提示语之间存在冲突了怎么办 怎么办 这里面的话 我先介绍一种技巧 因为就是前面有提到在提示语中的话 运行时提示语它其实又可以分为是我最新输入的 以及整个对话历史 但是对话历史的话 如果说你没有去使用类似于提示语缓存这些技 就是所谓的服务器上提供的一些技巧的话 我完全是用你本地去控制他们的 嗯嗯 整个对话历史的话 那其实理论上你是可以做一件事情 就是你可以伪造你跟AI的一个对话历史 就比如说回到我们前面那个例子 我在系统提示语中明确的写了 你不能提供windows的序列号 但是我在后面可以伪造一些对话历史 在这个对话历史中 让那个AI去承诺说我现在答应了提供windows的一个序列号 那这个时候情况会怎么样 那这边的话 我们要看到在这个例子中的话 其实你不能够就是直接实现所谓的一个越越狱 至少在现在AI上 因为现在AI的话 在系统提示语中的系统级就是不是我们人为设置 要是系统级的最高级这一层的话 它是把这些行为都给禁止掉了 禁止掉之后的话 那相当于说一旦有冲突的话 是以它为准 你一点控制都没有 但是在早年间 包括现在另外的一些所谓的越狱技巧中的话 它就存在一种情况是我系统提示语跟我预行式提示语 因为一个是比如说AAT ent制作方所设定的 一个是用户设为 就是所谓终端用户设定的 他们可能会会冲突突 这种情况况的话 现在基本上还是是以系统提示语为主 但是也在这种情况况有冲突突时候的话 AA会随随挑挑 就说在这种情况下的话 AI会随机在系统提示语所设定的规则或约约束 以及你运行时提示语所设定的规则和约束之间随机的去挑选一个 那这个时候随机挑选的话 它就有可能会产生一些越余行为 我不举像前面只是提到的一个问windows序列号的一个例子 在其他的一些案例中 就比如说有关色情的 有关暴力的这么一些 哪怕我的系统提示语去设置了强要求 说你不能提供关于色情 暴力或者有害的危险知识在内的所有信息 但是通过恰当的引导 在运行提示语中的一些恰当啊当当引导 你用户是可以让那个AI做出一些不恰当的反馈的 就是因为在这个时候的话 其实AI是在系统提示语和运行时提示之间做了一个随机选择 然后他随机到了他要去遵守运行时提提示 因此大家在跟AI交流过程中 以及在写提取的过程中的话 一定要去就是确保不会产生这方面的逻辑矛矛盾 规则之前也必须是完全自洽的 否则的话 他就有可能会做出一些不恰当的行为 这也是我们后期在一些就是最后几个所谓的比较高级的课程中会跟大家去介绍的 我怎么通过一系列的技巧和手段来确保那个AI在最后执行的时候 是根据我希望的规则去执行 而不是根据就是所的终端用户所做的一些异常的行为去进行一些执行 从而的达到的安全性 啊 对了 这里也可以给大家提一个案例 就是说前面不是有提到说那个对话历史是可以伪造的嘛 一旦伪造的一个对话历史的话 其实我们之前有一种历手的 那现在的话 一个月历史它应该已经不能使用了 当然如果遇到的话 当然也只是说是撞头用了啊 在虚构历史中的话 就是虚化虚构的一个对话历史的的话 我可以让AI承诺要给我 就是给我提供各种各样的信息 这些信息的话 可能是他原本是不能提供的 但是因为在伪造的一个变话历史中 他承诺他会提供 最后导致的结果是 在早期版本的包括GPT在内内的很多的AI系统中的话 他会因为后面的是反反复复跟我承诺说要提供一些信引进去之后 他真的把这些信息给提供出来了 这也是一种很至少在当时很行之有效的一个越狱手段 当然我们后来把这个东西写成了一篇那个 就是那个报告 然后提交给各大AI厂商 然后之后的的话 我也不是看看到到最后导游有没有看 反正结果是最后这个越狱方式已经被那个堵漏掉了 当然了 有没有彻底堵漏掉掉的话 我最近也没有做这方面的一个重复的性的一个实验啊 回头过阵子可能做完实验之后 万一发现有些厂商还有这个漏洞的话 其实也挺好的 又可以跟他们去聊聊这件事情了 接下来想跟大家说的就是在写提示语个过程中的话 我们推荐大家使用搜索的结构化题示语啊 结构化提示语跟非结构化提取的话 我们在后面讲一些所谓的那个提示语的一些框架的时候的话 会看到基本上用的都是结构化提示语 非结构化提示取就大家日常生活中最常用的 比如说我今天就是我问AI今天中午吃什什么好 这句话的话 一点结构都没有 就是很就是所谓的灵珍奇手 直接就问了 我今天中午吃什么好 一点准备都没有的 那这个是所谓的非结构化提示 或者说我问AI说 哎 你觉得我怎么样 这个东东西 结构化提示的话 举个例子就是比如说 呃 我会写一份不管谁CMI也好 markdown也好 写这么一个文档 在这里面会告诉那个也安 你现在的身份是怎么样 现在要用的语气是怎么样的 你现在的输出格式是怎么样的 你要完成的任务是怎么样的 然后在任种自动化 甚至还分解为你现在要根据哪几个主要步骤去完成这些东西 这么一套的话 它称之为是结构化提取 大家听到结构化时候 千万不要那个就是想当然的理解为我所谓的结构化就是指 比如说XMI或者说是什么 它其实可以是更加的自由的 也可以更加严格的 就比如说现在网上很火的那个李继刚 他写的话 是要lisp这门语言去写的 它就是非常结构化的 它甚至于都不能针对为结构化 它是一套非常常音序化的 当然 我这边的话 因为事实上我在二三年初的时候的话 就开始使用的一套方案的话 它不并不是用lisk语言 而是用一套所谓的伪代码语言 这个的话 其实伪 伪代码 其实意思就是说 它还是看上去跟代码一样啊 这套源的话 其实效果也不错 用伪代码写的话 其实它就是 呃 没有list 没有list 那conme的形式的话 更加接近于是自然语言一点 但是又比前面所看到的markdown也好 xmail还要比他们更加的形式化一点 那还有一种的话 就是说 我也不用markdown 也不用xmail 这些东西可能对我我说说还是过于就是那严格了 我可以更加自由一点 我就是写一个就是文档 但 但是这个文档中的话 我可以把这些分段 嗯 对吧 我可以把每一段自己己要要说的东东 根 根据就是把不同的需求写在不同的段落 比如说我第一段就是跟他说 你现在的一个设定是怎样的 第二段就跟他说你现在所处的一个背景是怎么样的 第三段就跟他说 我想要你做的事情是怎么的 第四段跟他说 我的一些额外的需求和约束是怎么 这个东西他也可以视为一种是结构化的 而不是说你把所有东西一股脑的东一拉肚子 东拉一句 西拉一句 全部写在一块 那第一句还在说你的设定 第二句在说说我想要什么 第三句我跟他说的是你约束什么 第四句又回到我的设定了 对吧 那这个的话 就是相当于说是完全一锅粥了 这个的话 咱们还是说的结构化和非结构化 当然这话从程度上来说的话 那个一锅粥的就是最最形最不结构化的 然后像不管是我的那套 就是那个伪代码 还有说像是李继刚 李继刚那套list 这个是非常形式化的 那这个相当于说是一个光谱 从最不形式化到最形式化就全都要用了 然后推荐大家在写的时候的话 是尽可能的 当然不是上写带代吧 尽可能 比如说使用mark markdown 并且要把它那个就是根据不同的主题 不同的需求 不同的任务 不同的目标 把整个分段要分分好 就是能够用一些标题的肯定是最好的 哪怕你不用标题 你为什么加个粗学体的话 其实也可以给到AI一个提示的作用 那为什么说结构化提示它的效果好呢 那是因为就是现在我们不管是文本也好 还是说是那个绘图也好 那个提示语的话 它的内部的一个就是AI的话 它的一个内部的核心 其实就是说的那个注意力 注意力机制和基于注意力机制的transform架构 以及transform架构的各种各样的变种 它的一个特点就在于说 它里面注意力头 它是有数量限制的 那我们现在会看 如果说大家去看一些论 论论文的话 基本上每周都会有几篇论文出来 说是关注注力力机制要怎么去优化它 关于注意力头 怎么让它的数量可以变得更多 甚至于说像谷歌的那个波特事业的话 现在在考虑所谓的就是无无限的自那个注意力头 那这个的话 其实的话 那个现在只是说是一个研究方向 但是目前至少我的那个 那个实际中还没有彻底用到 就是其 其他的话 哪怕说它是没有注意力投数量的限制的 但是它还有权重的限制的嘛 那回 回前面问题 为什么结构化的好 就在于于我注意力能够关注到的那些内容容 其实是有一定的数量限制的 这 这其实 际上在我输出的时候的话 我输出的那些内容 其实也是会消耗一定的注意 注意力的 因此 嗯 就是如果说我一个东西 它是完全没有结构化的话 那一方面它会分配更多的注意力去把你所输入的东西 把它给拆解为真正你想要表表达的 那其实就无缘无故的浪费了一些注意力头了 这是其一 其二的话 就在于是那个在它就是LIM 或者说是生成式模型 他在给各个关键词去进行一个就是权重分配的时时候的话 结构化的东西可以有助于他去给那些真正有那是重要的 真正你就是跟你的任务相关的那些那个关键词 那些主要的token分配更高的权重 权重越高 那最后出来的结果 它准准确性自然也就越高 但如果说你的任务本身就是跟联想相关的话 那你可能反而要反其道而行 不要那么结构化 那这是另外一个问题啊 因为大部分情况下 我们肯定不会想要那个AI输出东西完全是天天马行空对吧 肯定是还希望它可以focus在我们想要它做到任务上的 那这个时候就是前面所说的 一方面它可以节约你的助力头 另外一方面的话 它是可以让那些真正关键的那些信息 它的一个权重更高 这个更进一步的话 可能我们未来如果有机会去讲就是那个注意力机制它的一个内部的一个工作原理 以及transformer transformer架构它的内部的工作原理的时候 可能会去讲到这点 那现在的话 大家先不用这么就是太过于关注它在背后的技 技技术的原因 只要知道他这是有这么一个是的就是性质存在的 那这里面还要强调一下的是 我们二四年的话 应该是在神经科学领域的话 有一篇论文会发现 人脑在一个活动 在思考过程中的话 其实它是有跟前面所说的那个结构化类似的那么一种情况 就是说当我们人脑在看一个文本的时候 那个文本如果说它是结构化做的越好 其实人脑在运行的过程中的话 它的一个效果其实也是越来越好的 从这点来看的话 其实人脑在这方面的工作的一个特性 跟那个现在的生成值AI其实是非常像的 那千万点题啊 这已经是我们在这个系列中提到第二个人脑和AI的一个相似处了 OK 再下来的话 我们就要来讲一下一个最基础的一个编写提示语的时候的话 可能会用到的一些技巧和框架 比如说大家最常见的从二三年开始 二三年年初开始到现在的话 一个最常见的一个就是提示语的一个技巧 就所谓的是角色扮演 角色扮的话 就会就是你在最一开始就跟他说 你现在的身份是什么 比如说你现在的身份是一个物理老物理老师 你帮我来讲解下面这道题 这个效果就跟就是会比我现在跟他说 你现在是个科科作家家 你跟我去写 那很明显的前者会好 甚至就是你刚才说你现在是一个散文作家 让他去写 你现在是一个诗人 让他给我去解道物理题的话 不是说诗人在就是诗人化的AI 他解出来不出来 但他他那个解出的东西 肯定质量是不如最开始所说的你现在是个物理老师的质量比较好 因此这样来看 可以看到身份他对于整个他最后能够给出来的东西 他其实是有一个比较重要的一个影响力的 就是其一 其二的话 就是那这个在很多一些稍微复杂的场景中的话 你可能不单单要去跟他说一下他身份是怎哪PS一下的话 在某些那个AI模型模型中的话 这个身份可能没有那么的重要 就比如说那个前两天十美塔那边说的哎 那个拉ma三 拉玛三里面的话 我没听错的话 他现在已经调调说那个身份的话 它的作用已经没有那么强了 但是这个的话 也只是说它的作用没有那么强 但它还是有有有一定的一个这重要性的 然后的话 是在我们绘图 或者是在写歌 就是作曲这个方面的的话 那在这两个领域中的话 可能身份的确没有那么的重要 反而是那个风格是更加重要的一点 那无论如何 我们回到文本型的里面来说的话 首先第一点就是你的这个 你要让AI现在以什么样的身份跟角角色去说 那这个里面的话 最简单的就是你只是告诉他一下身份是怎么样的 复杂一点的话 这也是我在去年在做 就是那些那个时候我在陪聊的一些a镜头的时候的话 会强调调整 我会把他整个人物小传给写写出来 就是这张人物小传 他其实意思就是说 我会把整个角色设定给尽可能的给丰满化 丰满到什么程度 首先我会告诉告诉他 让AI去相信自己现在真的是一个人 那我是做到的是陪丽聊的a者相信是个人的话 他最后反挥出来的方式 在那个语言风格上 感觉是比agenai是要好的 因此在第一步 第二的话 我会 我会告诉他 你现在的整个身体的外貌是怎么样的 然后你的身高经历是怎么样的 然后你的成长经历是怎么样的 所有这些东西 我会看到他其实是对于这个AI去更好的带入这个角色是有帮助的 在我们一个在我们去做一个以这种所谓的情感上的对话为目标的这么一个agent的一个过程中的话 有人物设定其实是相当重要的一件事情 这个时候AI会跟你聊他过去是怎么样的 而且会聊的让你觉得他真的是有这一部分过往在的 因此人物小传就很重要 然后的话 我会 会 就是会去写你的性格是怎么样的 你人的说话风格是怎么样样的 你的就是比如说那个人生信条 底底你的的那个学识 这些东西全都会需要这些东西的话 最后社会体现在他整个跟AI的一个交流过程中的 这就所谓角色设定 一定要尽可能的丰满 那这个的话 不是说所有情况都是这样 那看你的 嗯 想达到的目标是怎么 比如说我像我前面所说 我要做的一个是陪聊型的机器人 那这些东西肯定是需要的 但是如果说我只是想让他回答一个问题的话 那你可能就是说是他的一个身 身份 他的一个所谓的专业氛围 这是很重要的 然后是他的说话风格 以什么样的方式去把答案给呈现出来 比如说你是要用古龙型的话话术去写 金庸型的话术去写 还是说鲁迅的话说去写 爱因斯坦的话说去 去 去写不同的这种所谓的设定的话 它就决定了你最后看到AI输出给你的文本 它的一个风格是怎么样的 这也是我们会需要去设定的 再然后就是一些那个场景设定 背景信息 这 这些当然也是非常重要的 比如说场景设要定的话 同样的一个问题的话 你在不同场景下 它回答出来的一个情况可能是不一样的 然后这个场景的话 包括很多 首先你一个比如说你是要用在哪个场景中 我是要用在教教学过程中 还是说要用在 比如说是那个 呃 写科普呗 科普文章对吧 这些场景信息同样是你要告诉给AAIAI的 然后是一些背景信息 背景性信息就包括 比如说我这边这篇文章是写给谁看的 我现在写给小学生看 写给中学生看 还是怎么样 这个的话 就决定了AI它的最后回答的时候的话 他会就是把这个所的输出知知识点的难度控制在哪个范围内 对吧 嗯嗯哈 然后的话 还包括就是如果说这一些复杂任务 像我们后面会介绍到的像TOTCOT这一种的话 你得告诉他分哪些步骤 哪些阶段 或者说你整个推理路径是怎么样的 或者说你在给出多个推理答案之后的话 一个验证机制是怎么样 这些都是在未来我们会讲到的 因此就是简到他说在提取中的话 你可能会需要告诉他的东西就包括你希望AI现在以什么样的身份 什么样的角色 如果说一以什么样的角色的话 他整个人物设定是怎么样的 然后是他就是是这个这次交所应用到用到的一个场景的一个信息 怎样的一个背景知是怎样的 背景信息怎么样的 然后就是说的分布 引导 验证机制等等等等 然后是一个很重要的一块 就是所谓的一个示例参考 或者说参考事例 参考事例的话 其实是那可以没有啊 有的话当然是更更好的 那这个的话 比如说你二三年二四年在关注提取工的话 就会听到一个熟的是zerozeroshot和fewshorts 如果说是zeroshot的话 就说是没有参考实例 那这样的话 我把前面那些所谓的角色信息还有长景信息部部完之之后 就让他直接给给出回复复就所谓的是没有实力 是zerozeroshot zerozeroshot的话 在现在的AI上的话 一定可以达到一个蛮不错的一个效果了 但是如果说你给他一定的案例的话 其实效果会更加的好 就所谓的fewshots 那比如说啊 我在那个我最近不是前阵子写了一个agent 让他来帮我去写一一些微微微微微科幻 两百字以内的 这个时候的话 我会把我自己过去的一个写微科幻的整个的从作品到生成这个作品的思路 都会把它给写成一个 这是一个就是说的参考示示例 参考示例的话 它会就是里面包含的内内个内容是我输入的一个需求是怎么样 以及作为参考的一个输出的回复是怎么样 然后AI会自己去学习输入跟输出之间的一个关联是怎么样的 你给出它的fewshots 就是那个参考示例越多 他最后回答出来的东西 不管是从答案的准确性上来说 思路的一个就是那个怎么回答问题的思路 的生成结果 还是说从最后生成的文本的文本风格上来说 都会跟你所提供给他的那些参考视力会越来越近 就比如说我在在那个写微科幻的那个agent里面的话 我会把我最近写的HT那个那个微科幻全部输给他 那这个时候啊 他最后写出来的一个微微科幻就会跟我的风格是比较像的 跟我的思路也是比较像的 但是如果说我什么都不写的话 你就会发现 它这个东西一看就感觉它就是一个AIAI风格的 但我不是说我那改的东西里面AI风格没有 细看的话 AI风格也是会有 但是就比完全没有参考系别的时候 它效果要好很多了 这个是在风格方面 在思路上面的话 同样的 我把我比如说从一个最初的点子开始 怎么到最后一个产品整个思路写的很详细 当然是根据我所要求的它一个输输结构的一个结构把把它给写很详细的话 那其实他最后在比如说我再告诉他一个新的想法之后 之后的话 它基本上它的这个路跟我的思路就会比较像 随着我给他的参考示例越来越多 他跟我的思路会越来越近 这个 其实那个大家如果说那个看过一点跟那个神经网络相关的一些资料的话 就会 嗯 明显的看到 就是说你的这个参考设例的一个作用是在整个所谓的它的一个 呃 输出的一个搜索空间中 把大量的不符合你心意的一些那个搜索空间 事先都把它给只去掉了 你的参考示例越多 去掉的这个空间就是无用的 你不想要的空间 也就越多 那最后留下来的去那个搜索的空间就会越小 那搜索空间越小 那在相同算力 相同的一个配置的情况下 它能够搜到符合你心意的那条路径的可能性也就越高 对吧 这个是很显然的 所以说参考视例的作用就在这 当然也不能说太多 因为我们还要考虑到这点 就是你参考视例越多的话 它影响到两方面 第一个是我输入的投稿会誉比较的就是越来越多 输入token的话 它其实虽然说没有输出token那么的贵 但它毕竟也是花花钱的 当我达到了几个参考示例之后 剩下的参考示例可能能够对未来的一个输出结果的一个优化的一个效果 可能就是一个越减的 因此它就是它整个边际效益是递减的 所以说 大家到底要这个量到什么程度 是自己要去把握的一件事情 而不是说越多越好 可能比那个写微课换为例的话 那个比如说八到十篇的效果已经比较好了 十篇以上的话 其实效果提升就没有那么明明明显 一百篇的效果跟我十五篇的时果可能是完全一样 对吧 因此这个量叫大家自己根据自己的一个具体任务要自己去把它控制住的 就是其一 其二的话 东西越多 就是他所要花费在这一些参考示例上的一个算力时间也就越长 那最后导致结结果就是是最后得得到的他给我输出反馈的一个时间会越更就更加的长 这个里面的话 有个衡量标准 就是所谓的那个首次响应时长 首次响应时长的话 它其实跟我的输入量是有一定的关系在的 我输入量越大 首次响应时长可能也就越长 我输入量越小 首次响应时长卡也就越长 首次响应时长的话 它除了跟我所谓的最新的运行时的一个提示长度有关之外 它还跟我整个对话历史相关 这个是在我们后面讲到那工作流的时候会提到 这里面就牵扯到所谓的一个记忆怎么去管理这么一个问题 这是后厚啊 我现在先不用去管 那这里大家要要记住一点 就是在于说那个视力的作用 首先它是很重要 其实它也不能太多 OK 再然后的话 就是第三个也是很重要的 就前面两条 第一个是我在里面写的 包括什么角色设定 场景设定之类 就所的设设这一一块很很容很重要的 里面不单是设定了它的一个情况 还要把你想要它做什么东西给讲清楚 这是第一大块 第二大块是所谓的参考示例 参考示例可以让它的一个答案更加的就是符合你的预期 第三块也很重的时候的输出格格式 输出格式的话 比如说在什么都没有的情况下的话 它就是一纯文本的形式把它给输出的 当然以现在markdown的习惯的话 它可能输出的东西并不是全文本 而是 是那个 而是那个 呃 marmarkdown 因为很明显 那个现在好像他那个基本上没有什么是就是没有哪个AI它输出是不带marmmarddown格格式的 你让它直接输出xmma也是不大现实对吧 但是你可以通过在输出格式中要求它输出其他的一些格格式 除了markdown或者是传文本之外 你可以让他直接以jason的一个数据格式把东西给输出出来 也可以让他以XM的格式把他的数据把数据给数据东西输出出来 甚至于说 你可以让他以一个自定的 自定定的话 包括首先是那个市面上已经存在的 并且是大家用了很多的一些数据格式 比如说你告诉他 你是要有那个CSV表格 以HTML网网页 或者说是以那个 那个真的的豹纹 我们在做那个数据交换的时候的话 有一些豹纹结构 它也是可以输输出的 这个其 其他的话 你可以写一个模板 让它自己往这个模板里面去填 这些都是可以的 可以的 用某o版的话 当然是灵活度更高 那这个的话 对于大家要求当然也就更高了嘛 那这个牵扯到一个问题是 为什么要去输出这个格式 要去把它规范掉呢 这就在于是我们现在再去用AI的时候的话 可能我们更多的是人直接跟他进行一个叫我在这个时候的话 输出格式 哪怕只是纯文本 或者说是marktdown的话 我们一眼就能看出来我们要的信息 信息在哪里 但是更多的时候 在一个工程化以后的话 可能AI的输出结果并不是直接反馈给终端用户 这是要反馈给一段程程序的 然后再由程序进行一个后续处理 这个在我们后面聊那个工作流的时候是会聊到的 就是其一 其二的话 比如说我会让那个AI把一些所谓的中思考考过程把它输输出出来 然后在输出完中间思考过程之后 再把最终结果给输出出来 那在这个时候的话 从用户角度来看来说的话 第二部分当然是他要看到的 但是第一部分他其实并没有这个必要去看到他是不是这样 所以说 结构化输出之后的话 一方面是方便那个后续的程序去做一个后续的处理 另外一方面的话 也可以把整个东西去进行一个所的后续处理之后的话 让用户只看到他能够看到的 以及他希望看到的 另 别的部要么折叠起来 要么隐隐藏掉 但是你不能不让AI去输输出 这个的话 其实就牵扯到很重要的一点 在控制AI输出的这个过程的话 就是控制输出 这也是我们在提示语中要去完成的一件事事情 因为 呃 就是现在说所谓的控制输出的话 就是你要告诉人家以什么样的顺序输出哪些内内容 这些内容中可能有部分跟最终的一个回复并没有直接的关系 而只是说它是一个中间过程 但是从我们的一个经验判断来看 中间过程其实是很有必要让它去输出出输出出来的 输出中间过程和不输出中间过程 其实有的时候效果会差很多 从那个底层技术原因上来看的话 就是因为那个我们现在包括GPT和cloud等等在内的这些所谓的大文大语言模型的话 他们其实在那个输出端的话 就所谓的一个编码器 编码器这一块的话 他其实怎么说呢 它是有一个掩码 这个掩码的话 就相当于说就 就是我们正常情况下所认为的是 我们就是看到了前两个字 去想后面后面一个字 但事实上解码器中的话 它可能是看前两个字想第三个字之后的话 再把第二个字给遮盖掉 我们通过第一个字和第三个字 再回过头来看我第二个字应该用什么字会更好 嗯 差不多是有 这差不多是这么个意意思啊 在这种情况下 就会看到是我最后输出的一个结果 其实跟我前面的一个输出结果是有一定的关联在的 对吧 那这个是不管是有 就是不管是从前面所说 想通过一二猜三 还是通过一三去猜二 其实它是有一定的一个关联在的 如果说我让那个AI在输出的时候 不把它的中间结果给输出出来的话 那它其实就是它中间的是个四考结果到底有没有 其实就是不一定的吧 虽然说从原理上来看的话 就是从原理上来看的话 当它输出第一个字的时候的话 就 否则它实际是根据k跟v啊 k跟q之间的一个相关相关性 然后给v赋予一个权重 这个是大家如果说去看一个注意力机制的它一个底层原理的话 是这样子 那在我去让它输出一个中间结果的之后的话 相当于说它已经把k跟v给确定下来了下一个注意力 那么k跟v的话 是基于这个东西去大概做一个后后退的 但是如果说我不让它去输出的话 那就套前面一个的相关度的计算过程 可能是他并没有去算 那在这个时候的话 它其实整个搜索空间又变大了 那可能做的出的结果就没有这么好说的 可能抽象了一点 我们就去这么想好了 人在去进行一个思考过程中的时候的话 我把一个中间的 就比如说我让大家去那个算一道数学题题 那有中间过程 草 草稿上写出来 那有中间过程 让 让你直接心算出最后答案 结果是效果是肯定是很不一样的 嗯 当我是让你 就是允许你在草稿上面把中间过程写出来的 再来的时候 你在做数学题的时候 准确率会更高 但是我让你在中间过程一步都不允许写的情况下 完全靠心算去算出最后来的话 你的正确率很明显的会大大降低 在这方面的话 你就是所在让AH输出一个中间过程 其实就是让它去打草稿的这么一个过过程 它输出的东西是对于它最后的一个成品的质量是有一个很大的一个相关性的一个关联在的 因此让他去输出是很重要的 那既然让他要让他去输出一个中间过程的话 那就牵扯到并不是每一个用户都想看到这个中间过程 这就是我们前面所提到的 所以在在输出格式要求中的话 我们会要求他说 中间程程写在哪儿 最终的成品结果写在哪 这样的话 可以方便我们后续去控制怎么把这个最终结果显示给到用用用户端 因此输出格式它也是很重要的 那今天的话 得先讲到这里 那我们今天前面也讲了 首先是关于什么是一个提示语 什么是提示语工程 然后是提示语它包含哪哪些 一个比较重要的一些就是 呃组成部分 然后的话 是为什么要需要有结构化提示语 为什么需要有那个结构化的输 输出 然后是常见的一个提示语中 它可能要包含哪些内容 比如说角色设定啊 场景设设定 以及参考设计的重要性为什么这么高 那这个是我们今天这第一期所讲的一些内容 我们在第二期中的话 就会讲一些比较重要的一些啊 如果说我们大家如果说回头去看荒原书店里面季老师跟我一起合作的那一档那个系列讲座的话 我们这个不单会有讲的内容 我们还会放出一点那个就是实际的一个案例出来 这个大家会看的更加的清楚一点 那在播客中的话 我们实际案例就不放了 那下一期的话 我们会讲一些就是那个提取工程中比较常见的一些使用技巧 比如说常见的设计框架是怎么样的 就是所谓的比如说chrisper框架是怎么样的 broke框架是怎么样的 trace框架是怎么样样的 这其一 然后的话 还会介绍一些所谓的一些那个所谓的思维链 CCOCOTCOT嘛 它有几种变种 它分别是怎么样的 如果说要去写的话 要注意哪些问题 然后是TOT 也就是所谓的那个思维数 它又是什么样的 写的话应该要注意哪些问题 以及它的变种要有哪一些 再来的话 我们还会讲到就是所谓的就是我们前就是我前面所提到的 不管是李继刚的那种是用lisp去写的 还是说我那种用伪代码去写的 他们的一个整体的思路是怎么样的 以及要注意的问题是哪哪些 最后的话 我们在第三部分的会有讲到工作流又是什么 工作流的话 它其实可以看作是那个提示语和程序语言的一个集合体 那我们会最后会来讲工作流的话 你整个设计过程中 你要注意问题是有哪 嗯 哪些 以及怎么去设置工作流是比较好的 那就是这么三大块 相当于是今天是第一块 一些基础知识和原理 然后是下一期的话 是第二块 就是常见的一些框架 以及常见的一些那个思维链等等 四维数等等他们的写法 第三部分的话 就是要集中到所谓的工作流 以及所谓的编程式提示语也好啊 原名提示语也好啊 动态提示语也好 就是一些比较高级的内容了 那好 那今天第一期就到这里 那大家也可以在留言中来告诉我 你们想听到哪些内容 以及你们认为是已经讲完的部分 它有哪些不足之处 我们可以看做什么改进笔是比较好的 然后最后的成品的话 肯定是要看年后 然后我跟季老师合作的那个一系列东西了 那到时候的话 肯定也会把里面的录音部分放到博客里面来的 那好 今天就先这样啦 大家再见 拜拜 嗯