[Lane 4 · kotlin-core] tokenizer.json parity — gated parity test replaying the goldens through both tokenizer.json entry points
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
- 64/100
Direzione di ricerca
Read Gemma4TokenizerParityTest.kt for the self-skip pattern and llm-core/build.gradle.kts for the Gradle task entry point. Add TokenizerJsonGoldenParityTest.kt under llm-core/src/jvmTest/.../tokenizer/, then run the fixture download task and targeted jvmTest command from the issue. Done means both tokenizer JSON entry points are checked against every golden, expected failures are enforced, and the test skips with a notice when fixtures are unavailable.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Sub-issue of #471 (tokenizer.json parity gate).
Lane: 4 · Ground truth / CI
Skill needed: Kotlin and Gradle; you copy an existing self-skipping test. No tokenizer internals.
Size: s (a few hours)
Blocked by: the golden-generation lane (needs the JSON files)
What to do
- Copy the self-skip pattern of Gemma4TokenizerParityTest.kt into a new
llm-core/src/jvmTest/kotlin/sk/ainet/apps/llm/tokenizer/TokenizerJsonGoldenParityTest.kt. - Fixture location:
$TOKENIZER_GOLDEN_FIXTURES_DIR/<family>/tokenizer.json(environment variable; skip with a printed notice when unset). Add a Gradle taskdownloadTokenizerGoldenFixturesinllm-core/build.gradle.ktsthat reads each golden'srepo/revision/path, downloads the file from the HubresolveURL (honouringHF_TOKENfor gated repos) intobuild/test-fixtures/tokenizer-goldens/<family>/, and checks thesha256. Point the test at that directory by default. - For every golden and for both entry points —
TokenizerFactory.fromTokenizerJsonStringandGGUFTokenizer.fromTokenizerJson— assert either (a) every case'sencode(text) == ids, or (b) the entry point throwsUnsupportedTokenizerException(allowed only forfromTokenizerJsonString, see the fail-fast lane). Any other exception is a failure. The assertion message prints text, expected ids, expected token strings and actual ids. - Support an optional per-case
"expectedToFail": {"<entry point>": "<issue url>"}marker in the golden JSON: such a case must still fail, and the message tells the developer to remove the marker once it passes. This lets the test merge today and become the progress bar for the Lane 2 fixes and the engine lanes. - Run
./gradlew :llm-core:downloadTokenizerGoldenFixtures :llm-core:jvmTest --tests '*TokenizerJsonGoldenParityTest*'; add the task to thesmoke-reference.ymlworkflow's model-gated job if the maintainers agree (ask on the PR).
Acceptance
- Test self-skips without fixtures; passes with fixtures and the current markers
- Both entry points are exercised for every golden
- Marker mechanism documented in the test's KDoc
- Result reported back on #471
Notes
Gemma4TokenizerParityTest stays as is (it also checks atomic specials with hand-written ids); the new test is the general gate. Keep it in jvmTest: it needs the filesystem and network-fetched fixtures.
- Lingua principale
- Kotlin
- Stelle
- 8
- Fork
- 3
- Merge medio
- 1g 3h
- PR unite (30g)
- 36
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di SKaiNET-developers/SKaiNET-transformers
-
documentation good first issue size:xs skill:docs sub-issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
SKaiNET-developers/SKaiNET-transformers#478 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
coding enhancement size:m skill:kotlin-core skill:numerics
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
SKaiNET-developers/SKaiNET-transformers#490 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
SKaiNET-developers/SKaiNET-transformers#483 ·
I maintainer di solito rispondono entro 1 giorno
-
assessment size:s skill:review sub-issue
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
SKaiNET-developers/SKaiNET-transformers#479 ·
I maintainer di solito rispondono entro 1 giorno
-
coding good first issue size:s skill:numerics sub-issue
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
SKaiNET-developers/SKaiNET-transformers#476 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di SKaiNET-developers/SKaiNET-transformers
Issue simili
-
StepExamBenchmarkTest runs a loop and prints a timing but asserts nothingForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertajules
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
open-learning-exchange/myplanet#18199 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
auth0/Auth0.Android#1095 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Scheme-less stream URLs throw NullPointerException instead of URISyntaxExceptionForse già presa @blihio l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
pedroSG94/RootEncoder#2218 ·
I maintainer di solito rispondono entro 3 giorni
-
Test: PlantDetailPlantEditLockTest silent-apply case fails depending on the calendar date (seasonal amplitude)Forse già presa @LocNgu l’ha presa oggi. Apertabug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
LocNgu/YAPT-Yet-Another-Plant-Tracker#907 ·
I maintainer di solito rispondono entro 1 giorno
-
Estimation - 2 (S) Type:bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
I maintainer di solito rispondono entro 2 giorni