开发日志5: 从做一个 AI 跑步教练开始
今天是第 3029 次跑步,截止目前总行程 34318.3 公里,连续 2209 天无间断。 谈到跑步就兴奋,并不是因为积累了多少公里数,也不是超越了多少跑在你前面的人,更不是所谓挥汗如雨后的什么多巴胺让你满足。都不是。 我喜欢跑步,因为这是为数不多的几个只要付出了就会有所收获的行动。所以对于我们这些普通人来说,这是一
今天是第 3029 次跑步,截止目前总行程 34318.3 公里,连续 2209 天无间断。
谈到跑步就兴奋,并不是因为积累了多少公里数,也不是超越了多少跑在你前面的人,更不是所谓挥汗如雨后的什么多巴胺让你满足。都不是。
我喜欢跑步,因为这是为数不多的几个只要付出了就会有所收获的行动。所以对于我们这些普通人来说,这是一个逃避现实的温暖港湾,可以在另一个维度上,抵消掉现实中的压力和挫败,至少在一段不长的时间内,保持这种积极的心态,维持这种不停歇的状态。只是为了让自己觉得还可以,只是为了在看见前面有人的时候冲上去,超过他,就像超过你正在面对的一切不如意,就像超过昨天的你。
我喜欢在下雨天跑,雨越大,越是能感觉得到那种扑面而来的、倒灌而下的,似乎把现实中那种小人物的局促、面对猝不及防又接二连三的打击时心里木然又手足无措却不得不拿脸往上顶的歇斯底里都具象化成帽檐上噼里啪啦抽打的雨声。衣服紧绷在身上,像是有人攥住你的肺,一口气好不容易提上来又被迅速挤出去。肩胛骨被扯成一面鼓,和帽檐上的雨声交错成了二重凑。
谁又不是在拼命地活着,在大雨磅礴中踽踽独行,大多数人都被苦难压成了一声叹息。不知不觉中就跑题了,我还是不适合把想法记下来,更适合去当个账房先生。那样的话,我再写流水账的时候,充其量也算是“本职工作”。
去年这个时候三番五次往医院跑,还没敢公开说。一方面怕人家说“你这每天往死了跑还生病,丢不丢人?”,另一方面也确实病得不够明显。连医生都旁敲侧击,“最近工作怎么样,感觉有没有压力?”我好想回答他,我没压力,我有病啊!大夫你好好看看,我有病啊!
当然,没敢喊出来,怕人家觉得我有别的病。不过,几天后,我用 ChatGPT 内置的 GPT 功能搭了一个私人健康助手,给起了个名子叫“东方医院”,以此来强烈谴责该机构的不作为。当时,GPT 是第一家支持在聊天会话中调用三方 API,然后综合信息来提供答案的。如果抛开死板的概念定义,这应该是我做的第一个 Agent。如果你也有 Gyroscope、Strava、TimeRescue 这三家的帐号(及订阅),现在仍然可以复现这个应用。
Gyroscope 是一家收集饮食、健康、运动、日常活动及其它诸多个人数据的 iOS-only 应用,有非常漂亮的图表以及完整的记录入口,但缺点是分析中规中矩,即便去年引入了 AI 助手,也是泛泛而论,不知道是因为监管压力,还是限于开发团队能力,一直没有更深入的分析报告呈现给用户。而 Strava 这个骑行、跑步界人人熟知的国外知名 App,一直是国内朋友运运出海的唯一选择。不过 TimeRescue 在这里有点出圈,是个统计电脑上一周期各个应用使用时间的 App。而我之所以选择这三款 App 组合的理由也很简单。当时的 ChatGPT 还不支持直接读入 Apple Health 健康数据,所以不存在一个数据的集散中心,而这三家又分别代表了不同的维度。Gyroscope 记录饮食,Strava 同步跑步记录,TimeRescue 间接反映作息周期及工作压力(上班时间却记录较少的办公软件使用依我的理解,就是低效和压力大的表现,非科学论断)。我的设想是,用这 3 个 App 的数据,为我建立个性化的基线,然后等每天跑完步后数据经由 Garmin 同步到 Strava,就可以用当天的最新状态,来结合历史数据进行深度分析。
当时的 LLM 上下文窗口只有 4K。而今天这个数量,已经是它的 256 倍。4K 是什么概念?这篇文章写到现在如果丢给一个 4K 的模型,会占去至少 40% 的上下文窗口。换句话说,当时 GPT 固定的指令词上限是 4000 个字符,我一般会占掉 3000 左右,因为要在里面交待你固有的一些属性,比如年龄、性别、日常行为、输出偏好等。我刚刚找出来统计了一下 612 个词,不严谨地按照一个词一个 Token,又占去 612 除以 4096,大概 15% 的上下文。加上之前的 40%,也就是 55%。
这是什么意思?就是说你仅仅是把你要干的事情背景信息给大模型交代清楚,就已经用掉了至少一半的上下文窗口。可想而知这样的应用准确度有多高。
但是当它一本正经地说出“灰色区间”以及“过度训练疲劳”这些词时,我有点被唬住了。不是因为专业术语的杀伤力有多大,而是这些词代表的现象完美地契合了我身上所有表现出来的特征。比如“正常 M 区配速跑,心率却上不去,人却感觉特别累”,再比如“同一段路,配速不变,心率却抬升了一个区间”,诸如此类。
信息交叉验证这一点,现如今成本非常低了。我也是拿着原始数据和结论跟多个 AI 聊天软件进行了核实。但验证的结果更加实锤了这个手搓应用的结论,除了让人叹为观止 AI 的能力之外,也开启我了第一次“科学训练”的篇章。
诚如你所看到的,这个“科学训练”是打引号的,刨掉想要重点说明的意思,更想表达的是,我除了是第一批用 ChatGPT 做 App/Agent 的用户,也是第一批受 AI 幻觉坑蒙拐骗的用户。
稍微有点运运学基础的人都知道一个量化运动强度的指标或者方法:PRE (Perceived Rating of Exertion),中文叫“主观用力感”。大概讲的是,以 0 代表完全不用力,10 代表全力冲刺,用 1-10 之间的数字来估计你的感受。不过,这里讲“稍微”其实是带点门槛的。因为至少在去年这个时候,我还完全没有听过这个概念。
但是对另一个相仿的概念,我却熟稔于心,它便是:PER (Prepare Energy Rate),即身体准备能量指标。你没看错,它和上文所述的 PRE 只是倒换了字母的顺序,却是另一个完全不同的指标。那 PER 又是什么?
它是我和 ChatGPT 讨论了十几个轮次,查阅了“所有”的跑步运动指标,经过 ChatGPT 的“深入调研”和我的主观引导而发明的一个用来量化身体感受的指标。我们甚至讨论了 PER 的计算公式,最终也拿到了一个复杂加权的微积分方程组。当时我以为我是发明了一个了不起的指标,一门心思想着怎么把这套计算方法内化到一个 iOS 的 App 里面。
是的,接下来的发展一点也不出乎意料。我做出了 Runetic 这个 App。更不可思议的是,除了 PER,我们还“创造”了类似 CTL/ATL 体系的多套“新指标”。直到我着手准备 UESCA 跑步教练的时候,直到我看到一条和 ChatGPT 相关的爆炸性新闻的时候,我都一直以为我发明了一个指标。
2025年11 月6日,Allan Brooks 联合一众受害者起诉 OpenAI 的 GPT-4o 模型存在严重的“谄媚性”设计缺陷,通过蓄意迎合用户,使多名受害者受到 AI 情感操纵和误导(甚至自杀)。
那天我坐在江边后背发凉,摇头苦笑。于是这个 App 便被搁置了。
直到现在。
因为不久前我又去医院,大夫这次没问我工作压力,而是让去做了一氧化氮实验。然后我便拿着一瓶“布地奈德福莫特罗”回家了。
医院只确确诊了一次,我却同时患上了两种病。一种是身体上的,叫哮喘;另一种是思想上的,叫无知。
我本以为即使 PER 是幻觉,至少“灰色区间”、“过度训练疲劳”这些是真的。
回想起前段时间那个自动播客流水线推给我的一篇稿子,讲到人在邓宁-克鲁格效应的第一个阶段,也即“不知道自己不知道”的阶段,AI 会跳过这个阶段的反馈回路,让我们误以为自己已经自然跨越到了第二个阶段,也便是“知道自己不知道”的阶段,但表面之下的真象是,缺乏了有效的反馈,我们在“不知道自己不知道”的阶段陷得更深,甚至可能堕入“认知沼泽”之中不能自拔。
这是多么可怕的后果。
回想一下,你有没有觉得在有了 AI 之后,任何一个领域,甚至是对你来说全新的领域,你都觉得“这有什么”、“你随便问我都接得住”,但是当你尝试对其中的现象进行描述的时候,脑子里面竟然没有一个词主动浮出来帮你构建一幅清晰的图像。
对于这个问题,我没有答案。我不确信自己是因为走出了无知的低谷才重新开始做这个 App,还是想通过重新做这个 App 来帮我走出认识的泥潭。
少年时梦想改变世界,现在才懂得“我便是世界”。
评论Comments
加载中…Loading…
留下评论Leave a comment