公司网站大全,网站建设语录,html5 php 网站源码,外贸做网站推广1. 什么是token#xff1f;
人们经常在谈论大模型时候#xff0c;经常会谈到模型很大#xff0c;我们也常常会看到一种说法#xff1a; 参数会让我们了解神经网络的结构有多复杂#xff0c;而token的大小会让我们知道有多少数据用于训练参数。 什么是token#xff1f;比…1. 什么是token
人们经常在谈论大模型时候经常会谈到模型很大我们也常常会看到一种说法 参数会让我们了解神经网络的结构有多复杂而token的大小会让我们知道有多少数据用于训练参数。 什么是token比较官方的token解释 Token是对输入文本进行分割和编码时的最小单位。它可以是单词、子词、字符或其他形式的文本片段。 看完是不是一脸懵逼为此我们先补充点知识。
2. 大模型工作原理
本质上就是神经网络。但是训练这么大的神经网络肯定不能是监督学习如果使用监督学习必然需要大量的人类标记数据这几乎是不可能的。那么如何学习
当然可以不用标记数据直接训练这种学习方法称为自监督学习。引用学术点的描述 自监督学习主要是利用辅助任务pretext从大规模的无监督数据中挖掘自身的监督信息通过这种构造的监督信息训练模型从而学习到对下游任务有价值的表征。 自监督学习无标签数据和辅助信息这是定义自监督学习的两个关键依据。它会通过构造辅助任务来获取监督信息这个过程中有学习到新的知识而无监督学习不会从数据中挖掘新任务的标签信息。
例如在英语考试中通过刷题可以提高自己的能力其中的选项就相当于标签。当然也可以通过听英文音频、阅读英文文章、进行英文对话交流等方式来间接提高英语水平这些都可以视为辅助性任务pretext而这些数据本身并不包含标签信息。
那么GPT是如何在人类的文本数据上实现自监督学习的呢那就是用文本的前文来预测后文。
此处引用知乎大佬的案例例如在下面这段文本中 我买了一台苹果然后坐地铁回家。 GPT 模型会将回家两个字掩盖住。将我买了一台苹果然后坐地铁视为数据将回家。视为待预测的内容。 GPT 要做的就是根据前文我买了一台苹果然后坐地铁来预测后文回家。
这个过程依靠神经网络进行简单操作过程如图
3. 谈谈语言模型中的token
GPT 不是适用于某一门语言的大型语言模型它适用于几乎所有流行的自然语言。所以这告诉我们 GPT 实际的输入和输出并不是像上面那个图中那个样子。计算机要有通用适配或者理解能力因此我们需要引入 token 的概念。token 是自然语言处理的最细粒度。简单点说就是GPT 的输入是一个个的 token输出也是一个个的 token。
GPT 不是适用于某一门语言的大型语言模型它适用于几乎所有流行的自然语言。所以 GPT 的 token 需要兼容几乎人类的所有自然语言那意味着 GPT 有一个非常全的 token 词汇表它能表达出所有人类的自然语言。如何实现这个目的呢
答案是通过 unicode 编码。 Unicode统一码、万国码、单一码是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的它为每种语言中的每个字符设定了统一并且唯一的二进制编码以满足跨语言、跨平台进行文本转换、处理的要求。 例如我们在输入你对应的unicode 编码为\u4f60转换成16进制为0100 1111 0110 0000转换成10进制对应20320。直接将 unicode 的编码作为 GPT 中 token 的词表会存在一些问题。 一方面直接使用 unicode 作为词汇表太大了另一方面 unicode 自身的粒度有时候太细了例如 unicode 中的英文编码是以字母粒度进行的。
于是我们会将 unicode 的2进制结果以8个二进制位为单位进行拆分。用0100 1111和0110 0000表示你8个二进制位只有256种可能换句话说只需要256个 token 的词汇表就能表示所有 unicode。
然而这种方法的词汇表又太小了编码方法太粗糙了。实际上 GPT 是使用一种称为 BPE Byte Pair Encoding的算法在上面的基础上进一步生成更大的词汇表。
它的基本思想如下将上述的基础 token 256种可能做组合然后统计文本数据中这些组合出现的频率将频率最大的那些保留下来形成新的 token 词汇表。因此通过此方法得到的 token 和文字的映射不一定是一对一的关系。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/547275d11b7b4ac5b51125674054cc17.png
具体细节参考OpenAI的GPT在线测试token划分的地址https://platform.openai.com/tokenizer最下面部分有token划分思路感兴趣可以深入研究。
总而言之GPT 实际上是把我们输入的文本转换成一个个的token作为输入通过 GPT 模型预测这些 token然后再把这些 token 转换回文本最终输出给我们。 如图
4.再深入理解一下什么是token
Token是LLM处理文本数据的基石它们是将自然语言转换成机器可理解格式的关键步骤。几个基本概念
标记化过程Tokenization这是将自然语言文本分解成token的过程。在这个过程中文本被分割成小片段每个片段是一个token它可以代表一个词、一个字符或一个词组等。变体形式根据不同的标记化方案一个token可以是一个单词单词的一部分如子词甚至是一个字符。例如单词transformer可能被分成trans-, “form-”, er等几个子词token。模型模型限制大型语言模型通常有输入输出token数量的限制比如2K、4K或最多32K token。这是因为基于Transformer的模型其计算复杂度和空间复杂度随序列长度的增长而呈二次方增长这限制了模型能够有效处理的文本长度。token可以作为数值标识符Token在LLM内部被赋予数值或标识符并以序列的形式输入或从模型输出。这些数值标识符是模型处理和生成文本时实际使用的表示形式说白了可以理解成一种索引索引本身又是一种标识符。
5. 为什么token会有长度限制
有以下3方面的相互制约文本长短、注意力、算力这3方面不可能同时满足。也就是说上下文文本越长越难聚焦充分注意力难以完整理解注意力限制下短文本无法完整解读复杂信息处理长文本需要大量算力从而提高了成本。这是因为GPT底层基于Transformer的模型Transformer模型的Attention机制会导致计算量会随着上下文长度的增加呈平方级增长
参考
自监督学习Self-supervised LearningChatGPT实用指南一大型语言模型LLM中的tokenLLM 大模型为什么会有上下文 tokens 的限制