Skip to content

基准测试要求结果可复现。Kimi 各模型在不同评测场景(代码/数学/多模态/Agent)下有不同的推荐参数配置,temperature 大多为 1.0,流式输出强制要求,思考模式有额外约束。本文是用于跑 benchmark 前的参数对照手册。

Kimi API Benchmark 最佳实践

为什么基准测试需要固定参数

Benchmark 结果的可信度依赖于严格的参数复现。相同问题,temperature 不同、max_tokens 不同,结果可能差异显著。官方推荐以下配置作为基准测试的起点。


推荐参数配置

模型场景temperaturemax_tokenstop_p备注
kimi-k2.6代码1.0256k0.95推荐开 thinking
kimi-k2.6数学推理1.0655360.95
kimi-k2.6多模态1.0327680.95图片/视频输入
kimi-k2.6Agent1.0655360.95多轮含完整历史
kimi-k2.5代码0.6655360.95
kimi-k2-thinking数学/推理1.0无上限0.95thinking 不可关闭

流式输出(必须开启)

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 官方邮箱(官网底部),附上复现步骤、参数配置和对比结果截图。