Files
hermes-skills/mlops/llm-inference-benchmarking/templates/aiperf-suite-config.yaml
T

140 lines
4.7 KiB
YAML

# AIPerf 3-Scenario Benchmark Suite Template
# Copy and customize per target endpoint.
# Usage: aiperf profile -c <this-file>
#
# Environment variables expected:
# API_KEY - Bearer token for the target endpoint
# API_BASE_URL - e.g. https://ai.noris.de
# ═══════════════════════════════════════════════════════════════
# SCENARIO 1: Sales (Representative Load)
# ═══════════════════════════════════════════════════════════════
scenarios:
- name: sales-low
model: vllm/moonshotai/kimi-k2.6
url: "${API_BASE_URL}"
endpoint-type: chat
streaming: true
tokenizer: moonshotai/kimi-k2.6
concurrency: 1
request-count: 50
dataset: sharegpt
extra-headers:
Authorization: "Bearer ${API_KEY}"
output-directory: "results/${DATE}/sales/concurrency-1"
ui: simple
- name: sales-moderate
model: vllm/moonshotai/kimi-k2.6
url: "${API_BASE_URL}"
endpoint-type: chat
streaming: true
tokenizer: moonshotai/kimi-k2.6
concurrency: 5
request-count: 50
dataset: sharegpt
extra-headers:
Authorization: "Bearer ${API_KEY}"
output-directory: "results/${DATE}/sales/concurrency-5"
ui: simple
- name: sales-realistic
model: vllm/moonshotai/kimi-k2.6
url: "${API_BASE_URL}"
endpoint-type: chat
streaming: true
tokenizer: moonshotai/kimi-k2.6
concurrency: 10
request-count: 50
dataset: sharegpt
extra-headers:
Authorization: "Bearer ${API_KEY}"
output-directory: "results/${DATE}/sales/concurrency-10"
ui: simple
# ═══════════════════════════════════════════════════════════════
# SCENARIO 2: Capacity (Breakpoint Discovery)
# ═══════════════════════════════════════════════════════════════
- name: capacity-10
model: vllm/moonshotai/kimi-k2.6
url: "${API_BASE_URL}"
endpoint-type: chat
streaming: true
tokenizer: moonshotai/kimi-k2.6
concurrency: 10
request-count: 100
dataset: synthetic
input-tokens-mean: 512
output-tokens-mean: 128
extra-headers:
Authorization: "Bearer ${API_KEY}"
output-directory: "results/${DATE}/capacity/concurrency-10"
ui: none
- name: capacity-25
model: vllm/moonshotai/kimi-k2.6
url: "${API_BASE_URL}"
endpoint-type: chat
streaming: true
tokenizer: moonshotai/kimi-k2.6
concurrency: 25
request-count: 100
dataset: synthetic
input-tokens-mean: 512
output-tokens-mean: 128
extra-headers:
Authorization: "Bearer ${API_KEY}"
output-directory: "results/${DATE}/capacity/concurrency-25"
ui: none
- name: capacity-50
model: vllm/moonshotai/kimi-k2.6
url: "${API_BASE_URL}"
endpoint-type: chat
streaming: true
tokenizer: moonshotai/kimi-k2.6
concurrency: 50
request-count: 100
dataset: synthetic
input-tokens-mean: 512
output-tokens-mean: 128
extra-headers:
Authorization: "Bearer ${API_KEY}"
output-directory: "results/${DATE}/capacity/concurrency-50"
ui: none
- name: capacity-100
model: vllm/moonshotai/kimi-k2.6
url: "${API_BASE_URL}"
endpoint-type: chat
streaming: true
tokenizer: moonshotai/kimi-k2.6
concurrency: 100
request-count: 100
dataset: synthetic
input-tokens-mean: 512
output-tokens-mean: 128
extra-headers:
Authorization: "Bearer ${API_KEY}"
output-directory: "results/${DATE}/capacity/concurrency-100"
ui: none
# ═══════════════════════════════════════════════════════════════
# SCENARIO 3: Steady-State (Long-Term Stability)
# ═══════════════════════════════════════════════════════════════
- name: steady-state
model: vllm/moonshotai/kimi-k2.6
url: "${API_BASE_URL}"
endpoint-type: chat
streaming: true
tokenizer: moonshotai/kimi-k2.6
concurrency: 20
duration: 600
dataset: sharegpt
extra-headers:
Authorization: "Bearer ${API_KEY}"
output-directory: "results/${DATE}/steady-state"
ui: none
# Enable timeslice metrics for drift detection:
# timeslice: 60