9 个不稳定版本 (3 个重大更改)
新版本 0.9.0 | 2024 年 8 月 16 日 |
---|---|
0.8.5 | 2024 年 6 月 19 日 |
0.7.6 |
|
0.5.8 | 2024 年 6 月 17 日 |
#491 在 文本处理
每月 270 次下载
用于 json2bin
1MB
930 行
RWKV Tokenizer
一个用 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 倍。
错误
仍然存在一些字符编码不正确的错误。 该错误已在版本 0.3.0 中修复。 这个 Tokenizer 是我的第一个 Rust 程序,所以可能还有很多错误和愚蠢的代码 :-)
依赖关系
~3.5–4.5MB
~79K SLoC