return strtol(buf.c_str(), NULL, 16);
}
case LLAMA_VOCAB_TYPE_BPE: {
- GGML_ABORT("fatal error");
+ // Gemma4 uses BPE with SPM-style byte fallback tokens (<0xXX>)
+ auto buf = token_data.text.substr(3, 2);
+ return strtol(buf.c_str(), NULL, 16);
}
case LLAMA_VOCAB_TYPE_WPM: {
GGML_ABORT("fatal error");
std::string result = llama_decode_text(token_text);
return _try_copy(result.data(), result.size());
}
+ if (attr & LLAMA_TOKEN_ATTR_BYTE) {
+ char byte = (char) token_to_byte(token);
+ return _try_copy((char*) &byte, 1);
+ }
break;
}
case LLAMA_VOCAB_TYPE_RWKV: {