9 个不稳定版本 (3 个重大更改)

新版本 0.9.0 2024 年 8 月 16 日
0.8.5 2024 年 6 月 19 日
0.7.6 2024 年 6 月 19 日
0.5.8 2024 年 6 月 17 日

#491文本处理

Download history 147/week @ 2024-06-10 1453/week @ 2024-06-17 21/week @ 2024-07-01 16/week @ 2024-07-29 21/week @ 2024-08-05 233/week @ 2024-08-12

每月 270 次下载
用于 json2bin

Apache-2.0

1MB
930

RWKV Tokenizer

GitHub Actions Status Crates.io Version Crates.io Downloads License: Apache 2.0

一个用 Rust 编写的快速 RWKV Tokenizer,支持 RWKV v5 和 v6 模型使用的 World Tokenizer。

安装

要使用 rwkv-tokenizer,请将以下内容添加到您的 Cargo.toml 文件中

[dependencies]
rwkv-tokenizer = "0.8.5"

用法

use rwkv_tokenizer::WorldTokenizer;

let text = "Today is a beautiful day. 今天是美好的一天。";
let tokenizer = WorldTokenizer::new(None).unwrap();
let tokens_ids = tokenizer.encode(text);
let decoding = tokenizer.decode(tokens_ids);
println!("tokens: {:?}", tokens_ids);
println!("text: {:?}", text);
println!("decoding: {:?}", decoding);

性能和有效性测试

我们使用英语维基百科和中国诗歌数据集,比较了 Rust RWKV Tokenizer 和原始 Tokenizer 的编码结果。两者结果相同。Rust RWKV Tokenizer 还通过了原始 Tokenizer 的单元测试。以下步骤描述了如何进行单元测试


我们在以下 Tokenizer 中对 简单的英语维基百科数据集 20220301.en 进行了性能比较

  • 原始 RWKV Tokenizer (BlinkDL)
  • Huggingface 的 RWKV Tokenizer 实现
  • Huggingface LLama Tokenizer
  • Huggingface Mistral Tokenizer
  • Bert Tokenizer
  • OpenAI Tiktoken
  • Rust RWKV Tokenizer

比较是在 M2 Mac mini 上使用此 jupyter notebook 进行的。Rust RWKV Tokenizer 比原始 Tokenizer 快约 17 倍,比 OpenAI Tiktoken 快 9.6 倍。

performance-comparison

错误

仍然存在一些字符编码不正确的错误。 该错误已在版本 0.3.0 中修复。 这个 Tokenizer 是我的第一个 Rust 程序,所以可能还有很多错误和愚蠢的代码 :-)

依赖关系

~3.5–4.5MB
~79K SLoC