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

[Lane 4 · kotlin-core] tokenizer.json parity — fixture-gated jvmTest replaying the goldens through TokenizerFactory.fromTokenizerJson

Aperta
#1,328 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à
3/5
Tempo stimato
Mezza giornata
Idoneità per principianti
75/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
kotlin

Direzione di ricerca

Start by reading QwenByteLevelBpeTokenizerFixtureTest.kt and the downloadQwenTokenizerFixtures task in skainet-io-core/build.gradle.kts; the issue gives both as templates. Add TokenizerJsonGoldenParityTest.kt and a task that downloads and verifies the two golden fixtures, then run the listed Gradle command. Done means the test skips when fixtures are absent and, with fixtures present, checks vocabulary size and encoded IDs while reporting text, expected IDs and tokens, and actual IDs.

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

Descrizione

coding good first issue size:s skill:kotlin-core sub-issue

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

Lane: 4 · Ground truth / CI
Skill needed: Kotlin and Gradle. You will copy an existing test file and an existing download task; no tokenizer internals needed.
Size: s (a few hours)
Blocked by: the golden-generation lane (needs the JSON files). Can be merged before the Kotlin fixes — it is allowed to fail on the not-yet-fixed rows if you mark them, see Notes.

What to do

  1. Copy QwenByteLevelBpeTokenizerFixtureTest.kt to TokenizerJsonGoldenParityTest.kt in the same jvmTest package. Keep the "skip with a printed notice when the fixture is absent" behaviour.
  2. Copy the downloadQwenTokenizerFixtures task in skainet-io-core/build.gradle.kts#L148-L153 into a downloadTokenizerJsonGoldenFixtures task that fetches the two Laya tokenizer.json files into build/test-fixtures/tokenizer-goldens/<name>/tokenizer.json from the Hub resolve URL at the pinned revision, and verifies the SHA-256 stored in the golden JSON.
  3. In the test, for each golden JSON in src/jvmTest/resources/tokenizer-goldens/: load the matching tokenizer.json through sk.ainet.io.tokenizer.TokenizerFactory.fromTokenizerJson, assert vocabSize == vocab_size_with_added, then for every case assert encode(text).toList() == ids with a message that prints the text, the expected and the actual ids and the expected token strings (the tokens array) — that is what makes a failure diagnosable without Python.
  4. Parse the golden JSON with kotlinx.serialization.json (already a dependency of the module).
  5. Run ./gradlew :skainet-io:skainet-io-core:downloadTokenizerJsonGoldenFixtures :skainet-io:skainet-io-core:jvmTest --tests '*TokenizerJsonGoldenParityTest*'.

Acceptance

  • Test self-skips when the fixtures are absent (CI without network stays green)
  • With fixtures present and all sibling lanes merged, every case in both goldens passes
  • Failure output shows text, expected ids + tokens, actual ids
  • Result reported back on #1321

Notes

To merge this before the fixes land, support an optional "expectedToFail": "<issue url>" field per case in the golden JSON and turn those cases into "assert it still fails, otherwise tell the developer to remove the marker" — the same canary pattern #912 describes. Then each fix lane removes its markers in its own PR, and the test is the progress bar.

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

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.