llama.cpp/examples/server/tests
Georgi Gerganov 152610eda9
server : output embeddings for all tokens when pooling = none (#10861)
* server : add "tokens" output

ggml-ci

* server : output embeddings for all tokens when pooling = none

ggml-ci

* server : update readme [no ci]

* server : fix spacing [no ci]

Co-authored-by: Xuan Son Nguyen <thichthat@gmail.com>

* server : be explicit about the pooling type in the tests

ggml-ci

* server : update /embeddings and /v1/embeddings endpoints

ggml-ci

* server : do not normalize embeddings when there is no pooling

ggml-ci

* server : update readme

ggml-ci

* server : fixes

* tests : update server tests

ggml-ci

* server : update readme [no ci]

* server : remove rebase artifact

---------

Co-authored-by: Xuan Son Nguyen <thichthat@gmail.com>
2024-12-18 13:01:41 +02:00
..
unit server : output embeddings for all tokens when pooling = none (#10861) 2024-12-18 13:01:41 +02:00
.gitignore server : replace behave with pytest (#10416) 2024-11-26 16:20:18 +01:00
conftest.py server : replace behave with pytest (#10416) 2024-11-26 16:20:18 +01:00
README.md server : (refactoring) do not rely on JSON internally (#10643) 2024-12-06 11:14:32 +01:00
requirements.txt server : (tests) don't use thread for capturing stdout/stderr, bump openai client library (#10568) 2024-11-28 19:17:49 +01:00
tests.sh server : (refactoring) do not rely on JSON internally (#10643) 2024-12-06 11:14:32 +01:00
utils.py server : output embeddings for all tokens when pooling = none (#10861) 2024-12-18 13:01:41 +02:00

Server tests

Python based server tests scenario using pytest.

Tests target GitHub workflows job runners with 4 vCPU.

Note: If the host architecture inference speed is faster than GitHub runners one, parallel scenario may randomly fail. To mitigate it, you can increase values in n_predict, kv_size.

Install dependencies

pip install -r requirements.txt

Run tests

  1. Build the server
cd ../../..
cmake -B build -DLLAMA_CURL=ON
cmake --build build --target llama-server
  1. Start the test: ./tests.sh

It's possible to override some scenario steps values with environment variables:

variable description
PORT context.server_port to set the listening port of the server during scenario, default: 8080
LLAMA_SERVER_BIN_PATH to change the server binary path, default: ../../../build/bin/llama-server
DEBUG to enable steps and server verbose mode --verbose
N_GPU_LAYERS number of model layers to offload to VRAM -ngl --n-gpu-layers

To run slow tests:

SLOW_TESTS=1 ./tests.sh

To run with stdout/stderr display in real time (verbose output, but useful for debugging):

DEBUG=1 ./tests.sh -s -v -x

Hint: You can compile and run test in single command, useful for local developement:

cmake --build build -j --target llama-server && ./examples/server/tests/tests.sh

To see all available arguments, please refer to pytest documentation