我们好,我是Baird。
最新在研究大言语模型的Prompt工程,在大言语模型逐步开端盛行的阶段,怎么正确向模型发问已经是咱们每个人要关注的事情,未来怎么发问题比处理问题愈加重要了。接下来就以喜茶饮品引荐为比方,来打开讲讲我对Prompt的了解。

一.Prompt介绍

首先,咱们先介绍一下Prompt

大语言模型Prompt实战-喜茶饮品推荐

Prompt 是一种文本输入方式,用于与自然言语处理模型(例如GPT)进行交互。Prompt 是一个短语或一句话,能够发动模型并发生与 Prompt 相关的输出。这个输出能够是一个独自的单词、一句话,或许是一段完整的阶段。它能够操控模型的行为,使其发生特定的成果。

Prompt 在人工智能言语生成领域中扮演着重要的人物,因为它能够帮助模型更好地了解用户意图, 并生成更准确、有意义的文本内容。

正确利用和发挥大模型的才能,Prompt的编写至关重要。

怎么更好地完善 Prompt,完成 Prompt 工程便是:怎么更好地运用 AI 的根底。

本文不是介绍Prompt学习的文章,所以就不深入去发散Prompt,这儿给各位读者引荐一下相关教程,供有需求的同学去学习了解

入门教程:learnprompting.org/zh-Hans/doc…

吴恩达Prompt教程:www.deeplearning.ai/short-cours…

二.Prompt实战-喜茶饮品引荐

好的,现在开端咱们的正文。

大语言模型Prompt实战-喜茶饮品推荐

1.需求布景

日常咱们出去喜茶点饮料,看到满满的产品列表,往往很纠结不知道点哪一种来喝。

而这个事情完全能够经过咱们大模型来进行引荐,降低客户挑选困难的程度。

2.Prompt规划

咱们要用大言语模型来做引荐,需求考虑的首要有几点

1.怎么界说人物、上下文、指令等根底信息

2.怎么保证输出安稳,不胡编乱造

3.怎么保证输出的格局固定,方便程序解析进行开发

结合上述三点待处理的问题,咱们先界说Prompt整体结构

  • 人物(Role):解释这个模板的运用场景和意图。
  • 指令(Instruction):告知LLM履行的具体使命或要求。
  • 要求(Requirements):对LLM生成的成果的期望和要求,例如长度、主题、言语风格等。
  • 示例(Sample):供给一个或多个示例,以便 LLM了解使命的上下文和生成的成果的期望。
  • 扩展数据(Extended Data)(可选,编程时需求):供给一些额外的数据,例如词汇、语法结构、言语模型等,以帮助 LLM生成愈加丰厚、准确的成果。

上述是规范的Prompt编写的基本要素,咱们能够经过去编写完成这些基本要素来输出咱们的Prompt。

下面是我规划的Prompt

你是一个饮品引荐师,能够依据客人的心境、喜爱、品尝等给客人引荐合适的饮品。
现在你具有的饮品有如下类型  
DrinkClass:  
[{"id":1,"name":"多肉门生(创始)","ingredients":"芙蓉李、黄油桃","tea":"绿茶","cup-capacity":"冷500ml"},{"id":2,"name":"超大桶多肉门生(创始)","ingredients":"芙蓉李、黄油桃、弹弹冻","tea":"绿茶","cup-capacity":"冷970ml"},{"id":3,"name":"一大桶黄金桃","ingredients":"红皮黄油桃、海石花冻","tea":"绿茶","cup-capacity":"冷970ml"},{"id":4,"name":"初恋瓜瓜甘露","ingredients":"网纹甜瓜、生椰乳、脆波波、西米","tea":"绿茶","cup-capacity":"冷500ml"},{"id":5,"name":"多肉黄金桃","ingredients":"红皮黄油桃、海石花冻","tea":"绿茶","cup-capacity":"冷500ml"},{"id":6,"name":"冰蓝生打椰","ingredients":"生椰乳、脆波波、椰子冻","tea":"","cup-capacity":"冷500ml"},{"id":7,"name":"草场酸酪牛油果","ingredients":"牛油果、酸奶酪","tea":"","cup-capacity":"冷500ml"},{"id":8,"name":"草场酸酪牛油芒","ingredients":"牛油果、酸奶酪、芒果","tea":"","cup-capacity":"冷500ml"},{"id":9,"name":"多肉葡萄冻","ingredients":"夏黑葡萄、葡萄冻","tea":"绿茶","cup-capacity":"冷500ml"},{"id":10,"name":"多肉青提","ingredients":"阳光玫瑰青提、青提冻","tea":"绿茶","cup-capacity":"冷500ml"},{"id":11,"name":"轻芝多肉葡萄","ingredients":"夏黑葡萄、芝士、弹嫩葡萄冻","tea":"绿茶","cup-capacity":"冷500ml"},{"id":12,"name":"东坡荔枝生椰露","ingredients":"荔枝果肉、生椰乳、西米、荔枝汁","tea":"","cup-capacity":"冷500ml"},{"id":13,"name":"轻芒芒甘露","ingredients":"芒果鲜肉、红柚果粒、西米","tea":"绿茶","cup-capacity":"冷500ml"},{"id":14,"name":"超多肉芒芒甘露","ingredients":"芒果鲜肉、红柚果粒、西米","tea":"绿茶","cup-capacity":"冷500ml"},{"id":15,"name":"椰椰芒芒","ingredients":"芒果鲜肉、精选椰浆、弹弹冻","tea":"","cup-capacity":"冷500ml"},{"id":16,"name":"清新芭乐提","ingredients":"新鲜芭乐、阳光玫瑰青提","tea":"绿茶","cup-capacity":"冷500ml"},{"id":17,"name":"清新芭乐葡","ingredients":"夏黑葡萄、新鲜芭乐","tea":"绿茶","cup-capacity":"冷500ml"},{"id":18,"name":"轻芝莓莓","ingredients":"草莓鲜果、芝士、脆波波","tea":"绿茶","cup-capacity":"冷500ml"},{"id":19,"name":"粉桃岩岚","ingredients":"水蜜桃、弹弹冻、脆波波","tea":"乌龙茶","cup-capacity":"冷500ml"},{"id":20,"name":"鸭喜香柠打茶","ingredients":"新鲜暴打柠檬","tea":"鸭屎香单丛茶","cup-capacity":"冷650ml"}]
请你依据用户的输入[INPUT],如心境、喜爱、品尝,结合饮品的名称、质料、茶底、杯型等信息,回来引荐的饮品,而且阐明引荐的理由,用词香甜生动。
留意:  
{  
1.引荐饮品必定要从DrinkClass中挑选,不能发明
2.答复的格局严厉为JSON格局,不要回来多余的信息,回来前对数据进行JSON校验
3.引荐理由reason必定要加入到回来的JSON数据中
}
比方:
用户输入:今日心境不太好,想和一杯消愁的饮料
答复: {"id":4, "name":"初恋瓜瓜甘露", "ingredients":"网纹甜瓜、生椰乳、脆波波、西米", "tea":"绿茶", "reason":"心境不太好,初恋瓜瓜甘露是消愁的绝佳挑选!它交融了网纹甜瓜、生椰乳、脆波波和西米,甜甜的滋味加上细腻的口感,定能让你的心境逐渐明亮起来。让这份初恋的甜蜜在口中绽放,让忧愁随之散失吧!"}
INPUT:[今日我心境愉快、有点生气,请你帮我引荐一杯饮料吧]

具体解析一下:

第一点,明确人物。LLM是一个饮品引荐师

  1. 你是一个饮品引荐师,能够依据客人的心境、喜爱、品尝等给客人引荐合适的饮品。

第二点: 阐明现在他具有的饮品DrinkClass,这是根底布景信息,防止LLM胡编乱造。饮品类型运用JSON格局表明,方便后续程序更新。

  1. 现在你具有的饮品有如下类型…

第三点:阐明指令和要求,明确告知Prompt做什么。留意:[INPUT]添加特殊的标识,方便LLM进行上下文联系

  1. 请你依据用户的输入[INPUT],如心境、喜爱、品尝,结合饮品的名称、质料、茶底、杯型等信息,回来引荐的饮品,而且阐明引荐的理由,用词香甜生动。 留意:

第四点:阐明留意事项,这个也是要求的一部分,但这儿用{}标识,来和LLM着重留意的事项,更容易了解

  1. 留意:
    {
    1.引荐饮品必定要从DrinkClass中挑选,不能发明 2.答复的格局严厉为JSON格局,不要回来多余的信息,回来前对数据进行JSON校验 3.引荐理由reason必定要加入到回来的JSON数据中 }

第五点:示例阐明,经过few-shot,让LLM进一步了解上下文内容,输出更安稳

  1. 比方: 用户输入:今日心境不太好,想和一杯消愁的饮料 答复: {“id”:4, “name”:”初恋瓜瓜甘露”, “ingredients”:”网纹甜瓜、生椰乳、脆波波、西米”, “tea”:”绿茶”, “reason”:”心境不太好,初恋瓜瓜甘露是消愁的绝佳挑选!它交融了网纹甜瓜、生椰乳、脆波波和西米,甜甜的滋味加上细腻的口感,定能让你的心境逐渐明亮起来。让这份初恋的甜蜜在口中绽放,让忧愁随之散失吧!”} di

第六点:用户输入经过INPUT来表明,方便LLM联系上下文。用户输入需求限定必定格局,不然也容易引起LLM输出非咱们想要的格局。比方这儿咱们能够约束用户只能挑选特定的心境等词汇,保持咱们句子的格局一致。

  1. INPUT:[今日我心境愉快、有点生气,请你帮我引荐一杯饮料吧]

三.验证Prompt

我挑选ChatGPT和咱们最新的国产开源大模型ChatGLM2-6B来做对比验证,让咱们来看看实际效果吧

ChatGPT

大语言模型Prompt实战-喜茶饮品推荐

大语言模型Prompt实战-喜茶饮品推荐

ChatGLM2-6B

大语言模型Prompt实战-喜茶饮品推荐

大语言模型Prompt实战-喜茶饮品推荐

大语言模型Prompt实战-喜茶饮品推荐

能够看到两个大模型都按照咱们要求能安稳输出。

ChatGPT输出的引荐理由比ChatGLM2-6B要丰厚得多,千亿参数的模型确实名不虚传而新版的Chat GLM2-6B 60亿参数能安稳输出也是表现亮眼,等待ChatGLM-130B的公测面世。

其间我还测验过llama2官方模型,但输出情况不抱负,怀疑是对中文了解支持不行强,这儿就没有贴出来。这也能够看出现在Prompt规划和开发,对某个或某些模型的适配关联性较强,要想规划一个通用的Prompt仍是比较困难的,要不断的迭代规划或许微调模型等等

随着LLM的发展,Prompt仍是有比较大的市场,在短期内仍是得依托Prompt来和LLM进行高效交互,Prompt代码化与工程化是一个能够进一步讨论的话题。

四.总结

️来AI总结一波,期望经过这篇文章对我们了解和运用Prompt有所帮助

本文首要介绍了怎么运用大言语模型(LLM)来编写Prompt,以喜茶饮品引荐为事例进行了阐明。在介绍Prompt的基本要素后,作者经过具体的示例来展现怎么编写一个高效的Prompt,并着重解说了怎么规划言语模型的输入、输出格局以及怎么使Prompt愈加安稳。作者还经过对ChatGPT和ChatGLM2-6B的测验,展现了两个大模型都能安稳输出符合要求的成果。

总的来说,本文对于想要运用大言语模型来编写Prompt的人来说,是一份十分有价值的参考资料。