Quantong Qiu 3694614dd9 feat(p800): add max context length exploration experiment
Add experiments/dsv4_p800_max_context_length/ to find the longest input
context that P800 SGLang INT8 can serve for DeepSeek-V4-Flash-INT8.

- Docker-based server start with dynamic --context-length.
- Single-request, single-output-token probes for each candidate length.
- Records success/failure, server args, and metrics per length.
- Generates results.json and report.md summarizing the max supported length.
- Smoke-tested at 4096 tokens successfully.
2026-07-09 03:30:09 +00:00

44 lines
1.3 KiB
Bash

# Common configuration for the max context length exploration on P800.
# All values can be overridden via environment variables.
EXPERIMENT="dsv4_p800_max_context_length"
MODEL_NAME="DeepSeek-V4-Flash-INT8"
MODEL_PATH="/data1/models/DeepSeek-V4-Flash-INT8"
SERVED_MODEL_NAME="deepseek-v4-flash-int8"
# Port must differ from other running experiments.
PORT="${PORT:-30013}"
# We want exact input lengths, so fix the random range ratio to 1.0.
OUTPUT_LEN="${OUTPUT_LEN:-1}"
NUM_PROMPTS="${NUM_PROMPTS:-1}"
MAX_CONCURRENCY="${MAX_CONCURRENCY:-1}"
REQUEST_RATE="${REQUEST_RATE:-10000}"
# Padding added to target length when setting server context length.
CONTEXT_PAD="${CONTEXT_PAD:-1024}"
# Candidate input lengths (tokens). Override via CANDIDATE_LENS env var.
# Examples:
# CANDIDATE_LENS="4096 8192 16384" bash run_bench.sh
# CANDIDATE_LENS=(4096 8192 16384) bash run_bench.sh
if [[ -z "${CANDIDATE_LENS:-}" ]]; then
declare -a CANDIDATE_LENS=(
4096
8192
16384
32768
65536
131072
262144
524288
)
elif ! declare -p CANDIDATE_LENS 2>/dev/null | grep -q '^declare -a'; then
# Normalize string-form arrays: remove surrounding parentheses and commas.
_CAND_STR="${CANDIDATE_LENS#(}"
_CAND_STR="${_CAND_STR%)}"
_CAND_STR="${_CAND_STR//,/}"
read -ra CANDIDATE_LENS <<< "$_CAND_STR"
unset _CAND_STR
fi