Engine-agnostic profiler and observability toolkit for LLM inference systems
Project description
Anwer
Anwer (أنور, "more luminous") is an open-source semantic profiler for LLM inference systems.
"Semantic" here refers to inference-execution semantics — scheduler decisions, KV cache behavior, expert routing, prefill/decode phase boundaries — not text or content semantics. Anwer's core idea is to join that semantic control-plane with the hardware data-plane (kernel timelines, CUPTI / torch.profiler traces) on a shared timeline, so a latency spike can be attributed to what the engine was doing (e.g. "MoE expert dispatch for request X"), not just which kernel ran.
Modern inference stacks — vLLM, SGLang, TensorRT-LLM, NVIDIA Dynamo, and others — each expose their own metrics, logs, and tracing conventions, if they expose deep visibility at all, and existing tools sit at one end or the other: hardware profilers (Nsight, Proton) see kernels with no execution context, and request-level observability tools (Langfuse) see requests with no hardware detail. Anwer aims to sit in between, providing a single, engine-agnostic layer for understanding where time and memory actually go during inference, and why.
Status
Early / pre-alpha. This repository currently contains project scaffolding only. Design docs, architecture notes, and the first working profiler hooks will land in subsequent commits.
Goals
- Engine-agnostic instrumentation (starting with vLLM and SGLang)
- Joining semantic control-plane events (scheduling, KV cache ops, expert dispatch, prefill/decode phase) with hardware data-plane traces (kernel timelines) on a shared timeline
- Roofline-grounded interpretation of bottlenecks — attributions tied to a computable hardware number, not a heuristic guess
- Low-overhead tracing suitable for production inference, not just benchmarks
- A common schema for inference-level metrics (prefill/decode timing, KV cache occupancy, batching efficiency, queueing delay)
- Tooling to visualize and diff profiler runs across engines/configs
Why "Anwer"
Anwer is a family name meaning "more luminous" in Arabic. The idea is straightforward: make what happens inside an inference server visible.
Contributing
Not yet open for external contributions while the core design settles. Watch this space.
License
Apache 2.0 — see LICENSE.
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anwer-0.0.1.tar.gz.
File metadata
- Download URL: anwer-0.0.1.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1cf72a3fc19fdff9cd9dec8f89a5672eb4e5154e76a083b7cddfed159120ed35
|
|
| MD5 |
56376655194e6c3ebddcef0b6437444d
|
|
| BLAKE2b-256 |
f4caea23a45aab9d85a4090505a1892cd37bd2f903117480a709c86e0f73f903
|
File details
Details for the file anwer-0.0.1-py3-none-any.whl.
File metadata
- Download URL: anwer-0.0.1-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48d26747d71d2390576840ef4814f0686ab74ad6d483d3209bf8e1f3b59f1d82
|
|
| MD5 |
06f491c56ed1422a58929e7bc6af9876
|
|
| BLAKE2b-256 |
ce45b171de1bf6deb04efd8dba4738a423f4fbba1b263489906653936917a1ed
|