You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

scikit-optimize中model_queue_size作用及ask-tell模式设置kappa的问题

scikit-optimize 使用问题解答

1. model_queue_size参数的作用

你的测试结论符合该参数的设计逻辑,model_queue_size的核心作用就是限制opt.tell()调用时用来训练代理模型的样本数量。
默认该参数为None,表示调用tell()时会加载所有历史观测样本重新训练代理模型,样本量越大训练耗时就越高。当你设置为固定正整数N后,tell()执行时仅会选取最近N个已提交的观测样本训练模型,不需要处理全量历史数据,因此参数设置越小,tell()的运行速度越快。
需要注意的是如果该参数设置过小,代理模型会丢失早期迭代的样本信息,可能导致优化收敛效果下降,需要根据你的业务场景在运行性能和优化精度之间做权衡。

2. ask-tell模式下设置kappa参数的方法

kappa是贝叶斯优化获取函数中控制探索与利用权重的参数,数值越高算法探索未知搜索空间的倾向性越强。
在ask-tell模式下有两种设置方式:

  • 全局固定kappa:在初始化Optimizer实例时,通过acq_func_kwargs传入配置即可,后续所有ask()调用默认使用该数值,示例代码:
from skopt import Optimizer

opt = Optimizer(
    dimensions=你的搜索空间定义,
    acq_func="EI", # 对应使用kappa的获取函数
    acq_func_kwargs={"kappa": 2.5}
)
  • 单次调用动态调整:在调用ask()时直接传入kappa参数,优先级高于初始化时的全局配置,适合需要根据迭代阶段调整探索力度的场景,示例代码:
# 前20轮迭代侧重探索,kappa设为3.0
if len(opt.Xi) < 20:
    next_eval_point = opt.ask(kappa=3.0)
# 后续迭代侧重利用已有最优结果,kappa设为1.2
else:
    next_eval_point = opt.ask(kappa=1.2)

内容的提问来源于stack exchange,提问作者Mark Sale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:15:11