返回资源列表

Sebastian Raschka, PhD(个人博客) · Sebastian Raschka

Implementing A Byte Pair Encoding (BPE) Tokenizer From Scratch

Implementing A Byte Pair Encoding (BPE) Tokenizer From Scratch是Sebastian Raschka, PhD(个人博客)的免费文章(en)。前置条件:会基础 Python(类、字典、列表、循环);了解文本如何编码成字节会更顺畅。

理解并亲手实现 BPE 分词算法:从字节到词表的合并过程、GPT 风格 merge 规则、编码与解码,以及与 tiktoken 接口对齐的简单实现。

打开官方课程
难度
见前置条件
类型
博客 · 文章
语言
en
规模
1 个课节
内容费用
免费
动手
需要动手环境

学完你能

  • 把文本转换成 UTF-8 字节序列并解释为什么字节取值是 0–255
  • 说明 BPE 的训练流程:找最高频相邻对、合并为新 ID、记录合并表、直到无法再压缩
  • 手写一个简单的 BPE 训练函数,从语料中得到合并规则和词表
  • 实现 encode() 编码:按学习顺序由高到低应用合并,得到 token ID 列表
  • 实现 decode(),按合并引入的逆序还原原始文本
  • 用 tiktoken 加载 GPT-2 编码器,对照检查自己实现的编码结果
  • 解释词表大小这一超参数对分词结果的影响

适合你吗

适合

想搞清 LLM 分词原理并动手写代码的学习者;内容为逐步拆解的实现讲解,适合自学与复现。

暂不适合

只想要现成分词工具用法、不关心算法内部机制的人;也不覆盖词表之外的 LLM 训练流程。

需要先会

会基础 Python(类、字典、列表、循环);了解文本如何编码成字节会更顺畅。

课程特点

内容侧重
侧重实践应用
练习与项目
用一两个小语料训练自己的分词器,调整词表大小观察合并次数与 token 数量的变化,并与 tiktoken 的 GPT-2 结果对照。
学习时长
1 个课节原站未给出统一学习时长;实际用时取决于已有基础。
内容费用
免费节选里可直接读到正文讲解、示例代码与步骤,未出现付费墙或登录拦截。

内容覆盖

  • 1. The main idea behind byte pair encoding (BPE)
  • 1.1 Bits and bytes
  • 1.2 Building the vocabulary
  • 1.3 BPE algorithm outline
  • 1.4 BPE algorithm example
  • 1.4.1 Concrete example of the encoding part (steps 1 & 2 in section 1.3)
  • 1.4.2 Concrete example of the decoding part (step 3 in section 1.3)
  • 2. A simple BPE implementation(节选在此处截断,后续小节未提供)

常见问题

免费吗?

免费:节选里可直接读到正文讲解、示例代码与步骤,未出现付费墙或登录拦截。实践无额外费用:实现与示例均在本机 Python 运行,未提及需要付费云服务、API 或 GPU。

需要什么基础?

会基础 Python(类、字典、列表、循环);了解文本如何编码成字节会更顺畅。软件、账号与硬件:可运行 Python 的环境;如对照 tiktoken 结果需安装 tiktoken(README 中作为示例使用)。

有中文吗?

本站记录的语言是en;是否有中文字幕或译本本站未核实,请以原站为准。

怎么开始?

从原始资源入口开始:https://sebastianraschka.com/blog/2025/bpe-from-scratch.html。本页“学前准备”列出环境与工具,“学习指南”给出开课提示词,可以在自己的电脑上按步骤开始。

来源与使用须知

收录时间
本站首次收录 2026-10-26原站首次发布 2025-01-17
指南参考

版权与转载

  • 课程材料未标明许可:仅供个人学习,转载、修改或商用前请先联系原作者。
  • 本站只提供原始链接和学习指南,不转载、不镜像课程材料;引用时请注明原作者与出处。