Repository navigation
hybrid dna tokenizer fixes - #30825
Conversation
Carbon-14B auto-tags untagged DNA runs and uses N-padded tail tokens (tail=pad_n). Also strip whitespace inside <dna> tags and handle a stray </dna> like the HF tokenizer.
Carbon-500M/3B/8B don't register the Qwen added tokens and ship no tokenizer.json, so take the token types, merges and special ids from the base tokenizer.
|
Tested carbon-14b-dna with the 14B Q8_0, the tokenizer matches the Python reference on 1256 of 1258 fuzz cases (the 2 diffs are Python Unicode quirks: str.strip eating \x1c-\x1f and ß.upper() becoming SS, not worth porting) and llama-server answers DNA questions correctly at 95 tok/s on my RTX PRO 6000, nice work! |
This comment was marked as resolved.
This comment was marked as resolved.
|
/bot review |
Automated code reviewReview of the hybriddna tokenizer follow-up (conversion fixes + auto-tagging + N-padded tail support). I read the new session logic in Will slow the review (point 1) (point 2) (point 3) Test coverage: the hand-rolled regex mirrors ( Nits (point 4) (point 5) (point 6) Questions to confirm (not blocking) (point 7) The stray-close-tag semantics - text before an unmatched This review was generated automatically by pi coding agent using |
CISC
left a comment
There was a problem hiding this comment.
Please address bot points, sans test fixture, covered by old vocab file in ggml-org/vocabs and I will add new one as well.
Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
ServeurpersoCom
left a comment
There was a problem hiding this comment.
Re-tested: Carbon-500M reconverts to an identical GGUF and matches the Python reference on 1023/1023 cases (the older pad_a, no auto-tag path), and Carbon-14B Q8_0 still matches on 1256/1258 (same two Python Unicode quirks), LGTM!
* vocab : support Carbon-14B HybridDNA tokenizer Carbon-14B auto-tags untagged DNA runs and uses N-padded tail tokens (tail=pad_n). Also strip whitespace inside <dna> tags and handle a stray </dna> like the HF tokenizer. * convert : fix special tokens and merges for older Carbon models Carbon-500M/3B/8B don't register the Qwen added tokens and ship no tokenizer.json, so take the token types, merges and special ids from the base tokenizer. * Update conversion/base.py Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update src/llama-vocab.cpp Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update src/llama-vocab.cpp Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update src/llama-vocab.cpp Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update conversion/base.py Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update conversion/base.py Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update conversion/base.py Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * address review comments * Update src/llama-vocab.cpp Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
* vocab : support Carbon-14B HybridDNA tokenizer Carbon-14B auto-tags untagged DNA runs and uses N-padded tail tokens (tail=pad_n). Also strip whitespace inside <dna> tags and handle a stray </dna> like the HF tokenizer. * convert : fix special tokens and merges for older Carbon models Carbon-500M/3B/8B don't register the Qwen added tokens and ship no tokenizer.json, so take the token types, merges and special ids from the base tokenizer. * Update conversion/base.py Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update src/llama-vocab.cpp Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update src/llama-vocab.cpp Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update src/llama-vocab.cpp Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update conversion/base.py Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update conversion/base.py Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update conversion/base.py Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * address review comments * Update src/llama-vocab.cpp Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
Overview
Additional information
Requirements