]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
examples : support encoder-decoder models in the simple example (#16002)
authorJie Fu (傅杰) <redacted>
Wed, 17 Sep 2025 07:29:00 +0000 (15:29 +0800)
committerGitHub <redacted>
Wed, 17 Sep 2025 07:29:00 +0000 (10:29 +0300)
Signed-off-by: Jie Fu <redacted>
examples/simple/simple.cpp

index 633b87e58406e3789d367139b535469c8c16a9c0..d09771d10457f57cac14748c0a0e17b494ac2265 100644 (file)
@@ -145,6 +145,20 @@ int main(int argc, char ** argv) {
 
     llama_batch batch = llama_batch_get_one(prompt_tokens.data(), prompt_tokens.size());
 
+    if (llama_model_has_encoder(model)) {
+        if (llama_encode(ctx, batch)) {
+            fprintf(stderr, "%s : failed to eval\n", __func__);
+            return 1;
+        }
+
+        llama_token decoder_start_token_id = llama_model_decoder_start_token(model);
+        if (decoder_start_token_id == LLAMA_TOKEN_NULL) {
+            decoder_start_token_id = llama_vocab_bos(vocab);
+        }
+
+        batch = llama_batch_get_one(&decoder_start_token_id, 1);
+    }
+
     // main loop
 
     const auto t_main_start = ggml_time_us();