llama : update tokenizer style

This commit is contained in:
Georgi Gerganov 2023-08-14 22:10:19 +03:00
parent 7494c78428
commit 6c63550f63
No known key found for this signature in database
GPG Key ID: 449E073F9DC10735
2 changed files with 101 additions and 75 deletions

View File

@ -2117,42 +2117,49 @@ static std::string llama_vocab_type(const llama_vocab& vocab) {
} }
static bool llama_is_normal_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_normal_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return token >= 259; return token >= 259;
else if(llama_vocab_type(vocab) == "bpe") }
if (llama_vocab_type(vocab) == "bpe") {
return token >= 95; return token >= 95;
else }
return false; return false;
} }
static bool llama_is_unknown_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_unknown_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return token == 0; return token == 0;
else }
// TODO: improve? // TODO: improve?
return false; return false;
} }
static bool llama_is_control_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_control_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return token == 1 || token == 2; return token == 1 || token == 2;
else }
// TODO: improve? // TODO: improve?
return false; return false;
} }
static bool llama_is_bos_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_bos_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return token == 1; return token == 1;
else }
// TODO: improve? // TODO: improve?
return false; return false;
} }
static bool llama_is_eos_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_eos_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return token == 2; return token == 2;
else }
// TODO: improve? // TODO: improve?
return false; return false;
} }
@ -2172,20 +2179,26 @@ static bool llama_is_unused_token(const llama_vocab& vocab, llama_token token) {
} }
static bool llama_is_byte_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_byte_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return 3 <= token && token < 259; return 3 <= token && token < 259;
else if(llama_vocab_type(vocab) == "bpe") }
if (llama_vocab_type(vocab) == "bpe") {
return 1 <= token && token < 95; return 1 <= token && token < 95;
else }
return false; return false;
} }
static uint8_t llama_byte_to_char(const llama_vocab & vocab, uint8_t byte) { static uint8_t llama_byte_to_char(const llama_vocab & vocab, uint8_t byte) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return byte + 3; return byte + 3;
else if(llama_vocab_type(vocab) == "bpe") }
if (llama_vocab_type(vocab) == "bpe") {
return byte + 32; return byte + 32;
else }
return false; return false;
} }

View File

@ -1949,42 +1949,49 @@ static std::string llama_vocab_type(const llama_vocab& vocab) {
} }
static bool llama_is_normal_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_normal_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return token >= 259; return token >= 259;
else if(llama_vocab_type(vocab) == "bpe") }
if (llama_vocab_type(vocab) == "bpe") {
return token >= 95; return token >= 95;
else }
return false; return false;
} }
static bool llama_is_unknown_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_unknown_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return token == 0; return token == 0;
else }
// TODO: improve? // TODO: improve?
return false; return false;
} }
static bool llama_is_control_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_control_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return token == 1 || token == 2; return token == 1 || token == 2;
else }
// TODO: improve? // TODO: improve?
return false; return false;
} }
static bool llama_is_bos_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_bos_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return token == 1; return token == 1;
else }
// TODO: improve? // TODO: improve?
return false; return false;
} }
static bool llama_is_eos_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_eos_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return token == 2; return token == 2;
else }
// TODO: improve? // TODO: improve?
return false; return false;
} }
@ -2004,20 +2011,26 @@ static bool llama_is_unused_token(const llama_vocab& vocab, llama_token token) {
} }
static bool llama_is_byte_token(const llama_vocab & vocab, llama_token token) { static bool llama_is_byte_token(const llama_vocab & vocab, llama_token token) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return 3 <= token && token < 259; return 3 <= token && token < 259;
else if(llama_vocab_type(vocab) == "bpe") }
if (llama_vocab_type(vocab) == "bpe") {
return 1 <= token && token < 95; return 1 <= token && token < 95;
else }
return false; return false;
} }
static uint8_t llama_byte_to_char(const llama_vocab & vocab, uint8_t byte) { static uint8_t llama_byte_to_char(const llama_vocab & vocab, uint8_t byte) {
if(llama_vocab_type(vocab) == "spm") if (llama_vocab_type(vocab) == "spm") {
return byte + 3; return byte + 3;
else if(llama_vocab_type(vocab) == "bpe") }
if (llama_vocab_type(vocab) == "bpe") {
return byte + 32; return byte + 32;
else }
return false; return false;
} }