哈尔滨酒店网站建设,.net做网站用什么框架,怎么上国外网站,区块链网站建设1. 背景分析 分词是将输入和输出文本拆分成更小单位的过程#xff0c;使得大模型能够处理。token可以是单词、字符、子词或符号#xff0c;取决于模型的类型和大小。分词可以帮助模型处理不同的语言、词汇和格式#xff0c;并降低计算和内存成本。分词还可以通过影响token的…1. 背景分析 分词是将输入和输出文本拆分成更小单位的过程使得大模型能够处理。token可以是单词、字符、子词或符号取决于模型的类型和大小。分词可以帮助模型处理不同的语言、词汇和格式并降低计算和内存成本。分词还可以通过影响token的含义和上下文影响生成文本的质量和多样性。 我们在前述文章《BPE原理及代码示例》、《WordPiece原理及代码示例》、《Unigram原理及代码示例》三篇文章讨论了在预训练模型中最常用的三种tokenizer算法BPE、WordPiece、Unigram。 对这几类技术再做下简述详细的可以点击链接看我们的文章 BPE字节对编码 BPE的核心概念是从字母开始反复合并频率最高且相邻的两个token直到达到目标词数。 BBPE BBPE的基本思想是将BPE从字符级别扩展到字节Byte级别。BPE在处理unicode编码时可能会导致基础字符集过大而BBPE将每个字节视为一个“字符”不论实际字符集用多少字节表示。这样基础字符集的大小就固定为2562^8从而实现跨语言共享词表并显著缩减词表大小。然而对于像中文这样的语言文本序列长度会显著增加这可能使得BBPE模型的性能优于BPE模型但其序列长度较长也会导致训练和推理时间增加。BBPE的实现与BPE类似主要差别在于基础词表使用256的字节集。 WordPiece WordPiece算法可视为BPE的变种。不同之处在于WordPiece通过概率生成新的subword而不是简单地选择频率最高的字节对。WordPiece每次从词表中选出两个子词合并成一个新子词但选择的是能最大化语言模型概率的相邻子词。 Unigram Unigram与BPE和WordPiece在本质上有明显区别。前两者从小词表开始逐步增加到设定的词汇量而Unigram则先初始化一个大词表通过语言模型评估逐步减少词表直到达到目标词汇量。 2. 分词粒度的讨论 技术有这么多那该如何选择首先我们来看下不同粒度的token有哪些影响
2.1 针对小的token的分析
优势 1.较小的token使得模型能够生成和理解更广泛的单词包括通过组合较小的部分来处理从未见过的单词。 2.由于token较小词汇大小通常较小从而在某些方面节省内存和计算资源。 3.较小的token一般也更适合处理多种语言或代码尤其是当这些语言具有不同的句法或语法结构时。 4.较小的token可能更好地处理拼写错误。 缺点 1.较小的token意味着给定文本会被拆分成更多的词元从而增加处理文本的计算成本。 2.另外由于固定的最大token限制使用较小的token可能导致模型能够考虑的实际内容的“上下文”减少。 3.较小的token可能导致表达存在一定的模糊度使模型在没有足够上下文的情况下更难理解token序列的含义。 2.2 针对大的token的分析
优点 1.较大的token减少表示文本所需的token数量从而在计算上提高了处理效率。 2.在固定的最大token数限制下较大的token允许模型考虑更长的文本从而可能提高理解和生成能力。 3.较大的token可能直接捕捉到更多细致的含义减少因将单词拆分成更小部分而产生的模糊性。 缺点 1.较大的token通常需要更大的词汇来捕捉相同范围的文本这可能会带来占用大量内存的现象。 2.较大的token可能限制模型对未见或稀有单词的泛化能力因为整个token必须与模型的词汇中的某个内容匹配。 3.较大的token可能在处理复杂形态或句法的语言时效果不佳或在需要理解多种语言的任务中。 4.较大的token对拼写错误、拼写变体及其他文本中的小变化敏感。 3. 主流大模型的分词器选择
模型分词器GPT-4oBPE(BBPE)【2】GPT3BPE(BBPE)【3】GPT2BPE(BBPE)【4】GPTBPE【5】Llama3BPE(BBPE)【68】Llama2BPE(BBPE)【78】Qwen2BPE(BBPE)【910】QwenBPE(BBPE)【11】ChatGLMBBPE【12】BaichuanBPE【13】RoBERTaBPE【5】BARTBPE【5】DeBERTaBPE【5】MPNETWordPiece【14】Funnel TransformersWordPiece【14】MobileBERTWordPiece【14】DistilBERTWordPiece【14】BERTWordPiece【14】T5Unigram【15】AlBERTUnigram【15】mBARTUnigram【15】XLNetUnigram【15】 当然虽然说GPT系列或者其他大模型用的都是BPE(BBPE)但在处理上还会有一些细微的差异。可以试用下openai提供的在线tokenizer工具https://platform.openai.com/tokenizer 此外 OpenAI、Google、huggingface分别都提供了开源的tokenizer工具tiktoken、sentencepiece、tokenizers支持主流的分词算法。 扩展阅读
《全方位解读大模型多样知识点的深度探讨与技术分享小结》 4. 参考材料
【1】Understanding “tokens” and tokenization in large language models
【2】openai/tiktoken
【3】gpt-tokenizer
【4】Language Models are Unsupervised Multitask Learners
【5】Byte-Pair Encoding tokenization
【6】Llama3
【7】Llama2
【8】Llama (LLM)
【9】qwen2-concepts
【10】tokenization_qwen2
【11】qwen/tokenization_note
【12】tokenization_chatglm
【13】Baichuan-7B
【14】WordPiece tokenization
【15】Unigram tokenization