34 个稳定版本 (7 个主要版本)
8.1.1 | 2023 年 10 月 1 日 |
---|---|
8.1.0 | 2023 年 4 月 15 日 |
8.0.0 | 2023 年 1 月 29 日 |
7.0.2 | 2022 年 4 月 1 日 |
1.0.0 | 2020 年 2 月 15 日 |
#76 in 机器学习
3,868 每月下载量
在 23 个 crate 中使用 (9 个直接使用)
1MB
18K SLoC
rust-tokenizers
Rust-tokenizer 是 Transformers 库 中分词方法的直接替换。它包含了一系列用于最先进变压器架构的分词器,包括
- Sentence Piece (unigram 模型)
- Sentence Piece (BPE 模型)
- BERT
- ALBERT
- DistilBERT
- RoBERTa
- GPT
- GPT2
- ProphetNet
- CTRL
- Pegasus
- MBart50
- M2M100
- NLLB
- DeBERTa
- DeBERTa (v2)
基于 wordpiece 的分词器包括单线程和多线程处理。Byte-Pair-Encoding 分词器倾向于使用共享缓存,并且仅作为单线程分词器提供。使用分词器需要手动下载所需的分词器文件(词汇表或合并文件)。这些文件可以在 Transformers 库 中找到。
使用示例
use std::path::PathBuf;
use rust_tokenizers::tokenizer::{BertTokenizer, Tokenizer, TruncationStrategy};
use rust_tokenizers::vocab::{BertVocab, Vocab};
let lowercase: bool = true;
let strip_accents: bool = true;
let vocab_path: PathBuf = PathBuf::from("path/to/vocab");
let vocab: BertVocab = BertVocab::from_file(&vocab_path)?;
let test_sentence: Example = Example::new_from_string("This is a sample sentence to be tokenized");
let bert_tokenizer: BertTokenizer = BertTokenizer::from_existing_vocab(vocab, lowercase, strip_accents);
println!("{:?}", bert_tokenizer.encode(&test_sentence.sentence_1,
None,
128,
&TruncationStrategy::LongestFirst,
0));
依赖项
~12MB
~245K SLoC