Mind Lab Toolkit (MinT)

Custom Reward

这一页对应 mint-quickstart 里的 quickstart/custom_reward.py

这个示例做什么

  • 展示 MinT 中最常见的 custom reward 训练形态:服务端采样,客户端打分,把 reward 转成 advantage,再用 importance_sampling 训练。
  • 用算术任务保证 reward 逻辑足够直观、容易检查。
  • 相比基础 quickstart 的纯二值 0/1 打分,这个脚本用了带 partial credit 的 reward。

Reward 分解

脚本把总 reward 控制在 [0, 1]

组成项范围含义
format_reward0.00.2回答里能解析出整数
distance_reward0.00.5预测值和目标值足够接近
exact_bonus0.00.3解析出的整数与标准答案完全一致

这样既保留了最小可运行闭环,又比基础 quickstart 的纯 0/1 更容易产生学习信号。

运行方式

export MINT_API_KEY=sk-...
python quickstart/custom_reward.py

参数(环境变量)

  • MINT_BASE_MODEL:默认 Qwen/Qwen3-0.6B
  • MINT_LORA_RANK:默认 16
  • MINT_CUSTOM_REWARD_STEPS:默认 8
  • MINT_CUSTOM_REWARD_BATCH:默认 8
  • MINT_CUSTOM_REWARD_GROUP:默认 6
  • MINT_CUSTOM_REWARD_LR:默认 2e-5
  • MINT_CUSTOM_REWARD_MAX_TOKENS:默认 16
  • MINT_CUSTOM_REWARD_TEMPERATURE:默认 0.8

关键代码

def compute_reward_breakdown(response: str, correct_answer: int) -> RewardBreakdown:
    prediction = extract_prediction(response)
    if prediction is None:
        return RewardBreakdown(total=0.0, format_reward=0.0, distance_reward=0.0, exact_bonus=0.0)

    format_reward = 0.2
    error = abs(prediction - correct_answer)
    distance_scale = max(abs(correct_answer), 20)
    closeness = max(0.0, 1.0 - min(error / distance_scale, 1.0))
    distance_reward = 0.5 * closeness
    exact_bonus = 0.3 if prediction == correct_answer else 0.0
    total = min(1.0, format_reward + distance_reward + exact_bonus)
    return RewardBreakdown(total, format_reward, distance_reward, exact_bonus)
mean_reward = sum(group_rewards) / len(group_rewards)
advantages = [reward - mean_reward for reward in group_rewards]

training_client.forward_backward(
    training_datums,
    loss_fn="importance_sampling",
).result()
training_client.optim_step(types.AdamParams(learning_rate=RL_LR)).result()

期望输出

  • 每一步打印 avg_rewardexact_rateformat_ratedatums
  • 结束时输出 Saved: ...

什么时候用这种模式

  • 你能直接在 Python 里给模型输出打分。
  • 你想加入 partial credit、风格惩罚、工具成本等客户端 reward 逻辑。
  • 你不需要“把 reward 函数上传到服务端执行”;reward 逻辑完全留在客户端脚本里。

本页目录