大模型微调、知识库和提示词工程概念

私有模型的训练,让大模型学会企业的业务知识;

大模型落地方法论,全面提升全体员工的AI领导能力;

训练方案:根据应用场景评估选择Fine-tuning微调还是Embedding嵌入方案;

技术架构:自行设计架构、接入模型部署、向量数据库、选择数据清洗方案,研究RAG与和Rerank算法;

运营策略:盲盒般运营没需要开发个大模型统管平台?天知道还有啥?

训练方案:Fine-tuning+Prompts+Embedding组合私有模型方案,多种智能数据清洗模式;

技术架构:图形化配置机器人角色与能力,并可视化进行模型标注调优,向量检索+全文检索后再Rerank算法后重新排序。

运营策略:自带分控规则控制大模型内容输入与输出,一键快速接入企业应用或集成Service到企业应用中。

聚焦业务价值,人人都是开发者。

1. Fine-tuning

1.1. 为什么要对大模型进行微调(Fine-tuning)?

第一个原因是,因为大模型的参数量非常大,训练成本非常高,每家公司都去从头训练一个自己的大模型,这个事情的性价比非常低;

第二个原因,提示词工程(Prompt Engineering)的方式是一种相对来说容易上手的使用大模型的方式,但是它的缺点也非常明显。因为通常大模型的实现原理,都会对输入序列的长度有限制,Prompt Engineering 的方式会把Prompt搞得很长。

越长的Prompt,大模型的推理成本越高,因为推理成本是跟Prompt长度的平方正向相关的。

另外,Prompt太长会因超过限制而被截断,进而导致大模型的输出质量打折口,这也是一个非常严重的问题。

对于个人使用者而言,如果是解决自己日常生活、工作中的一些问题,直接用Prompt Engineering的方式,通常问题不大。

但对于对外提供服务的企业来说,要想在自己的服务中接入大模型的能力,推理成本是不得不要考虑的一个因素,微调相对来说就是一个更优的方案。

第三个原因是,Prompt Engineering的效果达不到要求,企业又有比较好的自有数据,能够通过自有数据,更好的提升大模型在特定领域的能力。这时候微调就非常适用。

第五个原因是,数据安全的问题。如果数据是不能传递给第三方大模型服务的,那么搭建自己的大模型就非常必要。通常这些开源的大模型都是需要用自有数据进行微调,才能够满足业务的需求,这时候也需要对大模型进行微调。

1.2. 如何对大模型进行微调?

从参数规模的角度,大模型的微调分成两条技术路线:

一条是对全量的参数,进行全量的训练,这条路径叫全量微调FFT(Full Fine Tuning)。

一条是只对部分的参数进行训练,这条路径叫PEFT(Parameter-Efficient Fine Tuning)。

1.2.1. FFT

FFT的原理,就是用特定的数据,对大模型进行训练,将W变成W`,W`相比W ,最大的优点就是上述特定数据领域的表现会好很多。

但FFT也会带来一些问题,影响比较大的问题,主要有以下两个:

一个是训练的成本会比较高,因为微调的参数量跟预训练的是一样的多的;

一个是叫灾难性遗忘(Catastrophic Forgetting),用特定训练数据去微调可能会把这个领域的表现变好,但也可能会把原来表现好的别的领域的能力变差。

1.2.2. PEFT

PEFT主要想解决的问题,就是FFT存在的上述两个问题,PEFT也是目前比较主流的微调方案。

从训练数据的来源、以及训练的方法的角度,大模型的微调有以下几条技术路线:

一个是监督式微调SFT(Supervised Fine Tuning),这个方案主要是用人工标注的数据,用传统机器学习中监督学习的方法,对大模型进行微调;

一个是基于人类反馈的强化学习微调RLHF(Reinforcement Learning with Human Feedback),这个方案的主要特点是把人类的反馈,通过强化学习的方式,引入到对大模型的微调中去,让大模型生成的结果,更加符合人类的一些期望;

1.2.3. RLHF

还有一个是基于AI反馈的强化学习微调RLAIF(Reinforcement Learning with AI Feedback),这个原理大致跟RLHF类似,但是反馈的来源是AI。这里是想解决反馈系统的效率问题,因为收集人类反馈,相对来说成本会比较高、效率比较低。

不同的分类角度,只是侧重点不一样,对同一个大模型的微调,也不局限于某一个方案,可以多个方案一起。

微调的最终目的,是能够在可控成本的前提下,尽可能地提升大模型在特定领域的能力。

1.3. 一些比较流行的PEFT方案

从成本和效果的角度综合考虑,PEFT是目前业界比较流行的微调方案。接下来介绍几种比较流行的PEFT微调方案。

https://zhuanlan.zhihu.com/p/650287173

2. Embeddings

2.1. Embeddings技术简介

在机器学习和自然语言处理中,embedding是指将高维度的数据(例如文字、图片、音频)映射到低维度空间的过程。embedding向量通常是一个由实数构成的向量,它将输入的数据表示成一个连续的数值空间中的点。

embedding重要的原因在于它可以表示单词或者语句的语义;

embedding将段落文本编码成固定维度的向量,便于进行语义相似度的比较。

我们可以理解成把知识数据向量化成一个数据库,是为了方便检索,这让用户在提问的时候,我们就可以根据用户的提问内容,在数据库中提取相关度比较高的材料,一起给到大模型,这样大模型就能用这些专业的知识做出更加具备专业水平的回答了。

2.2. Embedding应用

打个比方,Emdedding就像是当一个项目启动时,项目经理把待完成需求所依据的额外相关材料先整理好,提取重点后放在附件中给到研发工程师,便于研发工程师高效的输出符合预期的东西。

3. Prompt

3.1. Prompt介绍

是输入给大模型的文本,用来提示或引导大模型给出符合预期的输出。

Prompt = 提示词 = 人与大模型交互的媒介

打个比方,假如我们是产品经理,大模型是一名研发工程师的话,那么提示词就是需求,产品经理在提需求的时候,需要在需求里面包含背景说明、需求说明、版本要求、方案建议等信息,只有把需求描述得足够清晰,工程师才能够按照需求输出符合要求的代码,提示词就相当于人向大模型提需求时的需求文档.

Token:

我们可以经常在大模型的计费说明中看到Token这个词,Token是大模型处理的最小单元,比如英文单词或者汉字。

Token长度 = 与大模型交互时使用的单词、汉字数

不同的人表达同一件事情时,有的人言简意赅几句话就能把事情说得明明白白,而有的人可能表达能力不好,非常的啰嗦,才能把这件事情说清楚。那么很明显这个啰嗦的人在描述这件事情上消耗的Token就比前面那个人多了很多。

3.2. Prompt工程的应用

阿里云百炼

4. 三者之间的关系及应用场景

原文链接

如何让大模型学会这本厚厚的说明书,然后来回答我们的问题呢?

首先我们可以通过Emdedding将这本说明书的文本内容向量化为一个数据库,当用户提问的时候,就可以通过提问的内容在这个数据库中检索出相关的内容,然后跟用户的提问一起组合成完整的Prompt给到我们的语言大模型去处理。根据前面文档的讲解,我们也知道提交给大模型的Prompt内容越多,消耗的token也就越多。而刚才把说明书的内容向量化,并支持相关性线索并提取出来作为problem的过程就是Emdedding。当我们把用户跟这个设备相关的问题提交给大模型时,大模型已经可以给出对应的答案了。

但假如在使用的过程中,我们希望大模型给出的回答可以更加贴合设备问题排查的格式,这时候我们就可以使用微调 的技术,也就是Fine-Tuning通过一些优质的问答数据对大模型进行训练微调,使他的回答更加符合我们的期望。

此外,基于Emdedding加Prompt的方案,一般输入消耗的都可能会很长,导致调用的成本更高,响应时间更长。如果将用户说明书中被提问的高频问题通过Fine-Tuning融入大模型中,可以大幅减少提问需要消耗的Token、加快响应时间,可见这些技术之间都是相互关联相互配合的。

从这个例子中可以看到这几个常接触的词汇是什么含义,通过以上内容能够加深您对大模型的了解呢?我们也基于大模型的使用经验做了一张脑图,可以联系开发小助手获取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值