基准测试最佳实践
基准测试是一项对稳定性要求极高的工程任务。 您需要与模型进行大量交互,即使是微小的系统偏差或网络波动也可能影响结果的准确性。 我们总结了以下最佳实践,帮助您的评估结果可复现且可信。
重点提示:
-
对于下表中未提到的 benchmark 或其他闭源 benchmark,推荐 temperature = 1.0,stream = true,top_p = 0.95
-
Reasoning 相关的 benchmark: maxtoken 推荐设置到 128k,并且总测试题量至少要到 500-1000 题才会获得一个相对低的测试方差。(比如 AIME2025 建议测试 32 次 30*32=960 题)
-
Code 相关的 benchmark:maxtoken 推荐设置到 256k
-
Agentic Task 相关的 benchmark:如果需要 multi hop search,maxtoken 推荐设置到 256k 并配合 context management 机制;其他类型的 agentic task 推荐至少设置 16-64k 的 maxtoken
K2.5 模型基准测试推荐参数
| Benchmark 分类 | Benchmark | Temperature | Max token 推荐设置 | 推荐测试次数 | Top-P | 其他) |
|---|---|---|---|---|---|---|
| Multi-modal | MMMU-Pro | 推荐设置:1.0 | max token = 64k | 3次 | top_p=0.95 | thinking={"type": "enabled"} |
| CharXiv (RQ) | 推荐设置:1.0 | max token = 64k | 3次 | top_p=0.95 | thinking={"type": "enabled"} | |
| MathVision | 推荐设置:1.0 | max token = 64k | 3次 | top_p=0.95 | thinking={"type": "enabled"} | |
| MathVista | 推荐设置:1.0 | max token = 64k | 3次 | top_p=0.95 | thinking={"type": "enabled"} | |
| OCRBench | 推荐设置:1.0 | max token = 64k | 3次 | top_p=0.95 | thinking={"type": "enabled"} | |
| ZeroBench | 推荐设置:1.0 | max token = 64k | 3次 | top_p=0.95 | thinking={"type": "enabled"} | |
| WorldVQA | 推荐设置:1.0 | max token = 64k | 3次 | top_p=0.95 | thinking={"type": "enabled"} | |
| InfoVQA (val) | 推荐设置:1.0 | max token = 64k | 3次 | top_p=0.95 | thinking={"type": "enabled"} | |
| SimpleVQA | 推荐设置:1.0 | max token = 64k | 3次 | top_p=0.95 | thinking={"type": "enabled"} | |
| ZeroBench w/ tools | 推荐设置:1.0 | max token = 64k | 3次 | top_p=0.95 | 推荐max steps = 30 thinking={"type": "enabled"} | |
| Code | SWE系列 | 推荐设置:1.0 | per step tokens = 16k; total max token = 256k | 5次 | top_p=0.95 | thinking={"type": "enabled"} |
| Lcb + OJBench | 推荐设置:1.0 | max tokens = 128k | 1次 | top_p=0.95 | thinking={"type": "enabled"} | |
| TerminalBench | 推荐设置:1.0 | max tokens = 128k | 3次 | top_p=0.95 | thinking={"type": "enabled"} | |
| Reasoning | AIME2025 no tools | 推荐设置:1.0 | total max tokens = 96k | 32次 | top_p=0.95 | thinking={"type": "enabled"} |
| AIME2025 w/ tools | 推荐设置:1.0 | per turn tokens = 96k; total max tokens = 96k | 32次 | top_p=0.95 | thinking={"type": "enabled"} 推荐 max steps = 120 | |
| HLE no tools | 推荐设置:1.0 | max tokens = 96k | 1次 | top_p=0.95 | thinking={"type": "enabled"} | |
| HLE w/ tools | 推荐设置:1.0 | total max tokens = 128k; per step tokens = 48k | 1次 | top_p=0.95 | thinking={"type": "enabled"} 推荐 max steps = 120 | |
| HLE heavy | 推荐设置:1.0 | total max tokens = 128k; per step tokens = 48k | 1次 | top_p=0.95 | thinking={"type": "enabled"} 推荐max steps = 200 parallel n=8 | |
| HMMT2025 no tools | 推荐设置:1.0 | max tokens = 96k | 32次 | top_p=0.95 | thinking={"type": "enabled"} | |
| HMMT2025 w/tools | 推荐设置:1.0 | per step tokens = 96k; total tokens = 96k | 32次 | top_p=0.95 | thinking={"type": "enabled"} 推荐 max steps = 120 | |
| IMO-AnswerBench | 推荐设置:1.0 | max tokens = 96k | 3次 | top_p=0.95 | thinking={"type": "enabled"} | |
| GPQA-Diamond | 推荐设置:1.0 | max tokens = 96k | 8次 | top_p=0.95 | thinking={"type": "enabled"} | |
| Agentic Search Task | BrowseComp/ BrowseComp-ZH/Seal-0/ Frames | 推荐设置:1.0 | per step tokens = 24k; total max tokens = 256k | 4次 | top_p=0.95 | thinking={"type": "enabled"} 推荐max steps = 250 推荐使用 context management 机制以防止上下文过长,保证足够的工具调用 在 system prompt 中带上今天的日期,并让模型在不确定时进行搜索 |
| Agentic Task | Tau | 推荐设置:1.0 | >=16k | 4次 | top_p=0.95 | thinking={"type": "enabled"} 推荐max steps = 100 |
对于第三方服务提供商,请参考 Kimi Vendor Verifier (KVV) 选择高精度服务。详情: https://kimi.com/blog/kimi-vendor-verifier.html (opens in a new tab)
tool use参数兼容性
当使用工具时,若thinking设置值为{"type": "enabled"},请注意,为了确保模型的性能,会有以下约束:
- 为了避免思考内容与指定的
tool_choice冲突,tool_choice只能使用"auto"和"none"(默认值为"auto"),取任何其他值将会报错; - 在多步工具调用过程中,您必须在将本轮会话中工具调用时assistant message里的
reasoning_content保留在上下文当中,否则会报错; - 官方内置的 builtin 的联网搜索
$web_search工具暂时与 Kimi K2.5 思考模式不兼容,可以选择先关闭思考模式后使用联网搜索工具$web_search。
您可以参考如何使用思考模型正确使用工具调用。
K2-Thinking 系列模型基准测试推荐参数
| Benchmark 分类 | Benchmark | Temperature | Max token 推荐设置 | 推荐测试次数 | 其他 |
|---|---|---|---|---|---|
| Code | SWE系列 | 推荐设置:0.7; 可接受的其他设置:1.0 | per step tokens = 16k; total max token = 256k | 5次 | |
| Lcb + OJBench | 推荐设置:1.0 | max tokens = 128k | 1次 | ||
| TerminalBench | 推荐设置:1.0 | max tokens = 128k | 3次 | ||
| Reasoning | AIME2025 no tools | 推荐设置:1.0 | total max tokens = 96k | 32次 | |
| AIME2025 w/ tools | 推荐设置:1.0 | per step tokens = 48k; total max tokens = 128k | 16次 | 推荐 max steps = 120 | |
| HLE no tools | 推荐设置:1.0 | max tokens = 96k | 1次 | ||
| HLE w/ tools | 推荐设置:1.0 | total max tokens = 128k; per step tokens = 48k | 1次 | 推荐 max steps = 120 | |
| HLE heavy | 推荐设置:1.0 | total max tokens = 128k; per step tokens = 48k | 1次 | 推荐max steps = 200 parallel n=8 | |
| HMMT2025 no tools | 推荐设置:1.0 | max tokens = 96k | 32次 | ||
| HMMT2025 w/tools | 推荐设置:1.0 | per step tokens = 96k; total tokens = 96k | 32次 | 推荐 max steps = 120 | |
| IMO-AnswerBench | 推荐设置:1.0 | max tokens = 96k | 3次 | ||
| GPQA-Diamond | 推荐设置:1.0 | max tokens = 96k | 8次 | ||
| Agentic Search Task | BrowseComp/ BrowseComp-ZH/Seal-0/ Frames | 推荐设置:1.0 | per step tokens = 24k; total max tokens = 256k | 4次 | 推荐max steps = 250 推荐使用 context management 机制以防止上下文过长,保证足够的工具调用 在 system prompt 中带上今天的日期,并让模型在不确定时进行搜索 |
| Agentic Task | Tau | 推荐设置:0.0 | >=16k | 4次 | 推荐max steps = 100 |
API 推荐参数与注意事项
-
强烈推荐使用官方 API 来做 benchmark 测试,部分第三方 API 可能存在精度偏差
-
使用推荐的模型进行测试:
- 对于 K2 系列:使用
kimi-k2-thinking-turbo进行快速推理 - 对于 K2.5:使用
kimi-k2.5进行测试
- 对于 K2 系列:使用
-
必须设置:
stream = true- 非流式模式可能会导致随机的连接中断,难以控制
-
当前 API 默认设置:
- Kimi K2 Thinking:
- default temp = 1.0
- default max token = 64000
- Kimi K2.5:
- default max_tokens = 32768
- default thinking =
{"type": "enabled"} - default temperature = 1.0
- default top_p = 0.95
- default n = 1
- default presence_penalty = 0.0
- default frequency_penalty = 0.0
- Kimi K2 Thinking:
-
超时设置:
-
使用
stream = false时,api.moonshot.ai超时时间为 2 小时,但某些 ISP 可能会提前终止连接 -
因此我们建议您设置
stream = true
-
-
并发控制:
- 保持较低的并发数以避免速率限制
-
重试逻辑 是必须的:
-
处理服务器过载情况
-
处理因随机服务器问题导致的意外完成原因
-
处理复杂的网络问题
-
FAQ
Q1: temperature 取值对不同模型是一致的吗?
A: 不同模型系列的 temperature 设置不同:
-
k2.5 模型:temperature = 1.0
-
k2-thinking 系列模型:推荐使用 temperature=1.0
-
k2 其他系列模型:推荐使用 temperature=0.6
Q2: 为什么要用 stream=true?
A: 长输出可能需要若干分钟。 空闲的TCP连接有可能会被防火墙、负载均衡器和NAT网关等各种中间网络设备终止。 流式传输能保持连接活跃,显著提高可靠性。 生产数据显示,stream=false 的请求失败率远高于 stream=true。
Q3: 我应该使用多少并发数?
A: 您的API账户有特定的速率限制,参考充值与限速说明 (opens in a new tab)。 建议从较低的并发数开始。 如果遇到限流导致的 429 错误,则说明并发过高。 评估的准确性比速度更重要,请找到一个能让您保持在速率限制内合适的并发水平。
Q5: 为什么要重试某些错误?
A: 即使使用流式传输,发起请求时仍可能因为网络抖动等问题导致失败。 请对临时性故障(网络问题、服务器过载、速率限制)进行重试,以避免不必要的错误。
Q6: 为什么多轮对话和多步骤任务必须带上完整上下文和思考过程?
A: 完整上下文能帮助模型在多步推理过程中保持推理的连贯性,特别是在工具调用过程中。 如果省略思考过程,后续回复可能会不一致或质量下降,从而影响性能评估的准确性。
联系我们
如果您遇到任何问题,请发送邮件至 api-service@moonshot.ai 获得进一步的技术支持。