minbpe-rs是对Andrej Karpathy编写的minbpe的rust版实现。
使用cargo new
创建一个新项目minbpe-test。
cargo new minbpe-test
在创建的项目的Cargo.toml
中添加依赖项minbpe,注意查看官方库最新版本crates.io
[dependencies]
minbpe = "0.1"
在src/main.rs
中添加以下代码,以实现一个简单基础的tokenizer实现算法,并保存在models
文件夹中模型名称为demo
。
use std::path::Path;
use minbpe::{BasicTokenizer, Saveable, Tokenizer, Trainable};
fn main() {
let text = "aaabdaaabac" ;
let mut tokenizer = BasicTokenizer::new() ;
tokenizer.train( text , 256 + 3 , false ) ;
println!( "{:?}" , tokenizer.encode(text) ) ;
println!( "{:?}" , tokenizer.decode( &[258, 100, 258, 97, 99] ) ) ;
tokenizer.save( Path::new( "models" ) , "demo" ) ;
}
执行 cargo run
查看运行结果
cargo run
运行结果如下:
...
Compiling minbpe-test v0.1.0 (~/minbpe-test)
Finished dev [unoptimized + debuginfo] target(s) in 15.71s
Running `target/debug/minbpe-test`
[258, 100, 258, 97, 99]
"aaabdaaabac"
minbpe-rs是MIT许可协议或Apache-2.0许可协议许可,根据需要自己选择。
除非你明确声明相反,任何你有意提交并包含在本项目中的贡献,根据 Apache-2.0 许可证的定义,都将按照上述条款进行双重许可,不附加任何额外的条款或条件。