一份十年的档案
韩屿,门将,14岁入队。按每周5次训练、每年约45场比赛计算,到24岁时他会积累三千多次训练课和四百多场比赛记录。如果每场比赛都存下每一次扑救的位置、反应时间和出击选择,数据量会迅速膨胀,而且大部分细节对“他明年会成长多少”几乎没有帮助。
九游体育的体育成长大模型面对的问题并不是存储空间,而是信息密度:模型每次预测或生成事件时,能参考的上下文是有限的。塞进太多琐碎细节,真正关键的线索反而会被淹没。
八类信息,三种粒度
我们把一名球员的历史分成八类,每一类有不同的保存粒度。
| 信息类别 | 保存方式 | 为什么 |
|---|---|---|
| 年龄与身体发育 | 逐月记录身高体重,按年归档 | 决定成长窗口和位置适配 |
| 训练 | 按周汇总负荷与专项比例 | 单次训练影响小,长期结构影响大 |
| 伤病 | 每次伤病逐条永久保存 | 影响复发风险和后续训练上限 |
| 比赛 | 按赛季压缩,保留少量关键场次 | 趋势比单场更有预测价值 |
| 性格 | 慢变量,按行为持续修正 | 决定训练效率和逆境反应 |
| 教练 | 每任教练逐条保存 | 战术风格和信任度影响出场与发展 |
| 位置 | 各位置熟练度与转换经历 | 决定可用性与未来转型成本 |
| 职业经历 | 转会、租借、合同逐条保存 | 构成职业叙事和心理状态 |
必须永久记住的东西
有些事件发生一次,就会在很多年里持续发挥作用,这类信息必须逐条保存,永不压缩。
- 重大伤病:韩屿17岁时右手舟状骨骨折,休养了11周。这条记录会影响他之后几年的扑救动作倾向和复发风险。
- 教练更替:19岁时新主教练偏好会用脚出球的门将,这决定了他之后两年的训练重点。
- 职业转折:20岁那次租借到低级别球队,他只踢了6场就因为不适应被召回。这段经历会影响他对下一次租借的态度。
这些记录共同的特点是:如果忘掉,模型对他未来行为的判断就会出现明显偏差。
可以汇总的东西
日常训练和普通比赛属于另一类。单次训练课的细节,比如某个周三练了多少次高球处理,在一周后就几乎没有独立价值。系统会把它们汇总成周数据:总负荷、各项专项占比、训练投入评级。赛季结束时,周数据再压缩成赛季摘要:平均负荷、负荷峰值出现的月份、专项训练总时长。
比赛也是类似的处理。一个赛季的38场比赛会被压缩成几个趋势指标,比如扑救成功率曲线、出击失误次数、高压比赛中的表现差异,再加上3到5场“代表性比赛”的简要记忆:首次首发、一场失误导致丢球的比赛、一场关键扑救拿下的胜利。这些代表场次会在之后生成新闻、球迷评论或者球员心理状态时被引用。
性格是慢慢算出来的
性格最容易被做成一个入队时随机决定、之后永远不变的标签。九游体育的做法是:入队时给出一个初始倾向,之后根据行为持续修正。韩屿初始的“抗压”倾向只是中等,但他在18岁那年经历了三场点球大战并扑出其中两个,系统会小幅调高这一项;而他在失去首发后训练投入下降了一个多月,又会让“韧性”略微下调。
这种慢变量不需要保存每一次修正的完整过程,只需要保留当前值和几次较大变化的原因。玩家在档案里看到的会是“抗压:较高(18岁点球大战表现后提升)”,而不是一长串数字日志。
什么可以放心忘掉
遗忘不是缺陷,而是设计的一部分。以下信息在压缩后可以丢弃原始细节:
- 超过一个赛季的单次训练课记录。
- 普通比赛里的逐次触球数据,只保留赛季趋势。
- 已经完全康复、没有复发风险的轻微擦伤。
- 日常情绪波动,只保留持续超过两周的状态变化。
判断标准只有一个:这条信息是否还会改变模型对这名球员未来的判断。如果不会,就压缩;如果压缩后仍然没有用,就忘掉。
记忆服务于预测和叙事
分层记忆最终服务于两件事。第一是预测:模型在估计韩屿下个赛季的成长时,拿到的是年龄、近三个赛季的训练趋势、伤病史、性格当前值和教练风格,而不是三千条原始记录。第二是叙事:当系统需要生成一条“韩屿续约”的新闻,或者球迷在社区里回忆他的成长时,代表性比赛和职业转折就是现成的素材。
这和年轻球员训练代价的讨论是同一件事的两面:训练会留下痕迹,但并不是每一次训练都值得被单独记住。一名球员真正的成长史,是那些改变了他轨迹的时刻,加上把日常沉淀下来的长期趋势。
十年后回头看
24岁的韩屿档案页上,玩家能在一屏之内看到:身体发育曲线、四次重要转折、每个赛季的表现趋势、两次伤病和性格的变化原因。它不是一份完整的数据库导出,而是一份能读懂的成长记录。这正是体育成长大模型对“记住多少”的回答:记住足够解释过去、预测未来的部分,其余的交给汇总和遗忘。