三星网上商城app,优化官网咨询,没有rss源的网站如何做rss订阅,wordpress在哪里设置编辑器文章目录 基本概念什么是token?如何理解token的长度#xff1f;使用openai tokenizer 观察token的相关信息open ai的模型 token的特点token如何映射到数值#xff1f;token级操作#xff1a;精确地操作文本token 设计的局限性 tokenizationtoken 数量对LLM 的影响训练模型参… 文章目录 基本概念什么是token?如何理解token的长度使用openai tokenizer 观察token的相关信息open ai的模型 token的特点token如何映射到数值token级操作精确地操作文本token 设计的局限性 tokenizationtoken 数量对LLM 的影响训练模型参数量与训练数据量统计影响模型效果的因素有哪些 参考 基本概念
什么是token?
在 LLM 中token代表模型可以理解和生成的最小意义单位是 LLM 进行处理的最小单元。根据所使用的特定标记化【Tokenization】方案token可以表示单词、单词的一部分甚至只表示字符。采用的方案由模型的类型和大小决定token被赋予数值或标识符并按序列或向量排列并被输入或从模型中输出是模型的语言构件。模型理解这些token之间的统计关系并擅长做token的接龙token化是将输入和输出文本分割成可以由LLM AI模型处理的较小单元的过程token作为原始文本数据和 LLM 可以使用的数字表示之间的桥梁。LLM使用token来确保文本的连贯性和一致性有效地处理各种任务如写作、翻译和回答查询。
如何理解token的长度
下面是一些有用的经验法则可以帮助理解token的长度:
1 token ~ 4 chars in English1 token ~ ¾ words100 tokens ~ 75 words1-2 句子 ~ 30 tokens1 段落 ~ 100 tokens1,500 单词 ~ 2048 tokens一个unicode字符可以拆分为多个token
使用openai tokenizer 观察token的相关信息
可以通过https://platform.openai.com/tokenizer 来观察token 的相关信息。
可以看到GPT-3.5GPT-4 与 GPT-3(Legacy) 模型tokenizer方案是不同的前者产生的token数据量变少针对中文的处理更加合理。 open ai的模型
OpenAI API由一组不同的模型提供支持这些模型具有不同的功能和价位
GPT-4是一个大型多模态模型(接受文本或图像输入和输出文本)由于其更广泛的一般知识和先进的推理能力它可以比我们以前的任何模型都更准确地解决难题。
MODELDESCRIPTIONGPT-4 and GPT-4 TurboA set of models that improve on GPT-3.5 and can understand as well as generate natural language or codeGPT-3.5 TurboA set of models that improve on GPT-3.5 and can understand as well as generate natural language or codeDALL·EA model that can generate and edit images given a natural language promptTTSA set of models that can convert text into natural sounding spoken audioWhisperA model that can convert audio into textEmbeddingsA set of models that can convert text into a numerical formModerationA fine-tuned model that can detect whether text may be sensitive or unsafeGPT baseA set of models without instruction following that can understand as well as generate natural language or codeDeprecatedA full list of models that have been deprecated along with the suggested replacement
token的特点
token如何映射到数值
词汇表将token映射到唯一的数值表示。LLM 使用数字输入因此词汇表中的每个标记都被赋予一个唯一标识符或索引。这种映射允许 LLM 将文本数据作为数字序列进行处理和操作从而实现高效的计算和建模。
为了捕获token之间的意义和语义关系LLM 采用token编码技术。这些技术将token转换成称为嵌入的密集数字表示。嵌入式编码语义和上下文信息使 LLM 能够理解和生成连贯的和上下文相关的文本。像transformer这样的体系结构使用self-attention机制来学习token之间的依赖关系并生成高质量的嵌入。
token级操作精确地操作文本
token级别的操作是对文本数据启用细粒度操作。LLM 可以生成token、替换token或掩码token以有意义的方式修改文本。这些token级操作在各种自然语言处理任务中都有应用例如机器翻译、情感分析和文本摘要等。
token 设计的局限性
在将文本发送到 LLM 进行生成之前会对其进行tokenization。token是模型查看输入的方式ーー单个字符、单词、单词的一部分或文本或代码的其他部分。每个模型都以不同的方式执行这一步骤例如GPT 模型使用字节对编码(BPE)
token会在tokenizer发生器的词汇表中分配一个 id这是一个将数字与相应的字符串绑定在一起的数字标识符。例如“ Matt”在 GPT 中被编码为token编号[13448]而 “Rickard”被编码为两个标记“ Rick”“ ard”带有 id[8759,446]GPT-3拥有1400万字符串组成的词汇表。
token 的设计大概存在着以下的局限性
大小写区分不同大小写的单词被视为不同的标记。“ hello”是token[31373] “ Hello”是[15496] 而“ HELLO”有三个token[13909,3069,46]。数字分块不一致。数值“380”在 GPT 中标记为单个“380”token。但是“381”表示为两个token[“38”“1”]。“382”同样是两个token但“383”是单个token[“383”]。一些四位数字的token有: [“3000”] [“3”“100”] [“35”“00”] [“4”“500”]。这或许就是为什么基于 GPT 的模型并不总是擅长数学计算的原因。尾随的空格。有些token有空格这将导致提示词和单词补全的有趣行为。例如带有尾部空格的“once upon a ”被编码为[“once”、“upon”、“a”、“ ”]。然而“once on a time”被编码为[“once”“ upon”“ a”“ time”]。因为“ time”是带有空格的单个token所以将空格添加到提示词将影响“ time”成为下一个token的概率。
tokenization
将文本划分为不同token的正式过程称为 tokenization.tokenization是特定于模型的。根据模型的词汇表和tokenization方案标记可能具有不同的大小和含义。 BPE 是一种将最频繁出现的字符对或字节合并到单个标记中的方法直到达到一定数量的标记或词汇表大小为止。BPE 可以帮助模型处理罕见或不可见的单词并创建更紧凑和一致的文本表示。BPE 还允许模型通过组合现有单词或标记来生成新单词或标记。词汇表越大模型生成的文本就越多样化并富有表现力。但是词汇表越大模型所需的内存和计算资源就越多。因此词汇表的选择取决于模型的质量和效率之间的权衡。
tokenization涉及到将文本分割成有意义的单元以捕捉其语义和句法结构可以采用各种tokenization技术如字级、子字级(例如使用字节对编码或 WordPiece)或字符级。根据特定语言和特定任务的需求每种技术都有自己的优势和权衡。
字节对编码BPE为AI模型构建子词词汇用于合并出现频繁的字符/子字对。子词级tokenization为复杂语言和词汇划分单词。将单词拆分成更小的单元这对于复杂的语言很重要。单词级tokenization用于语言处理的基本文本tokenization。每个单词都被用作一个不同的token它很简单但受到限制。句子片段用习得的子词片段分割文本基于所学子单词片段的分段。分词tokenization采用不同合并方法的子词单元。字节级tokenization使用字节级token处理文本多样性将每个字节视为令牌这对于多语言任务非常重要。混合tokenization平衡精细细节和可解释性结合词级和子词级tokenization。
相关的技术参见 下图
token 数量对LLM 的影响
训练模型参数量与训练数据量统计
2022 年 9 月DeepMindChinchilla 论文中提出Hoffman scaling laws表明每个参数需要大约 20 个文本token进行训练。比如一个7B的模型需要140B token若每个token使用int32(四字节)进行编码的话就是560GB的数据。
训练模型参数量与训练数据量的统计
参数量数据量(tokens)1T tokens约为 2000-4000 GB 数据(与token的编码字节数相关)llama-7B1.0 T-13B1.0 T-33B1.4 T-65B1.4 TLlama2-7B2.0 T-13B2.0 T-34B2.0 T-70B2.0 TBloom-176B1.6 TLaMDA-137B1.56 TGPT-3-175B0.3 TJurassic-178B0.3 TGopher-280B0.3 TMT-NLG 530B0.27 TChinchilla-70B1.4 T
影响模型效果的因素有哪些
虽然模型可以处理或已经接受过训练的token数量确实影响其性能但其响应的一般性或详细程度更多地是其训练数据、微调和所使用的解码策略的产物。
解码策略也起着重要的作用。修改模型输出层中使用的SoftMax函数的“temperature”可以使模型的输出更加多样化(更高的温度)或者更加确定(更低的温度)。在OpenAI 的API中设置temperature的值可以调整确定性和不同输出之间的平衡。
上下文窗口: 这是模型一次可以处理的token的最大数量。如果要求模型比上下文窗口生成更多的token它将在块中这样做这可能会失去块之间的一致性。
不同的模型支持不同的上下文token窗口,见下表
MODELDESCRIPTIONCONTEXT WINDOWTRAINING DATAgpt-4-0125-previewNew GPT-4 Turbo The latest GPT-4 model intended to reduce cases of “laziness” where the model doesn’t complete a task. Returns a maximum of 4,096 output tokens. Learn more.128,000 tokensUp to Dec 2023gpt-4Currently points to gpt-4-0613. See continuous model upgrades.8,192 tokensUp to Sep 2021gpt-4-32kCurrently points to gpt-4-32k-0613. See continuous model upgrades. This model was never rolled out widely in favor of GPT-4 Turbo.32,768 tokensUp to Sep 2021gpt-3.5-turbo-1106GPT-3.5 Turbo model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. Returns a maximum of 4,096 output tokens. Learn more.16,385 tokensUp to Sep 2021gpt-3.5-turbo-instructSimilar capabilities as GPT-3 era models. Compatible with legacy Completions endpoint and not Chat Completions.4,096 tokensUp to Sep 2021gpt-3.5-turbo-16kLegacy Currently points to gpt-3.5-turbo-16k-0613.16,385 tokensUp to Sep 2021
等这样的大模型有一个最大token 数量限制超过这个限制它们就不能接受输入或生成输出 一般地 可以尝试以下方法来解决token长度限制的问题
截断抽样重组编解码微调
参考
LLM 中 Token 的通俗解释 解读大模型LLM的token 大模型参数量与训练数据量关系