自从我看了安德烈·卡帕西(Andrej Karpathy)从头构建标记器(tokenizers)的视频后,我就开始认为整个大语言模型(LLM)领域都在忽视标记化。在标记化步骤之后,大语言模型只能看到标记(tokens),它从不直接处理文本。当我们预训练大语言模型时,大语言模型仅仅依赖于标记化后的文本。如果我们搞砸了标记化,不管我们多么努力地预训练,我们的大语言模型的性能总是会很差。我写了一篇Substack文章来详细解释这个问题:[https://open.substack.com/pub/vizuara/p/the-necessary - and - neglected - evil?r = 4ssvv2&utm_campaign = post&utm_medium = web&showWelcomeOnShare = true]
讨论总结
原帖强调大型语言模型中的标记化被忽视且是必要的,若标记化出错会影响模型预训练效果。评论者们的观点多种多样,有的分享相关经历,有的进行技术探讨如标记器的训练方式,有的对原帖观点表示质疑,也有表示认可并补充相关文章的,还有提出创新观点和反对原帖观点的,整体讨论围绕大型语言模型中的标记化展开,理性探讨氛围浓厚。
主要观点
- 👍 标记化若出错会影响大型语言模型预训练效果
- 支持理由:原帖阐述标记化后LLM只看到标记,预训练依赖标记化文本,所以标记化出错会使模型性能差。
- 反对声音:有评论者指出标记化在该领域有改进并非被忽视,也并非必要。
- 🔥 标记化可能只是被讨论较少而非被忽视
- 正方观点:以Llama3和Llama2、qwen系列为例说明标记器有变化,所以可能只是讨论少。
- 反方观点:原帖作者认为标记化是被忽视的,因为整个LLM领域都没有重视。
- 💡 标记化能以特定方式改进,如标记代表两个字母文本
- 解释:这样有助于减少标记使用量,简化训练使其更匹配语言使用与训练参数化。
- 💡 标记化问题可能容易解决
- 解释:如果有实验室愿意研究,相比其他LLM问题成本较低。
- 🔥 不应将标记化视为大型语言模型中的“恶魔”
- 正方观点:应完全接受标记化概念,可以对句子或段落进行标记化。
- 反方观点:原帖作者认为标记化容易被忽视且会导致模型性能差所以视为“恶魔”。
金句与有趣评论
- “😂 Back when I thought byT5 will save us from all of this bullshit and spent a whole week trying to read the paper and training the model on my laptop.”
- 亮点:通过讲述自己曾经对byT5的期待及付出的努力,侧面反映出大型语言模型标记化相关问题的复杂性。
- “🤔 I wonder if it could work to train the tokenizer only with lower case letters and introduce some kind of Meta tokens that mean "the following token is considered to be all upper case" and "the first letter of the next token is upper case".”
- 亮点:提出一种关于标记器训练的独特设想。
- “👀 Is it really that neglected? There were big tokenizer changes in Llama3 vs 2, likewise for the qwen series. Maybe just discussed less?”
- 亮点:通过实例对原帖中标记化被忽视的观点进行质疑。
- “👍 我同意。 词的标记化困扰着LLM并导致多种类型的问题。”
- 亮点:简洁地表达对原帖关于标记化困扰LLM观点的认可。
- “💥 No, totally embrace the concept, and tokenize entire sentences or even paragraphs to fully immerse yourself in the slope at lightning fast speeds, that even make Groq look slow.”
- 亮点:提出与原帖不同的对待标记化的态度并阐述新的标记化方式。
情感分析
总体情感倾向为中性偏理性探讨。主要分歧点在于对标记化是否被忽视、是否必要以及是否应被视为“恶魔”等方面。可能的原因是不同评论者的知识背景、研究方向以及对大型语言模型标记化的理解和认识程度不同。
趋势与预测
- 新兴话题:标记化与语义单元的匹配以及如何更好地实现理想的标记化。
- 潜在影响:对大型语言模型的优化发展有着积极的推动作用,如果标记化能够得到更好的改进,将有助于提升大型语言模型的性能。
详细内容:
标题:大型语言模型中被忽视却关键的“恶”:标记化
最近,Reddit 上一个关于大型语言模型(LLM)标记化的讨论引发了广泛关注。原帖指出,自从看了 Andrej Karpathy 关于从头构建标记器的视频后,作者认为整个 LLM 领域都在忽视标记化。帖子中提到,在标记化步骤之后,LLM 只看到标记,从不直接处理文本。当我们预训练 LLM 时,它完全依赖于标记化的文本,如果标记化搞砸了,无论怎么努力预训练,LLM 的性能都会很差。作者还写了一篇 Substack 文章详细解释,链接为:https://open.substack.com/pub/vizuara/p/the-necessary-and-neglected-evil?r=4ssvv2&utm\_campaign=post&utm\_medium=web&showWelcomeOnShare=true 。该帖获得了众多点赞和评论,引发了以下主要讨论方向。
讨论焦点与观点分析: 有人分享了自己花费一周时间尝试训练 byT5 模型的个人经历。 有人好奇能否只用小写字母训练标记器,并引入一些元标记来表示后续标记的大小写情况。 有人认为标记器本身就是一种不应存在的“hack”,改变它并不能解决根本问题。 有人提出通过最小化压缩和未压缩输出分布之间的 KL 散度来优化压缩嵌入。 有人质疑压缩器如何对信息进行分块。 有人认为可以将每个字符都视为一个标记,但这会带来巨大的训练和性能损失。 有人提出也许使用更符合所学语言音素的标记化策略会有助于模仿人类处理文本/语言的方式。 有人认为标记化允许大幅降低语言空间的维度,是原则上能够对语言进行建模的方式之一,但理想的情况是标记与语言(和认知)中的语义单元 1:1 匹配,可目前我们还不知道怎么做。 有人指出随着更多的学习/训练,会出现不同大小的离散理解/标记化单元。 有人认为人类在必要时可以逐字阅读,LLM 需要一种在问题复杂时“慢下来”的机制。
讨论中的共识在于大家都认识到标记化对于 LLM 的重要性,以及目前存在的问题和可能的改进方向。一些特别有见地的观点,如将语义标记标记为单独的标记可能会显著提升 LLM 的能力,丰富了讨论的深度和广度。
感谢您的耐心阅读!来选个表情,或者留个评论吧!