你知道的,标记化(Tokenization)是大型语言模型(LLMs)痛苦的根源。但令我惊讶的是,我认为这根本不是问题!原因如下。完整论文可在我的谷歌云端硬盘获取,[代码在GitHub](https://github.com/Danil - Kutnyy/gpt_char_encoder)。(没有‘我们取得了巨大进步’,没有挑选有利数据,我不在乎自己论文的引用情况)。
太长不看(TLDR):
想法是将字符级信息编码到标记(token)中,这样解码器Transformer模型——尽管仍然在标记级别工作——能够理解并解决特定字符的任务(例如,著名的‘strawberry’案例)。
令人惊讶的结果:这没有用。似乎标记并没有像我预期的那样限制语言模型。
标记化的‘明显’问题
如果你一直关注大型语言模型领域,你可能遇到过这样的观点,即标记是机器学习算法有缺陷的瓶颈。这是一个众所周知的问题,由GPT - 4著名的‘strawberry’测试而广为人知。 在Andrej Karpathy的神经网络课程中,他强调了由标记化导致的大型语言模型的局限性:
但这里有个转折:我的论文表明,标记化令人惊讶地不会影响Transformer解决特定字符任务的能力。 真正的瓶颈可能在其他地方,例如:
- 数据集中特定字符问题的严重代表性不足。
- 字符级意识在语言建模任务中的整体低重要性。
让我解释为什么!
提出的Transformer架构
最初的想法是将标记的字符意识纳入模型,以提高特定字符任务的性能。
这是架构:[https://preview.redd.it/w9rbyaxo9h8e1.png?width = 1763&format = png&auto = webp&s = 7dcf3ececac7fa9577f24420169a15db484c75fb](https://preview.redd.it/w9rbyaxo9h8e1.png?width = 1763&format = png&auto = webp&s = 7dcf3ececac7fa9577f24420169a15db484c75fb) 图1显示了标准编码过程。多个字符通常被组合成一个单一实体——一个标记。这些标记被传递到一个编码层,并嵌入到一个维度向量中。然后,相同大小的位置编码向量被添加到标记嵌入中。这使得Transformer能够看到标记及其在文本中的位置。 [https://preview.redd.it/szjlz0lkch8e1.png?width = 1939&format = png&auto = webp&s = 50b2846fec0a0964a13422e7b43d141fd65688a3](https://preview.redd.it/szjlz0lkch8e1.png?width = 1939&format = png&auto = webp&s = 50b2846fec0a0964a13422e7b43d141fd65688a3) 图2显示了我提出的在不改变整体架构的情况下增加字符意识的机制。
- 工作原理:一个额外的嵌入向量代表字符。一个长短期记忆网络(LSTM)按顺序处理标记中的每个字符。它的最终隐藏状态创建了第三种嵌入,对字符级信息进行编码。 假设:这个架构理论上应该有助于像单词拼写、字符级操作等任务。
结果
预训练阶段: [https://preview.redd.it/awmkt6as9h8e1.png?width = 1928&format = png&auto = webp&s = d87be5168e431deb1d3cff6caf33f2eaeda1bc7a](https://preview.redd.it/awmkt6as9h8e1.png?width = 1928&format = png&auto = webp&s = d87be5168e431deb1d3cff6caf33f2eaeda1bc7a) 如图3所示,两种架构的交叉熵损失值相似。在预训练期间没有观察到显著差异,这与我的预期相反。我假设修改后的架构在语言建模方面会显示出一些差异——无论是正面还是负面的。
微调阶段(在合成特定字符任务上): 我心想没什么奇怪的,在通常的语言建模中,它可能不需要字符知识来预测下一个标记。但然后我在合成特定字符任务上测试了这两个模型,例如:
- 反转单词中的字母顺序。
- 计算单词中特定字母的数量。
- 找到单词中特定字母的第一个索引。
- 将单词中的一个特定字母与另一个交换。 [https://preview.redd.it/qfl8tp3y9h8e1.png?width = 1206&format = png&auto = webp&s = 92ee21ffab529df943621ef50494f2963b73f0d9](https://preview.redd.it/qfl8tp3y9h8e1.png?width = 1206&format = png&auto = webp&s = 92ee21ffab529df943621ef50494f2963b73f0d9) 图4的结果很清楚:在微调期间,两种模型在语言建模损失上都有预期的增加,但在合成数据集上减少。然而,两种架构的损失值几乎相同。这到底为什么会发生呢?
我的结论
基于标记的模型似乎能够学习标记的内部字符结构。在需要时可以从训练数据中提取此信息。因此,我的字符感知嵌入机制似乎是不必要的。 就是这样!如果你感兴趣,完整的论文和代码都可以获取。 如果你有任何想法,我很乐意在评论中阅读。感谢你的时间!
讨论总结
原帖提出标记化不是大型语言模型(LLMs)的根本问题,还阐述了相关实验过程和结论。评论者们从多个方面进行回应,包括提及其他相关模型(如Meta的Byte Latent Transformer)、对原帖观点的认同或反对、对原帖研究完整性的质疑、对标记化相关概念的讨论等,整体讨论氛围较为理性,大家各抒己见。
主要观点
- 👍 原帖中关于标记化不是LLMs根本问题的观点
- 支持理由:原帖通过实验对比,发现添加字符 - 级编码方案对大型语言模型(LLM)没有帮助,得出基于标记的模型能够学习标记内部字符结构,所以标记化不是问题。
- 反对声音:部分评论者认为原论文未涉及更好的标记化方法或无标记处理语言设计对LLM的影响,所以不能证明标记化不是问题;还有评论者认为原作者尝试解决的是不重要且无人在意的问题,结论牵强。
- 🔥 Meta的Byte Latent Transformer(BLT)相关观点
- 正方观点:BLT有其独特工作方式和特性,如将字节序列按熵分块后传递给大模型,高效且质量好、是多语言的。
- 反方观点:原作者表示自己研究与BLT不同,对BLT成果被广泛采用持怀疑态度,认为自己的研究是概念验证,而BLT更完善。
- 💡 关于原帖研究的价值性
- 有人认为原作者并没有证明或者反驳任何事情,原论文只是表明添加字符级编码方案对大型语言模型(LLM)没有帮助,但这不能代表什么;也有人认为原作者进行了尝试并给出结果,所以证明了一些事情。
金句与有趣评论
- “😂 genshiryoku:Yeah BLT essentially negate everything OP said.”
- 亮点:直接指出BLT与原帖观点的对立性。
- “🤔 youdontneedreddit:Dunning - Kruger is strong with this one”
- 亮点:暗示原帖作者存在认知偏差。
- “👀 我认为你并没有证明或反驳任何事情。”
- 亮点:直接质疑原帖的结论意义。
情感分析
总体情感倾向为理性探讨,存在分歧。主要分歧点在于原帖关于标记化不是LLMs根本问题的结论是否合理。可能的原因是大家对标记化在LLMs中的作用和原帖研究的全面性有不同的理解和期望。
趋势与预测
- 新兴话题:可能会进一步探讨其他标记化方法或者无标记处理语言设计对LLMs的影响。
- 潜在影响:如果标记化确实不是LLMs的根本问题,那么相关研究方向可能会调整,更多地关注其他影响LLMs性能的因素。
详细内容:
《关于语言模型中标记化的热门讨论:是瓶颈还是非关键因素?》
近日,Reddit 上一篇题为“Tokenization is the root of suffering for LLMs as you know. Surprisingly to me, I suggest it is not a problem at all! Here is why”的帖子引发了热烈讨论。该帖获得了众多关注,评论数众多。
原帖主要探讨了在语言模型(LLMs)中标记化(tokenization)是否是限制模型性能的关键因素。作者通过一系列实验和分析得出了令人惊讶的结果:标记化似乎并非如预期那样对模型产生约束。
讨论的焦点主要集中在以下几个方面: 有人认为字节潜在变压器(Byte Latent Transformer)以一种更周全的方式解决了相同问题,而非原帖作者的方法。也有人指出,模型并非问题所在,而是数据集中特定字符问题的代表性不足等原因。
有用户分享道:“他们不输入字符,而是输入字节,这些字节在模型早期就被转换为潜在补丁。这里的输入空间存在类别差异——‘Hello 日本語 World!’在 UTF8 和 UTF16 中的编码字节序列是不同的。如果确实存在训练数据不足,Meta 的论文就无关紧要。这是一个很有前途的好模型——但模型不是问题所在。”
还有用户表示:“字节潜在变压器(BLT)的基准在‘你的回复包含哪些字符’等测试中从 0.0%提高到 60%,其他基于字符的测试从约 30%提高到 80%。这可不是‘另一个挑选出来的 1%的改进’。”
然而,也有人提出不同看法,比如有人认为原作者在结论上有些夸张,或者认为其未能证明或否定某些关键问题。
但也有人称赞原作者的工作,并认为尽管结果可能不如预期,但这种尝试仍有其价值。
在这场讨论中,各方观点激烈碰撞,虽然尚未达成完全一致的结论,但为语言模型中标记化的研究提供了更多思考的方向。
感谢您的耐心阅读!来选个表情,或者留个评论吧!