import json
import pathlib
import sys
from tokenizers import Tokenizer
sys.path.insert(0, str(pathlib.Path(__file__).resolve().parent))
from canonical_corpus import corpus
REFERENCES = {
"llama3": ("unsloth/llama-3-8b", 128_000),
"qwen2": ("Qwen/Qwen2.5-7B", 151_643),
"deepseek_v3": ("deepseek-ai/DeepSeek-V3", 128_000),
"mistral_v3": ("mistralai/Mistral-Nemo-Base-2407", 131_072),
}
def main():
out = sys.argv[1] if len(sys.argv) > 1 else "hf.json"
texts = corpus()
data = {}
for name, (repo, want_vocab) in REFERENCES.items():
tok = Tokenizer.from_pretrained(repo)
got_vocab = tok.get_vocab_size(with_added_tokens=False)
if got_vocab != want_vocab:
raise SystemExit(
f"{name}: {repo} has vocab {got_vocab}, expected {want_vocab} — "
"the mirror drifted and is no longer a valid oracle"
)
added = {a.content for a in tok.get_added_tokens_decoder().values()}
cases = []
for text in texts:
if any(a in text for a in added):
continue
cases.append([text, tok.encode(text, add_special_tokens=False).ids])
data[name] = cases
print(f"{name}: {len(cases)} cases ({len(texts) - len(cases)} skipped)", file=sys.stderr)
with open(out, "w") as f:
json.dump(data, f)
print(f"wrote {out}", file=sys.stderr)
if __name__ == "__main__":
main()