Token 与参数存在密切关系。在大模型中,用于表达 token 之间关系的参数众多,主要指模型中的权重(weight)与偏置(bias)。例如,GPT-3 拥有 1750 亿参数,而词汇表 token 数相对较少,只有 5 万左右。
目前使用的大模型存在 token 限制,如 Claude-2-100k 模型的上下文上限是 100k Tokens(100000 个 token),ChatGPT-16k 模型的上下文上限是 16k Tokens(16000 个 token),ChatGPT-4-32k 模型的上下文上限是 32k Tokens(32000 个 token)。这种 token 限制同时对一次性输入和一次对话的总体上下文长度生效,当达到上限时不是停止对话,而是遗忘最前面的对话。
在分词过程中,不同的字符串会被编码为不同的 token,例如字符串“Tokenization”编码到 token30642 及其后的 token1634,token“is”(包括前面的空格)是 318 等。数字的分解可能不一致,如 127 是由 3 个字符组成的 token,677 是 2 个 token 等。
为了让计算机理解 Token 之间的联系,需要把 Token 表示成稠密矩阵向量,这个过程称为 embedding,常见算法包括基于统计的 Word2Vec、GloVe 等,基于深度网络的 CNN、RNN/LSTM 等,基于神经网络的 BERT、Doc2Vec 等。以 Transform 为代表的大模型采用自注意力机制来学习不同 token 之间的依赖关系,生成高质量 embedding。
从官方文档可以看到我们目前使用的模型有哪些,以及每个模型的token限制。除此之外,最直观能感受到各类模型token限制的其实是poe:在这里我们看到的16K、32K、100K就是指token上限。Claude-2-100 k模型的上下文上限是100k Tokens,也就是100000个tokenChatGPT-16 k模型的上下文上限是16k Tokens,也就是16000个tokenChatGPT-4-32 k模型的上下文上限是32k Tokens,也就是32000个token但似乎很多小伙伴不理解这个限制具体影响在哪些方面。所以我替你们问了一下GPT(真不懂你们为什么不自己问/手动狗头)从回答可以看出,这个token限制是同时对下述两者生效的:1、一次性输入2、一次对话的总体上下文长度,值得注意的是这个长度不是达到上限就停止对话,而是遗忘最前面的对话,你可以理解为鱼的记忆只有7秒,第8秒的时候他会忘记第1秒的事,第9秒的时候……(某些同学是不是恍然大悟了)
在这里,它们用颜色明确显示出来:比如,字符串「Tokenization」编码到token30642,其后是token是1634。token「is」(注意,这是三个字符,包括前面的空格,这很重要!)是318。注意使用空格,因为它在字符串中是绝对存在的,必须与所有其他字符一起分词。但为了清晰可见,在可视化时通常会省略。你可以在应用程序底部打开和关闭它的可视化功能。同样,token「at」是379,「the」是262,依此类推。接下来,我们有一个简单的算术例子。在这里,我们看到,分词器对数字的分解可能不一致。比如,数字127是由3个字符组成的token,但数字677是因为有2个token:6(同样,请注意前面的空格)和77。我们依靠LLM来解释这种任意性。它必须在其参数内部和训练过程中,了解这两个token(6和77实际上组合成了数字677)。同样,我们可以看到,如果LLM想要预测这个总和的结果是数字804,它必须在两个时间步长内输出:首先,它必须发出token「8」,然后是token「04」。请注意,所有这些拆分看起来都是完全任意的。在下面的例子中,我们可以看到1275是「12」,然后「75」,6773实际上是三个token「6」、「77」、「3」,而8041是「8」、「041」。(未完待续...)网友在线,出谋划策网友表示,太好了,实际上我更喜欢阅读这些帖子,而不是看视频,更容易把握自己的节奏。还有网友为Karpathy出谋划策:
数字化的好处是便于计算机处理。但为了让计算机理解Token之间的联系,还需要把Token表示成稠密矩阵向量,这个过程称之为embedding([3]),常见的算法有:基于统计Word2Vec,通过上下文统计信息学习词向量GloVe,基于词共现统计信息学习词向量基于深度网络CNN,使用卷积网络获得图像或文本向量RNN/LSTM,利用序列模型获得文本向量基于神经网络BERT,基于Transformer和掩码语言建模(Masked LM)进行词向量预训练Doc2Vec,使用神经网络获得文本序列的向量以Transform为代表的大模型采用自注意力(Self-attention)机制来学习不同token之间的依赖关系,生成高质量embedding。大模型的“大”,指的是用于表达token之间关系的参数多,主要是指模型中的权重(weight)与偏置(bias),例如GPT-3拥有1750亿参数,其中权重数量达到了这一量级,而词汇表token数只有5万左右。参考:[How does an LLM"parameter"relate to a"weight"in a neural network?](https://datascience.stackexchange.com/questions/120764/how-does-an-llm-parameter-relate-to-a-weight-in-a-neural-network"How does an LLM"parameter"relate to a"weight"in a neural network?")