当前位置: 首页 > news >正文

Token(词元),5分钟彻底搞懂

如果你习惯看视频,就看《4. Token(词元),看会动画敲下代码,就彻底搞懂了》,喜欢看文章就接着往下看。

Token的优化过程如下

大模型单次调用的总消耗 Token 由两部分组成:总消耗 Token = 输入 Token + 输出 Token。其中,输入 Token 的构成更为细致,包括当前用户提问 Token、系统提示词 Token、历史对话上下文 Token,以及消息格式开销 Token。

需要注意的是,Token 的实际切分由各模型厂商自研的 Tokenizer(分词器)独立完成,因此相同文本在不同模型上会产生不同的 Token 数量与序列。以上提及的换算比例等数据,均为行业通用估算参考。

下面通过代码实战,带你彻底搞懂。首先打开命令行窗口,使用 pip 命令安装 transformers和PyTorch 开发库。

pip install transformers torch

安装完成后,我们便可以借助 transformers 库加载主流的分词器,直观地观察文本到 Token 的切分过程。以下是具体代码示例:

# 首先从 transformers 库中导入 AutoTokenizer 类,它能自动适配不同大模型的分词规则 from transformers import AutoTokenizer # 接着从预训练权重加载 Qwen2 模型的分词器 # 注意: "Qwen2_tokenizer"是下载到本地自命名的分词器 ,下载地址见文章最后链接 tokenizer = AutoTokenizer.from_pretrained("Qwen2_tokenizer") # 定义待处理的输入文本 text = "你好,我是cool。" # --------------------------------------------------------- # 第1步:分词 (Tokenization) # --------------------------------------------------------- # 使用 BPE算法将文本切分为“子词单元” # 规则是:常见词为1个Token,复杂词会拆开,标点也算Token。 bpe_codes = tokenizer.tokenize(text) # 先打印出来看一下结果 print(bpe_codes) # 为了让分词结果可读,需要做一下处理 decoded_result = [] for bpe_code in bpe_codes: # 先将子词转换为模型词汇表中的ID id = tokenizer.convert_tokens_to_ids(bpe_code) # 再将单个ID解码回文本并将结果存起来 decoded = tokenizer.decode([id]) decoded_result.append(decoded) # 输出最终的分词列表 print("分词结果:", decoded_result) # --------------------------------------------------------- # 第2步:向量化 (Numericalization) # --------------------------------------------------------- # 将字符串形式的 Token 列表转换为模型能处理的整数 ID 列表 # 这是大模型的“输入语言”(模型只认识数字,不认识文字) token_ids = tokenizer.convert_tokens_to_ids(bpe_codes) print("向量ID:", token_ids) # --------------------------------------------------------- # 第3步:统计 Token 数量 # --------------------------------------------------------- # 计算 Token 总数 count = len(token_ids) print("Token总数:", count) # 将 ID 列表完整解码回原始文本
http://www.gsyq.cn/news/1587162.html

相关文章:

  • 异化与伪饰:波普尔病毒的形而上学批判与大模型时代的认知危机
  • AWS re:Invent 2021 AI/ML技术路线图:架构师级工程实践指南
  • 实战 LangGraph 循环执行:构建带自动重试的并行任务流
  • 解锁无损音乐宝藏:TIDAL Downloader Next Generation 让你的音乐收藏焕然一新![特殊字符]
  • LSTM序列分类实战:门控机制、双向设计与工程调优指南
  • 从零学习Kafka:生产者分区机制
  • 分钟看懂p值和置信区间:别再被_显著_忽悠了
  • 《HarmonyOS技术精讲-UI开发 (基于NDK构建UI)》第4篇:高效Canvas绘制——NDK中的2D渲染加速
  • 九大网盘直链下载助手完整指南:免费高速下载终极方案
  • MPC8360E内存控制器深度解析:SDRAM时序与UPM可编程接口实战
  • hcip二层综合实验
  • AI领域每日资讯报告(2026年6月24日)
  • TFRecord写入最佳实践:从数据序列化到生产级稳定性
  • 2026降AI率工具红黑榜:降AI率网站怎么选?这份榜单够用!
  • 从C到C++:从结构体到类,面向对象初体验
  • UVa 599 The Forrest for the Trees
  • FlyOOBE:为老旧硬件开启Windows 11升级新纪元的技术伙伴
  • 大模型微调缺数据?合成数据实战指南
  • 1000 tokens/s 到底有多快?我用 8 次 API 请求,测了 4 款国产大模型
  • ICLR 2026 Oral 用 RL 训 Embedder 而非 LLM:Q-RAG 把多步检索成本砍到几乎免费
  • billd-desk终极指南:如何构建企业级远程桌面控制与游戏串流平台
  • AI 编程时代,UI 设计系统也需要工程化:从 Google DESIGN.md 说起
  • VisualCppRedist AIO:Windows运行库的“瑞士军刀“如何解决你的软件兼容性难题
  • Java应用启动慢、接口超时、频繁Full GC?别再把锅甩给JVM了!
  • Android Studio中文汉化终极指南:5分钟打造母语级开发环境
  • ROS嵌入式部署实战:在Jetson/RPi上稳定运行机器人系统
  • 服装贴口袋工序自动化科普:慧拿线上激光模板机全面解析
  • AI案例:选AI还是选人
  • 白领 16 亿 tokens
  • Fastjson反序列化漏洞:从原理到实战防护的Java安全必修课