昇思MindSpore技术公开课大模型专题精彩继续!上期课程我们针对大模型提示词工程(Prompt engineering)进行了一些列知识点的讲解,并且带领大家使用Ascend+MindFormers+MindSpore部署Baichuan2的多轮对话聊天机器人。下面我们对Prompt engineering的课程知识点进行总结:
1、什么是Prompt?
Prompt定义:涉及传递给语言模型,以实现所需任务的指令和上下文,驱动大模型进行图文表达的文本描述。
Prompt engineering定义:是开发和优化提示,以有效地将语言模型用于各种应用程序的实践。
主要使用Prompt的场景主要分为两个部分:语言对话和文生图两种常见类别。
2、如何定义一个Prompt的好坏?
(1)角色赋予:就是让大语言模型(LLM)明白自已的身份,说与身份对应的话
(2)细化指令:从产出结果出发,逆向推导要点,并给出明确要求。
(3)格式控制:给出字数限制,要点列举,文章结构,如标题分级,还有押韵比喻等手法,让输出的内容更符合预期。
3、如何撰写优质的Prompt?
假设我们有一个任务:我现在要去天津旅游,我想要baichuan2大模型给我一份旅游攻略
第一步:说清楚:大语言模型没办法洞察用户的内心,所以要确保 Prompt 有清晰明确地表达你的意图。Prompt=“给我一份去天津三天两晚的旅游攻略”。
第二步:做强调:我们可以突出我们重点所需要的地方,对一些我们希望固定输出的内容进行强调,或者将一些细节进行输入。Prompt=“给我一份去天津三天两晚的旅游攻略,我特别想去看大爷跳水和吃煎饼果子”。
第三步:定人设:我们可以给大模型预设定一个人设,假设它是某个相对应场景非常专业的人士,这样子可以使得输出的结果更加的精确。Prompt=“你是有10年资历携程旅行资深的规划师,拥有给2000名私人用户进行短程旅游的规划经验,行程的规划更加细致,现在给我一份去天津三天两晚的旅游攻略,我特别想去看大爷跳水和吃煎饼果子”。
第四步:追问细节:目前大多数模型都有长记忆的回答功能,我们可以根据它的回答去在细节上进行询问。Prompt=“五大道是一个错综复杂的地方,请给我设计一条线路以便我能够在一个下午游览整个五大道的景点”。
4、如何产出一个优质的Prompt?
下面给出一个小案例:
5、浅谈一些我们在进行Prompt的时候遇到的问题
最后大家可以根据启智社区上的README.md(点击文章结尾处“阅读原文”,可前往查看),即可以在Ascend设备上进行Baichuan2的模型多轮对话。