summaryrefslogtreecommitdiff
path: root/common/common.cpp
diff options
context:
space:
mode:
authorGeorgi Gerganov <ggerganov@gmail.com>2024-03-14 10:12:29 +0200
committerGeorgi Gerganov <ggerganov@gmail.com>2024-03-14 10:12:29 +0200
commit0fd6c1f015f6cccf3b527f7dbd8386a434728126 (patch)
tree922b6618221ac91a03da9da22e3727f4cb40ceb1 /common/common.cpp
parent19885d205e768579ab090d1e99281cae58c21b54 (diff)
embedding : print cosine similarity (#899)
Diffstat (limited to 'common/common.cpp')
-rw-r--r--common/common.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/common/common.cpp b/common/common.cpp
index 73b1b61b..58fbd05a 100644
--- a/common/common.cpp
+++ b/common/common.cpp
@@ -1877,3 +1877,16 @@ void llama_embd_normalize(const float * inp, float * out, int n) {
}
}
+float llama_embd_similarity_cos(const float * embd1, const float * embd2, int n){
+ double sum = 0.0;
+ double sum1 = 0.0;
+ double sum2 = 0.0;
+
+ for (int i = 0; i < n; i++) {
+ sum += embd1[i] * embd2[i];
+ sum1 += embd1[i] * embd1[i];
+ sum2 += embd2[i] * embd2[i];
+ }
+
+ return sum / (sqrt(sum1) * sqrt(sum2));
+}