独立开发者 William Angel 最近做了一件很多人想做但懒得算的事——他把 M5 MacBook Pro 上跑本地大模型的每一笔成本拆开,和主流云端 API 逐项对比,给出了硬数字。结论并不意外,但细节值得看:本地推理的"隐性成本"远不止电费。
电费:最直观但也最容易被低估
Angel 的计算起点是电费。以北弗吉尼亚地区为例,居民电价约 0.18 美元/千瓦时。M5 MacBook Pro 满载推理时功耗大约在 70–100W 区间(取决于具体芯片配置和模型规模),折算下来:
- 假设满载功耗 90W,持续推理 1 小时耗电 0.09 kWh
- 电费成本 = 0.09 × 0.18 ≈ 0.016 美元/小时
这个数字看起来微不足道。但 Angel 指出,大多数人忽略了两个变量:设备折旧和机会成本。
折旧才是大头
一台配置合理的 M5 MacBook Pro(足够跑 7B–14B 量化模型流畅推理),售价大约在 2,000–3,000 美元。按 3 年使用寿命、每天推理 4 小时计算:
设备成本: 2,500 美元(取中间值)
使用周期: 3 年 = 1,095 天
推理时长: 4 小时/天 = 4,380 总推理小时
折旧成本: 2,500 / 4,380 ≈ 0.57 美元/推理小时
每推理小时的折旧成本是电费的 35 倍。 这才是本地推理真正贵的地方。你的 MacBook 在跑模型的时候,也在一秒一秒地"变旧"。
和云端 API 的直接对比
以 GPT-4o 级别模型为例,主流 API 的定价大致为:
| 服务 | 输入价格 | 输出价格 |
|---|---|---|
| OpenAI GPT-4o | $2.50/1M tokens | $10.00/1M tokens |
| Anthropic Claude Sonnet | $3.00/1M tokens | $15.00/1M tokens |
| DeepSeek V3 | $0.27/1M tokens | $1.10/1M tokens |
本地跑一个 7B 量化模型(如 Qwen2.5-7B-Instruct-GGUF),在 M5 上推理速度大约 30–50 tokens/s。生成 1,000 tokens 需要 20–33 秒,折合成本:
电费: 0.016 美元/小时 × (33秒/3600秒) ≈ 0.00015 美元
折旧: 0.57 美元/小时 × (33秒/3600秒) ≈ 0.0052 美元
合计: ≈ 0.0054 美元/1K output tokens
换算成百万 tokens:约 5.4 美元/1M output tokens——和 GPT-4o 的输出价格处于同一量级,但模型能力远不如 GPT-4o。如果只和 DeepSeek V3 比,本地成本是云端的 5 倍。
自己算一笔:成本对比脚本
下面的 Python 脚本可以帮你根据自己的设备、电价和使用习惯算出本地推理的真实成本,并和几个主流 API 做对比。改几个参数就能跑:
#!/usr/bin/env python3
"""本地 LLM 推理成本对比计算器"""
# ====== 改这些参数 ======
DEVICE_COST_USD = 2500 # 设备购买成本(美元)
DEVICE_LIFE_YEARS = 3 # 预计使用年限
DAILY_INFERENCE_HOURS = 4 # 每天推理小时数
MAX_POWER_W = 90 # 满载推理功耗(瓦)
ELECTRICITY_RATE = 0.18 # 电价(美元/kWh),按你所在地区调整
LOCAL_TOKENS_PER_SEC = 40 # 本地推理速度(tokens/s),实测为准
# ====== 以上为可调参数 ======
# 云端 API 输出价格(美元/1M tokens)
CLOUD_PRICES = {
"GPT-4o": 10.00,
"Claude Sonnet": 15.00,
"DeepSeek V3": 1.10,
}
total_hours = DEVICE_LIFE_YEARS * 365 * DAILY_INFERENCE_HOURS
depreciation_per_hour = DEVICE_COST_USD / total_hours
electricity_per_hour = (MAX_POWER_W / 1000) * ELECTRICITY_RATE
total_local_per_hour = depreciation_per_hour + electricity_per_hour
# 生成 1M tokens 需要多少小时
hours_for_1m_tokens = 1_000_000 / LOCAL_TOKENS_PER_SEC / 3600
local_cost_per_1m = total_local_per_hour * hours_for_1m_tokens
print("=" * 50)
print("本地推理成本明细")
print("=" * 50)
print(f"折旧: {depreciation_per_hour:.4f} 美元/小时")
print(f"电费: {electricity_per_hour:.4f} 美元/小时")
print(f"合计: {total_local_per_hour:.4f} 美元/小时")
print(f"推理速度: {LOCAL_TOKENS_PER_SEC} tokens/s")
print(f"本地输出成本: {local_cost_per_1m:.2f} 美元/1M tokens")
print()
print("=" * 50)
print("与云端 API 输出价格对比")
print("=" * 50)
for name, price in CLOUD_PRICES.items():
ratio = local_cost_per_1m / price
tag = "更贵" if ratio > 1 else "更便宜"
print(f"{name:16s} 云端 {price:.2f} 本地/云端 = {ratio:.2f}x ({tag})")
print()
print("注意: 本地模型能力通常低于同价位的云端模型,")
print(" 成本对比未包含模型质量差异。")
运行方式:
python3 local_llm_cost.py
输出示例:
==================================================
本地推理成本明细
==================================================
折旧: 0.5708 美元/小时
电费: 0.0162 美元/小时
合计: 0.5870 美元/小时
推理速度: 40 tokens/s
本地输出成本: 4.08 美元/1M tokens
==================================================
与云端 API 输出价格对比
==================================================
GPT-4o 云端 10.00 本地/云端 = 0.41x (更便宜)
Claude Sonnet 云端 15.00 本地/云端 = 0.27x (更便宜)
DeepSeek V3 云端 1.10 本地/云端 = 3.71x (更贵)
关键发现:本地推理和 GPT-4o 比看似"便宜",但你拿到的是 7B 模型的能力,不是 GPT-4o 的能力。 和同等价位能调用的 DeepSeek V3 比,本地反而贵得多。
本地推理真正值钱的地方
Angel 的分析虽然结论是"本地更贵",但他也承认几个云端无法替代的场景:
- 数据隐私:代码、合同、医疗数据不出本机,合规成本为零
- 离线可用:没有网络依赖,延迟稳定在毫秒级
- 无速率限制:批量处理任务不会被 API 限流卡住
- 长期固定成本:一旦设备购入,边际成本只剩电费,适合高频低量场景
反过来,云端的优势也很明确:
- 模型质量:GPT-4o / Claude 的推理能力远超本地 7B–14B 模型
- 弹性扩容:突发大批量任务不需要买新硬件
- 零运维:不用管量化、内存、兼容性
选型清单
在做"本地还是云端"的决定前,跑一遍这个判断流程:
| 条件 | 推荐 |
|---|---|
| 处理敏感数据,合规要求高 | 本地 |
| 需要最强推理能力(复杂代码、长链推理) | 云端 |
| 每天调用量 < 10K tokens,长期稳定 | 本地边际成本更低 |
| 突发大批量(>1M tokens/天) | 云端弹性更划算 |
| 已有 M-series Mac 且不想再花钱 | 本地(沉没成本,只算电费) |
| 还没买设备,正在规划投入 | 先算折旧再决定 |
Angel 的文章给出了一组冷静的数字:本地推理的真正成本不在电费,在折旧。 如果你已经有一台 M5 MacBook Pro,跑本地模型的边际成本确实很低——电费几乎可以忽略。但如果你是"为了跑模型而买设备",那每推理小时的折旧会让总成本和云端 API 打平甚至反超,而且你拿到的模型能力还差一截。
最务实的策略:日常轻量任务走本地,重推理和批量任务走云端 API,别为了省 API 费去买一台新 Mac。