问题/痛点描述
ais_bench/configs/swe_bench_examples/ 和 ais_bench/configs/swe_bench_pro_examples/ 下的所有 8 个 SWE-bench 示例配置文件,generation_kwargs 均为空字典 dict():
mini_swe_agent_swe_bench_verified.py
mini_swe_agent_swe_bench_full.py
mini_swe_agent_swe_bench_lite.py
mini_swe_agent_swe_bench_verified_mini.py
mini_swe_agent_swe_bench_multilingual.py
mini_swe_agent_swe_bench_multilingual_mini.py
mini_swe_agent_swe_bench_pro_full.py
mini_swe_agent_swe_bench_pro_mini.py
而在其他基准测试的示例配置(如 ais_bench/configs/api_examples/infer_vllm_api_general_chat.py)中,generation_kwargs 已正确示范了 temperature、top_k、top_p 等参数:
generation_kwargs = dict(
temperature = 0.5,
top_k = 10,
top_p = 0.95,
seed = None,
repetition_penalty = 1.03,
)
根因分析:SWE-bench 的 _get_minisweagent_config() 函数(swebench_infer.py 和 swebench_pro_infer.py)已通过 model_kwargs = dict(model_cfg.get("generation_kwargs", {})) 将 generation_kwargs 透传至 mini-swe-agent 的 LiteLLM 模型配置。传入的 temperature、top_k、top_p 会被 mini-swe-agent 正确使用。能力链路上不存在阻塞,但示例配置中缺少这些参数的示范,用户不清楚可以也应该在这里配置推理参数。
建议方案
在所有 SWE-bench 示例配置文件的 generation_kwargs 中添加注释说明与推荐默认值:
generation_kwargs=dict(
# temperature=0.0, # 建议设 0 以确保确定性输出
# top_p=1.0,
# top_k=-1,
),
或者在 generation_kwargs 中取消注释,给出合理的默认值,让用户可以开箱即用地调整。
备选方案
- 在
_get_minisweagent_config() 中设置默认值:若 generation_kwargs 为空,自动填充 temperature=0.0 等默认值。但此方案会覆盖 mini-swe-agent 内部的默认行为,耦合度较高。
- 文档说明:仅在文档中描述参数传递机制,不修改代码。但用户容易忽略,上手体验不如示例代码直观。
预期价值
- SWE-bench 用户:能直观了解如何控制推理的随机性(temperature/top_p/top_k),提升评测的可复现性
- 新手用户:减少"为什么我的 SWE-bench 结果不稳定"的排查成本
- 一致性:与项目中其他基准测试(API、HF 示例)的配置风格保持一致
参与意向
问题/痛点描述
ais_bench/configs/swe_bench_examples/和ais_bench/configs/swe_bench_pro_examples/下的所有 8 个 SWE-bench 示例配置文件,generation_kwargs均为空字典dict():mini_swe_agent_swe_bench_verified.pymini_swe_agent_swe_bench_full.pymini_swe_agent_swe_bench_lite.pymini_swe_agent_swe_bench_verified_mini.pymini_swe_agent_swe_bench_multilingual.pymini_swe_agent_swe_bench_multilingual_mini.pymini_swe_agent_swe_bench_pro_full.pymini_swe_agent_swe_bench_pro_mini.py而在其他基准测试的示例配置(如
ais_bench/configs/api_examples/infer_vllm_api_general_chat.py)中,generation_kwargs已正确示范了temperature、top_k、top_p等参数:根因分析:SWE-bench 的
_get_minisweagent_config()函数(swebench_infer.py和swebench_pro_infer.py)已通过model_kwargs = dict(model_cfg.get("generation_kwargs", {}))将generation_kwargs透传至 mini-swe-agent 的 LiteLLM 模型配置。传入的temperature、top_k、top_p会被 mini-swe-agent 正确使用。能力链路上不存在阻塞,但示例配置中缺少这些参数的示范,用户不清楚可以也应该在这里配置推理参数。建议方案
在所有 SWE-bench 示例配置文件的
generation_kwargs中添加注释说明与推荐默认值:或者在
generation_kwargs中取消注释,给出合理的默认值,让用户可以开箱即用地调整。备选方案
_get_minisweagent_config()中设置默认值:若generation_kwargs为空,自动填充temperature=0.0等默认值。但此方案会覆盖 mini-swe-agent 内部的默认行为,耦合度较高。预期价值
参与意向