Using Large Language Models for Hyperparameter Optimization

828 篇文章

已下架不支持订阅

本文探讨如何在超参数优化(HPO)中运用大型语言模型(LLM),结果显示,即使在有限的搜索预算下,LLM的表现也能与随机搜索和贝叶斯优化等方法媲美,甚至更好。此外,提出将模型代码视为LLM超参数的新思路,扩展了HPO的可能性。研究表明,LLM在提升HPO效率方面展现出巨大潜力。

本文是LLM系列文章,针对《Using Large Language Models for Hyperparameter Optimization》的翻译。

使用大型语言模型进行超参数优化

摘要

本文研究了在超参数优化(HPO)过程中使用基础大型语言模型(LLM)进行决策。经验评估表明,在搜索预算有限的情况下,LLM可以在标准基准上与随机搜索和贝叶斯优化等传统HPO方法相比或更好地执行。此外,我们建议将指定我们的模型的代码视为LLM输出的超参数,这超出了现有HPO方法的能力。我们的研究结果表明,在传统的超参数优化决策问题中,LLM是一种很有前途的提高效率的工具。

1 引言

2 方法

3 相关工作

4 结果

5 讨论

已下架不支持订阅

BOHB(大规模下鲁棒且高效的超参数优化方法)全称为 “BOHB: Robust and Efficient Hyperparameter Optimization at Scale” 。它是一种结合了贝叶斯优化(Bayesian Optimization)和 Hyperband 算法优势的超参数优化方法,旨在高效地在大规模搜索空间中找到最优的超参数组合。 #### 主要特点 - **高效性**:通过结合 Hyperband 算法的多阶段资源分配策略,能够快速筛选掉表现不佳的超参数配置,节省计算资源和时间。 - **鲁棒性**:采用概率模型(如高斯过程或随机森林)来对超参数的性能进行建模,在不同的数据集和模型上都能有较好的表现。 - **可扩展性**:适用于大规模的超参数搜索空间,能够处理高维、复杂的超参数优化问题。 #### 工作原理 1. **采样初始配置**:从超参数空间中随机采样一组初始的超参数配置。 2. **Hyperband 筛选**:使用 Hyperband 算法对这些配置进行多阶段的筛选,每个阶段分配不同的计算资源(如训练轮数),淘汰表现不佳的配置。 3. **贝叶斯优化**:在筛选过程中,使用贝叶斯优化来根据已有的评估结果构建概率模型,预测未评估配置的性能,并选择下一组最有潜力的配置进行评估。 4. **迭代优化**:重复步骤 2 和 3,直到达到预设的计算资源上限或找到满意的超参数配置。 #### 代码示例 以下是一个使用 `hpbandster` 库实现 BOHB 算法的简单示例: ```python import hpbandster.core.nameserver as hpns import hpbandster.core.result as hpres from hpbandster.optimizers import BOHB import ConfigSpace as CS import ConfigSpace.hyperparameters as CSH from hpbandster.core.worker import Worker import logging # 定义一个简单的目标函数 class MyWorker(Worker): def compute(self, config, budget, **kwargs): # 这里简单地使用一个二次函数作为示例 loss = (config['x'] - 2) ** 2 return ({ 'loss': loss, 'info': {} }) @staticmethod def get_configspace(): cs = CS.ConfigurationSpace() x = CSH.UniformFloatHyperparameter('x', lower=-10, upper=10) cs.add_hyperparameters([x]) return cs # 启动名称服务器 NS = hpns.NameServer(run_id='example1', host='127.0.0.1', port=None) NS.start() # 初始化工作器 w = MyWorker(nameserver='127.0.0.1', run_id='example1') w.run(background=True) # 定义配置空间 config_space = MyWorker.get_configspace() # 初始化 BOHB 优化器 bohb = BOHB( configspace=config_space, run_id='example1', nameserver='127.0.0.1', min_budget=1, max_budget=9 ) # 运行优化 res = bohb.run(n_iterations=4) # 停止优化器和名称服务器 bohb.shutdown(shutdown_workers=True) NS.shutdown() # 打印结果 id2config = res.get_id2config_mapping() incumbent = res.get_incumbent_id() print('Best found configuration:', id2config[incumbent]['config']) print('A total of %i unique configurations where sampled.' % len(id2config.keys())) print('A total of %i runs where executed.' % len(res.get_all_runs())) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnknownBody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值