大模型分词器怎么测?从源码看如何做到位级对齐与边界覆盖 在 minbpe 的 test_tokenizer.py 里有一个只有 6 行的测试函数test_encode_decode_identity,它用@pytest.mark.parametrize装饰器把 3 种分词器和 4 种测试文本做了笛卡尔积——12 个测试用例,每一个都在验证同一条法则:decode(encode(text)) == text。如果你是一个写过多年 C++ 的程序员,你的第一反应大概是:这不就是序列化/反序列化的 round-trip 测试吗,有什么特别的?但当你仔细看那 4 种测试文本——空字符串、单字符问号、韩语加 emoji 的混合串、185KB 的完整维基百科词条——你会发现,这个看似简单的恒等式背后,藏着一套精心设计的测试策略,每一个测试输入都在探测分词器的不同薄弱环节。更让人意外的是,这套测试框架只用了 136 行 Python 代码,却覆盖了恒等性、一致性、算法正确性、持久化、边界情况五个维度——在 C++ 项目里,你可能需要写上千行 gtest 代码才能达到同样的覆盖率。这背后的工程决策,和 pytest 的参数化机制有密切关系,而这种用最少代码覆盖最多场景的测试哲学,恰恰是 C++ 程序员可以从 Python 测试生态中借鉴的最有价值的东西。这篇文章要回答一个看似朴素但牵涉甚广的工程问题:如何验证一个分词器的正确性?什么是分词器的"黄金标准"测试?我们会从 minbpe 的 27 行训练脚本开始,一路拆解到 136 行测试代码的每一个设计决策。如果你正在用 C++ 实现自己的分词器——无论是用于 llama.cpp 的推理还是自研的 NLP 引擎——这套测试策略可以直接借鉴