文件最后提交记录最后更新时间
4 个月前
10 个月前
5 个月前
README

llama.cpp/example/embedding

This example demonstrates generate high-dimensional embedding vector of a given text with llama.cpp.

Quick Start

To get started right away, run the following command, making sure to use the correct path for the model you have:

Unix-based systems (Linux, macOS, etc.):

./llama-embedding -m ./path/to/model --pooling mean --log-disable -p "Hello World!" 2>/dev/null

Windows:

llama-embedding.exe -m ./path/to/model --pooling mean --log-disable -p "Hello World!" 2>$null

The above command will output space-separated float values.

extra parameters

--embd-normalize integerinteger

integerinteger description formula
−1-1 none
00 max absolute int16 32760∗ximax⁡∣xi∣\Large{{32760 * x_i} \over\max \lvert x_i\rvert}
11 taxicab xi∑∣xi∣\Large{x_i \over\sum \lvert x_i\rvert}
22 euclidean (default) xi∑xi2\Large{x_i \over\sqrt{\sum x_i^2}}
>2>2 p-norm xi∑∣xi∣pp\Large{x_i \over\sqrt[p]{\sum \lvert x_i\rvert^p}}

--embd-output-format ′string′'string'

′string′'string' description
'' same as before (default)
'array' single embeddings [[x1,...,xn]][[x_1,...,x_n]]
multiple embeddings [[x1,...,xn],[x1,...,xn],...,[x1,...,xn]][[x_1,...,x_n],[x_1,...,x_n],...,[x_1,...,x_n]]
'json' openai style
'json+' add cosine similarity matrix
'raw' plain text output

--embd-separator "string""string"

"string""string"
"\n" (default)
"<#embSep#>" for example
"<#sep#>" other example

examples

Unix-based systems (Linux, macOS, etc.):

./llama-embedding -p 'Castle<#sep#>Stronghold<#sep#>Dog<#sep#>Cat' --pooling mean --embd-separator '<#sep#>' --embd-normalize 2  --embd-output-format '' -m './path/to/model.gguf' --n-gpu-layers 99 --log-disable 2>/dev/null

Windows:

llama-embedding.exe -p 'Castle<#sep#>Stronghold<#sep#>Dog<#sep#>Cat' --pooling mean --embd-separator '<#sep#>' --embd-normalize 2  --embd-output-format '' -m './path/to/model.gguf' --n-gpu-layers 99 --log-disable 2>/dev/null