AIPerf az NVIDIA új, GenAI-Perf utódjaként megírt mérőeszköze, amelyet kifejezetten nagy nyelvi modellek (LLM) szolgáltatásainak valós, terhelés-alapú mérésére terveztek. A cél: egy olyan kliens, amely képes teljesen feltölteni egy valós szervert anélkül, hogy maga a kliens válna a teljesítménykorláttá, és amely rövid konfiguráció után megbízható, reprodukálható eredményeket ad.
Mit hoz újat az AIPerf?
-
Architektúra-váltás: az AIPerf nem a GenAI-Perf által használt Perf Analyzer tetejére épül, hanem újratervezett rendszert kapott, ami lehetővé teszi a jobb skálázhatóságot. A migrációt segítő útmutató ismerteti a legfontosabb különbségeket.
-
Multiprocessz kliens: sok benchmark eszköz egyszeres folyamatban fut, aminek határát a Python GIL vagy a folyamat egyéb korlátai szabják meg. Az AIPerf több munkafolyamatot (worker process) használ a terhelés előállítására, külön rekordfeldolgozó szolgáltatások kezelik az eredményeket, és a kommunikáció ZMQ-n keresztül zajlik. Ez csökkenti annak esélyét, hogy maga a kliens legyen a szűk keresztmetszet.
-
Széles munkaterhelési támogatás: több mint 15 végponttípus támogatott (chat, responses, NIM rangsorolás, képgenerálás stb.), valamint nyilvános adatkészletek és trace-replay formátumok, például ShareGPT, Mooncake, Baseten, WEKA (AgentX). Egy eszköz elég a gyors szintetikus teszttől a rögzített produkciós forgalom újrajátszásáig.
-
Rugalmas terhelési minták: állandó, Poisson és gamma érkezési minták, hangolható burstiness, fokozatos rátanulás a párhuzamosság vagy kérés/s másodperc emelésére, valamint szintetikus eloszlások (például vLLM/SGLang range-ratio). A terhelés alakját teljes mértékben szabályozhatjuk, nem csak a mennyiséget.
Gyakorlati bemutató: szintetikus ISL/OSL-mérés vLLM-en
A bemutatóhoz a Qwen/Qwen3-0.6B modellt használjuk vLLM szerveren keresztül. A modell kifejezetten kis méretű és gyors, így egy GPU-n futtatható és gyorsan iterálható — a cél a mérési munkafolyamat bemutatása, nem a Qwen3-0.6B összehasonlítása.
Startolás (szerver)
A vLLM kép lehúzása és indítása a reasoning parser-rel aktiválva:
docker pull vllm/vllm-openai:latest
docker run --gpus all -p 8000:8000 -e HF_TOKEN vllm/vllm-openai:latest \
--model Qwen/Qwen3-0.6B \
--reasoning-parser qwen3 \
--host 0.0.0.0 --port 8000
AIPerf telepítése
Központi telepítés uv-vel:
uv tool install aiperf
Virtuális környezettel:
uv venv venv
source venv/bin/activate
uv pip install aiperf
Platform-megjegyzés: aarch64 rendszereken a crick csomag forráskódként települ, és C build-toolchain-et igényel (pl. build-essential Debian/Ubuntu-n). Ha telepítés elakad ezen a csomagon, ez lehet az oka.
Első profilfuttatás
Egy egyszerű, statikus benchmark parancs példája:
aiperf profile \
--model Qwen/Qwen3-0.6B \
--endpoint-type chat \
--streaming \
--url localhost:8000 \
--synthetic-input-tokens-mean 128 \
--synthetic-input-tokens-stddev 0 \
--output-tokens-mean 128 \
--output-tokens-stddev 0 \
--extra-inputs min_tokens:128 \
--extra-inputs ignore_eos:true
Fontos opciók és hatásuk:
- --synthetic-input-tokens-stddev 0 és --output-tokens-stddev 0: rögzíti az input és output tokenhosszokat pontosan 128-ra, ami reprodukálható, statikus baseline-t ad.
- --extra-inputs min_tokens:128 és ignore_eos:true: kényszerítik a modellt, hogy ténylegesen 128 tokent generáljon, és ne álljon meg korábban, így az output tokenszám reprodukálható lesz.
- --streaming: kötelező, ha az első tokenig eltelt időt (TTFT) és az inter-token késleltetést (ITL) mérni akarjuk; különben a szerver csak a teljes választ küldi egyszerre.
Mit látunk a kimeneten
AIPerf futása közben élő dashboard mutatja a metrikák folyamatát és eloszlásait. A futás végén a konzolra egy metrikatábla kerül, és a teljes eredmény CSV/JSON formátumban is mentődik.
Kiemelt mérőszámok (alap négy):
- TTFT (Time to First Token): a kérés elküldésétől az első token beérkezéséig eltelt idő — elsődleges késleltetési jel interaktív esetekhez.
- ITL (Inter-Token Latency): a generálás során egymást követő tokenek közti idő — magas ITL a dekódolási fázis problémáira utalhat.
- Request Latency: a teljes választ adó end-to-end idő, amely a prefill és decode költségeket egyesíti.
- Output Token Throughput: másodpercenként generált tokenek száma az összes párhuzamos kérés alatt — kapacitástervezéshez fontos jel.
Minden mérőszám százalékos eloszlásban (p25, p50, p75, p90, p95, p99), min/max/átlag/standard deviáció mellett kerül jelentésre. Ez azért fontos, mert az átlagérték jó lehet, miközben a p99 rossz mutathatja a valódi hosszú farok problémákat.
GPU-telemetria
Ha DCGM vagy pynvml elérhető, AIPerf GPU power draw-t, kihasználtságot és memóriahasználatot is gyűjt, így késleltetési kiugrást könnyebb korrelálni memória- vagy erőforrás-nyomással.
Dinamikus forgalom konfigurálása
A statikus mérést követően érdemes dinamikusabb forgatókönyveket is futtatni. Például Poisson-érkezési mintával és véletlenszerű prompthossz-eloszlással:
aiperf profile \
--model Qwen/Qwen3-0.6B \
--endpoint-type chat \
--streaming \
--url localhost:8000 \
--request-rate 10 \
--arrival-pattern poisson \
--synthetic-input-tokens-mean 512 \
--synthetic-input-tokens-stddev 128 \
--output-tokens-mean 128 \
--output-tokens-stddev 32 \
--random-seed 42 \
--request-count 200
Megjegyzések a példaparancshoz:
- --arrival-pattern poisson és --request-rate 10: átlagosan másodpercenként 10 kérés érkezik, de a Poisson eloszlás miatt lesznek hullámok és pauzák, ami reálisabban modellezi a sorbaállást.
- input/output token-stddev beállítások: változó prompt- és output-hosszakat hoznak létre, így a szervernek változó prefill költségekkel kell megbirkóznia.
- --random-seed 42: reprodukálhatóvá teszi a Poisson időzítést és a hossz-drawokat.
- --streaming továbbra is kötelező a TTFT/ITL méréséhez.
A Poisson-forgalom általában szélesebb eloszlásokat eredményez a metrikákban (például TTFT), mert több kérés versenyez egyidejűleg GPU-erőforrásért, és a prefill/decode fázisok átfedhetnek.
További lehetőségek
Az AIPerf komplexebb forgatókönyvekhez is alkalmas: több csomópontos Kubernetes telepítések, KV cache újrahasználat felmelegítése, production trace replay, prefix-szintézis, egyedi adatkészletek és sweep konfigurációk párhuzamossági szintek mentén. A dokumentáció és a repó tutorialjai a leggyorsabb belépési pontok az eszköz használatához és bővítéséhez.
Elismerések
Az AIPerf fejlesztésében az NVIDIA több külső hozzájárulóval működött együtt. Külön köszönet illeti: Loki Ravi, Dan Ferguson és Sheng Moua (AWS) a folyamatos együttműködésért és validációért; Aaron Batilo (Coreweave) a Weights & Biases exportőrért és további fejlesztésekért; Shounak Ray és Michael Feil (Baseten) a trace replay és gyorsabb trace betöltés támogatásáért; Cristian Lopez (Pinterest) a DAG benchmark-módszertan kapcsán; valamint Ben Hamm termékvezetői iránymutatásáért.
Az AIPerf forrása, dokumentációja és tutorialjai az AIPerf repóban találhatók, ahol a funkciók és hozzájárulások canonical referenciaanyagai is elérhetők.



