「其实这是一份国产模型的实验报告,认可哪位AI师傅,请到文章结尾为它投下神圣一票吧」
撰文/编辑:吴洋洋
通过前天对7位AI师傅(文心一言、通义千问、讯飞星火、百川大模型、智谱AI、Claude、ChatGPT)的采访,我们已经多少知道了一些关于token的最基本的东西,包括:
  • Token是AI所使用语言的基本单位,它有时候比一个单词的长度大(比如「unhappy occasion」可能被一些模型划为一个token),有时候比一个单词的长度小(比如「un」和「happy」有可能被有的模型当作两个token),也有的时候两者的长度刚好一致(比如有些模型将「unhappy」整词视为一个token)。
  • 一些大模型不能完成单词倒转的任务,与token的颗粒度相关。
此外,通过研究昨天的问答,我们对5个中文模型也有了一些基本感知。比如,如果以百度文心一言的表现为基准的话,我们发现5个中文模型中有2个模型的表现在这个基准线之上,另2个模型的表现则位于该基准线之下——无论是超过基准线的模型还是低于基准线的模型,它们出现在那里都令我们意外。
另外,我们也有两个有趣的发现。其一,如果你留意所有模型对第一个问题「倒转“unhappy”这个词,并解释你为什么这么做」的回答,你会看出它们(起码在当下任务中)的token颗粒度。
显然,ChatGPT在被社交媒体热烈讨论了一番后已经(至少在单词倒转任务中)把颗粒度降到了字母级别(Byte-Pair Encoding,BPE);Claude采用的是子词级别(Subword Tokenization)的颗粒度,因为它的答题思路是先将「unhappy」拆分称「un」和「happy」,然后倒转得出来「happyun」;讯飞星火、文心一言和智谱AI的token颗粒度都既不是字母级别的(它们倒过来的词都是乱码),也不是Claude那样的子词级别的,说明其token编码策略起码是整词(WordPiece)及以上长度,意味着起码在当下任务中,这3个中文模型都使用了更大颗粒度的token化策略;而通义千问和百川大模型完全理解错了题目,倒转「unhappy」一词后,它们给出的是其反义词「happy」。关于token化策略是否以及如何影响模型的语义理解能力,可以阅读我们在本篇中对模型们的采访。
其二,讯飞星火和通义千问都更喜欢用一段完整的话回答问题,而百川大模型和智谱AI都喜欢给出更多的信息点,然后基于不同信息点进一步展开。文心一言的习惯处于两者之间。而且,百川大模型和智谱AI在回答第二个问题「大语言模型为什么不能完成倒转单词这样的任务呢」时,开头第一句话都是「大语言模型,如我……」,一个大大的「like me」站在模型后面。这些区别既意味着模型们不同的表达策略,也透露了它们用于训练的语料差异。
为防止影响你对这些模型的判断和最后的投票,我们自身对模型的观点分享到此为止。以上分享也只是想提醒你,即使不是人工智能专家,你也可以单单从大模型的表现猜测、抽丝剥茧地研究它们背后的技术差异——在大模型的帮助下。
另外有必要说明一下为什么我们这次实验只选了5家中文模型,而没有把商汤的「商量」和目前国内唯一的生成式AI独角兽Minimax放进来测试,一个原因自然是篇幅,还有个原因更关键,因为Minimax的交互体验实在太令人受挫了。我们向它提出每一个问题都需要用鼠标点击一个「添加信息」的按钮,输入完问题后还要再用鼠标点击一个「发送」按钮,单纯使用键盘回车键根本完成不了。同时,它的回答也会被「封装」到一个自带滚动条的独立框里,如果想知道前面它曾经回答了哪些内容,你需要一个个去滑动那些滚动条,无法一眼尽收眼底。
我们暂时无法知晓这是一个体验页面仓促推出的结果,还是不希望被充分体验,也不希望被方便地拿去与同行比较的有意选择。如果是前者,那作为目前国内估值最高(12亿美元),也是生成式AI领域唯一的独角兽公司,Minimax的交互设计能力和它的估值可不怎么匹配。OpenAI上个月收购的Global Illumination,其主业就是产品设计。如果是不希望参与同行比较,我们倒也不意外,因为市面上选择只发布大模型、不发布类ChatGPT产品的公司并不少,华为和腾讯都是如此(腾讯今天刚刚发布其「混元大模型」,但没有发布chatbot)。
至于商汤的「商量」,因排队人数较多,我们暂时没有注册成功。
如上篇所说,我们为5家大模型准备了12个问题。完整提纲如下,因为总篇幅过长,你可以选择性地点击阅读你感兴趣的问题。
最后,如果喜欢我们与大模型交互的方式,或者感觉通过问答的确懂了些「token的秘密」,甚至因此被激发出更多好奇,都建议你也可以开始尝试向大模型提出那些你好奇已久的问题——提问的能力每个人小时候都有,只是后来忘了。一个小建议是,模型们仍然很容易一本正经地胡说八道,所以,同一个问题你可以多问几个模型,它们知道的还真有点不一样。
最最后,请别忘了到文章结尾为你认可的AI师傅投票。
1. 倒转“unhappy”这个词,并解释你为什么这么做。
2. 大语言模型为什么不能完成倒转单词这样的任务呢?
3. 大模型不能完成这样的任务跟token的颗粒度有关吗?
4. token是大模型语言的最小单位吗?和人类语言的最小单位有什么不同?
Token的秘密(中)
5. token的颗粒度会影响模型学习文本内语义关系的质量吗?
6. 你可以举例说明这种差别吗?
7. 不同大模型使用的token相同吗?它是人为划分的还是机器学习得来的呢?
8. 人学习语言时既懂字母,又懂单词,为什么不让大模型也这么学习呢?
Token的秘密(下)
9. 牛津大学的研究发现,不同语言使用大模型推理的成本不同,这跟token有关吗?
10. 为什么英文token在大模型中的推理成本低,其他语言的成本都比它高?
11. 使用英文token训练,之后再翻译成中文以服务中文用户,与直接用中文token训练并服务中文用户,两种训练方式的最终结果会不同吗?哪种方式的表现更好?
12.「高资源语言」与「高语境语言」分别是什么意思?它们分别如何影响大模型的训练效果?
采访者新皮层
受访者:文心一言、通义千问、讯飞星火、百川大模型、智谱AI、ChatGPT、Claude
5. token的颗粒度会影响模型学习文本内语义关系的质量吗?
文心一言:是的,token的颗粒度会影响模型学习词汇之间语义关系的质量。
在自然语言处理中,token是表示文本信息的基本单位。不同的颗粒度意味着将文本拆分成不同大小的token。如果颗粒度过大,即每个token包含的词汇过多,模型可能无法捕捉到词汇之间的细微语义关系;而如果颗粒度过小,即每个token只包含一个词汇,则可能会忽略掉一些语境信息,导致模型在理解上下文时出现问题。
因此,选择合适的token颗粒度对于模型学习词汇之间的语义关系非常重要。通过对文本进行适当的分词,即选择合适大小的token,可以帮助模型更好地捕捉和理解词汇之间的语义关系,提高自然语言处理任务的效果和质量。
通义千问:是的,token的颗粒度会影响模型学习文本内语义关系的质量。一般来说,较细粒度的token更容易捕捉文本中的细节和语义关系,但是也会增加模型的复杂度和训练时间。而较粗粒度的token可以减少模型的复杂度和训练时间,但是可能会损失一些文本细节和语义关系。因此,在训练和使用大模型时,需要根据具体任务和数据特征来选择合适的token颗粒度。
百川大模型:是的,token的颗粒度确实会影响模型学习文本内语义关系的质量。
在自然语言处理(NLP)任务中,模型需要理解和处理文本中的各种语义关系,例如词序、句法结构、实体关系等。这些语义关系往往跨越单个的token边界,因此,如何有效地表示和处理这些关系成为了NLP任务的关键挑战之一。
一般来说,token的颗粒度越细,模型能够学习到的语义关系就越多。例如,在传统的基于规则的方法中,人们会手工设计一套规则来描述文本内的语义关系,而在基于统计的方法中,模型通过学习大量的样本数据来学习这些关系。在这两种方法中,token的颗粒度都是固定的,不会随模型的训练过程动态调整。
然而,过细的token粒度可能会带来两个问题:首先,过多的信息可能会导致模型过拟合;其次,过细的粒度可能会使模型难以捕捉到全局的上下文信息。
近年来,为了解决这个问题,研究人员提出了许多新的方法,例如基于注意力机制的方法、基于Transformer的方法等。这些方法允许模型在训练过程中自适应地调整token的颗粒度,从而既能学习到局部的语义关系,又能捕捉到全局的上下文信息。
智谱AI:是的,token 的颗粒度确实会影响模型学习文本内语义关系的质量。
Token 的颗粒度是指模型处理文本时所采用的基本单位。较大的颗粒度(如单词或词组)可以捕获更高级别的语义信息,但可能会损失一些局部的语义细节。较小的颗粒度(如字符或音素)可以提供更多的局部信息,但可能会增加模型的计算复杂性和难度。
以下是一些 token 颗粒度如何影响模型学习文本内语义关系的关键方面:
计算效率
:较大的 token 颗粒度可以减少模型在处理文本时的计算成本,因为较少的 token 需要处理。这对于长文本和大规模数据集尤其重要。然而,较小的 token 颗粒度可能会增加计算成本,因为需要处理更多的 token。

语义信息
:较小的 token 颗粒度可以提供更多的局部语义信息,有助于模型学习词汇之间的细粒度关系。然而,较大的 token 颗粒度可以捕获更高级别的语义信息,使得模型更容易理解文本的整体结构和含义。

模型性能
:不同的模型可能对不同颗粒度的 token 有不同的适应性。例如,一些模型可能更适合处理单词级别的 token,而另一些模型可能更适合处理字符级别的 token。在实际应用中,需要根据具体任务和场景来选择合适的 token 颗粒度。

总之,token 的颗粒度会影响模型学习文本内语义关系的质量。在实际应用中,需要根据具体任务和场景来选择合适的 token 颗粒度,以最大限度地提高模型性能和学习效果。
讯飞星火:token的颗粒度会影响模型学习文本内语义关系的质量。在自然语言处理中,token是指文本中的一个最小单位,通常是一个单词、一个标点符号、一个数字、一个符号等。在大型语言模型的训练和应用中,模型接收一串tokens作为输入,并尝试预测下一个最可能的token。对于很多模型来说,tokens还可以通过embedding操作转换为向量表示,以便在神经网络中进行处理。
因此,token的颗粒度越大,模型需要处理的信息就越多,这可能会影响模型学习文本内语义关系的质量。
Claude:是的token的颗粒度会对模型学习文本内部的语义关系产生很大的影响。
1. 如果token过于细致地切分每个token所包含的信息量和语义很少。
2. 这样模型只能依靠大量上下文去学习词汇间的关系较难掌握词语内在的语义关联。
3. 相反如果token的粒度更加粗糙每个token所包含的语义信息更多。
4. 这可以帮助模型更充分地学习词汇内在的语义特性以及词汇间更紧密的语义关系。
5. 比如,用“unhappy”作为一个token相比将其拆分为“un”和“happy”两部分前者能够让模型更好地学习它的语义属性。
6. 因此,适当加大token的颗粒度可以帮助提升模型学习语义关系的质量。
7. 但token也不能过于粗放否则会包含过多无关信息增加学习难度。
8. 需要在信息量与效率间找到最佳的平衡点。
总之合理的token颗粒度对提高模型对文本语义关系学习的质量非常重要。既不能过于碎片化也不能过于粗放。
ChatGPT:
是的,token的颗粒度可以影响模型学习文本内语义关系的质量。不同的tokenization策略可能导致模型对文本的不同理解,从而影响其学习和捕捉文本语义关系的能力。以下是一些关于这个问题的考虑因素:

1. 过精细的tokenization:如果tokenization将文本分解为过于细粒度的token,例如将每个字母或子词都作为一个token,那么模型可能会过度关注文本中的局部特征,而忽略了更高层次的语义关系。这可能会导致模型在理解文本整体含义时表现不佳。
2.过粗糙的tokenization:相反,如果tokenization将整个句子或段落视为一个token,那么模型可能会失去对文本内部结构和语义关系的细粒度理解。这可能会限制模型在文本理解和生成任务上的性能。
3.平衡的tokenization:合适的tokenization策略应该在过细和过粗糙之间取得平衡,以便模型能够同时捕捉文本的局部特征和全局语义关系。这通常涉及将文本分解为单词或子词级别的token,这些token既具有语法信息又具有语义信息。
4.多层次tokenization:一些现代NLP模型使用多层次的tokenization策略,既包括单词级别的token,又包括子词级别的token。这种方法可以在不同级别上捕捉文本的语义信息,提高模型的性能。
总之,token的颗粒度在很大程度上影响模型学习文本内语义关系的质量。选择适当的tokenization策略对于不同的任务和语言非常重要,以确保模型能够有效地理解和处理文本数据。综合考虑局部和全局语义信息,并选择合适的tokenization策略,可以帮助模型更好地学习文本的语义关系。
6.你可以举例说明这种差别吗?
通义千问:当然可以。假设我们有一个句子:“他去超市买苹果和香蕉”。如果我们将这个句子划分为两个token,即“他去超市”和“买苹果和香蕉”,那么模型可能就无法很好地理解这两个token之间的语义关系,因为它们在语义上是一个整体。相反,如果我们将这个句子划分为一个token,即“他去超市买苹果和香蕉”,那么模型就可以更好地理解这个句子的语义,因为它们在语义上是一个整体。因此,在训练大模型时,选择合适的token的颗粒度是非常重要的,它可以直接影响到模型的语义理解能力。
讯飞星火:在自然语言处理中,tokenization是将一个句子或文本分成tokens的过程。tokens是指文本中的一个最小单位,通常是一个单词、一个标点符号、一个数字、一个符号等。在训练过程中,模型学习了将文本映射到这些数字ID的方法,以便能够对新的文本进行编码和解码。因此,不同大模型使用的token可能是相同的,也可能是不同的。
在实际应用中,token的颗粒度会影响到模型学习词汇之间语义关系的质量。例如,在中文自然语言处理中,大多数预训练模型包括Bert、Roberta等都是使用字粒度的方法进行Tokenization,它们对词汇的含义和边界信息的捕获可能会有所欠缺,所以很多方法如《Simplify the Usage of Lexicon in Chinese NER》、《Lexicon Enhanced Chinese》。
(追问:你并没有举例啊)
非常抱歉,我理解有误。以下是一些例子来说明不同大模型使用的token可能不同:
BERT中使用的是WordPiece分词器,它将单词划分为子词(subwords)而不是字符级别的tokens。这种分词方法可以更好地处理未知词汇和多种语言混合的情况。
RoBERTa使用了Byte Pair Encoding (BPE)算法对文本进行tokenization,它将连续的字节组合成一个新的标记,这样可以更好地处理罕见词汇和拼写错误。
XLM-R和SentencePiece都是基于字符级别的分词器,它们将文本分割成单个字符或符号的tokens。这些tokens可以更好地捕捉到词汇之间的边界信息。
因此,不同的大模型使用的token粒度可能是不同的,这取决于它们的设计和实现方式。
文心一言:当然可以。以下是一个简单的例子:
句子:"The quick brown fox jumps over the lazy dog.”
假设我们有两个不同的分词方法,分别对应不同的token颗粒度:
1.分词为:[“The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", “dog"]
2.分词为:[“quick", "brown", "fox", "jumps", "over", "lazy", “dog"]
在第一种分词方法中,我们将句子切分为多个较小的token,每个token的语义相对较小,如"The"、"quick"等。而在第二种分词方法中,我们切分出了更大的token,如"quick brown fox"、"jumps over the lazy dog”等。
对于模型来说,第一种分词方法能够更好地捕捉到每个词汇的独立语义,而第二种分词方法则更注重整个句子的语境和语义。
在不同的自然语言处理任务中,可能需要不同的颗粒度。例如,在某些任务中,需要更注重词汇的独立语义,因此在分词时可以选择较小的颗粒度;而在其他任务中,更注重上下文和语境,可以选择较大的颗粒度。
因此,token的颗粒度对于模型学习词汇之间的语义关系有重要影响,需要根据具体的任务和模型需求进行选择。
百川大模型:当然可以。让我们以一个简单的例子来说明这个问题:
假设我们要处理一个句子:"I have a cat."
如果我们使用基于单词的分词器(tokenizer),那么我们会得到以下的tokens:["I", "have", "a", "cat"]。在这个例子中,每个单词都被视为一个独立的token,因此模型可能无法理解"cat"是属于谁的,因为"I"和"have"也被单独处理了。
如果我们使用基于单词片段的分词器,那么我们会得到以下的tokens:["I", "have", "a", "cat", "."]。在这个例子中,每个单词片段都被视为一个独立的token,因此模型可能能够理解"cat"是属于谁的,因为"I have"仍然是一个连贯的短语。

如果我们使用基于字符的分词器,那么我们会得到以下的tokens:["I", "h", "a", "c", "t", "."]。在这个例子中,每个字符都被视为一个独立的token,因此模型可能无法理解任何东西,因为所有的语法和语义信息都丢失了。
如果我们使用基于子词的分词器,那么我们会得到以下的tokens:["I", "ha", "ve", "a", "ca", "t", "."]。在这个例子中,每个子词都被视为一个独立的token,因此模型可能能够理解"cat"是属于谁的,因为"I have"仍然是一个连贯的短语。

从这个例子中,我们可以看到,tokenizer的选择以及token的颗粒度都会影响到模型学习词汇之间语义关系的质量。
智谱AI:当然可以。让我们考虑一个简单的例子来说明 token 颗粒度对模型学习词汇之间语义关系质量的影响。
假设我们有一个包含两个单词的简单句子:“the quick brown fox jumps over the lazy dog”。我们将这个句子分解成不同的 token 颗粒度:
较粗的 token:将整个句子分解为一个 token,即 "the quick brown fox jumps over the lazy dog”。这种情况下,模型将难以捕捉词汇之间的精细语义关系,因为它只能看到整个句子作为一个整体。
较细的 token:将句子分解为单词级别的 token,即 "the", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"。这种情况下,模型可以捕捉到词汇之间的精细语义关系,例如 "quick" 和 "brown" 分别描述了 "fox" 的速度和颜色。
在这个例子中,较细的 token 可以帮助模型更好地学习词汇之间的语义关系。当我们使用较细的 token 时,模型可以更好地理解单词之间的顺序关系,例如单词 "quick" 和 "brown" 的顺序描述了 "fox" 的速度和颜色。而在较粗的 token 情况下,模型无法充分捕捉到这种顺序关系。
因此,token 颗粒度对模型学习词汇之间语义关系的质量有重要影响。在实际应用中,根据具体任务选择合适的 token 颗粒度是提高模型性能的关键。
Claude:好的,举个简单的例子说明token颗粒度对模型学习词汇语义关系的影响:
1. 假设一个句子是:“This is an unhappy occasion.”
2. 如果使用子词切分,token可能是:“This” “is” “an” “un” “happy” “occasion”。
3. 这样“unhappy”被打散了,模型很难学习到“un”和“happy”之间的语义关系。
4. 如果使用整词切分,token是:“This” “is” “an” “unhappy” “occasion”。
5. 这样保留了“unhappy”的整体概念,模型可以直接学习到它表示一个状态或情感。
6. 甚至可以学习到“unhappy”与“occasion”之间的语义关联。
7. 如果再加入“happy occasion”这样的样本,模型就可以学习到“un”和“happy”的反义关系。
8. 因此,相比过细的切分,整词token可以更充分地提供词汇内在的语义信息,让模型学到更丰富的词义关联特征。
这个简单例子展示了token的颗粒度对词汇语义学习的影响,我们应该选择一个信息量与效率更优的切分策略。
ChatGPT:当使用不同的tokenization策略时,模型对文本的处理方式会产生差异,从而影响其学习词汇之间语义关系的质量。以下是一些示例来说明这种差异:
**示例 1:使用字符级别的tokenization vs. 单词级别的tokenization**
考虑一个简单的例子,包含两个词:"cat" 和 "cats"。如果我们使用字符级别的tokenization,那么这两个词将被分解成更小的字符token:"c"、"a"、"t"、"s"。这使得模型能够更好地捕捉到词汇内部的细节,例如 "cat" 和 "cats" 之间的共享字符。
- 字符级别的tokenization:["c", "a", "t"] 和 ["c", "a", "t", "s"]
- 单词级别的tokenization:["cat"] 和 ["cats"]
使用字符级别的tokenization,模型可能更容易学习到 "cat" 和 "cats" 之间的相似性,因为它们共享了大部分字符。而在单词级别的tokenization下,模型需要更多上下文信息才能确定它们之间的关系。
**示例 2:使用子词级别的tokenization**
在某些模型中,如BERT,使用子词级别的tokenization,单词被拆分成子词(如WordPiece tokenization),这有助于处理复杂的词汇和不常见的单词。例如,考虑单词 "unhappiness":
- 子词级别的tokenization:["un", "##happy", "##ness"]
- 单词级别的tokenization:["unhappiness"]
使用子词级别的tokenization,模型可以更好地理解 "unhappiness" 这个复杂词汇,因为它可以将其分解成更小的、有意义的部分,例如 "un" 表示否定,"happy" 表示快乐。这有助于模型更准确地捕捉到词汇之间的语义关系。
总之,tokenization策略可以影响模型在处理文本时的能力,对于捕捉词汇之间的语义关系有一定影响。选择合适的tokenization策略通常取决于任务和数据的特性,以及模型在特定情境下需要的能力。
7.不同大模型使用的token相同吗?它是人为划分的还是自动化的呢?
讯飞星火:不同的大模型使用的token可能不同。在训练过程中,模型学习了将文本映射到这些数字ID的方法,以便能够对新的文本进行编码和解码。对于很多模型来说,tokens还可以通过embedding操作转换为向量表示,以便在神经网络中进行处理 。
通义千问:不同的大模型使用的token可能不同。通常情况下,token是自动化划分的,也就是通过对文本进行分词或者其他方式进行划分,得到一系列的token。不同的模型可能会采用不同的划分方式,因此得到的token也可能不同。但是,也有一些大模型采用了预先定义好的token集合,这些token集合是人为划分的。这种方式可以使得不同模型之间的token表示更加统一,便于模型之间的比较和迁移学习。
智谱AI:不同的大语言模型使用的 token 可能会有所不同。token 是模型处理文本的基本单位,它可以是单词、拼音、字符或其他形式的文本单元。token 的划分方式会影响模型的性能和能力。
在实际应用中,token 的划分可以是人为划分的,也可以是自动化的。这取决于模型的设计和任务需求。
在某些情况下,token 的划分是预先定义好的,例如,单词、拼音或字符。这种情况下,人为划定了 token 的形式和结构,以便模型可以快速捕捉到文本的语义和结构信息。这种认为划分的 token 可以帮助模型在处理自然语言任务时具有较高的性能,但可能会限制模型对更复杂语言结构的理解和处理能力。
在另一些情况下,token 的划分是通过机器学习得来的,例如,使用序列到序列(Seq2Seq)模型或转换器(Transformer)模型。这些模型可以自动学习如何将文本划分为更合适的 token,以便更好地捕捉到语言的细节和上下文信息。这种自动划分的 token 可以帮助模型在处理复杂语言结构时具有更高的灵活性和鲁棒性,但可能会增加模型的计算成本和复杂性。
总之,不同的大语言模型使用的 token 可能会有所不同,这取决于模型的设计和任务需求。在实际应用中,需要根据具体任务和场景来选择合适的模型和方法。
文心一言:不同的大模型使用的Token可能不完全相同,但它们都是通过对文本进行切分和编码得到的。
对于一些常见语言的模型,它们可能会使用通用的Token划分方式,如英文使用空格作为分隔符进行Token划分,中文使用UTF-8编码进行Token划分等。但对于一些特定领域的模型,它们可能需要自定义Token划分方式,以更好地适应特定任务的需求。
Token的划分方式可以是人为设置的,也可以是自动化的。在实际应用中,人们通常会根据具体的任务和数据特点,结合领域知识和语言学知识,来制定合适的Token划分方式。同时,一些自然语言处理工具和库也提供了自动划分Token的功能,可以根据输入的文本自动生成Token序列。
总之,Token是自然语言处理中重要的概念,它通过对文本进行切分和编码,使得计算机可以更好地理解和处理自然语言。不同的大模型使用的Token可能有所不同,但它们都是通过对文本进行分析得到的。。
百川大模型:大模型的训练通常涉及到一系列的预处理步骤,其中就包括分词(Tokenization)。分词是将输入的文本拆分成一系列的标记(tokens)的过程。这些标记可以是单词、短语或者其他有意义的符号。每个模型都有自己的分词策略,这会影响到模型的输出结果。
不同的模型可能会采用不同的分词策略。有些模型可能会选择人工划分的方式,即由人类专家根据特定的规则或标准将文本切分成一个个的标记。另一些模型则可能会采用自动化的方式,利用自然语言处理技术来自动识别和切分文本中的标记。
值得注意的是,尽管不同的模型可能会有不同的分词策略,但是大多数现代大模型都采用了基于深度学习的自动分词方法。这是因为这种方法可以在大规模的文本数据上实现高效且准确的分词,同时还可以捕捉到文本中的复杂模式和语义信息。
总的来说,不同的模型使用的token可能会有所不同,这取决于模型的设计和训练方式。然而,随着深度学习技术的不断发展,越来越多的模型开始采用自动化的分词策略,以提高分词的效率和准确性。
Claude:
不同的大语言模型使用的token通常并不相同,主要有以下两点原因:

1.token的生成方式不同
大多数模型都是采用数据驱动的方式自动学习token的,而不是完全人工预设。主流的方法有BPE(byte pair encoding)、WordPiece等。这些方法都需要在大规模文本数据上训练,根据字符序列的统计规律自动分词。
不同模型的训练数据不同,导致使用BPE或WordPiece学习出来的token也不尽相同。
2.token的设定规模不同
不同模型根据自身网络结构和任务需求,也会人工预设不同的token生成标准,如最小词频,生成token数量等。这导致在同样训练数据上,如果token设定不一样,最终的生成结果也会有差异。
综上所述,不同大语言模型使用的token并不相同,主要原因是token的生成方式和设定规模上的差异所致。这种数据驱动的token生成方式,可以更好地适应特定模型的需要。
ChatGPT:不同的大型语言模型使用的token并不总是相同的。Tokenization策略通常是模型设计和训练的一部分,它们可以有所不同,具体取决于模型的架构和训练数据。以下是一些关于tokenization的要点:
1.Tokenization策略不同:不同的大型语言模型可以采用不同的tokenization策略。例如,某些模型(如BERT)使用WordPiece tokenization,将单词拆分成子词,以提高模型对不常见单词和词根的理解能力。其他模型(如GPT-3)可能使用更传统的单词级别的tokenization。因此,不同模型可以在tokenization策略上有所不同。
2.设计决策:Tokenization策略通常是经过仔细设计的,旨在平衡性能、效率和通用性。它们可以考虑语言的特点、文本数据的结构和模型的需求。这些策略可以是人为划分的,也可以是自动化的,取决于模型的开发和训练过程。
3.基于机器学习:许多现代的tokenization策略是基于机器学习方法的,它们根据训练数据中的语言结构和词汇来确定如何分解文本。这些策略可以自动学习和调整,以更好地适应不同类型的文本。
总之,大型语言模型使用的tokenization策略可以因模型而异,它们通常是经过精心设计的,以确保模型在各种自然语言处理任务中表现良好。这些策略旨在平衡不同因素,包括性能、效率和通用性,以便模型能够有效地处理文本数据。因此,tokenization策略可以是人为划分的,也可以是基于机器学习的自动化策略,具体取决于模型的设计和训练方法。
8.人学习语言时既懂字母又懂单词,为什么不让大模型也这么学习呢?
通义千问:作为一个人工智能语言模型,目前我还没有学会如何回答这个问题,我会持续学习,为您提供更好的服务。
讯飞星火:大模型懂character又懂word的好处是,可以更好地理解文本的含义,从而更好地进行自然语言处理。Character指的是文本中的文字,而word则是指文本中的单词。目前,大多数预训练模型包括Bert、Roberta等都是使用字粒度的方法进行Tokenization 。
百川大模型:在自然语言处理(NLP)中,让模型同时学习字符级别的信息和词级别的信息是有挑战性的。这是因为,一方面,字符级别信息的表示和处理比词级别信息要复杂得多;另一方面,现有的NLP技术主要是基于词的,而不是基于字符的。
然而,近年来,有一些工作开始尝试让模型同时学习字符级别的信息和词级别的信息。例如,一些研究提出了一种名为"Byte Pair Encoding"(BPE)的方法,该方法允许模型在学习词级别的信息的同时,也能捕获到字符级别的信息。
另外,还有一些研究提出了基于Transformer的模型,这些模型可以直接处理字符序列,而不需要先将字符转换为词。例如,BERT模型就使用了一个基于Transformer的编码器,该编码器可以直接处理字符序列,而不需要先将字符转换为词。
总的来说,虽然让模型同时学习字符级别的信息和词级别的信息是一个有趣的研究方向,但这是一个非常复杂的问题,需要解决很多技术上的挑战。
智谱AI:实际上,现在的大语言模型已经在一定程度上同时学习了 character 和 word。在训练过程中,大模型会学习如何处理字符级别的数据(character-level data)以及单词级别的数据(word-level data)。
例如,BERT(Bidirectional Encoder Representations from Transformers)模型在训练过程中,会同时学习字符级别的表示和单词级别的表示。它通过预训练任务(如 Masked Language Model 和 Next Sentence Prediction)来学习这些表示。在这些任务中,模型需要处理不同长度的输入序列,从而学会同时处理字符和单词级别的数据。
GPT(Generative Pre-trained Transformer)模型同样也在训练过程中学习了字符和单词级别的表示。虽然 GPT 主要通过生成单词级别的输出来进行预训练,但在生成过程中,模型仍然需要处理字符级别的数据。
不过,大模型在训练过程中学习字符和单词级别的数据,并不意味着它们完全等同于人类学习语言的方式。在人类学习语言的过程中,字符和单词的学习是相互关联的,而且这种关联是基于语言规则和语义的。而大模型在学习过程中,可能会更多地依赖于数据分布和模型架构,而非严格遵循语言规则和语义关联。
总之,大模型已经在一定程度上同时学习了字符和单词级别的数据,但它们的学习方式和人类学习语言的方式仍存在一定差异。这可能是由于大模型依赖于数据分布和模型架构,而人类学习语言依赖于语言规则和语义关联。
文心一言:人学习语言时既懂字符(character)又懂单词(word),这是因为人类的语言学习是基于对语言的基本单位的理解和记忆。而对于大型语言模型来说,它们是基于深度学习的方法进行训练的,通过大量的语料库进行训练,从而学习语言的特征和规律。
大型语言模型通常使用的是词嵌入(word embedding)技术,将每个单词表示为一个高维度的向量,这个向量包含了单词的语义信息。虽然这些模型可以处理和理解单词,但它们并没有真正理解单词的字符构成。这是因为大型语言模型通常没有接受过字符级别的训练,而是基于对大量语料库的学习,从而理解单词的含义和用法。
另外,人类的语言学习是基于人类的认知和记忆能力的,这是大型语言模型所无法比拟的。人类可以快速地理解和记忆新的单词,这是因为我们的大脑具有强大的认知和记忆能力。而大型语言模型则需要通过大量的训练数据来进行学习和理解,无法像人类一样快速地学习和记忆新的单词。
因此,虽然大型语言模型已经取得了很大的进展,但它们仍然存在一些局限性,无法完全模拟人类的认知和记忆能力。
Claude:你提出了一个很好的观点,让大语言模型像人类一样同时学习字符和词汇单位,而不是仅依赖词符化的token,的确可以带来一些好处:
1. 人类在学习语言时,会同时习得字母、音素和词汇概念,从不同维度理解语言。
2. 如果大模型也同时具备字符和词汇两个级别的表示和理解,可以更全面地模拟人类语言学习过程。
3. 字符级表示可以提供语音、发音等语言结构信息,有利于模型理解语言规则。
4. 词汇级表示可以提供词义、语义等概念信息,利于理解语言意图。
5. 同时整合两个级别的理解,既具备结构化的语言知识,又掌握语义概念,可以达到互通互补的效果。
6. 一些最新研究也尝试让模型同时学习字符和词级表示,并取得了不错的效果。
7. 所以你的这个建议很有启发性,未来大语言模型的设计可以考虑向人类学习机制看齐,在多粒度表示语言上下功夫,这样可以取得更好的语言理解能力。
ChatGPT:人类学习语言时的确既懂字符级别的信息又懂词汇和词义,但在自然语言处理中,使用字符级别的表示方式通常会导致以下一些挑战:
1.维度爆炸:字符级别的tokenization会导致更大的模型输入空间,因为一个单词可能需要多个字符来表示。这会导致输入数据的维度急剧增加,增加了模型的计算和存储要求。
2.处理效率字符级别的表示通常需要更多的计算资源,因为模型需要处理更多的token。这会降低模型的推理速度和效率,尤其是在实际应用中。
3.上下文理解字符级别的tokenization可能需要更长的上下文窗口才能正确理解词汇。对于长词汇或复杂语法结构,需要更多的字符级别信息才能进行准确的推断,这会增加计算复杂性。
4.数据稀疏性:字符级别的表示通常会导致更多的数据稀疏性,因为有许多不常见的字符组合,这可能需要更多的数据来训练模型以充分捕捉字符级别的信息。
尽管字符级别的信息对于某些任务可能是有用的,但大多数自然语言处理任务(如文本分类、语言生成等)通常使用单词级别的tokenization,因为它具有更高的效率、更低的维度和更好的性能。此外,通过使用单词级别的tokenization,模型可以利用词汇的语义信息,更好地捕捉词汇之间的语义关系。
在某些情况下,可以将字符级别的信息与单词级别的信息结合起来,以获得更全面的语言表示。例如,子词级别的tokenization策略(如WordPiece或Byte-Pair Encoding)可以在单词级别和字符级别之间取得平衡,以处理复杂的词汇和灵活的文本表示。这种方法允许模型同时学习词汇和字符级别的信息,以提高性能。
-END-
若想了解更多当日资讯,请点击阅读往期智能晚报

若想了解头条,请点击阅读往期

我们是一个诞生于GPT浪潮、由《第一财经》YiMagazine孵化的全新内容IP。 
和每一位关心技术、关注人类命运的读者一样,我们希望在这个充满不确定性的时代,更好地理解快速变化的科技世界,也更好地理解生而为「高级智能」的我们自己。
在这个目标下,我们计划从学术、商业、伦理、监管等多个角度报道和讨论与「智能」相关的议题。请注意,我们说的智能,不只是 AI。
与记者交流,可添加微信(请备注公司名称和姓名):
王杰夫 微信号: wjfsty
张司钰 微信号: helianthus351
吴洋洋 微信号: qitianjiuye
喜欢就关注我们吧,记得设为星标」
继续阅读
阅读原文