如何在字节跳动的marscode上部署AI API,却意外地将功能搞废了?——分享踩坑经历
目录
解决过程
处理结果
经验总结
相关文章
你好,我是三桥君
最近我尝试用字节跳动的marscode来部署一个AI API,不得不说,字节的产品做得是真不错,用户体验超级棒,方方面面都考虑得很周到。用这个工具来做轻量级AI API的开发,简直不要太方便。
刚开始,我玩了几个入门级的尝试,感觉挺简单的。后来,我心想,要不要挑战一下自己,白嫖字节家的资源,把一个AI小模型部署成API,让大家都能玩玩。结果,这个过程简直是踩坑无数,我到处抱着电脑,在出租车、动车、地铁上各种尝试,最后还是卡在了部署这一步。
解决过程
虽然最后没成功,但这几天的废寝忘食也算是值了。那么,我是怎么解决问题的?
首先,遇到的第一个问题是开发空间限制。
为了跑一个基于PyTorch的AI模型,我需要安装一大堆依赖包,但marscode空间只有10G,老是提示我空间不够。我是这样解决的:
-
发现安装包的时候,缓存文件特别大,占用了大量空间。
-
我尝试了一个个单独安装依赖包,安装完一个就删掉缓存,终于把环境搭好了。
-
后来发现,用pip、poetry这些工具安装时,关闭缓存选项会更方便。
这样一来,开发空间受限的问题解决了,可以正常开发测试了。
接着,第二个问题是部署空间限制。
部署的时候,又遇到了空间不足的问题。我尝试了以下方法:
-
想修改部署命令,但发现行不通。
-
因为要安装torch,空间不够,所以我决定去掉对torch的依赖。
我手动实现了模型推理部分的所有代码,包括数据处理、tokenizer和inference,这个过程特别耗时,但最终把空间占用从十几G降到了几百MB,解决了空间不足的问题。
最后,第三个问题是部署打包文件总大小限制。
环境配置好了,但项目文件超过了250MB的限制。最大的文件是模型的onnx权重文件,所以我得想办法减小这个文件。
-
最初我以为单个文件不能超过250MB,就把800MB的onnx模型分成了四个文件,每个不超过200MB,运行时再合并。后来发现是整个项目部署后的文件大小不能超过250MB。
-
尝试用压缩方法减小模型大小,但发现还是超过限制。
-
最后,我采用了模型量化方法,尝试了fp16和int8量化,终于把文件大小降到了250MB以下。
处理结果
虽然解决了限制问题,但由于量化得太狠,模型效果也受到了很大影响,基本算是废了。
这个过程耗时几天,为了把这个AI功能塞进marscode,我成功地把这个功能给搞废了,哈哈。这也让我死了这条心,以后有类似的想法,还是直接用自己的服务器靠谱。
经验总结
几天地埋头苦干,虽然最后得出个“此路不通”的结论,但我觉得这经历也挺值的。毕竟,尝试过,努力过,才知道行不行。
最后,我还是决定不玩了,和之前玩coze那会儿一个样。一开始弄个工作流程,接接电路,填填数据,感觉操作简单又好玩。但一旦遇到点复杂的需求,就发现这东西不够使了。
各种限制太多,感觉就像是买了个高级玩具,看起来挺酷,但真要干点实事儿就不行了。
说实话,如果掏点钱就能解锁更多高级功能,我也愿意掏这个钱。但问题是,连个付费的渠道都没有,只能是心有余而力不足,只能选择放弃。
以上就是我用marscode部署AI API的踩坑经历,希望我的这些经验能给大家带来一些启示。三桥君觉得虽然过程曲折,但也是一种成长。毕竟,在AI这条路上,谁没踩过几个坑呢?
相关文章
2024年,搞AI就别卷模型了
Prompt:在AI时代,提问比答案更有价值
为什么说AI颠覆了用户场景?
如何成为AI超级个体?