写在最开头
家庭服务器这个章节比较长,我会分成几个部分来写,有兴趣的话可以都看看,希望我之前才过的坑你可以都避开 🙂
在这个章节了我会主要讲一下我是如何找到一个合适的平台来跑代码的,和各个平台的优势和劣势对比。以及为啥我最后选择自建服务器的原因。
本篇全程无广!!!放心食用
其实搭建个人服务器这个一开始是没有被提上日程的。事情还要从我的高中开始说起…
始于AI学习
那年我开始自己探索一些关于人工智能方面的代码,模型。我也浅浅地学习了很入门TensorFlow模型,又是小孩又是对人工智能充满好奇的我总是想着得拿这个玩意儿做点什么吧,就算她其实一点意义也没有。
我就去Kaggle(一个Google旗下的人工智能平台)上下载了好几个数据集然后给他拼凑在一起构成了一个包含50000张图片和35种动物的数据集用来做图像分类这个基础任务。
我把地址扣出来,有兴趣的可以用来做入门项目练练手的:https://www.kaggle.com/datasets/tylerhong/animals-testing35
Google Colab
众所周知,训练AI是需要显卡的。但是我那个时候只有一台垃圾Mac,这玩意儿是无论如何也跑不动人工神经网络的,那咋办。项目还得继续啊。首先是朋友推荐可以白嫖Google Colab,这个么怎么说呢我的评价是他不是很适合用来训练,他只适合用来快速部署一些推理任务(比如说GitHub上的一些代码可以用它很快地让用户免费的跑起来)就比如说下图的这个stable diffusion web UI。
因为Colab又一个强行下线机制,对于我们免费用户来说,用卡的时间是会越来越少的,比如说你这次用了8小时才被强制下线,那下一次大概率就到不了8小时了,可能4小时就给你强制下线了。既然说到免费用户,那就就不得不提一嘴Colab的付费计划了,我感觉只要不是对于Google生态游刚需的朋友们还是别尝试了,毫无性价比。下面放一张他的会员截图
可以看到每个月10美金,你可以得到什么???得到100个计算单元,肯定很多人对谷歌的这个计算单元没有什么概念,那么更具reddit网友说出的每一种显卡类型所对应的每小时计算单元的消耗量的数据来看 (https://www.reddit.com/r/GoogleColab/comments/xs62o9/what_exactly_is_a_compute_unit/)
GPU种类 | 计算单元 / 小时 |
---|---|
P100 | 4 |
V00 | 5 |
A100 40G | 15 |
这里我小提一小嘴,P100和V100都已经是上古GPU了,特别是P100。你花了10美金,就获得了A100 40G现存版本的6个多小时的使用权。所以说到这关于Google Colab的所有该说的都差不多曰完了。
Kaggle平台的GPU
其实Kaggle在支持学生学习AI当面做的一件事相当好了,比如说给每个免费用户一个月20小时的免费GPU时间。由于Kaggle本身就是一个大平台,加上免费的嘛,谷歌总不能花大价钱部署非常多的服务器吧。所以导致只要你想用的时候无时无刻都是要排队的,有时候拍个几十分钟就能用上,这个其实也还好,但是当你看到在你前面还有好几百人的时候,那时候的人一下子就麻住了。对于心急的我来说这个方案也就pass了。
中国GPU云租凭
虽然我之前从来没有听过GPT租凭的,但是后来转念一想云服务器也能租,那GPU能租也是很合理的。后来各个平台综合价格对比下来,发现AutoDL的服务很便宜,单卡3090一个小时还不过1.5元,是一个非常可以接受的水平。而且他们家也提供了一些其他独一无二的服务。由于这里不是广告,所以我就不展开讲了,感兴趣的朋友可以自己去搜搜看。
结束训练
后来我就在这里跑完了我的项目代码,得到了一个训练好的神经网络 checkpoints。讲实话还是非常激动的那个时候。后来用测试集做了测试精度在90%,还不错,也就是距离国际顶尖相差十万八千里吧。不过这个都没办法阻挡我的喜悦,在这里我也想分享一些我当时从网上随便拉下来放到我训练的网络里预测出来的结果。
这边就随便放三张,毕竟这个不是本章的重点。
发现问题
其实如果都只是这种小项目的话,需要用的时候租用一下云服务器其实就可以了,但是为什么我最后还是会走上自建服务器这个不归路呢?
其实最主要的原因还是在调试上面,我这里指的不是环境的调试,是代码的调试。对于我这个小项目而言,代码一共没几行,随意调试的压力可以说是相当小。但是随着项目量的增加和难度的增加,在自己本地电脑上调试好再上传到云服务器的这个做法就不是非常好用了,根本原因是小型项目电脑还带的动,大型项目本地电脑压根带不动所以得从开发到调试到训练全部上云,这个这个成本其实也是不低的。而且数据上传什么的也是比较麻烦的,虽然AutoDL提供了网盘,但是可以理解不是所有人都希望吧自己整理好的数据集放到别人的网盘上去的。
未完待续
下一章我会讲副自己搭建服务器的选购,以及一些踩坑点,感谢您看到这里。