训练与 AI
ChatGPT 能分析你的跑步训练,前提是它读得懂你的数据。
问 AI 为什么周二的间歇跑感觉那么吃力,它的回答会比大多数训练 App 更好。前提只有一个:它必须真正看到你的数据。而问题恰恰出在这里,原因也和你想的不一样。
为什么 AI 是这么好的训练伙伴?
因为它从你的问题出发,而不是从仪表盘出发。App 给你看的图表和给所有人看的一样。AI 却能结合气温、你这周的训练量和你给它设定的目标,解释你的配速为什么在第 8 公里掉了下来。
有了好的数据,AI 能够:
- 用通俗的语言解释一次训练,不讲术语;
- 把你的数据和目标联系起来:10 公里跑进 45 分钟和第一次跑全马,需要的训练完全不同;
- 对比几周的训练,发现你没注意到的趋势;
- 回答你的下一个问题,再下一个,像一位晚上 11 点还在线的教练一样耐心;
- 根据你的实际训练负荷安排下周训练,而不是套用通用计划。
正是这种个性化带来了差别。但它建立在一个几乎没人验证的前提上:模型真的能拿到你的数据,而不是一段三行的摘要或一个读不懂的文件。
什么是 token,为什么你的手表会产生这么多?
token 是语言模型读取和计费的文本单位:一个词、一个数字或一个标点的片段。每个模型都有上限,也就是上下文窗口,超出部分就读不进去了。根据模型和订阅方案不同,目前这个上限从几万到几百万个 token 不等。
问题在于,手表文件是为软件设计的,而不是为了让人或模型阅读。TCX 文件在你跑步的每一秒都重复同样的 XML 标签。以下是我们的测试结果:
| 数据 | 大小 | 估计 token 数 |
|---|---|---|
| 一次一小时的训练,原始 TCX 文件 | 1.7 MB | ≈ 533,000 |
| 同一次训练,整理为结构化档案 | ≈ 18 KB | ≈ 5,800 |
| 15 MB 真实文件,原始格式 | 15 MB | ≈ 470 万 |
| 同样的文件,整理为结构化档案 | ≈ 100 KB | ≈ 32,000 |
按每个 token 3.2 个字符估算,这是在数值型 CSV 上观测到的比例。测试可用源代码中公开的测试程序复现。
换句话说,一次原始训练数据就可能占满普通订阅的上限,而一整个赛季的数据放到哪里都装不下。
把 TCX 文件粘贴到 ChatGPT 会发生什么?
有三种可能,没有一种是好的。
1. 文件被拒绝
这是最坦诚的情况:界面提示文件太大。你浪费了时间,但至少你知道了。
2. 文件只被读取了一部分,而你并不知道
面对较大的附件,AI 助手常常只读取其中的片段,或者交给脚本去概括。于是 AI 只凭一部分训练数据就信心十足地作答。答案看起来没问题,但未必正确。
3. 文件传上去了,但分析质量很差
即使上下文窗口很大,模型也很难利用埋在长文档中间的信息。斯坦福大学的研究人员把这种现象称为“lost in the middle”(Liu 等,2024)。让模型从 3,600 行经纬度数据中做训练分析,就等于让它心算自己并不擅长的东西,而这些数据几乎提供不了什么有用信息。
要压缩文件吗?不,要重新组织它
只把文件变小还不够,关键是让它变得可读。教练不会逐秒去看你的 GPS 坐标。他看的是每公里用时、各次重复和各心率区间的时间。这些正是语言模型能够理解的内容。
| 原始文件里 | 结构化档案里 |
|---|---|
| 3,600 行纬度、经度和海拔 | 每公里分段、圈、各区间用时 |
| 每秒一个心率值 | 已经算好的心率漂移,并注明测量的是哪一段 |
| 没有任何心率传感器信息 | 胸带还是手腕,并附带置信度 |
| 每个数据点都重复的 XML 标签 | 单位清晰的 CSV 表格 |
对 15 MB 的真实文件,整理后的档案约为 32,000 个 token。而且分析结果比用完整文件更好。不只是更省,而是更好,因为模型处理的是它能理解的内容。
哪些事情 AI 无法自己判断?
有些错误从数字上看不出来。如果没有人指出,AI 就会把它们当成事实,并在此基础上展开分析。
- 心率传感器。手腕传感器有时会把步频误当成心跳,显示 172 bpm 而不是 140。把手腕数据和胸带数据放在一起比较,比的是两种仪器,而不是两种身体状态。
- 温度。手表的温度传感器被手腕加热,比实际气温高 3 到 8°C。把它当作天气数据的 AI,会误判你心率漂移的原因。
- 配速。Strava 按运动时间计算,Garmin Connect 按总时长计算。在城市里跑步,两者的差距很容易超过每公里 15 秒。
- 没有意义的指标。在间歇训练上计算心率漂移毫无意义。没有数字,也比一个看似可信的错误数字好。
好的档案不只是做摘要。它会说明哪些数据可靠、哪些不可靠,让 AI 不至于在沙地上推理。
如何在三分钟内让 AI 分析你的训练?
- 导出文件:从手表或 Strava 导出,最好选择信息最完整的 FIT 格式。
- 拖入 gps-digest。所有计算都在你的浏览器中完成:不会把任何文件上传到服务器。
- 复制档案到 ChatGPT、Gemini 或 Claude,然后提出你的问题。
该向 AI 提什么问题?
最好的问题来自真实的疑问。下面五个例子在结构化档案上效果很好:
- “在气温相近的情况下,我的心率漂移比上个月增加了吗?”
- “周二的重复训练我保持住配速了吗?下次该改进什么?”
- “按现在的训练负荷,六周后我能把 10 公里跑进 45 分钟吗?”
- “我的轻松跑和高强度训练的比例适合备战马拉松吗?”
- “结合我现在的疲劳程度,帮我安排下周的训练。”
常见问题
ChatGPT 能直接读取 FIT 或 TCX 文件吗?
能打开,但无法充分利用。FIT 是二进制格式,AI 需要写脚本来解码;而一个一小时的 TCX 文件约有 533,000 个 token。无论哪种情况,分析依据的都是片段,或者不适合分析的原始数据。结构化档案能同时解决这两个问题。
为什么不直接从 Garmin Connect 导出 CSV?
因为这种导出基本只包含圈数据。它没有心率漂移,没有传感器识别,没有每次重复的明细,也没有避免误读所需的背景信息,比如配速是怎么计算的。
我的数据会被发送到别处吗?
不会。你的文件在浏览器中读取和分析。只有你自己复制给 AI 的档案会离开你的设备,而且默认会移除其中的 GPS 坐标。
AI 能取代教练吗?
不能,这也不是它的目的。它能解释、比较和提出建议,但它看不到你跑步,也感受不到你的伤痛。如果受伤或有严重疑问,请优先听取专业人士的意见。
该选哪个 AI:ChatGPT、Gemini 还是 Claude?
三者都能分析结构化档案。真正的差别在于你所订阅方案的上下文窗口大小。如果每次训练的档案只有几千个 token,这个问题就不再重要。
参考资料
- Liu NF, et al. Lost in the Middle: How Language Models Use Long Contexts. Transactions of the Association for Computational Linguistics, 2024. arXiv:2307.03172。
- 文件大小与 token 数的测量:gps-digest 测试程序,可复现,见开源代码。