トレーニングと AI
ChatGPT はランニングのセッションを分析できる。ただし、データを読めればの話。
火曜日のインターバルがなぜあんなにきつかったのか。AI に聞けば、たいていのトレーニングアプリよりも良い答えが返ってきます。ただし条件があります。AI があなたのデータを本当に見られることです。そして問題はまさにそこにあり、その理由は想像とは違います。
なぜ AI はトレーニングの良きパートナーになるのか
AI はダッシュボードではなく、あなたの質問から出発するからです。アプリは誰にでも同じグラフを見せます。AI なら、暑さや忙しかった 1 週間、あなたが伝えた目標を踏まえて、8 km 地点でペースが落ちた理由を説明できます。
良いデータがあれば、AI は次のことができます。
- 専門用語を使わず、わかりやすい言葉でセッションを説明する
- 数字を目標と結びつける(10km で 45 分切りと初めてのフルマラソンでは、必要な練習がまったく違います)
- 数週間分を比べて、見落としていた傾向を見つける
- 次の質問にも、その次の質問にも、夜 11 時でも付き合ってくれるコーチのように根気よく答える
- 汎用的な計画ではなく、実際のトレーニング負荷をもとに翌週のメニューを提案する
この個別最適化こそが違いを生みます。ただし、それはほとんど誰も確かめていない前提の上に成り立っています。モデルが 3 行の要約や読めないファイルではなく、あなたの本当のデータにアクセスできているという前提です。
トークンとは何か、なぜウォッチはそれほど多く生み出すのか
トークンとは、言語モデルが読み取り、課金の単位にするテキストの断片です。単語や数字、句読点の一部にあたります。どのモデルにも上限(コンテキストウィンドウ)があり、それを超えると何も読めません。モデルや契約プランによって、現在は数万から数百万トークンまでさまざまです。
問題は、ウォッチのファイルがソフトウェア向けに作られていて、読むためのものではないことです。TCX ファイルは、走った 1 秒ごとに同じ XML タグを繰り返します。私たちのテストで測った結果は次のとおりです。
| データ | サイズ | 推定トークン数 |
|---|---|---|
| 1 時間のセッション、生の TCX ファイル | 1.7 MB | ≈ 533,000 |
| 同じセッションを構造化した記録 | ≈ 18 KB | ≈ 5,800 |
| 実際のファイル 15 MB 分、生データ | 15 MB | ≈ 470 万 |
| 同じファイルを構造化した記録 | ≈ 100 KB | ≈ 32,000 |
1 トークンあたり 3.2 文字で推定。数値の CSV で観測された比率です。測定はソースコードで公開しているテストで再現できます。
つまり、生データのセッション 1 回分だけで一般向けプランの上限に達することがあり、シーズン丸ごとのデータはどこにも収まりません。
TCX ファイルを ChatGPT に貼り付けると何が起きるか
考えられる展開は 3 つ。どれも良い結果にはなりません。
1. ファイルが受け付けられない
いちばん正直なケースです。画面にファイルが大きすぎると表示されます。時間は無駄になりますが、少なくとも状況はわかります。
2. ファイルの一部しか読まれず、それを知らされない
大きな添付ファイルの場合、AI アシスタントは一部だけを読んだり、要約するスクリプトに任せたりすることがよくあります。すると AI は、セッションの一部だけをもとに自信たっぷりに答えます。答えはもっともらしく見えます。でも正しいとは限りません。
3. ファイルは読み込めるが、分析の質が低い
コンテキストウィンドウが大きくても、長い文書の途中に埋もれた情報をモデルはうまく活用できません。スタンフォード大学の研究者たちは、この現象を「lost in the middle」と名付けて報告しています(Liu ほか、2024 年)。3,600 行の緯度と経度からトレーニング分析をさせるのは、苦手な暗算を、ほとんど何も教えてくれないデータでやらせるのと同じです。
ファイルは圧縮すべきか?いいえ、構造を組み替えるべきです
ファイルを小さくするだけでは足りません。読める形にする必要があります。コーチは GPS 座標を 1 秒ずつ読んだりしません。見るのは 1 km ごとのタイム、各レップ、ゾーン別の心拍数です。それこそが、言語モデルが理解できる形です。
| 生のファイルの中身 | 構造化した記録の中身 |
|---|---|
| 緯度・経度・高度が 3,600 行 | 1 km ごとのスプリット、ラップ、ゾーンごとの時間 |
| 1 秒ごとの心拍数 | 計算済みの心拍ドリフトと、その測定区間 |
| 心拍センサーについての情報なし | 胸ストラップか手首か、信頼度付きで |
| 各データ点で繰り返される XML タグ | 単位が明記された CSV の表 |
実際のファイル 15 MB 分で、構造化した記録は約 32,000 トークンです。しかも分析の質は、元のファイルをそのまま渡すより高くなります。安くなるだけでなく良くなるのは、モデルが理解できるものを扱うからです。
AI が自分では見抜けないことは何か
数字を見ただけではわからない誤りがあります。誰も指摘しなければ、AI はそれを事実として受け取り、その上に分析を組み立ててしまいます。
- 心拍センサー。手首のセンサーは、ときどき足の回転を心拍と取り違え、140 のところを 172 bpm と表示します。手首で測ったセッションと胸ストラップのセッションを比べるのは、2 つの測定器を比べることであって、2 つのコンディションを比べることではありません。
- 気温。ウォッチの温度センサーは手首の熱で温められ、気温より 3〜8°C 高く表示されます。これを天気として扱う AI は、心拍ドリフトの原因を取り違えます。
- ペース。Strava は移動時間で、Garmin Connect は合計時間で計算します。市街地のランでは、その差は 1 km あたり 15 秒を簡単に超えます。
- 意味のない指標。インターバル練習で計算した心拍ドリフトには意味がありません。もっともらしく見える間違った数字より、数字がないほうがましです。
良い記録は要約するだけではありません。何が信頼でき、何ができないかを示し、AI が砂の上で推論しないようにします。
3 分で AI にセッションを分析させるには
- ファイルを書き出す:ウォッチや Strava から。いちばん情報が多い FIT 形式がおすすめです。
- gps-digest にドロップする。計算はすべてブラウザ内で行われ、ファイルがサーバーに送られることはありません。
- 記録をコピーする:ChatGPT、Gemini、Claude に貼り付けて、質問します。
AI にどんな質問をすればいいか
良い質問は、本当の疑問から生まれます。構造化した記録と相性の良い例を 5 つ紹介します。
- 「気温が同じくらいの日で比べて、先月より心拍ドリフトは大きくなっている?」
- 「火曜日のレップは目標ペースを守れていた?次は何を直せばいい?」
- 「この練習量で、6 週間後に 10km で 45 分を切れそう?」
- 「ジョグとポイント練習の配分は、フルマラソンに向けて適切?」
- 「今の疲労度を考えて、来週のメニューを組んで。」
よくある質問
ChatGPT は FIT や TCX のファイルを直接読めますか?
開くことはできますが、うまく活用はできません。FIT はバイナリ形式なので AI はスクリプトでデコードする必要があり、1 時間分の TCX は約 533,000 トークンになります。どちらの場合も、分析は一部の抜粋か、分析に向かない生データに基づくことになります。構造化した記録なら、どちらの問題も解決します。
Garmin Connect から CSV を書き出すだけではだめですか?
その書き出しは基本的にラップの情報だけだからです。心拍ドリフトも、センサーの判定も、レップごとの詳細も含まれていません。ペースの計算方法など、誤解を防ぐための前提情報もありません。
データはどこかに送信されますか?
いいえ。ファイルはブラウザ内で読み込まれ、分析されます。端末の外に出るのは、あなた自身が AI にコピーした記録だけで、GPS 座標は初期設定で削除されます。
AI はコーチの代わりになりますか?
なりませんし、それが目的でもありません。AI は説明し、比較し、提案しますが、あなたが走る姿を見ることも、痛みを感じることもできません。けがや深刻な不安があるときは、専門家の意見を優先してください。
ChatGPT、Gemini、Claude のどれを使えばいいですか?
3 つとも構造化した記録を分析できます。本当の違いは、契約プランのコンテキストウィンドウの大きさです。1 セッションあたり数千トークンの記録なら、どれを選ぶかはもう問題になりません。
出典
- 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。
- サイズとトークン数の測定:gps-digest のテスト。再現可能で、公開ソースコードに含まれています。