大模型之提示词工程原理——提示学习(prompt learning)

知其然也要知其所以然,为什么会有提示词工程?

了解和使用过大模型的人应该都知道提示词工程,即使不了解提示词工程,至少也应该听说过,提示词工程说白了就是一种和大模型交流的方法,它的作用就是让大模型更好的理解人类的需求。

而且在网上很多关于大模型提示词的文章和视频中,都提到了提示词的质量能够直接影响到大模型的性能和推理效果。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

但很少有人能明白这是为什么?为什么不同的提示词会产生完全不同的效果。‍‍‍‍‍‍‍‍

今天我们就来透过现象看本质,深入了解一下提示词工程。‍‍

01提示词工程的背后‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

要知其然也要知其所以然

在我们学习大模型技术的时候,很多文章和视频教程都告诉我们要写好提示词,好的提示词能直接影响到大模型的输出质量。‍‍‍‍‍‍

但从来没有人告诉你,为什么不同的提示词会得到完全不同的结果,换句话说为什么会有提示词的出现?‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

技术的出现是有一个先后顺序的,先有的提示词,再有的提示词工程;提示词工程是为提示词服务的,目的就是怎么写出一个更好的提示词。

简单来说就是,大家把写提示词的经验总结成一种方法,这个方法就叫做提示词工程。‍‍‍‍‍‍‍‍

OK了解了提示词和提示词工程之间的关系,那么就来回答上面那个问题。‍‍‍‍‍‍‍‍‍‍‍‍‍‍

为什么会有提示词?

提示词的产生是有历史原因的,虽然这个历史很短。

我们知道人工智能的发展经历了多个阶段,虽然近些年机器学习大行其道,但并没有产生特别大的影响,直到openAI基于Transformer架构开发出了GPT系列,特别是GPT-3版本发布,以及谷歌发布的BERT模型。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

在GPT和BERT模型开发前期,由于参数量小,模型体量也小,直接的结果就是当时的模型训练成本比较低;因此,那时开发大模型主要以预训练和微调为主。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

这时研究深度学习模型的方法也被称为——预训练-微调范式。‍‍‍‍‍‍

但直到GPT-3的出现,模型的参数出现爆炸式增长,直接从刚开始的上亿参数量增长到上千亿参数量;这时大模型这个词出现了,大模型代表的不只是模型规模大,参数量多;也代表着模型的训练和微调成本直线上升。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

比如说,GPT-3模型训练成本好像达到了上千万美元;因此,从成本的角度训练和微调模型不再是一个好的选择。

这时,大家就开始考虑一个问题,上千亿参数的模型已经具有了非常丰富的知识量,那么怎么更好的更有效率的利用好这些知识呢?‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

我们知道,在预训练和微调学习范式中,需要通过训练数据不断调整模型的参数来让模型达到最优解。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

而经过一段时间的研究和实验,这时就有人发现了一种在不需要调整大模型参数的情况下,用少量样本或零样本的方式,就可以让大模型输出更好的结果。‍‍‍‍‍‍‍

基于这种结果,人们又经过其它研究发现,对同一个问题使用不同的提示词会输出不同的结果。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

简单来说就是,提示词写的越好,模型的输出效果越好,因此就把这种现象命名为提示学习。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

而为什么会产生这种现象,这个就像大模型的涌现能力一样,它是一种现象,但不知道产生的原因。‍‍

所以总结来说,提示学习是一种基于实验发现的一种现象,它能够在不改变模型参数的前提下,让模型拥有更高的输出质量。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

因此,基于提示学习这个理论就产生了提示词,而怎么把提示词写的更好就有了提示词工程。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

不同提示词产生不同效果的原因

网上也有这种说法,在预训练-微调阶段是让大模型去适配不同的任务;比如,电商类大模型需要用电商数据进行训练或微调,工业类大模型需要使用工业数据进行训练或微调。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

而提示学习阶段,却是让任务去适配大模型;就类似于男女之间的感情,在之前大都是男追女,男人需要给女人买礼物,请客吃饭等等,需要花费大量的金钱;而最近两年男人突然明白过来了,我不追了,花钱把自己收拾干净,买房买车让女人倒追。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

下面我们用一个例子来说明为什么提示词不同,效果也不同,拿一个情感分类任务来说:‍‍‍‍

问题 Q = “这个电影不错”‍

‍‍‍‍‍

加上提示词模板P_Q = “这个电影不错,我很喜欢,因此这是一个X电影”。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

这里的X就是大模型需要预测的结果,而如果再把这个X加一个限定范围,比如A:无趣的,B:好玩的;这时大模型就可以轻易的判断出这是一个好玩的电影。‍‍‍‍‍‍‍‍‍

而不加提示词模板,模型给出的答案可能就千奇百怪,比如说这是一个难看的电影,这是一个糟糕透顶的电影,这是一个某某主演的关于某某事情的电影等等,都是有可能的。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

而这就是为什么提示词工程中有些人会要求,写提示词要给大模型设定角色,背景,明确任务要求,限定任务范围等要求。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

基于NLP自然语言处理模型开发的人工智能机器人,感兴趣的可以点击查看:‍‍‍‍‍

总结

简单来说,不论是预训练-微调,还是提示词都是为了让模型表现的更好,为了发挥大模型庞大知识能力的一种方式,而提示词是一种成本相对较低的方式。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

而对使用者来说,使用第三方模型是根据Token进行计费的,而更长的提示词意味着更多的Token,因此怎么写出一个简短又高质量的提示词就是一个需要考虑的问题。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

零基础如何学习AI大模型

领取方式在文末

为什么要学习大模型?

学习大模型课程的重要性在于它能够极大地促进个人在人工智能领域的专业发展。大模型技术,如自然语言处理和图像识别,正在推动着人工智能的新发展阶段。通过学习大模型课程,可以掌握设计和实现基于大模型的应用系统所需的基本原理和技术,从而提升自己在数据处理、分析和决策制定方面的能力。此外,大模型技术在多个行业中的应用日益增加,掌握这一技术将有助于提高就业竞争力,并为未来的创新创业提供坚实的基础。

大模型典型应用场景

AI+教育:智能教学助手和自动评分系统使个性化教育成为可能。通过AI分析学生的学习数据,提供量身定制的学习方案,提高学习效果。
AI+医疗:智能诊断系统和个性化医疗方案让医疗服务更加精准高效。AI可以分析医学影像,辅助医生进行早期诊断,同时根据患者数据制定个性化治疗方案。
AI+金融:智能投顾和风险管理系统帮助投资者做出更明智的决策,并实时监控金融市场,识别潜在风险。

这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。

大模型就业发展前景

根据脉脉发布的《2024年度人才迁徙报告》显示,AI相关岗位的需求在2024年就已经十分强劲,TOP20热招岗位中,有5个与AI相关。
在这里插入图片描述字节、阿里等多个头部公司AI人才紧缺,包括算法工程师、人工智能工程师、推荐算法、大模型算法以及自然语言处理等。
在这里插入图片描述
除了上述技术岗外,AI也催生除了一系列高薪非技术类岗位,如AI产品经理、产品主管等,平均月薪也达到了5-6万左右。
AI正在改变各行各业,行动力强的人,早已吃到了第一波红利。

最后

大模型很多技术干货,都可以共享给你们,如果你肯花时间沉下心去学习,它们一定能帮到你!

大模型全套学习资料领取

如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

部分资料展示

一、 AI大模型学习路线图

整个学习分为7个阶段
在这里插入图片描述
请添加图片描述

二、AI大模型实战案例

涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、视频和书籍PDF合集

从入门到进阶这里都有,跟着老师学习事半功倍。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、LLM面试题

在这里插入图片描述
在这里插入图片描述

五、AI产品经理面试题

在这里插入图片描述

六、deepseek部署包+技巧大全

在这里插入图片描述

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~
在这里插入图片描述

### 对CLIP模型进行微调及提示词学习技术 #### 微调CLIP模型的方法 对于CLIP模型的微调,重点在于调整其预训练权重以适应特定的任务需求。不同于传统方法中对整个网络参数进行全面更新,在CLIP上的改进方案LAMM仅针对下游任务中的类别嵌入表示进行微调[^3]。 ```python import torch from clip import load, tokenize model, preprocess = load("ViT-B/32") # 加载预训练好的CLIP模型 for param in model.parameters(): param.requires_grad_(False) class_embedding = torch.nn.Parameter(torch.randn(10)) # 假设有10个类别 optimizer = torch.optim.Adam([class_embedding], lr=1e-3) ``` 上述代码展示了如何冻结除分类器外的所有层,并引入新的可训练参数用于存储各类别的嵌入向量。这样做不仅能够保持原有特征提取部分的强大表征能力,还能让新加入的部分更好地拟合目标任务的数据分布。 #### 提示词学习策略 在构建有效的提示模板方面,研究发现通过端到端的方式自动优化这些文本描述符能显著提升模型的表现。具体来说,就是将原本固定的字符串形式的提示替换成一组由神经元构成的、可以在反向传播过程中不断迭代改善的“软”提示——即所谓的`<Mi>`标记。 ```python def get_prompt_template(class_name): return f"This is an image of {class_name}." learnable_prompts = [] for i in range(num_classes): # num_classes为类别总数 learnable_token = torch.nn.Parameter(torch.rand((77, 512))) # 初始化随机张量作为初始状态 learnable_prompts.append(learnable_token) # 将所有类别的可学令牌组合成批量输入给CLIP编码器处理... prompts_tensor = torch.stack(learnable_prompts).to(device) text_features = model.encode_text(prompts_tensor) ``` 这里定义了一个函数来生成基于类名的基础提示句型;接着创建了一系列与各个类别相对应的可学习token实例;最后把这些tokens打包送入CLIP的文字分支获取对应的特征表达。随着训练轮次增加,这些动态变化着的提示将会逐渐逼近最优解空间内的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值