So-Large-LM-Task03: 大模型的架构 & 新的模型架构
输入“/”快速插入
So-Large-LM-Task03: 大模型的架构 & 新的模型架构
飞书用户6850
1月19日创建
Modeling / 大模型的架构
模型概括
对于新知识的学习,往往都是洋葱式的,我们要先看看这个洋葱是什么样的,也就是说:
为了更好地了解大模型整体的功能,需要先将语言模型看作一个 black-box,形象化地理解当前 LLM 的能力,其可以根据输入的 prompt 生成 completion,即
或
对于 LLM 的训练数据,其可表述如下:
接下来我们打开洋葱,讨论 LLM 是如何构建的,本节讨论两个 topics: Tokenization 和 Model Architecture.
•
Tokenization: 分词,即如何将一个字符串拆分为 tokens.
•
Model Architecture: 模型架构,主要讨论 Transformer 架构,它是语言模型的里程碑之作。
Tokenization (分词)
token,在 NLP 中指一个文本序列的最小单元,可以是单词、标点、数字、符号等语言元素。NLP 任务通常会将文本序列分解为 tokens 序列,以便分析、理解或处理。
在英文中,一个 token 可以是一个单词或者标点;
在中文中,一个 token 通常是一个字或者一个词。
语言模型
,是一个概率分布,其建立在 tokens 序列上,其中每个 token 来自某个词汇表
.
然而,自然语言不是以 tokens 序列出现的,而是以字符串的形式存在(具体来说是 Unicode 字符的序列)
因此,我们需要使用 tokenizer (分词器) 将任意字符串转换为 tokens 序列。
tokenizer 不一定是 Language Modeling 中最引人注目的地方,但在确定模型的效果方面有非常重要的作用。可以将 tokenizer 的作用理解为自然语言和机器语言的一种隐式的对齐。
在机器学习(结构化数据)中,模型的输入是数值,那么在深度学习(NLP)中,如何处理非数值类型的字符串呢?
Split by Spaces
Tokenizer 可视化:
https://observablehq.com/@simonw/gpt-tokenizer
这种最简单的解决方案就像这样将 string 分为 tokens.
Python
text.split(' ')
然而,这种分词方式对于英文这种 按照空格,切每个分词后的单词有语义关系的 文字是最简单直接的分词方式。
然而,对于一些语言,如中文,自然语言中的词之间没有空格,例如