From e62ee2bc0648b92393ec5c73670dbbbbdacc7b8b Mon Sep 17 00:00:00 2001 From: mudler Date: Fri, 5 May 2023 18:05:29 +0200 Subject: [PATCH] fix: remove trailing 0s from embeddings This happens when no max_tokens are set, so by default go-llama allocates more space for the slice and padding happens. --- api/prediction.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/api/prediction.go b/api/prediction.go index 47229d6..4bfb687 100644 --- a/api/prediction.go +++ b/api/prediction.go @@ -78,7 +78,19 @@ func ModelEmbedding(s string, loader *model.ModelLoader, c Config) (func() ([]fl l.Lock() defer l.Unlock() - return fn() + embeds, err := fn() + if err != nil { + return embeds, err + } + // Remove trailing 0s + for i := len(embeds) - 1; i >= 0; i-- { + if embeds[i] == 0.0 { + embeds = embeds[:i] + } else { + break + } + } + return embeds, nil }, nil }