mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-11-04 09:32:00 +00:00 
			
		
		
		
	llama : update tokenizer style
This commit is contained in:
		@@ -2112,47 +2112,54 @@ static bool llama_eval_internal(
 | 
				
			|||||||
// tokenizer
 | 
					// tokenizer
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static std::string llama_vocab_type(const llama_vocab& vocab) {
 | 
					static std::string llama_vocab_type(const llama_vocab & vocab) {
 | 
				
			||||||
    return vocab.token_to_id.size() == 32000 ? "spm": "bpe";
 | 
					    return vocab.token_to_id.size() == 32000 ? "spm": "bpe";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -2164,28 +2171,34 @@ static bool llama_is_user_defined_token(const llama_vocab & vocab, llama_token t
 | 
				
			|||||||
    return false;
 | 
					    return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool llama_is_unused_token(const llama_vocab& vocab, llama_token token) {
 | 
					static bool llama_is_unused_token(const llama_vocab & vocab, llama_token token) {
 | 
				
			||||||
    UNUSED(vocab);
 | 
					    UNUSED(vocab);
 | 
				
			||||||
    UNUSED(token);
 | 
					    UNUSED(token);
 | 
				
			||||||
    // TODO: improve?
 | 
					    // TODO: improve?
 | 
				
			||||||
    return false;
 | 
					    return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										67
									
								
								llama.cpp
									
									
									
									
									
								
							
							
						
						
									
										67
									
								
								llama.cpp
									
									
									
									
									
								
							@@ -1944,80 +1944,93 @@ static bool llama_eval_internal(
 | 
				
			|||||||
// tokenizer
 | 
					// tokenizer
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static std::string llama_vocab_type(const llama_vocab& vocab) {
 | 
					static std::string llama_vocab_type(const llama_vocab & vocab) {
 | 
				
			||||||
    return vocab.token_to_id.size() == 32000 ? "spm": "bpe";
 | 
					    return vocab.token_to_id.size() == 32000 ? "spm": "bpe";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool llama_is_user_defined_token(const llama_vocab& vocab, llama_token token) {
 | 
					static bool llama_is_user_defined_token(const llama_vocab & vocab, llama_token token) {
 | 
				
			||||||
    UNUSED(vocab);
 | 
					    UNUSED(vocab);
 | 
				
			||||||
    UNUSED(token);
 | 
					    UNUSED(token);
 | 
				
			||||||
    // TODO: improve?
 | 
					    // TODO: improve?
 | 
				
			||||||
    return false;
 | 
					    return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool llama_is_unused_token(const llama_vocab& vocab, llama_token token) {
 | 
					static bool llama_is_unused_token(const llama_vocab & vocab, llama_token token) {
 | 
				
			||||||
    UNUSED(vocab);
 | 
					    UNUSED(vocab);
 | 
				
			||||||
    UNUSED(token);
 | 
					    UNUSED(token);
 | 
				
			||||||
    // TODO: improve?
 | 
					    // TODO: improve?
 | 
				
			||||||
    return false;
 | 
					    return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user