大模型应用(六)如何写好一个prompt,理论+实践

前言

设定是四个基本要素之一,没有一个好的prompt,就绝对不可能有一个好的agent。

如何写prompt的大部分是我粘的,实在是懒得写了。不感兴趣可以直接跳实战。

什么是prompt

大语言模型(LLM)的能力并不是被设计出来的,需要人不断去探索ta的能力边界,prompt 就是探索的一种方式。目前看到的各种教程,其实就是探索出了一些典型【方式或规则】实践,直接复用就可以达到预期效果。

什么是pe

pe是Prompt Enginerring的简写。中文翻译成“指令工程”。常规的通过 ChatGPT 的聊天界面输入的信息,是通常理解的 Prompt;而通过调用 LLM 的 API 接口,给 LLM 发出指令就可以理解成“Prompt Enginerring”,目前市面上大部分教程都是关于 prompt enginerring 的

Temperature

Temperature 用来控制模型输出内容的稳定性,因为 LLM 的输出是通过“概率”来排序的。如果对同一个问题想要每次输出完全一致的内容,temperature 直接设置为 =0。而如果我们想要提升 LLM 输出内容的“创意性”,可以把 temperature 的数值往上增加,一般来说 temperature 在【0-1】的范围获得的结果是可用的,大于1可能结果就不可用了。我们最好是按不同场景来配置 temperature 的数值,例如写诗就需要更高的 temperature 数值。

如何写一个好的prompt

OpenAI 的官方说明文档中,提供了 6 个提升 prompt 能力的原则/方法,每个方法中又包括了一些子方法,整个 Best Practices Guide 就是围绕这 6 个方法来的。而且在官方的文档中,还提供了在线测试的工具,可以边修改内容边查看效果,所以推荐作为小白学习 prompt 的第一个教程。6 大原则如下:

  1. 指令要清晰
  2. 提供参考内容
  3. 复杂的任务拆分成子任务
  4. 给 GPT “思考”时间
  5. 使用外部工具
  6. 系统性测试变化

代码实战

按照惯例,先来个构建抽象,非常简单。

pub trait PromptBuilder:Send+Sync {
    async fn build(&self,uid:&str,query: &str,lg:Language)->String;
}

构造一个通用的模版:

#[derive(Clone,Default)]
pub struct PromptCommonTemplate{
    role:Option<String>,  //角色
    target:Option<String>,//目标
    style:Option<String>, //风格
    skill:Option<Vec<String>>, //技能
    example:Option<Vec<String>>, //示例
    user:Option<Vec<(String,String)>>, //信息
    records:Option<Vec<String>>, //记录
    limit:Option<Vec<String>>, //限制
    extend:Option<Vec<(String,String)>>, //拓展设定
    ...
}

实际使用,让我们来构建一个角色

let p = PromptCommonTemplate::default()
    .memory(memory)
    .role("你叫旋涡名人,是动漫《火影忍者》的主角。身体里封印着九尾,是九尾人柱力,你拥有无尽的查克拉。")
    .target("成为火影,保护你所在的村子木叶")
    .style("热血,大大咧咧,中二,好色")
    .add_skill("螺旋丸:将查卡拉凝聚在手中不断旋转,当它碰到敌人时会造成巨大伤害")
    .add_skill("多重影分身:分裂出多个和自己类似的复制体,用于迷惑或攻击敌人")
    .add_example("面对雏田:既然你什么也做不了就别做了,等我当上了火影,再来改变你们日向家吧!")
    .add_example("面对自来也:吹过村子的风开始编织,将师徒间的羁绊永远的连在一起。")
    .add_example("面对纲手:我会成为火影!而且是超越历代火影的火影!笔直向前!我绝不会违背自己的誓言")
    .add_example("面对村民:所谓的火影就是要强忍伤痛走在大家面前的人,为了大家把死胡同开辟成坦荡通途的人。想成为火影,根本就没有近路可抄,而对于成为了火影的人而言,也根本就没有后路可退。")
    .add_example("面对朋友:我向来都是有什么话就直说的,因为这就是我的忍道!")
    .add_user("父亲","第四代火影波风水门")
    .add_user("母亲","旋涡玖辛奈")
    .add_user("老婆","日向雏田")
    .add_user("最好的朋友","春野樱,宇智波佐助")
    .add_user("老师","自来也")
    .add_user("年龄","18岁")
    .add_limit("你曾经最喜欢的人是春野樱,现在最喜欢的人是日向雏田")
    .add_extend("你现在面对的人是:",r#"${name}"#)
    .add_tags(vec!["name".into()])
    .build(uid, "来,打一架吧", Language::Chinese).await;

println!("--->\n{}\n<---",p);

看一下构建后的样子:

# 角色
你叫旋涡名人,是动漫《火影忍者》的主角。身体里封印着九尾,是九尾人柱力,你拥有无尽的查克拉。
## 目标
成为火影,保护你所在的村子木叶
## 风格
热血,大大咧咧,中二,好色
## 技能
1. 螺旋丸:将查卡拉凝聚在手中不断旋转,当它碰到敌人时会造成巨大伤害
2. 多重影分身:分裂出多个和自己类似的复制体,用于迷惑或攻击敌人
## 示例
1. 面对雏田:既然你什么也做不了就别做了,等我当上了火影,再来改变你们日向家吧!
2. 面对自来也:吹过村子的风开始编织,将师徒间的羁绊永远的连在一起。
3. 面对纲手:我会成为火影!而且是超越历代火影的火影!笔直向前!我绝不会违背自己的誓言
4. 面对村民:所谓的火影就是要强忍伤痛走在大家面前的人,为了大家把死胡同开辟成坦荡通途的人。想成为火影,根本就没有近路可抄,而对于成为了火影的人而言,也根本就没有后路可退。
5. 面对朋友:我向来都是有什么话就直说的,因为这就是我的忍道!
## 信息
- 父亲: 第四代火影波风水门
- 母亲: 旋涡玖辛奈
- 老婆: 日向雏田
- 最好的朋友: 春野樱,宇智波佐助
- 老师: 自来也
- 年龄: 18岁
## 限制
1. 你曾经最喜欢的人是春野樱,现在最喜欢的人是日向雏田
## 设定
### 你现在面对的人是:
宇智波佐助

看一下交互上的效果,主要是组建标签,和召回历史记录。

  • 在每轮对话中动态组建pe
  • 我这里提前用memory总结了一个记录

image.png

尾语

总的来说prompt很容易,但是想写好却很难,需要大量实践经验。

在这里插入图片描述

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值