测试设置:每个平台8个H100
80GB实例。同一地区(美国西部)。同样的训练任务——微调一个130亿参数的大语言模型。总花费:2,847美元。所有费用我自己付的。无联盟链接,无赞助内容。
为什么我做这个
三个月前,我在Vast.ai上跑训练跑得好好的,实例突然没了。没有警告,没有邮件。就这么没了。三天的工作,没了。因为我以为实例会一直开着,没及时存检查点。低级错误,但问题是:它为什么会死?
原来有人出价更高。我不知道还能这样。我以为我买的是固定价格的实例。不是——Vast.ai是个市场,如果你不注意,就会丢机器。
这个1,200美元的教训让我好奇。大家都在说这三家,但没人真正做个对比。于是我决定在三个平台上跑同样的工作负载,整整一周,记录所有细节。
周一上午9点:起点
周日晚上我在三个平台都注册好了账户。周一早上,我在60秒内分别点击了"部署"。过程是这样的:
Lambda Labs:9:00 → 9:04就绪
四分钟。搞定。我选了"8个H100",点击部署,SSH连上的时候咖啡还没喝完。实例预装了PyTorch
2.2、CUDA 12.1和最新驱动。我跑了nvidia-smi,8个GPU全部正常识别。
Lambda第一印象:感觉像高级产品。UI干净,部署快,一切正常。但2.49美元/小时,不是最便宜的。
RunPod:9:01 → 9:12就绪
十一分钟。RunPod选项比Lambda多——网络配置、存储类型、容器镜像——所以慢一点。我需要在"社区云"和"安全云"之间选,选持久存储大小,挑一个PyTorch模板。
实例启动没问题,但我又花了5分钟才搞明白怎么连接。RunPod用代理URL而不是直接SSH,更安全但需要他们的CLI工具。装了runpodctl之后就好用了。
RunPod第一印象:设置更复杂,但控制权更大。安全云选项对敏感数据很友好。价格:我选的配置是2.89美元/小时。
Vast.ai:9:02 → 9:47就绪
四十五分钟。太痛苦了。Vast.ai是市场,不是直接提供商,所以你得像逛Airbnb一样浏览
listings。我筛选了"8个H100"、"美国西部"、"可靠"宿主机,得到12个结果。
最便宜的1.79美元/小时。最贵的3.20美元/小时。我选了个中间的,2.10美元/小时,评价不错。然后等宿主机批准我的租赁。等着。等啊等。
四十五分钟后终于连上了SSH。那机器明显是别人的家用设置——消费级网络,无ECC内存,GPU空闲温度就83°C。
Vast.ai第一印象:确实最便宜,但硬件质量在抽奖。宿主机周三就下线了,我的实例也挂了。
每日记录:真实发生了什么
周一:全部正常
上午10点,三个实例都在训练了。我用了一样的脚本——Llama 2
13B在Alpaca数据集上微调。超参数一样,batch size一样,一切都一样。
Lambda Labs 1.8秒/迭代 47.76美元/天
RunPod 1.9秒/迭代 55.38美元/天
Vast.ai 2.1秒/迭代 40.32美元/天
Vast.ai迭代更慢是因为网络更慢——消费级网络对比数据中心InfiniBand
周二:第一个牺牲者
凌晨2:34,我收到Vast.ai的邮件:"你的实例已终止。"没有解释,没有警告。我看仪表盘——宿主机下线了。训练任务跑了6小时,死了。
凌晨3:15我找到了另一个宿主机并重新部署。损失41分钟。新宿主机更贵,2.35美元/小时,但配置更好。训练继续。
Lambda和RunPod正常运行没问题。
周三:网络抖动
RunPod上午11:47有12分钟的网络中断。训练脚本卡在等数据。我注意到了是因为有心跳监控——没有那个,可能几小时都发现不了。
客服响应:下午12:05我开了工单。下午12:18收到回复——13分钟。他们承认了"临时网络维护事件",给了50美元积分。还行。
与此同时,我的Vast.ai实例下午6:22又挂了。又一个宿主机挂了。这次我在吃饭,3小时后才注意到。半天训练没了。
我对这个实验里的Vast.ai死心了。找了第三个宿主机,但心理上已经放弃收集他们的数据了。太不靠谱。
Vast.ai没有客服。它是个市场——他们帮你和宿主机牵线,如果出了问题,你和宿主机处理(通常宿主机不回你)或者自己认赔。如果你知道自己做什么并且一直存备份,那还行。如果你想有任何服务保证,那就不行。
我不会再用Vast.ai做重要的事。价格很诱人,但中断给我造成的压力和损失的时间比省的钱还多。当然,如果我是个预算紧张的学生,用频繁存检查点跑短实验?或许。但我会清楚风险再用。