Instructions to use latincy/latin-bert with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use latincy/latin-bert with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("fill-mask", model="latincy/latin-bert")# Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("latincy/latin-bert") model = AutoModel.from_pretrained("latincy/latin-bert", device_map="auto") - Notebooks
- Google Colab
- Kaggle
File size: 2,332 Bytes
b8d6c6c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | """Tests for LatinBertTokenizerFast (Rust-backed, word_ids support).
Guards the two fixes to the fast tokenizer:
1. whitespace-split before char-class encoding (no inter-word space
escapes; correct word_ids alignment)
2. lowercasing normalizer (do_lower_case), so capitalized input is not
escaped to codepoints — matching the slow tokenizer.
"""
import importlib.util
from pathlib import Path
import pytest
REPO_ROOT = Path(__file__).resolve().parent.parent
VOCAB_FILE = str(Path(__file__).parent / "latin.subword.encoder")
def _load_fast_module():
path = REPO_ROOT / "tokenization_latin_bert_fast.py"
spec = importlib.util.spec_from_file_location("tlbf_under_test", path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
return module
@pytest.fixture(scope="module")
def fast_module():
return _load_fast_module()
@pytest.fixture
def fast(fast_module):
return fast_module.LatinBertTokenizerFast(vocab_file=VOCAB_FILE)
@pytest.fixture
def slow():
from latincy_latinbert import LatinBertTokenizer
return LatinBertTokenizer(vocab_file=VOCAB_FILE)
class TestFastTokenizer:
def test_no_interword_space_escapes(self, fast):
enc = fast("gallia est omnis divisa in partes tres")
toks = fast.convert_ids_to_tokens(enc["input_ids"])
assert all(t not in ("\\", "32", ";_") for t in toks)
def test_word_ids_alignment(self, fast):
enc = fast("Gallia est omnis")
# [CLS]=None, gallia=0, est=1, omnis=2, [SEP]=None
assert enc.word_ids() == [None, 0, 1, 2, None]
def test_lowercases_like_slow(self, fast):
"""Capitalized input must not produce codepoint escapes."""
enc = fast("Gallia")
toks = fast.convert_ids_to_tokens(enc["input_ids"])
assert "gallia_" in toks
assert all(not t.isdigit() for t in toks)
def test_matches_slow_ids(self, fast, slow):
for text in ["Gallia est omnis divisa in partes tres",
"arma virumque cano",
"ROMA",
"gallia est omnis divisa in partes tres."]:
s = slow.encode(text, add_special_tokens=False)
f = fast.encode(text, add_special_tokens=False)
assert s == f, f"slow/fast mismatch for {text!r}: {s} != {f}"
|