图片
前言
2022年底“大模型”在国内突然遍地开花,不管你身处什么行业,都或多或少听说或使用过大模型相关的工具,也听说过大模型训练是一件超级烧钱的事情。那你是否有想过大模型训练为什么会这么烧钱,或者说大模型到底大在了哪里呢?
防止劝退,阅读本文章你不用担心看不懂晦涩难懂的公式以及计算过程,本文仅作为一篇大模型科普文章,带你了解你使用的大模型背后的故事,文章最后会推荐一些帮助博主日常提效的大模型工具,希望通过本文能让你对大模型有新的认识和理解。
大模型的工作过程
图片
从上图可以看出,树左侧Encoder-Only:表示仅做学习和理解内容的工作;树右侧Decoder-Only:表示做内容生成的工作。 大众目前使用的大模型工具也基本集中在树右侧,比如大名鼎鼎的chat-gpt系列模型。
大模型的训练构成可以拆解成:推理过程 + 训练过程,我们通过理解这两个过程来感受大模型到底是如何工作的。
推理过程
1. 词向量
- 向量表示:每个单词被表示为一个高维向量(比如三维、四维甚至更高维度),这些向量通常通过训练模型从大量文本数据数据中学习而获得的。
- 语义相似性:在向量空间中,语义相似的单词会被映射到相近的位置(类似于物以类聚人以群分的感觉)。例如,“king”和“queen”都有“国王”的意思,它两在向量空间中相对位置就比较近。
同义词的case:
king和queen都有“国王”的意思,big和biggest都表示大的意思。
同音异义词(一词多义)的case:
china:既可以表示为“中国”的意思,也可以理解成“瓷器”的意思;magazine:可以指代杂志或者是杂志社。
无论是同义词还是同音异义词在大模型中是如何区分的呢?那就是向量的概念,对于多义词的含义使用的向量比较相似,而对于同音异义词使用的向量则不太相似。
2. 词向量模型
- WOrd2Vec(2013年):由Google提出,包括CBOW(Continuous Bag Of Words)和Skip-Gram。前者通过预测上下文词来学习目标词的标识,后者通过目标词来预测上下文词。
- GlocVe(2014年):由斯坦福大学提出,通过统计整个语料库中的词共现矩阵来学习词向量。
- FastText(2016年):由Facebook提出,扩展了Word2Vec,考虑了词的子词(subword)信息,使得模型在处理未见过的单词或拼写错误时有更好的表现。
3. Transformer架构
图片
transformer框架通过修改词向量来存储每个词的隐藏含义(即上图中空色字体的内容),通过第一层transformer处理输出后的新向量被称为隐藏状态hidden state,然后在传递给下一层transformer,在经过transformer处理,解释出来了his和bank的真实语境含义。
对于Chat-GPT3大模型,transformer的中间层数达到了96层,有研究表名前基层的神经网络会专注于理解句子的语法,并解决上面所表示的歧义,后面的层重点致力于对整个文本段落的更高层次的理解。
对于GPT3模型,它使用了12288维的词向量,也就意味着每个词有12288个维度;所以一个单词通过输入到最后数据的输出就需要计算1179648次(有没有感觉计算量非常大); 同时GPT3需要理解上下文之间关联更多的信息,需要引入注意力头的概念来进行信息的表达,在每一层的transformer都会存在96个注意力头,所以在每次预测一个新词的时候,需要执行9126次计算。
由于模型是通过海量简单的向量运算,所以非常适合在GPU上进行训练,同时由于计算数据量级超级大,一次模型训练可能需要花上几十天甚至更多,算力和电力成本可想而知是非常巨大的。
训练过程
1. 早期的机器学习算法
早期的机器学习算法主要分为有监督和无监督学习两大类。
有监督学习:用于训练的样本数据提前被打上各种标签,让机器提前知道样本真正代表了什么,随着机器不断学习之后,投喂给机器一个未打标签的数据,从而让它得出这个数据对应的标签是什么。
无监督学习:提前并未给训练数据打上任何标签,而是让机器自动计算,通过不断的计算迭代后,最终相似的数据逐渐聚合在一起,不相似的数据则逐渐远离。
对于有监督学习,由于需要预先对大量数据人工打上标签,导致训练大模型这件事情就变得非常困难且成本非常高,以至于无法继续推进,那么无监督学习对于大模型来说可实施性相对就更强一些(当然对于GPT,在实际训练过程中,也会有部分人工达标的工作用于修正模型)。
2. 大模型的训练过程
通过尝试预测文本段落中的下一个单词来学习几乎任何的书面材料。对于一个新的模型,一开始预测的结果很差,因为对于一个新模型,它的每个权重参数最初状态都是从一个随机数字开始,随着模型接触到越来越的case,模型开始调整参数权重,从而实现GPT3的效果。
一个具体的case:城市地下网络管道非常多且错综复杂,为了让水流出到指定位置,当水流过错误的管道,就需要将对应管道的水龙头关闭,在整个水流经的管道上,通过反复的向前后向后检查流经路径,并调整对应的管道阀门,最终水流向了指定的目的地,这个反复调整各个部位的权重的过程,正是大模型训练的一个过程。
当然在整个训练过程中还有很多具体的概念,比如前向传播、后向传播、以及损失函数等,不会在本文展开,感兴趣的朋友可以自行通过GPT/百度来了解详细过程。
工具推荐
推荐一些博主日常使用的大模型工具,供大家参考
可灵大模型(视频&图片生成)
官网地址:https://kling.kuaishou.com/
APP:可灵AI
图片
秘塔AI搜索(学术搜索)
官网地址:https://metaso.cn/
APP:秘塔AI搜索
图片
Kimi智能助手(百科搜索)
官网地址:https://kimi.moonshot.cn/
APP:Kimi只能助手
图片
豆包(百科搜索、知识问答)
官网地址:https://www.doubao.com/chat/
APP:豆包
图片
通义灵码(代码续写)
官网地址:https://tongyi.aliyun.com/lingma/
图片
总结
本文通过大白话的方式介绍了大模型的一个基础训练过程,以及浅显的展示了大模型究竟大到了哪里,从而理解大模型训练庞大的数据为什么那么贵,随着技术的快速发展,相信未来大模型一定会对我们的生活产生非常大的影响。