Initial commit: Hermes Agent Skills collection
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
# AIPerf Long-Input and Extreme-Context Benchmarking
|
||||
|
||||
Session: 2026-06-18 — Full suite benchmark of 4 models (gemma-4-31b-it, gpt-oss-120b, moonshotai/kimi-k2.6, qwen3.6-27b-nvfp4) on ai.noris.de
|
||||
|
||||
## Key Finding: Long Inputs > High Concurrency for Bottleneck Isolation
|
||||
|
||||
When evaluating maximum node capacity, testing conc=200+ is often operationally irrelevant because TTFT p99 exceeds acceptable thresholds (7s+ at conc=100). The real infrastructure bottleneck for RAG / long-context workloads is **memory-bandwidth-bound prefill** with long inputs.
|
||||
|
||||
Recommended alternative: **Long-Input Prefill Test**
|
||||
- Concurrency: Fixed low (e.g., 10) to avoid queueing artifacts
|
||||
- Input length: 1024 / 2048 / 4096 tokens (double/triple the standard 512)
|
||||
- Output length: Short (128) to isolate prefill from generation
|
||||
- Duration: 300s to amortize cold-start
|
||||
|
||||
## Extreme Context Test (10k Input / 10k Output)
|
||||
|
||||
For stress-testing context-window limits and sustained generation capacity:
|
||||
|
||||
- **Input:** 10,000 tokens
|
||||
- **Output:** 10,000 tokens
|
||||
- **Concurrency:** 1 (sequentially, because runtime is 200–1000 seconds per request)
|
||||
- **Requests:** 10 per model
|
||||
- **Purpose:** Validates the full KV-cache lifecycle and sustained decode performance
|
||||
|
||||
**Expected runtime:** At 10–50 tok/s output, one request takes 200–1000 seconds. Schedule accordingly.
|
||||
|
||||
**Template:**
|
||||
```yaml
|
||||
schema_version: "2.0"
|
||||
benchmark:
|
||||
models:
|
||||
items:
|
||||
- name: "vllm/MODEL_NAME"
|
||||
endpoint:
|
||||
urls: ["https://ai.noris.de/v1"]
|
||||
type: "chat"
|
||||
streaming: true
|
||||
datasets:
|
||||
- type: "synthetic"
|
||||
name: "main"
|
||||
entries: 10
|
||||
isl:
|
||||
type: "fixed"
|
||||
value: 10000
|
||||
osl:
|
||||
type: "fixed"
|
||||
value: 10000
|
||||
phases:
|
||||
- type: "concurrency"
|
||||
name: "profiling"
|
||||
requests: 10
|
||||
```
|
||||
|
||||
## Correct AIPerf 0.10.0 Synthetic Dataset Config (Long Input)
|
||||
|
||||
```yaml
|
||||
schema_version: "2.0"
|
||||
benchmark:
|
||||
models:
|
||||
items:
|
||||
- name: "vllm/gemma-4-31b-it"
|
||||
endpoint:
|
||||
urls: ["https://ai.noris.de/v1"]
|
||||
type: "chat"
|
||||
streaming: true
|
||||
datasets:
|
||||
- name: "synthetic_long"
|
||||
type: "synthetic"
|
||||
prompt_template:
|
||||
content: "Analyze the following topic in depth and provide detailed insights."
|
||||
strategy:
|
||||
type: "fixed"
|
||||
max_total_tokens: 1152
|
||||
input_tokens: 1024
|
||||
output_tokens: 128
|
||||
phases:
|
||||
- type: "concurrency"
|
||||
name: "profiling"
|
||||
duration: 300
|
||||
```
|
||||
|
||||
**Critical YAML structure rules learned:**
|
||||
- `datasets` MUST be a **list** (`- name: ...`), NOT a dict with `default:` key
|
||||
- `name` goes directly under the list item, NOT nested under a `synthetic:` key
|
||||
- `prompt_template` and `strategy` are siblings to `name` and `type`
|
||||
|
||||
## Benchmark Results at conc=100 (Standard 512-in / 128-out)
|
||||
|
||||
| Model | Input tok/s (total) | Output tok/s (total) | Total tok/s | TTFT p99 |
|
||||
|-------|--------------------|---------------------|-------------|----------|
|
||||
| moonshotai-kimi-k2.6 | 5,115 | 1,270 | 6,385 | 3,926ms |
|
||||
| gemma-4-31b-it | 4,385 | 1,083 | 5,468 | 2,060ms |
|
||||
| qwen3.6-27b-nvfp4 | 4,191 | 992 | 5,183 | 7,391ms |
|
||||
| gpt-oss-120b | 3,300 | 804 | 4,104 | 7,310ms |
|
||||
|
||||
**Prefill degradation @ conc=100:** All models lose ~80% of per-user prefill speed vs conc=10.
|
||||
|
||||
## MSP Service-Tier Perspective (User Preference)
|
||||
|
||||
When presenting for infrastructure/commercial decisions, structure per **service tier** not model comparison:
|
||||
- Single-User Experience (conc=1): TTFT p99, Output/User, SLA class
|
||||
- Multi-Tenant Load (conc=10→100): Throughput scaling, degradation curve
|
||||
- Steady-State: Long-run stability, drift detection
|
||||
- Service Recommendation: Positioning (Entry/Premium), suitable use cases
|
||||
|
||||
## Related Files
|
||||
- `templates/aiperf-long-input-config.yaml` — Working starter template
|
||||
- `references/aiperf-suite-orchestrator-pattern.md` — Full orchestration pattern
|
||||
- `references/aiperf-token-metrics-explained.md` — Token metric unit reference
|
||||
Reference in New Issue
Block a user