2023-09-21 10:57:40 +02:00
|
|
|
# llama.cpp/example/embedding
|
2023-04-11 21:45:44 +02:00
|
|
|
|
2023-09-21 10:57:40 +02:00
|
|
|
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.):
|
|
|
|
|
|
|
|
```bash
|
2024-06-13 01:41:52 +02:00
|
|
|
./llama-embedding -m ./path/to/model --log-disable -p "Hello World!" 2>/dev/null
|
2023-09-21 10:57:40 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
### Windows:
|
|
|
|
|
|
|
|
```powershell
|
2024-06-13 01:41:52 +02:00
|
|
|
llama-embedding.exe -m ./path/to/model --log-disable -p "Hello World!" 2>$null
|
2023-09-21 10:57:40 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
The above command will output space-separated float values.
|
2024-06-24 07:30:24 +02:00
|
|
|
|
|
|
|
## extra parameters
|
|
|
|
### --embd-normalize $integer$
|
|
|
|
| $integer$ | description | formula |
|
|
|
|
|-----------|---------------------|---------|
|
|
|
|
| $-1$ | none |
|
|
|
|
| $0$ | max absolute int16 | $\Large{{32760 * x_i} \over\max \lvert x_i\rvert}$
|
|
|
|
| $1$ | taxicab | $\Large{x_i \over\sum \lvert x_i\rvert}$
|
|
|
|
| $2$ | euclidean (default) | $\Large{x_i \over\sqrt{\sum x_i^2}}$
|
|
|
|
| $>2$ | p-norm | $\Large{x_i \over\sqrt[p]{\sum \lvert x_i\rvert^p}}$
|
|
|
|
|
|
|
|
### --embd-output-format $'string'$
|
|
|
|
| $'string'$ | description | |
|
|
|
|
|------------|------------------------------|--|
|
|
|
|
| '' | same as before | (default)
|
|
|
|
| 'array' | single embeddings | $[[x_1,...,x_n]]$
|
|
|
|
| | multiple embeddings | $[[x_1,...,x_n],[x_1,...,x_n],...,[x_1,...,x_n]]$
|
|
|
|
| 'json' | openai style |
|
|
|
|
| 'json+' | add cosine similarity matrix |
|
|
|
|
|
|
|
|
### --embd-separator $"string"$
|
|
|
|
| $"string"$ | |
|
|
|
|
|--------------|-|
|
|
|
|
| "\n" | (default)
|
|
|
|
| "<#embSep#>" | for exemple
|
|
|
|
| "<#sep#>" | other exemple
|
|
|
|
|
|
|
|
## examples
|
|
|
|
### Unix-based systems (Linux, macOS, etc.):
|
|
|
|
|
|
|
|
```bash
|
|
|
|
./embedding -p 'Castle<#sep#>Stronghold<#sep#>Dog<#sep#>Cat' --embd-separator '<#sep#>' --embd-normalize 2 --embd-output-format '' -m './path/to/model.gguf' --n-gpu-layers 99 --log-disable 2>/dev/null
|
|
|
|
```
|
|
|
|
|
|
|
|
### Windows:
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
embedding.exe -p 'Castle<#sep#>Stronghold<#sep#>Dog<#sep#>Cat' --embd-separator '<#sep#>' --embd-normalize 2 --embd-output-format '' -m './path/to/model.gguf' --n-gpu-layers 99 --log-disable 2>/dev/null
|
|
|
|
```
|
|
|
|
|