@@ -61,18 +61,26 @@ static bool common_speculative_are_compatible(
6161 LOG_DBG (" %s: vocab_type dft: %d\n " , __func__, vocab_type_dft);
6262
6363 if (vocab_type_tgt != vocab_type_dft) {
64- LOG_DBG (" %s: draft model vocab type must match target model to use speculation but " , __func__);
65- LOG_DBG ( " vocab_type_dft = %d while vocab_type_tgt = %d\n " , vocab_type_dft, vocab_type_tgt);
64+ LOG_WRN (" %s: draft model vocab type must match target model to use speculation but "
65+ " vocab_type_dft = %d while vocab_type_tgt = %d\n " , __func__ , vocab_type_dft, vocab_type_tgt);
6666 return false ;
6767 }
6868
69- if (
70- llama_vocab_get_add_bos (vocab_tgt) != llama_vocab_get_add_bos (vocab_dft) ||
71- llama_vocab_get_add_eos (vocab_tgt) != llama_vocab_get_add_eos (vocab_dft) ||
72- llama_vocab_bos (vocab_tgt) != llama_vocab_bos (vocab_dft) ||
73- llama_vocab_eos (vocab_tgt) != llama_vocab_eos (vocab_dft)
74- ) {
75- LOG_DBG (" %s: draft model special tokens must match target model to use speculation\n " , __func__);
69+ if (llama_vocab_get_add_bos (vocab_tgt) != llama_vocab_get_add_bos (vocab_dft) ||
70+ (llama_vocab_get_add_bos (vocab_tgt) && llama_vocab_bos (vocab_tgt) != llama_vocab_bos (vocab_dft))) {
71+ LOG_WRN (" %s: draft model bos tokens must match target model to use speculation. add: %d - %d, id: %d - %d)\n " ,
72+ __func__,
73+ llama_vocab_get_add_bos (vocab_tgt), llama_vocab_get_add_bos (vocab_dft),
74+ llama_vocab_bos (vocab_tgt), llama_vocab_bos (vocab_dft));
75+ return false ;
76+ }
77+
78+ if (llama_vocab_get_add_eos (vocab_tgt) != llama_vocab_get_add_eos (vocab_dft) ||
79+ (llama_vocab_get_add_eos (vocab_tgt) && llama_vocab_eos (vocab_tgt) != llama_vocab_eos (vocab_dft))) {
80+ LOG_WRN (" %s: draft model eos tokens must match target model to use speculation. add: %d - %d, id: %d - %d)\n " ,
81+ __func__,
82+ llama_vocab_get_add_eos (vocab_tgt), llama_vocab_get_add_eos (vocab_dft),
83+ llama_vocab_eos (vocab_tgt), llama_vocab_eos (vocab_dft));
7684 return false ;
7785 }
7886
0 commit comments