免费体验阿里云高性能向量检索服务:https://www.aliyun.com/product/ai/dashvector
大语言模型的简介
大语言模型是RAG系统的核心,咱们先来看看大语言模型发展的历史情况。
大语言模型的发展简史
大语言模型的发展主要为了解决NLU和NLG两类问题,简单说就是让大语言模型要理解人类语言,还要对人类生成反馈,近些年随着技术发展,已有论文论证,归根到底还是NLG的问题。
NLP发展要解决的关键问题
大语言模型的“涌现”
什么叫“涌现”?通俗讲,就是模型在小规模参数下不能胜任的复杂任务,在大规模参下能力出现“跃迁”,以前不能完成的任务,现在也可以完成了。
参数增加后,大语言模型的能力获得数量级的提升,由量变引起质变后,我们可以得知大语言模型已具有较强的推理能力以及较强的对人类语言体系的理解能力,这些能力是如何达成的呢?这个需要从embedding词嵌入向量说起。
什么是词嵌入向量
词嵌入(word embedding)实际是一个用来表示自然语言中每一个字或词的向量(一组数字,这组数字里的每一个数字可以表征该字或词某一维度的信息),具体如下:
词嵌入向量word embedding示例
那么,使用word embedding这样的方式来表达自然语言的好处是什么呢?主要有如下两个好处:
1、将自然语言映射为代数向量,便于机器计算-创建文字的向量表示
2、可以很容易地计算出相似的向量之间的相互关系,便于大模型推理-映射文字的相互关系
进一步,这些向量是怎么生成的呢?答案是通过机器学习模型进行训练得到的。我们知道我们的语言天然就具有机器学习中的“标签”的属性,也就是我们的文字都是现成的有上下文,给定某一段文字,上一句和下一句正好对应机器学习中的x->y,也就是天然具有样本和标签,也就非常适合进行自监督学习,大大节省了准备数据集的时间。具体准备数据集的方法有如下两种:
embedding嵌入向量训练的方法
开始随机初始embedding向量矩阵和上下文context矩阵,此时将准备好(标注)的数据集输入模型,得到的结果和预期结果肯定相差很大,这样就需要对embedding向量矩阵和上下文context矩阵进行更新,如此反复循环,直到误差最小,这个时候得到的embeding向量矩阵就是我们想要得到的结果,context矩阵可以抛弃掉。使用数学表达式表达这一过程就是如下:
带反向传播的神经网络训练的数学表达过程
注意途中的正向传播和反向传播,这也是神经网络训练过程的简单描述。
最终得到的词嵌入向量,纵向vocabulary size就是词表大小,代表有多少个单词向量,横向768、1024、1280、1600代表向量的长度。
有了词向量,我们就相当于有了大语言模型的“单词表”,大语言模型理解人类语言,做出合理推理就有了根基,接下来要解决的是让大语言模型理解人类语言的意图。
在RAG系统中,我们要让大语言模型和人类交互最新、最实时的资讯和问题,我们需要将最新的资讯信息告诉给大语言模型,要想让大语言模型进行实时问答,我们需要将实时资讯要么通过训练方式“灌入”大语言模型中,要么通过外挂的方式,将信息放入问题的上下文中,让大语言模型在回答通过上下文结合自身强大的推理能力进行实时推理回答。
第一种方式目前来讲不论是全量训练还是微调,代价都不小,第二种方式就是RAG采用的方式,将资讯先放入向量数据库,用户提出问题后,将问题与向量数据库中存在的资讯进行相似性比对,将最相似的资讯放入用户问题的上下文中,一起传给大语言模型,这样,大语言模型就能回答实时的问题。要将信息放入向量数据库,就需要先将信息转化成嵌入向量,也是RAG系统性能优化过程中需要高度重视的一个环节。
了解更多阿里云向量检索服务DashVector的使用方法,请点击:
https://help.aliyun.com/product/2510217.html?spm=a2c4g.2510217.0.0.54fe155eLs1wkT