Skip to main content

villm-tok-fast

Rust-backed fast tokenizer for Vietnamese-English code-switching, used in the viLLM project.

Installation

pip install villm-tok-fast

Usage

from villm_tok_fast import create_fast_tokenizer
from transformers import PreTrainedTokenizerFast

# Load from HuggingFace Hub (auto-downloads vocab files)
hf_tokenizer = create_fast_tokenizer("vlinhd11/villm-tokenizer")

# Or load from local directory
hf_tokenizer = create_fast_tokenizer("./path/to/villm-tokenizer")

# Tokenize
enc = hf_tokenizer("Học sinh giỏi tiếng Việt và học lập trình Python")
# tokens: ['Học_sinh', 'giỏi', 'tiếng_Việt', 'và_học', 'lập_trình', '[VI→EN]', '▁Python']

# Batch encode
batch = hf_tokenizer(["Câu thứ nhất", "Câu thứ hai"], padding=True, truncation=True)

Features

  • Language detection — per-word Vi/EN/Num/Code/Punct classification
  • Vietnamse Viterbi — merges frequent syllable bigrams into compound tokens (học_sinh, Việt_Nam)
  • English subword — embedded SentencePiece trie for English OOV words (▁Python, ▁programming)
  • Code-switch markers — optional [VI→EN] / [EN→VI] at language boundaries
  • Byte fallback — <0xNN> for unknown characters

Performance

~4x faster than the pure Python equivalent (~55k texts/sec vs ~14k).

Requirements

  • Python 3.8+
  • transformers >= 4.30.0

How it works

This package provides a Rust implementation of the ViLLM tokenizer as a PyO3 native extension. It exposes a Python class compatible with HuggingFace PreTrainedTokenizerFast via the tokenizer_object= parameter.

The Rust core handles:

  1. Word-level language detection
  2. Viterbi dynamic programming for Vietnamese compound formation
  3. SentencePiece trie with whole-word preference for English subword
  4. Code-switch marker insertion
  5. Byte fallback for OOV characters
  6. Decoding with smart punctuation join

License

MIT

Metadata

Release files for villm-tok-fast 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for villm-tok-fast 0.2.1
File Interpreter ABI Platform
villm_tok_fast-0.2.1-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details

Release files / villm_tok_fast-0.2.1-cp38-abi3-win_amd64.whl

Download URL villm_tok_fast-0.2.1-cp38-abi3-win_amd64.whl
Size 873.0 kB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
289d6d86546503dd885bcd0826ec20211db38e666fdb49aea87aa83ca7f4cd1e
BLAKE2b-256 checksum
How to use checksums
bcd2c057b3d759aabaa40c09130550c7b1fd30033b117f86545d8aca33661d43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release history Release notifications | RSS feed

This release

0.2.1 This release

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page