Skip to content

[需求] SWE-bench 示例配置缺少 temperature/top_k/top_p 等 generation_kwargs 示范 #376

Description

@zhongzhouTan-coder

问题/痛点描述

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 已正确示范了 temperaturetop_ktop_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.pyswebench_pro_infer.py)已通过 model_kwargs = dict(model_cfg.get("generation_kwargs", {}))generation_kwargs 透传至 mini-swe-agent 的 LiteLLM 模型配置。传入的 temperaturetop_ktop_p 会被 mini-swe-agent 正确使用。能力链路上不存在阻塞,但示例配置中缺少这些参数的示范,用户不清楚可以也应该在这里配置推理参数。

建议方案

在所有 SWE-bench 示例配置文件的 generation_kwargs 中添加注释说明与推荐默认值:

generation_kwargs=dict(
    # temperature=0.0,   # 建议设 0 以确保确定性输出
    # top_p=1.0,
    # top_k=-1,
),

或者在 generation_kwargs 中取消注释,给出合理的默认值,让用户可以开箱即用地调整。

备选方案

  1. _get_minisweagent_config() 中设置默认值:若 generation_kwargs 为空,自动填充 temperature=0.0 等默认值。但此方案会覆盖 mini-swe-agent 内部的默认行为,耦合度较高。
  2. 文档说明:仅在文档中描述参数传递机制,不修改代码。但用户容易忽略,上手体验不如示例代码直观。

预期价值

  • SWE-bench 用户:能直观了解如何控制推理的随机性(temperature/top_p/top_k),提升评测的可复现性
  • 新手用户:减少"为什么我的 SWE-bench 结果不稳定"的排查成本
  • 一致性:与项目中其他基准测试(API、HF 示例)的配置风格保持一致

参与意向

  • 我愿意参与此功能的开发或测试

Metadata

Metadata

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions