LLM Inference Benchmarking Tool
Project description
EchoSwift: LLM Inference Benchmarking Tool
EchoSwift is a powerful and flexible tool designed for benchmarking Large Language Model (LLM) inference. It allows users to measure and analyze the performance of LLM endpoints across various metrics, including latency, throughput, and time to first token (TTFT).
Features
- Benchmark LLM inference across multiple providers (e.g., Ollama, vLLM, TGI)
- Measure key performance metrics: latency, throughput, and TTFT
- Support for varying input and output token lengths
- Simulate concurrent users to test scalability
- Easy-to-use CLI interface
- Detailed logging and progress tracking
Performance metrics:
The performance metrics captured for varying input and output tokens and parallel users while running the benchmark includes
- Latency (ms/token)
- TTFT(ms)
- Throughput(tokens/sec)
Installation
You can install EchoSwift using pip:
pip install echoswift
Alternatively, you can install from source:
git clone --branch akhil https://github.com/Infobellit-Solutions-Pvt-Ltd/EchoSwift.git
cd EchoSwift
pip install -e .
Requirements
- Python 3.10+
- Dependencies listed in
requirements.txt
Usage
EchoSwift provides a simple CLI interface for running benchmarks. Here are the main commands:
1. Download and Filter Dataset
Before running a benchmark, you need to download and filter the dataset:
echoswift dataprep
This command will download the ShareGPT dataset and filter it based on various input token lengths.
2. Configure the Benchmark
Create or modify the config.yaml
file in the project root directory. Here's an example configuration:
out_dir: "results"
base_url: "http://localhost:11434/api/generate"
provider: "Ollama"
model: "llama2" # Model is required for Ollama and vLLM
max_requests: 5
user_counts: [1, 3, 10]
input_tokens: [32]
output_tokens: [256]
Adjust these parameters according to your needs and the LLM endpoint you're benchmarking.
3. Run the Benchmark
To start the benchmark using the configuration from config.yaml
:
echoswift start
If you want to use a different configuration file:
echoswift start --config path/to/your/config.yaml
Output
EchoSwift will create a results
directory (or the directory specified in out_dir
) containing:
- CSV files with raw benchmark data
- Averaged results for each combination of users, input tokens, and output tokens
- Log files for each Locust run
Analyzing Results
After the benchmark completes, you can find detailed CSV files in the output directory. These files contain information about latency, throughput, and TTFT for each test configuration.
Citation
If you find our resource useful, please cite our paper:
EchoSwift: An Inference Benchmarking and Configuration Discovery Tool for Large Language Models (LLMs)
@inproceedings{Krishna2024,
series = {ICPE '24},
title = {EchoSwift: An Inference Benchmarking and Configuration Discovery Tool for Large Language Models (LLMs)},
url = {https://dl.acm.org/doi/10.1145/3629527.3652273},
DOI = {10.1145/3629527.3652273},
booktitle = {Companion of the 15th ACM/SPEC International Conference on Performance Engineering},
publisher = {ACM},
author = {Krishna, Karthik and Bandili, Ramana},
year = {2024},
month = May,
collection = {ICPE '24}
}
Support
If you encounter any issues or have questions, please open an issue on our GitHub repository.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file echoswift-0.1.3.tar.gz
.
File metadata
- Download URL: echoswift-0.1.3.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bbebbb84c26e5f21d5186d0c760b1850d2da74db7b4ce5bab583f51eea99afd |
|
MD5 | cb50041a182816e62ef1ce6c0ff405da |
|
BLAKE2b-256 | 93a977eca6fcf1a09f49015a1e84946b5f018c2c6eebf8c3a0125e707b6ac14e |
File details
Details for the file echoswift-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: echoswift-0.1.3-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7df8604be488b6997f730d8097572215f0289f6227cfd2e8332556ae58fa00e1 |
|
MD5 | 102c5f75c97a2ea532cf3fd651dbf175 |
|
BLAKE2b-256 | d24ba77ddf73ec0aadab7b80ce74d63afe2c27f542f851c604b5a600d7e6111c |