基本概念
-
人工智能:让机器像人一样思考和做事。本质是让机器能“看懂”信息、“想出”解决办法。
-
模型:模型就是函数。可以理解为机器的“解题公式”。
-
机器学习:机器学习是一种实现人工智能的手段,根据训练数据,为函数找出一组合适的参数。简单来说就是让机器自己“找答案”的方法。
-
深度学习:深度学习是机器学习的一种,可以理解为机器学习的“高阶版”。相比于机器学习,深度学习用到了更复杂的模型(深层神经网络),用到了更大规模的训练数据,用来找出合适的模型参数(AI画图模型也可以看成是一种函数)。
-
生成式人工智能:让机器“创造新东西”的技术。目前的生成式人工智能基本都是基于深度学习实现的(比如大语言模型和文生图模型)。
大语言模型(Large LanguageModel,LLM)
Token
Token是大型语言模型(LLM)处理文本数据的基础单元。
Token可以是单词、子词(subword)、字符或特殊符号,在中文中可以表示一个字或者一个词。
例如,“hello”这个单词可以被视为一个Token;而“unsmiling”可能会被拆分为“un” + “smil” + “ing”,这种分词(词根+词缀)形式的token。这种分词方式有助于模型捕捉语言的模式和结构,提高语言处理的效率和准确性。
在自然语言处理中,语言的规则和结构是复杂且多样化的,所以需要Token来帮助机器识别和理解语言的规则与结构。
分词
为了方便大模型理解句子,大模型根据大量的数据,统计出最可能的分词情况。比如:“探索代码的世界”,大模型会先统计单个字出现的概率,然后统计作为词语出现的概率,比如“代”,然后统计“代码”,再统计“代码的”,最后得出结论,“代码”作为一个词出现的概率最高,就会得出“代码”这个分词结果,当然,这种分词结果不一定准确,如果你提供的训练数据里“代”作为单独字出现的概率更高时,那么“代”就会被单独分词。
常见的分词算法就是BPE算法,把中文常用字扩展成3W字的常用词(可能是字、词、成语等)。而英文则是缩词,比如“apples”,缩成”apple“和“-s”词缀。
理解(Token-Attention)
理解语义
分词成功后的词会转为Token ID保存在词表中。
那么怎么根据token id理解词呢? 这个时候就引入了向量的概念,意思相同的词会有接近的向量表示。
比如,我们给大模型的数据中针对Python、Java、C语言,有执行方式(解释型/编译型)、类型系统(动态/静态)、内存管理(自动/手动)三个维度的向量数据:
解释型(1) |
动态类型(1) |
自动内存管理(1) |
Python |
编译型(0) |
静态类型(0) |
自动内存管理(1) |
Java |
编译型(0) |
静态类型(0) |
手动内存管理(0) |
C语言 |
-
Python和Java相似度:
1×0 + 1×0 + 1×1 = 1
-
Python和C语言相似度:
1×0 + 1×0 + 1×0 = 0
易得出Python和Java的语义相似度大于Python和C语言的相似度
当然在实际的向量数据中是没法得出哪个向量是什么含义的,假设有1w个向量数据,每个都表示这个词的特征(语义信息),就没法得出每个向量分别表示什么信息,但是语义相近的token会有接近的向量表示。
理解上下文
为什么需要理解上下文呢?
比如”苹果手机“这个词,如果单看”苹果“一词的话,就会出现歧义,所以就需要结合后面的”手机“做进一步确认。
注意力机制
大模型一般通过注意力机制理解上下文。也就是通过计算每个token之间的关联性,来理解每个token的词义。
大模型首先会进行分词,分词后计算每个词在各种场景下的关联性。很明显,这里的“苹果”作为一个品牌的时候和”手机“的关联性最大,所以大模型就能推测出这里的苹果指的是一种品牌。
整合思考(Feed-Forward)
大模型经过计算,会将上面的多个token整合成一个新的token,作为一个新的向量,进行整合思考,得出最终的结论。
总结
-
大模型就是个参数超多的复杂函数。
-
文本需要分成若干个token,每个token可以对 应一个向量,向量包含了语义和位置信息。
-
Transformer通过attention机制理解文本,从而给出精准预测。
-
Attention机制本质是联系语境使得每个token 对应的向量更准确。
这里还没有评论哦
快来发一条评论抢占前排吧