大模型token和字符串的关系

一 主要区别

  • token 是使用分词器拆分后的最小单位不同的分词方式会导致同样的字符具有不同的token数量。如你好,可以拆分为【你、好】两个token, 【你好】一个token。

  • 同一个文本的 Token 数量可能远少于字符数(英文)或 接近字符数(中文)。


在自然语言处理中,token 是文本处理的基本单元,而字符是书写系统的最小单位。二者的关系取决于具体的分词方法:

  1. 字符级分词
    每个字符直接作为 token。对于中文“你好”(2个字符),会被分为 2个token(“你”和“好”)。

  2. 子词分词(如BPE、WordPiece)

    • 如果“你好”在训练数据中频繁出现,可能合并为 1个token

    • 否则会被拆分为 2个token(常见于多语言模型,如GPT系列)。

  3. 实际验证(以OpenAI为例)
    使用GPT-3/GPT-4的tiktoken分词器测试,“你好”通常被分为 2个token,因为中文字符常被单独编码。

总结

  • 在大多数情况下(尤其是多语言模型),“你好”对应 2个token

  • 特定中文优化模型可能合并为1个token,需具体测试分词器。

二 字符(Character)

定义
  • 字符是书写系统中的最小单位,代表一个可见的符号或控制符号。

  • 例如:

    • 英文:aB?空格 等。

    • 中文:(逗号)等。

    • 数字或符号:1$% 等。

  • 每个字符在计算机中通常对应一个编码(如 Unicode)。

特点
  • 原子性:字符不可再拆分。

  • 直观性:直接对应文本的视觉形态。

  • 长度固定:例如,“你好”包含 2 个字符。

例子
  • 句子 Hello, 世界! 的字符分解:

    H, e, l, l, o, ,,  , 世, 界, !

    共 10 个字符(包括空格和标点)

三 Token(词元)

定义
  • Token 是自然语言处理(NLP)中文本处理的基本单元,是模型输入的最小单位。

  • 如何生成 Token? 取决于分词方法(Tokenization):

    1. 词级别分词(Word-based)
      将文本按词语分割。例如:“我爱编程” → ["我", "爱", "编程"](3 tokens)。

    2. 子词分词(Subword-based)
      将复杂词拆分为常见子词。例如:“unhappy” → ["un", "happy"](2 tokens)。

    3. 字符级别分词(Character-based)
      每个字符直接作为 Token。例如:“你好” → ["你", "好"](2 tokens)。

特点
  • 灵活性:Token 的粒度可粗(词)可细(字符)。

  • 模型依赖性:不同模型使用不同的分词规则(如 GPT 用 BPE,BERT 用 WordPiece)。

  • 功能导向:Token 的目的是让模型高效学习和处理文本。

例子
  • 英文"ChatGPT is powerful!"
    使用子词分词(BPE)可能分解为:

["Chat", "G", "PT", " is", " powerful", "!"] → 6 tokens

中文“自然语言处理”
使用子词分词可能分解为:

["自然", "语言", "处理"] → 3 tokens

或者字符分词:

["自", "然", "语", "言", "处", "理"] → 6 tokens

四 Token 和字符的关系

特征字符(Character)Token
定义书写系统的最小单位NLP 处理的基本单元
拆分规则固定(按 Unicode 编码)灵活(由分词算法决定)
粒度绝对最小(不可再分)可粗(词)可细(字符或子词)
用途文本存储、显示模型训练、推理、文本分析
例子“A”“你”“1”“!”“Chat”“##GP”“你好”

五 如何计算 Token 数量?

  • 英文:通常 1 个单词 ≈ 1-2 个 Token。

  • 中文:通常 1 个汉字 ≈ 1-2 个 Token(取决于是否被合并为子词)。

  • 实际工具
    使用模型对应的分词器直接测试。例如:

    • OpenAI 的 tiktoken 库:

import tiktoken
enc = tiktoken.get_encoding("cl100k_base")  # GPT-4 的分词器
text = "你好"
print(len(enc.encode(text)))  # 输出 2(2个Token)

六 总结

  • 字符是固定的视觉单位,直接对应文本的书写形式。

  • Token 是灵活的逻辑单位,服务于模型的高效处理。

  • 同一个文本的 Token 数量可能远少于字符数(英文)或 接近字符数(中文)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33928.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试之测试分类

1. 为什么要对软件测试进行分类 软件测试是软件⽣命周期中的⼀个重要环节,具有较⾼的复杂性,对于软件测试,可以从不同的⻆度 加以分类,使开发者在软件开发过程中的不同层次、不同阶段对测试⼯作进⾏更好的执⾏和管理测试 的分类⽅…

Devops CI/CD

Devops CI/CD DevOps 中的 CI/CD:持续集成与持续部署的深度解析一、CI/CD 基本概念(一)持续集成(二)持续部署 二、CI/CD 实施步骤(一)版本控制(二)自动化构建&#xff08…

leetcode105为什么可以root.left可以截取到前序遍历二叉树的(0,index),而不是(1,index+1)

这里以105前序和中序遍历构造二叉树为例,106同理 原因在于preoder.shift()会改变原数组,已经把preoder的第一个队头元素已经排除出去了!!! 306题中的截取后续遍历中用pop()同理

数据结构---堆栈和列

一、堆栈 1.栈堆:具有一定操作约束的线性表;(只在一端做插入删除) 2.栈的顺序存储结构: 由一个一维数组和一个记录栈顶元素位置的变量组成。定义方式如下: 3.入栈操作: 注意:&…

golang快速上手基础语法

变量 第一种,指定变量类型,声明后若不赋值,使用默认值0 package mainimport "fmt"func main() {var a int //第一种,指定变量类型,声明后若不赋值,使用默认值0。fmt.Printf(" a %d\n"…

【idea代码ai插件】利用接入硅基流动的deepseekR1的api在idea里实现问答,辅助写代码

注册硅基流动账号 https://siliconflow.cn/zh-cn/ 然后新建api密钥,这里的api密钥可以点击复制,等会输入要用 可以看到现在新注册是有额度的,你们应该是14元 模型广场这里可以调用deepseek的v3和r1,注意因为是蹭,赠…

NO.42十六届蓝桥杯备战|数据结构|算法|时间复杂度|空间复杂度|STL(C++)

数据结构 什么是数据结构 在计算机科学中,数据结构是⼀种数据组织、管理和存储的格式。它是相互之间存在⼀种或多种特定关系的数据元素的集合。 说点通俗易懂的话,数据结构就是数据的组织形式,研究的就是把数据按照何种形式存储在计算机中 …

【CSS3】化神篇

目录 平面转换平移旋转改变旋转原点多重转换缩放倾斜 渐变线性渐变径向渐变 空间转换平移视距旋转立体呈现缩放 动画使现步骤animation 复合属性animation 属性拆分逐帧动画多组动画 平面转换 作用:为元素添加动态效果,一般与过渡配合使用 概念&#x…

Keepalived高可用架构实战:从安装配置到高级应用详解

一.架构 用户空间核心组件: vrrp stack:VIP 消息通信checkers:监测 Real Serversystem call:实现 vrrp 协议状态转换时调用相关本地功能SMTP:邮件组件IPVS wrapper:生成 IPVS 规则Netlink Reflector&…

Linux:利用System V系列的-共享内存,消息队列实现进程间通信

对于管道的进程间通信方式,需要频繁的调用系统调用(read,write)。而我们今天首先要介绍的共享内存,在开辟好空间之后,便可以跳过系统调用,直接进行读写操作。 一.System V共享内存(主要) 共享内存区是最快的IPC形式。一旦这样的内…

不像人做的题————十四届蓝桥杯省赛真题解析(上)A,B,C,D题解析

题目A:日期统计 思路分析: 本题的题目比较繁琐,我们采用暴力加DFS剪枝的方式去做,我们在DFS中按照8位日期的每一个位的要求进行初步剪枝找出所有的八位子串,但是还是会存在19月的情况,为此还需要在CHECK函数…

宇树人形机器人开源模型

1. 下载源码 https://github.com/unitreerobotics/unitree_ros.git2. 启动Gazebo roslaunch h1_description gazebo.launch3. 仿真效果 H1 GO2 B2 Laikago Z1 4. VMware: vmw_ioctl_command error Invalid argument 这个错误通常出现在虚拟机环境中运行需要OpenGL支持的应用…

【C/C++算法】从浅到深学习--- 前缀和算法(图文兼备 + 源码详解)

绪论:冲击蓝桥杯一起加油!! 每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论​: 本章将使用八道题由浅到深的带你了解并基本掌握前缀和思想,以及前缀和的基…

脑电:时域分析(任务态)

时域分析:时间序列(时域信号) EEG和ERP都是时间序列 ERP:事件诱发的电位是随着时间变化 组水平:需要这一组的个体不能差异性太大。 提值的指标,选取平均幅值确定成分的显著情况 mean(EEG.data,3): 在第…

【C语言】自定义类型:结构体,联合,枚举(下)

前言;上一期我们侧重讲了一个非常重要的自定义类型结构体,这一期我们来说说另外两种自定义类型:联合,和枚举。 传送门:自定义类型:结构体,联合,枚举(上) 文章目录 一,联…

数组的介绍

1.数组的概念 数组是一组相同类型元素的集合,从这个描述中我们知道: 数组中存放1个或多个数据,但是数组的元素个数不为0。数组中存放的多个数据,类型是相同的。 数组分为一维数组和多维数组,多维数组一般比较多见的…

蓝桥杯 17110抓娃娃

问题描述 小明拿了 n 条线段练习抓娃娃。他将所有线段铺在数轴上,第 i 条线段的左端点在 li,右端点在 ri​。小明用 m 个区间去框这些线段,第 i个区间的范围是 [Li​, Ri​]。如果一个线段有 至少一半 的长度被包含在某个区间内,…

linux ptrace 图文详解(二) PTRACE_TRACEME 跟踪程序

目录 一、基础介绍 二、PTRACE_TRACE 实现原理 三、代码实现 四、总结 (代码:linux 6.3.1,架构:arm64) One look is worth a thousand words. —— Tess Flanders 一、基础介绍 GDB(GNU Debugger&…

记录致远OA服务器硬盘升级过程

前言 日常使用中OA系统突然卡死,刷新访问进不去系统,ping服务器地址正常,立马登录服务器检查,一看磁盘爆了。 我大脑直接萎缩了,谁家OA系统配400G的空间啊,过我手的服务器没有50也是30台,还是…

电网电压暂态扰动机理与工业设备抗失压防护策略研究

什么是晃电? 国标GB/T 30137-2013 中定义:工频电压方均根值突然降至额定值的90%~10%,持续时间为10ms~1min后恢复正常的现象。Acrel8757V 晃电的原因 1.系统侧因素 短路故障:雷击、线路接地、设备误碰等导致电网短路,故障点电压…