mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +00:00 
			
		
		
		
	llama : remove token functions with context args in favor of model (#3720)
				
					
				
			* added `llama_model_token_*` variants to all the `llama_token_*` functions. * added `LLAMA_API` * formatting Co-authored-by: Georgi Gerganov <ggerganov@gmail.com> * removed old `llama_token` functions * changed 3 more functions to take in model - `llama_token_get_text` - `llama_token_get_score` - `llama_token_get_type` * added back docs * fixed main.cpp * changed token functions to use new model variants * changed token functions to use new model variants --------- Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
This commit is contained in:
		
							
								
								
									
										49
									
								
								llama.cpp
									
									
									
									
									
								
							
							
						
						
									
										49
									
								
								llama.cpp
									
									
									
									
									
								
							| @@ -7493,7 +7493,7 @@ void llama_sample_grammar(struct llama_context * ctx, llama_token_data_array * c | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     const llama_token eos = llama_token_eos(ctx); | ||||
|     const llama_token eos = llama_token_eos(&ctx->model); | ||||
|  | ||||
|     std::vector<std::pair<std::vector<uint32_t>, llama_partial_utf8>> candidates_decoded; | ||||
|     std::vector<llama_grammar_candidate>                              candidates_grammar; | ||||
| @@ -7703,7 +7703,7 @@ llama_token llama_sample_token(struct llama_context * ctx, llama_token_data_arra | ||||
| void llama_grammar_accept_token(struct llama_context * ctx, struct llama_grammar * grammar, llama_token token) { | ||||
|     const int64_t t_start_sample_us = ggml_time_us(); | ||||
|  | ||||
|     if (token == llama_token_eos(ctx)) { | ||||
|     if (token == llama_token_eos(&ctx->model)) { | ||||
|         for (const auto & stack : grammar->stacks) { | ||||
|             if (stack.empty()) { | ||||
|                 return; | ||||
| @@ -8912,7 +8912,7 @@ struct llama_context * llama_new_context_with_model( | ||||
|             // build worst-case graph | ||||
|             int n_tokens = (int)std::min(cparams.n_ctx, cparams.n_batch); | ||||
|             int n_past = cparams.n_ctx - n_tokens; | ||||
|             llama_token token = llama_token_bos(ctx); // not actually used by llama_build_graph, but required to choose between token and embedding inputs graph | ||||
|             llama_token token = llama_token_bos(&ctx->model); // not actually used by llama_build_graph, but required to choose between token and embedding inputs graph | ||||
|             ggml_cgraph * gf = llama_build_graph(*ctx, llama_batch_get_one(&token, n_tokens, n_past, 0)); | ||||
|  | ||||
| #ifdef GGML_USE_METAL | ||||
| @@ -9673,43 +9673,44 @@ float * llama_get_embeddings(struct llama_context * ctx) { | ||||
|     return ctx->embedding.data(); | ||||
| } | ||||
|  | ||||
| const char * llama_token_get_text(const struct llama_context * ctx, llama_token token) { | ||||
|     return ctx->model.vocab.id_to_token[token].text.c_str(); | ||||
| const char * llama_token_get_text(const struct llama_model * model, llama_token token) { | ||||
|     return model->vocab.id_to_token[token].text.c_str(); | ||||
| } | ||||
|  | ||||
| float llama_token_get_score(const struct llama_context * ctx, llama_token token) { | ||||
|     return ctx->model.vocab.id_to_token[token].score; | ||||
| float llama_token_get_score(const struct llama_model * model, llama_token token) { | ||||
|     return model->vocab.id_to_token[token].score; | ||||
| } | ||||
|  | ||||
| llama_token_type llama_token_get_type(const struct llama_context * ctx, llama_token token) { | ||||
|     return ctx->model.vocab.id_to_token[token].type; | ||||
| llama_token_type llama_token_get_type(const struct llama_model * model, llama_token token) { | ||||
|     return model->vocab.id_to_token[token].type; | ||||
| } | ||||
|  | ||||
| llama_token llama_token_bos(const struct llama_context * ctx) { | ||||
|     return ctx->model.vocab.special_bos_id; | ||||
| llama_token llama_token_bos(const struct llama_model * model) { | ||||
|     return model->vocab.special_bos_id; | ||||
| } | ||||
|  | ||||
| llama_token llama_token_eos(const struct llama_context * ctx) { | ||||
|     return ctx->model.vocab.special_eos_id; | ||||
| llama_token llama_token_eos(const struct llama_model * model) { | ||||
|     return model->vocab.special_eos_id; | ||||
| } | ||||
|  | ||||
| llama_token llama_token_nl(const struct llama_context * ctx) { | ||||
|     return ctx->model.vocab.linefeed_id; | ||||
| } | ||||
| llama_token llama_token_prefix(const struct llama_context * ctx) { | ||||
|     return ctx->model.vocab.special_prefix_id; | ||||
| llama_token llama_token_nl(const struct llama_model * model) { | ||||
|     return model->vocab.linefeed_id; | ||||
| } | ||||
|  | ||||
| llama_token llama_token_middle(const struct llama_context * ctx) { | ||||
|     return ctx->model.vocab.special_middle_id; | ||||
| llama_token llama_token_prefix(const struct llama_model * model) { | ||||
|     return model->vocab.special_prefix_id; | ||||
| } | ||||
|  | ||||
| llama_token llama_token_suffix(const struct llama_context * ctx) { | ||||
|     return ctx->model.vocab.special_suffix_id; | ||||
| llama_token llama_token_middle(const struct llama_model * model) { | ||||
|     return model->vocab.special_middle_id; | ||||
| } | ||||
|  | ||||
| llama_token llama_token_eot(const struct llama_context * ctx) { | ||||
|     return ctx->model.vocab.special_eot_id; | ||||
| llama_token llama_token_suffix(const struct llama_model * model) { | ||||
|     return model->vocab.special_suffix_id; | ||||
| } | ||||
|  | ||||
| llama_token llama_token_eot(const struct llama_model * model) { | ||||
|     return model->vocab.special_eot_id; | ||||
| } | ||||
|  | ||||
| int llama_tokenize( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Marcus Dunn
					Marcus Dunn