@@ -613,7 +613,9 @@ struct common_speculative_impl_draft_eagle3 : public common_speculative_impl {
? llama_get_embeddings_layer_inp(ctx_tgt, (uint32_t) target_layer_ids[k])
: llama_get_embeddings_nextn(ctx_tgt);
if (!layer) {
- GGML_ABORT("EAGLE3: target layer %d input not extracted.", target_layer_ids[k]);
+ SPC_ERR("EAGLE3: target layer %d input not extracted.\n",
+ target_layer_ids[k]);
+ return false;
}
for (int32_t i = 0; i < n_tokens; ++i) {
float * dst = features_buf.data() + (size_t) i * n_embd_enc + k * (size_t) n_embd_tgt;
@@ -648,6 +650,9 @@ struct common_speculative_impl_draft_eagle3 : public common_speculative_impl {
// g_embd has shape [n_chunk, n_embd_dec] in ctx_dft's pre-norm embeddings buffer.
const float * g_embd_chunk = llama_get_embeddings_nextn(ctx_dft);
- GGML_ASSERT(g_embd_chunk && "EAGLE3 encoder produced no output.");
+ if (!g_embd_chunk) {
+ SPC_ERR("%s\n", "EAGLE3 encoder produced no output.");
+ return false;
+ }
std::memcpy(g_embd_buf.data() + (size_t) i * n_embd_dec,
g_embd_chunk,
(size_t) n_chunk * n_embd_dec * sizeof(float));