全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2019-08-27_一行代码自动调参,支持模型压缩指定大小,Facebook升级FastText

您的位置:首页 >> 新闻 >> 行业资讯

一行代码自动调参,支持模型压缩指定大小,Facebook升级FastText 机器之心报道 参与:一鸣、亚洲 FastText 作为一款使用简单、运行快速的自然语言处理工具,获得了很多研究者和开发者的喜爱。美中不足的是,FastText 之前没有自动调参的功能。近日,Facebook 更新了这一工具,用户只需要在命令行增加一句代码,工具可以根据用户数据自动调整超参数,使得模型在指定标签或整体数据上达到最佳效果。同时,其可以进行模型压缩,并自动在压缩过程中调整参数。即使模型足够小,也依然可以保证在该模型下达到最佳性能。FastText 是 Facebook 开源的一款自然语言处理机器学习框架。通过这套工具,用户可以快速完成诸如文本分类等的相关任务,而且不需要设计模型架构。近日,Facebook 给这款工具增加了新的功能——自动调参。 这项功能使得 fastText 可以根据提供的数据集自动选择最好的超参数,用于构建高效的文本分类器。使用时,用户需要输入训练集和验证集,并设定时间限制。FastText 之后会在规定的时间内搜索超参数空间,找到使得验证集性能最佳的超参数。此外,用户还可以自定义最终模型的大小。在这样的情况下,fastText 会使用压缩技术降低模型大小。 以下为超参数搜索中的效果: 为什么需要自动超参数调整 FastText 和大部分机器学习模型类似,使用了很多超参数。这其中包括学习率、模型维度、以及训练轮次。每个因素都会对模型的结果造成影响,而且在不同数据集或任务上,最优化的超参数往往是不同的。为了搜索得到表现最好的超参数,用户往往需要进行手动的搜索和调整,即使是对专家而言,手动搜索也是非常令人生畏且耗时间的。Facebook 提供的最新功能使得这些这些工作都可以自动完成。 在许多情况下,模型需要被部署在设备或云端中,因此模型需要足够小,以便控制内存的占用。为了满足在不同设备上部署模型的需求,FastText 现在也可以帮助用户建立能够控制大小的文本分类器了。 使用方法 FastText 本身是使用命令行进行模型的构建、测试的。例如,构建一个文本分类器是可以这样在命令行中规定: ./fasttextsupervised-inputtrain.txt-outputmodel 因此,在自动调参的过程中,用户只需要在已有的命令上增加关于自动调参的相关属性命令即可。 现有的超参数命令如下所示,本文将会重点介绍其中的一部分: -autotune-validationvalidationfiletobeusedforevaluation -autotune-metricmetricobjective{f1,f1:labelname}[f1] -autotune-predictionsnumberofpredictionsusedforevaluation[1] -autotune-durationmaximumdurationinseconds[300] -autotune-modelsizeconstraintmodelfilesize[](empty=donotquantize) 为了激活超参数优化,需要提供带有-autotune-validation 增强的验证文件。 例如,使用同样的数据作为教程示例,autotune 可以以下方式使用: ./fasttextsupervised-inputcooking.train-outputmodel_cooking-autotune-validationcooking.valid 然后,fastText 将会搜索超参数,在 cooking.valid 文件上给出最佳的 f1 得分: Progress:100.0%Trials:27Bestscore:0.406763ETA:0h0m0s 然后,使用以下方式就能测试得到的模型了: ./fasttexttestmodel_cooking.bindata/cooking.valid N3000 P@10.666 R@10.288 默认情况下,搜索过程花费 5 分钟左右。你可以使用-autotune-duration 增强设定秒级的自动暂停,例如,通过以下方式把时间限定在 10 分钟: ./fasttextsupervised-inputcooking.train-outputmodel_cooking-autotune-validationcooking.valid-autotune-duration600 在自动调参时,fastText 展示了这个时间内找到的最好的 f1 得分。如果想在自动暂停前结束,可以发送一个 SIGINT 信号(例如通过 CTLR-C)。FastText 就会结束当前训练,使用目前找到的最佳参数再训练。 限制模型大小 前文提到,FastText 的另一个功能是可以压缩模型大小。当然,使用用户自有的超参数进行模型压缩可能会对模型的精确率造成一定的影响。 好在 FastText 可以在压缩模型上自动寻找最优化的超参数,同时满足模型压缩的要求。为了实现这一点,用户可以使用 -autotune-modelsize 命令。 ./fasttextsupervised-inputcooking.train-outputmodel_cooking-autotune-validationcooking.valid-autotune-modelsize2M 这条命令会产生一个 .ftz 文件,使得模型在指定的大小(如 2M)下有着最高的精确率。 设置优化矩阵 默认情况下,autotune 会对用户提供的验证文件进行测试,并优化到模型能够产生最高的 f1 得分。这一点和 /fasttext test model_cooking.bin cooking.valid 命令是一样的。 但是,有时候用户希望模型能够在一个特定的标签上优化其分数,比如,在 __label__baking 命令上,用户可以设置一个 -autotune-metric 命令进行自动优化。 ./fasttextsupervised-inputcooking.train-outputmodel_cooking-autotune-validationcooking.valid-autotune-metricf1:__label__baking 这和当用户测试时使用./fasttext test-label model_cooking.bin cooking.valid | grep __label__baking 命令手动优化 f1 得分是一样的。 有时候,用户可能会对预测一个以上的标签感兴趣。例如,如果用户需要手动优化超参数以达到两个标签上最佳的分数时,会使用./fasttext test model_cooking.bin cooking.valid 2 命令。现在,用户也可以让 autotune 来优化这些参数,使用-autotune-predictions 即可。 参考链接:https://ai.facebook.com/blog/fasttext-blog-post-open-source-in-brief/ https://fasttext.cc/docs/en/autotune.html 本文为机器之心报道,转载请联系本公众号获得授权。 ?------------------------------------------------加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com投稿或寻求报道:content@jiqizhixin.com广告 & 商务合作:bd@jiqizhixin.com

上一篇:2023-08-27_本次剪辑比赛中常见学员问题汇总 下一篇:2019-10-29_深度学习助力数据压缩,一文读懂相关理论

TAG标签:

19
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价