140 lines
4.7 KiB
YAML
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
|