Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Lane 1 · numerics] tokenizer.json parity — normalizer / pre-tokenizer survey and NFC strategy for commonMain

Aperta
#1,322 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
1-2 giorni
Idoneità per principianti
57/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
huggingface, kotlin, markdown, python

Direzione di ricerca

Start by reading the two linked ModernBERT and mmBERT tokenizer.json files and the Hugging Face tokenizers documentation, then use a small Python script with json.load to survey 15–20 checkpoint files. Record the requested tokenizer fields in a Markdown table with exact revision links, summarize normalizer and pre-tokenizer types and merge formats, and compare NFC options using the linked Unicode data. Done means posting the completed table and recommendation as a comment on #1321.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

good first issue research size:s skill:numerics sub-issue

Sub-issue of #1321 (HF tokenizer.json parity for BPE encoders).

Lane: 1 · Numerics / Research
Skill needed: Python and the Hugging Face tokenizers library. No Kotlin, no SKaiNET codebase knowledge.
Size: s (an afternoon)
Blocked by: nothing

What to do

  1. Pick 15–20 public checkpoints that ship a tokenizer.json and cover the families SKaiNET loads or plans to load: GPT-2, Qwen2.5/Qwen3, Llama 3.x, Gemma 3/4, Mistral (HF export), SmolLM2, BitNet, ModernBERT, mmBERT, BERT-base, XLM-R, T5, Whisper, Moonshine.
  2. For each file record: model.type, model.byte_fallback, model.ignore_merges, the form of model.merges[0] (string or array), the full normalizer block, the pre_tokenizer block, the decoder block, and the number of added_tokens with special: false. A 30-line script with json.load is enough — no need to run the tokenizers.
  3. Produce one Markdown table, sorted by family, and a short section answering: which normalizer types occur at all (expected: NFC, NFKC, Replace, Prepend, Sequence, BertNormalizer, Lowercase, StripAccents), which pre-tokenizer types (ByteLevel, Metaspace, Split, Sequence, BertPreTokenizer), and how many files use the array form of merges.
  4. Recommend an NFC strategy for Kotlin commonMain: (a) expect/actual with java.text.Normalizer on JVM and String.prototype.normalize on JS/Wasm, with a passthrough on Kotlin/Native; (b) a table-driven implementation (quote the table size for the composition exclusions + canonical compositions); or (c) something better. One paragraph per option, one recommendation.
  5. Post the table and recommendation as a comment on #1321.

Acceptance

  • Table with ≥ 15 checkpoints, each row linking the exact tokenizer.json revision on the Hub
  • Count of files whose merges are in array form vs string form
  • NFC recommendation with a link to the Unicode data it would depend on
  • Result reported back on #1321

Notes

The two files that triggered the parent are ModernBERT and mmBERT; include both so the Kotlin lanes can cross-check. If you find a normalizer type that cannot be implemented without a large Unicode table (e.g. NFKC), say so — that is a finding, not a blocker.

Lingua principale
Kotlin
Stelle
52
Fork
15
Merge medio
1g 15h
PR unite (30g)
36

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di SKaiNET-developers/SKaiNET

Tutte le issue di SKaiNET-developers/SKaiNET

Issue simili

Altre issue su Kotlin

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.