之前我写了一篇文章,介绍了基于Rust的机器学习框架Candle和当前热门python框架的Rust替代品,
本篇是实际体验后用于生产级实践的后续。由于时间关系不作详细赘述。
简短总结下遇到的坑给各位作为一个参考:
1.Candle官方文档写的有点对不起观众,太久没更新了,和代码差异太大,需要消耗精力阅读代码看使用方式。
2.阅读大量官方Demo以及使用方式后,我基于Axum构建机器学习应用,涉及到打包,日志,链路追踪理念和Java微服务生态差距较大,无法将一些线上标准在Rust服务中一一实现。
3.基本框架搭起来后,基于candle封装自己的机器学习代码,无法完全复用官方提供的示例代码,要根据实际业务和场景定制化。
4.模型可选很多要根据实际体验进行选择,比如速度优先还是精度优先还是广度或者大小。
5.模型部署后拿实际数据跑向量运算时间大约200ms每条,线上有1600 W的数据,耗时比较久,需要根据实际情况进行代码调优。
6.优化后在8核CPU的机器上运行跑一轮数据依旧需要一周时间开始寻求在有显卡的机器上运行。
7.在Mac上运行文本类模型显卡以及显卡加速都没有问题,唯独图片Candle没有实现对应接口,涉及图片的只能更换平台。
8.将尘封已久的服务器搬出来开始折腾,显卡驱动太过老旧,更新驱动,各个包缺失各种异常。
9.好不容易显卡驱动装上了,编译环境又不支持,需要C++11
10.折腾一圈后环境好了,网络和其它环境打不通。又是各种折腾。
结论:使用显卡速度提升还是比较明显的。
友情提示:生人勿入。
