爱意满满的作品展示区。
wdhwg001

novocab: 一个精确的 token 预估器,在多语言单段语料里偏移仅有 5%, 4K 只偏 3%,没有词表,全仓库就一个代码文件,连算法一起开源

  •  
  •   wdhwg001 · 1h 9m ago · 91 views

    如题。no vocab ,足够精确地预估一个 tokenizer 从来都不需要搞一个大词表。

    因为最近在搞自己的 harness orchestration 的时候受不了 char / 4 的巨大偏移,然后 char / 3.5 也罢,CJK 拿出来单独数也罢,依然和真的 tokenizer 差很多,并且它根本不是文本越大越准,本来就不是一个像样的估算。

    那它差多少?大概能差 30% - 50%,单独数 CJK 的话距离真正的预估也差接近 40%。

    但是频繁去调那个 Tokenizer API 也烦人,每次都真拖一个 Tokenizer 出来测一遍更像是在白烧 CPU ,所以就搓了这个小东西出来。

    没什么花活,就是先按 unicode 分桶,配一个非常简单的计数器去按词长一类的小特征去进一步分桶,然后暴力跑语料跑到每个桶的系数收敛。O(n) 时间,O(1) 空间,纯粹的系数拟合。

    跑完之后,这个暴力小玩具惊人地准,达到了 5% 的平均偏移,而且文本越大,估算越准,200 字符的时候偏移 5% 左右,4000 的时候收敛到 3%,64K 收敛到 1%,1M 的时候 0.5%,一套算法通杀三家。

    上图:

    对比

    收敛

    (如果嫌语料小的话,看 README 原文,里面测过 GB 级语料,依然是收敛的)

    开源出来给大家用在自己的 harness 里当预估器用,刚好合适,测试语料里包含大量的代码和文章,完全贴合日常使用,而且是真正的多语言,不敢认 SOTA 但目前只有 Ground Truth 能比它好了。目前支持 OpenAI 、Anthropic 和 Gemini ,如果要迁移到别的模型的话找个语料用同样的方法跑就行,算法完全公开。

    https://github.com/wdhwg001/novocab 刚开源,如果好用的话求个 Star ,谢谢支持。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2795 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:35 · PVG 14:35 · LAX 23:35 · JFK 02:35
    ♥ Do have faith in what you're doing.