模型中到底什么决定了效果
在工作过程中,我们训练模型时,到底是哪些因素影响最大?模型深度,模型宽度,head个数,head深度,输入大小,输出大小等等。
在工业界中,基于深度学习的检测模型尤其应用广泛。今年由于工作变动,接触了各种不同的项目和模型。发现一个规律,模型可以很小,但是数据量很大时,一样能提高效果。同时输入尺寸变大时,比做多少模型重构都有用,当然前提是backbone和head类似的前提下。
之前的模型臃肿的很,耗时不说,还占显存,这样其实batchsize大小也有影响。于是,我把模型的head大刀阔斧砍到很浅的程度,然后把backbone也砍掉了很多。发现耗时减少了很多,loss训练的时候并没有变化多大。然后我再部署到硬件时,增加输入尺寸为之前小尺寸的2倍,同时由于改变了模型的复杂度,数据增加了很多。于是效果比之前很大(比目前这个尺寸大了1.5倍)尺寸的效果还高了5-6个点。
这说明两个问题:1. 砍了模型的backbone和head,增加了数据,模型的效果依然在提升,比输入尺寸更大的模型效果还好,那说明模型远远没有达到饱和,也就是说模型相对数据其实还是过于复杂的。2. 模型变小了,输入尺寸变大了,效果比之前小尺寸的大模型效果好了太多,这说明相比较模型复杂度,更应该提升模型的输入尺寸以改善实际效果。
所以在工程上,不要追求什么模型的复杂度,说把输入尺寸减小,增加模型复杂度来提升效果。输入那么小,到模型输出时,降维到什么都没有了,哪里来的效果啊,别再做这些没意义的实验了。一句话,工程上计算量有限时就要尽量增加数据和增加输入尺寸。科研上嘛,反正也不受计算量限制,输入都不会很小,多增加数据,用强大模型。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2015-09-10 十一旅行