Appearance
基准测试要求结果可复现。Kimi 各模型在不同评测场景(代码/数学/多模态/Agent)下有不同的推荐参数配置,temperature 大多为 1.0,流式输出强制要求,思考模式有额外约束。本文是用于跑 benchmark 前的参数对照手册。
Kimi API Benchmark 最佳实践
为什么基准测试需要固定参数
Benchmark 结果的可信度依赖于严格的参数复现。相同问题,temperature 不同、max_tokens 不同,结果可能差异显著。官方推荐以下配置作为基准测试的起点。
推荐参数配置
| 模型 | 场景 | temperature | max_tokens | top_p | 备注 |
|---|---|---|---|---|---|
| kimi-k2.6 | 代码 | 1.0 | 256k | 0.95 | 推荐开 thinking |
| kimi-k2.6 | 数学推理 | 1.0 | 65536 | 0.95 | — |
| kimi-k2.6 | 多模态 | 1.0 | 32768 | 0.95 | 图片/视频输入 |
| kimi-k2.6 | Agent | 1.0 | 65536 | 0.95 | 多轮含完整历史 |
| kimi-k2.5 | 代码 | 0.6 | 65536 | 0.95 | — |
| kimi-k2-thinking | 数学/推理 | 1.0 | 无上限 | 0.95 | thinking 不可关闭 |
流式输出(必须开启)
python
from openai import OpenAI
client = OpenAI(
api_key="$MOONSHOT_API_KEY",
base_url="https://api.moonshot.cn/v1",
)
completion = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "请解一道竞赛数学题:..."}],
stream=True, # 基准测试必须开启流式
temperature=1.0,
top_p=0.95,
max_tokens=65536,
)
result = ""
for chunk in completion:
delta = chunk.choices[0].delta
if delta.content:
result += delta.content
print(result)非流式模式风险:非流式模式(
stream=False)在长时间请求时容易出现随机连接中断,难以排查,基准测试中不推荐使用。
重试逻辑(必须实现)
网络或服务器异常时需要重试,否则评测结果会因偶发失败而不完整:
python
import time
def benchmark_query(messages, max_retries=3):
for attempt in range(max_retries):
try:
return client.chat.completions.create(
model="kimi-k2.6",
messages=messages,
stream=True,
temperature=1.0,
top_p=0.95,
max_tokens=65536,
)
except Exception as e:
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt) # 指数退避思考模式(Thinking)下的约束
启用 thinking 时有额外限制:
tool_choice只能是"auto"或"none",不可指定特定工具- 多轮工具调用中,每轮的
reasoning_content必须原样传入下一轮 $web_search内置工具与 thinking 模式不兼容
python
# 开启 thinking 的标准配置
extra_body={"thinking": {"type": "enabled"}}
# 如需关闭(简单任务)
extra_body={"thinking": {"type": "disabled"}}并发控制
高并发评测时注意以下限速约束:
- 过高并发会触发 RPM/TPM 限速,影响测试准确性(限速错误不应计入失败案例)
- 建议每个评测 worker 之间加适当间隔(如 500ms~1s)
- 检查响应头中的
x-ratelimit-remaining-requests字段实时监控剩余配额
常见问题
Q: 基准测试时 temperature 设为 0 可以吗?
A: kimi-k2.6 在思考模式下必须用 temperature=1.0,非思考模式必须用 temperature=0.6。设置 temperature=0 会报参数错误。如需更确定性的输出,用较低的 temperature=0.6 + 非思考模式。
Q: 多次运行结果不一致怎么办?
A: 即使固定参数,LLM 输出也存在随机性。建议每道题运行 3~5 次取多数投票(majority voting),这也是学术基准测试的标准做法。
Q: 如何报告基准测试问题或争议结果?
A: 可联系 Moonshot 官方邮箱(官网底部),附上复现步骤、参数配置和对比结果截图。