ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

咖啡馆里跑本地模型:续航测量要留下什么记录

咖啡馆里跑本地模型:续航测量要留下什么记录

一台电脑离开插座后能写多久,受屏幕亮度、网络、后台应用、温度、电池健康与模型负载共同影响。调用一次电池命令却返回写死的百分比,不能算测量;一张整齐的四小时表,也不能替代原始日志。

这里保留“带电脑外出写作”的场景,把结论改成一套可复核的方法。没有实际设备日志,就不声称测出了几瓦或掉了几成电。

百分比、能量和功率分开记

电量下降 20 个百分点不是“消耗 20Wh”;从电量比例估算能量,还需要当时有效容量等条件。平均功率是能量差除以时间,不能拿额定适配器功率代替。

Hugging Face 的 PyTorch 团队在 2026 年 10 月 20 日的 MPS 相关文章给出特定硬件、模型与执行条件。生活化设备文章同样应保留条件,不能把他人的解码成绩外推成自己的续航。原文

先验证计算,再接设备采集

保存为 energy.py。输入明确是合成 Wh 读数,程序只算平均功率,不运行系统电池命令。

from datetime import datetime, timezone samples = [ {"at": "2026-10-20T08:00:00+00:00", "remaining_wh": 50.0}, {"at": "2026-10-20T10:00:00+00:00", "remaining_wh": 42.0}, ] def mean_power(start, end): a, b = datetime.fromisoformat(start["at"]), datetime.fromisoformat(end["at"]) if a.tzinfo is None or b.tzinfo is None: raise ValueError("采样时间必须带时区") hours = (b.astimezone(timezone.utc) - a.astimezone(timezone.utc)).total_seconds()/3600 energy = start["remaining_wh"] - end["remaining_wh"] if hours <= 0 or energy < 0: raise ValueError("时间倒序或期间充电,不能直接比较") return energy / hours assert mean_power(*samples) == 4.0 try: mean_power(samples[1], samples[0]) except ValueError: pass else: raise AssertionError("倒序读数被接受") print("合成数据平均功率:", mean_power(*samples), "W")

两点读数只能计算区间平均,无法说明瞬时峰值。设备报告的能量值还可能经过估算或平滑;缺少 Wh 字段时应保留原始百分比,不编造一个固定瓦数填表。

一份实际测量记录的最小内容

记录机器型号、电池健康、系统与运行时版本、模型标签和量化、上下文、输入输出长度、屏幕设置、开始结束时间及是否充电。先测相同工作流程的空载对照,再测模型任务,重复多次并保留异常样本。

冷加载与常驻状态分开报告。写作过程中停下来阅读,和连续生成模型输出的负载不同,不能把前者的续航当后者的能效成绩。

本文实跑了合成数据计算与错误输入拒绝,未测真实电池、功耗、温度或模型速度。读者可以拿这个计算器处理自己的日志,却不能把它的 4W 输出当成本文设备的实测值。

返回列表