本文为自动翻译。查看原文请点击这里。
如果你现在正在Azure上构建AI驱动的应用,你可能已经注意到一件事:你的云账单看起来和以前不一样了。不只是更高了——更奇怪了。波动很大,难以预测。
Microsoft刚刚发布了一篇关于仍然重要的云成本优化原则的优秀文章,说实话,时机再好不过了。因为AI工作负载在成本方面已经改变了游戏规则。
为什么AI工作负载不一样
事情是这样的。传统的.NET工作负载相对可预测。你了解你的App Service层级,了解你的SQL DTU,可以相当准确地估算每月开支。AI工作负载呢?完全不是这么回事。
你在测试多个模型看哪个合适。你在启动GPU支持的基础设施进行微调。你在调用Azure OpenAI的API,而token消耗量会因prompt长度和用户行为的不同而产生巨大差异。每个实验都要花真金白银,你可能需要运行几十次才能找到正确的方法。
这种不可预测性正是成本优化至关重要的原因——不是事后才想到,而是从第一天开始。
管理与优化——了解区别
文章中有一个我认为开发者容易忽视的区别:成本管理和成本优化是不同的。
管理是跟踪和报告。你在Azure Cost Management中设置预算,收到警报,查看仪表板。这是基本功。
优化是你真正做决策的地方。你真的需要S3层级,还是S1就能处理你的负载?那个始终运行的计算实例周末是不是闲着?你能否用竞价实例来跑训练任务?
作为.NET开发者,我们往往专注于代码,把基础设施决策留给"运维团队"。但如果你在Azure上部署,这些决策也是你的决策。
真正有效的方法
根据这篇文章和我自己的经验,以下是真正能产生效果的做法:
了解你在花什么钱、花在哪里。 给你的资源打标签。我是认真的。如果你无法分辨哪个项目或实验在消耗你的预算,你就无法优化任何东西。配合适当标签的Azure Cost Management是你最好的朋友。
实验之前设好护栏。 使用Azure Policy限制dev/test环境中昂贵的SKU。为你的Azure OpenAI部署设置消费上限。不要等到账单到了才发现有人让GPU集群在周末一直运行。
持续进行合理配置。 原型阶段选的那个VM?可能不适合生产环境。Azure Advisor会给你建议——真的去看看。每月审查,而不是每年。
考虑生命周期。 开发资源应该关闭。测试环境不需要7×24小时运行。使用自动关机策略。特别是对于AI工作负载,考虑使用按执行付费的无服务器选项,而不是让计算资源一直保持运行。
衡量价值,而不仅仅是成本。 这一点容易忘记。一个成本更高但能产出显著更好结果的模型可能才是正确的选择。目标不是花最少的钱——而是花得聪明。
总结
云成本优化不是一次性的清理工作。它是一个习惯。随着AI工作负载让开支比以往任何时候都更难预测,尽早养成这个习惯可以帮你避免日后的痛苦惊喜。
如果你是一名在Azure上构建的.NET开发者,开始像对待代码一样对待你的云账单吧——定期审查,混乱时重构,永远不要在不了解成本的情况下部署。
