0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

KeenOpt调优算法框架实现对调优对象和配套工具的快速适配

Linux阅码场 来源:KeenTune SIG 作者:KeenTune SIG 2022-11-11 09:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

KeenTune(轻豚)是一款 AI 算法与专家知识库双轮驱动的操作系统全栈式智能优化产品,为主流的操作系统提供轻量化、跨平台的一键式性能调优,让应用在智能定制的运行环境发挥最优性能。自 2021年 9 月正式成立 SIG 并宣布开源以来,受到了广大开发者的关注。KeenTune 的整体开源框架聚焦于通用和灵活的设计原则,其中对于调优场景的扩展,通过分布式架构以及标准化的场景配置模式,可以方便的实现对于 Linux 内核参数,应用配置参数,编译器优化参数,benchmark 配置参数等调优对象和配套工具的快速适配。

今天, KeenTune 再次带来开源重磅特性——新增通用的调优算法框架:keenopt。有了 keenopt 的加持,KeenTune 不再仅仅是支持灵活扩展调优场景的调优工具,还成长为了具备灵活扩展调优算法的调优平台,不仅可以作为性能调优工程师的法宝,也可以成为算法工程师的利器。Keenopt 调优算法框架的开源设计,同样旨在方便快捷的扩展学术界和工业界新提出的调优算法,以及结合实际需要定制化的调优算法。 聪明的童鞋一定会自然问出一个问题:为什么不能只调用当前流行的调优算法库,而要打造一个算法框架呢?这就要从我们调优过程中趟过的一个一个坑说起了...

坑洼调优路

一提起调优,首先进入读者脑海的就是近年来愈发流行的针对机器学习模型,尤其是神经网络超参数的调优算法。这些调优算法从贝叶斯优化和遗传算法出发,凝聚了丰富多彩的调优思路,已经成为提升机器学习算法研发效率的利器。那么这些大多围绕着机器学习模型超参数优化的算法,是不是可以直接应用于比如系统软件配置和参数调优上来呢?答案是经典的 yes and no。 首先,经典的贝叶斯优化算法(基于高斯代理模型)及其衍生算法(如 TPE),当然是可以直接应用于系统参数调优的。但概括来说,这类算法整体的调优效率却经常无法满足无论是机器学习模型超参数调优还是系统参数调优。相应的,近年来的学术创新主要围绕着进一步提升调优的整体效率展开。也就是在这个层面上,机器学习模型超参数的调优和系统参数调优,走上了不同的道路。

对于机器学习模型超参数调优来说,调优的时间开销主要来自两个方面: (1)调优算法搜索策略所需要的运算耗时。 (2)机器学习模型训练的耗时。 对于近年来逐渐广为人知的基于高保真原理的优化算法,如 Successive Halving[1],HyperBand[2] 等,主要聚焦于减少第二个方面的时间开销,毕竟和训练动辄千万上亿级参数的模型,调优算法搜索策略的开销简直不值一提。幸运的事,机器学习模型训练的耗时确实是灵活可调整的。 然而,对于系统参数调优来说,虽然调优的时间开销也主要来自两个方面: (1)调优算法搜索策略所需要的运算耗时。 (2)评估调优推荐参数配置的耗时。 但是其中(2)的耗时由于往往来自调用标准 benchmark 工具获得,是固定不可调整的。具体例子可以设想一下运行 Fio、SPEC CPU 2017 这类 benchmark 工具的过程。因此,针对系统参数调优的算法领域,无法通过优化(2)的开销曲线救国,只能老老实实的提升调优算法的搜索策略。到此,我们来到了第二个坑。

参数调优可谓是“维度灾难”的一个重灾区。基于贝叶斯优化框架的调优算法,本质上是在一个漆黑的空间中摸索,而随着维度的增加,这个漆黑的环境的 volume 急剧增大,摸索的时间成本的增加是不可避免的。对于机器学习模型超参数的调优来说,这个维度往往在十几到二十几这个量级,维度的铁拳仍然比较温柔。而对于系统参数调优来说,这个维度往往在几十到上百甚至过千的量级。在这个量级维度的铁拳下,经典的贝叶斯调优算法及其衍生算法,往往就会被锤成齑粉。以基于高斯代理模型的贝叶斯优化算法来说,我们可以比较粗糙的概括这种算法为“散点”法,这并不是说这类算法就是乱枪打鸟,毕竟有强大的贝叶斯原理作为引领,搜索的策略和路径还是有迹可循的。 然而,当维度足够高的时候,已经有相关研究证明,贝叶斯优化算法和随机搜索算法基本上是一对卧龙凤雏的存在[3]。因此,近年来 AI 领域顶会的学术成果,已经开始关注高维空间中的贝叶斯优化问题,由这种“散点”法,逐渐过渡到“局域”法[4,5]。这里“局域”又是我们的一个比较概括的说法,主要原理是在高维空间中,搜索主要被限制在于较小的局部区域进行,而各个局部区域本身的取舍依然服从贝叶斯原理。这类“局域”法有效的限制了搜索区域的 volume,因此往往有更高效的收敛和更好的调优效果。尤其是更好的收敛效果这种特性,对于系统参数的调优实践来说,可谓一定程度上减轻了燃眉之急,因为实际的系统参数调优实践,往往要考虑系统资源开销和整体时间限制,从而需要在尽可能少的调优轮次中给出最优或略低于最优的调优结果。当我们欣喜的准备吸取这些算法进入 KeenTune 去磨刀霍霍的时候,我们来到了第三个坑。 如前所述,当前主流的调优算法库或工具,往往围绕着机器学习模型超参数调优的场景进行扩展。因此如 Scikit-Optimize (skopt)[6] 和 NNI[7] 这类算法库,更多的聚焦于支持 Successive Halving 和 HyperBand 这些针对模型训练开销优化的算法,而对于解决高维贝叶斯优化问题的算法不够及时。此外,即使想在这些算法库中定制化实现这些算法,也依然需要详细的研读这些库中算法的实现,照猫画虎的在复杂的代码逻辑中前进,这种苦楚只能说懂得都懂。因此,当我们拔剑四顾的时候,刀鞘却阻碍了我们披巾斩棘的身影。至此,读者已经和我们来到了同样的境地,也看到那临门一脚的必选项 --打造更灵活通用的调优算法框架。

KeenOpt 的初心

当我们谈论参数调优算法框架的时候,我们谈论的是 :

(1)算法集成和定制化的方便快捷。

(2)算法的标准化和模块化。 围绕着这两个设计初心,我们的算法框架尽可能的将各个主要功能模块独立的抽象成类。

eea464d0-6155-11ed-8abf-dac502259ad0.png

(图3/ KeenOpt框架概图) 如图 3 所示,自顶向下的从优化总体控制类,衍生出如随机和网格搜索的经典优化算法类,和基于贝叶斯优化的优化算法类。其中优化总体控制类,只要求提供 acquire() 和 feedback() 函数,分别负责选取参数和获得 benchmark 执行的反馈结果。其中针对贝叶斯优化的算法类,又进一步抽象出:

调优控制类:提供贝叶斯优化必须依赖的接口参数。在最基础的优化类中,一定程度上实现了对于贝叶斯优化算法接口的标准化,包括参数空间,历史数据记录,代理模型,和搜索策略。

参数空间类:参数空间可以灵活定义整型,浮点型,类别型的参数和其取值范围。由于实际的调优场景中,无可能出现真正意义上的连续参数空间,因此每个参数相应的还搭配了可定义的步长。

代理模型类:代理模型的选择可以根据具体需要,灵活的选择经典回归类机器学习模型和基于 pytorch 实现的神经网络类模型。

搜索策略类:具体的搜索策略可以实现经典的贝叶斯优化算法,也可以实现如上所述的“局域”搜索策略,整个类只要求实现具体的 search()方法。

下图 4 中展示了当前 KeenOpt 的支持的部分算法(TPE, LA-MCTS-Bo和LA-MCTS-TuRBO) 在 4 中常见的 synthetic 函数在低维(20)和高维(100)情况下的对比结果,可见“局域”算法确实比经典贝叶斯优化算法有更好的优化结果和更高的收敛效率。

ef3a7344-6155-11ed-8abf-dac502259ad0.png

(图4/ KeenOpt支持算法效果对比)

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    7329

    浏览量

    128643
  • AI
    AI
    +关注

    关注

    89

    文章

    38121

    浏览量

    296681

原文标题:KeenTune的算法之心——KeenOpt 调优算法框架 | 龙蜥技术

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    实战RK3568性能:如何利用迅为资料压榨NPU潜能-在Android系统中使用NPU

    《实战RK3568性能:如何利用迅为资料压榨NPU潜能-在Android系统中使用NPU》
    的头像 发表于 11-07 13:42 228次阅读
    实战RK3568性能<b class='flag-5'>调</b><b class='flag-5'>优</b>:如何利用迅为资料压榨NPU潜能-在Android系统中使用NPU

    PYQT 应用程序框架及开发工具

    大家好,本团队此次分享的内容为开发过程中使用到的PYQT 应用程序框架及开发工具。 pYqt 是一个多平台的 python 图形用户界面应用程序框架,由于其面向对象、 易扩展(可
    发表于 10-29 07:15

    天翼云基于开源欧拉的智能实践

    在数字经济加速渗透的当下,操作系统作为底层基础设施的核心,其稳定性与适配性直接关系到行业数字化进程。随着CentOS停止维护,国内企业面临操作系统迁移的紧迫需求,天翼云基于开源欧拉研发的CTyunOS,不仅成为这一迁移浪潮中的关键解决方案,更通过智能
    的头像 发表于 10-17 11:04 473次阅读

    HarmonyOSAI编程智慧

    DevEco Studio提供智慧能力,支持通过自然语言交互,分析并解释当前实例或项目中存在的性能问题,帮助开发者快速定位影响性能的具体原因。该功能从DevEco Studio 6.0.0
    发表于 09-01 15:15

    HarmonyOS AI辅助编程工具(CodeGenie)智慧

    DevEco Studio提供智慧能力,支持通过自然语言交互,分析并解释当前实例或项目中存在的性能问题,帮助开发者快速定位影响性能的具体原因。该功能从DevEco Studio 6.0.0
    发表于 08-14 11:12

    Linux网络性能方案

    在当今高并发、大流量的互联网环境下,网络性能往往成为系统的瓶颈。作为一名资深运维工程师,我在生产环境中遇到过无数次因为TCP/IP参数配置不当导致的性能问题。今天分享一套完整的Linux网络性能方案,帮助大家彻底解决网络性能瓶颈。
    的头像 发表于 08-06 18:01 959次阅读

    Linux内核参数方案

    在高并发微服务环境中,网络性能往往成为K8s集群的瓶颈。本文将深入探讨如何通过精细化的Linux内核参数,让你的K8s节点网络性能提升30%以上。
    的头像 发表于 08-06 17:50 715次阅读

    Linux系统性能方案

    关键要点预览:本文将深入解析Linux系统性能瓶颈的根本原因,提供可直接落地的方案,让你的系统性能提升30-50%!
    的头像 发表于 08-06 17:49 591次阅读

    MySQL配置技巧

    上个月,我们公司的核心业务系统突然出现大面积超时,用户投诉电话不断。经过紧急排查,发现是MySQL服务器CPU飙升到99%,大量慢查询堆积。通过一系列配置和SQL优化,最终在30分钟内恢复了服务。
    的头像 发表于 07-31 10:27 404次阅读

    Nginx在企业环境中的策略

    Nginx作为现代互联网架构中最重要的Web服务器和反向代理服务器,其性能对企业级应用的稳定性和效率至关重要。本指南将从运维实践角度出发,详细介绍Nginx在企业环境中的各种
    的头像 发表于 07-14 11:13 403次阅读

    手把手教你如何Linux网络参数

    在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃。本文基于真实案例分析,从参数解读、问题诊断到优化实践,手把手教你如何Linux网络参数,支撑百万级并发连接。
    的头像 发表于 05-29 09:21 650次阅读

    DeepSeek,你是懂可测的!

    深度思考的DeepSeek,对可测做出了评价……
    的头像 发表于 02-11 17:32 759次阅读
    DeepSeek,你是懂<b class='flag-5'>优</b>可测的!

    刻得:与DeepSeek模型适配,业绩贡献存不确定性

    全系列模型的适配工作。然而,目前相关业务的效果以及对公司未来业绩的具体贡献仍存在重大不确定性。 同时,经公司核实,截至公告披露日,刻得并未直接或间接持有杭州深度求索人工智能基础技术研究有限公司的股权。这意味着,尽管双方已展开合作
    的头像 发表于 02-07 10:37 996次阅读

    xgboost超参数技巧 xgboost在图像分类中的应用

    一、XGBoost超参数技巧 XGBoost(eXtreme Gradient Boosting)是一种基于梯度提升决策树(GBDT)的高效梯度提升框架,在机器学习竞赛和实际业务应用中取得了卓越
    的头像 发表于 01-31 15:16 2151次阅读

    可测一键尺寸测量仪:实现MLCC尺寸快速精准检测 | 行业应用

    可测一键式闪测仪FM-9000系列:随意放置即可瞬间精确、快速、批量测量,是解决MLCC几何尺寸测量困扰的优选方案,帮助您提升产品良率与产量!
    的头像 发表于 12-31 17:05 1190次阅读
    <b class='flag-5'>优</b>可测一键尺寸测量仪:<b class='flag-5'>实现</b>MLCC尺寸<b class='flag-5'>快速</b>精准检测 | 行业应用