📖

re:Invent 2024: Arccos GolfがAWSとGenerative AIでゴルフを変革

に公開

はじめに

海外の様々な講演を日本語記事に書き起こすことで、隠れた良質な情報をもっと身近なものに。そんなコンセプトで進める本企画で今回取り上げるプレゼンテーションはこちら!

📖 AWS re:Invent 2024 - How Arccos Golf is using AWS and generative AI to transform the game (SPT211)

この動画では、Arccos GolfのVP Software EngineeringのRyan Johnsonが、ゴルフ分析におけるGenerative AIの活用について語っています。10億を超えるショットデータを保有するArccosは、Amazon Bedrockを活用してゴルファーのパフォーマンス分析を行い、初年度で平均5ストロークのスコア改善を実現しています。LLMsを活用したDriveレポートの開発では、XMLフォーマットの採用やチャートの活用、分析とサマリーの分離など、具体的な改善手法が紹介されています。さらに、世界38,000以上のゴルフコースに対応する必要がある中で、ピンシートの写真からLLMsを使ってホールの位置データを抽出する革新的な取り組みについても解説しています。
https://www.youtube.com/watch?v=qt7SwZy434I
※ 動画から自動生成した記事になります。誤字脱字や誤った内容が記載される可能性がありますので、正確な情報は動画本編をご覧ください。
※ 画像をクリックすると、動画中の該当シーンに遷移します。

re:Invent 2024関連の書き起こし記事については、こちらのSpreadsheet に情報をまとめています。合わせてご確認ください!

本編

Arccos Golfの紹介とゴルフ分析の課題

Thumbnail 0

昼食後にお集まりいただき、ありがとうございます。また、私の人生で初めて、チームの多くが私を避けるために使うのとは逆に、私の話を聞きたいとヘッドフォンを着けてくださった皆様に感謝申し上げます。私はArccos GolfのVP Software Engineeringを務めるRyan Johnsonです。Arccos Golfをご存知ない方もいらっしゃるかもしれませんが、これから私たちの事業についてご説明させていただきます。本日は、ゴルフ分析の分野でGenerative AIを活用して、ゴルフをよりアクセスしやすいスポーツにし、プレーヤーの上達を支援する取り組みについてお話しできることを嬉しく思います。

Thumbnail 50

ここで、ゴルファーだと自認される方はいらっしゃいますか?わあ、かなりの人数ですね。素晴らしいです。このような観客の皆様なら、予定していたよりも少し専門的なゴルフの話もできそうですね。もちろん、技術的な内容も含めてお話しします。この質問をさせていただいたのは、ゴルフ分析の話をしながらも、これらの教訓がゴルフやスポーツに限らず、ビジネス全般にも広く適用できると考えているからです。データエンジニアやアナリストとしての私たちの仕事の本質に立ち返ってみると、それは持っているデータを活用して影響を与え、変化を生み出すことです。

Arccos Golfにとって、それはゴルファーのゴルフ上達を支援することです。皆様のビジネスでは異なるかもしれません - より良いビジネス判断を下すことかもしれませんし、顧客のための製品改善かもしれません。しかし、もしデータを集めてS3に保存し、分析を行っても、誰もそれを理解できなければ、すべては無駄になってしまいます。そのため、私たちは原点に立ち返り、どのように影響力を持ち、変化を生み出すかを目標とすべきなのです。

Thumbnail 120

Arccos Golfをご存じない方のために説明させていただくと、私たちはゴルフトラッキングアプリを提供しています。お客様はクラブ用のセンサーを入手し、スマートフォンとペアリングして、ゴルフラウンドをプレーします。そのラウンドから、コース上でのパフォーマンス、ショット、そして関連する多くのメタデータを追跡し、何が上手くいって、どこを改善する必要があるかを伝えることができます。この事業を7〜9年続けており、10億を超えるショットデータを保有しています - おそらくアマチュアゴルフデータとしては最大規模のデータセットです。このデータを実際のパフォーマンス向上に効果的に活用してきました。私たちのお客様は平均して初年度に5ストロークのスコア改善を達成しています。ゴルファーの方ならご理解いただけると思いますが、これはかなり大きな進歩です。中・高Handicapの方なら5ストローク、低Handicapの方でもゲームの大きな割合を占める改善が見られます。

Thumbnail 180

これが私たちのこれまでの取り組みですが、将来できることの多くがGenerative AIによって大きく変革されようとしています。これから話す内容を整理させていただきます。まず、分析全般の課題について説明し、特にゴルフやスポーツ分析についてより詳しく見ていきます。次に、Amazon Bedrockを使用してユーザーのゲーム理解を支援するために構築した製品についてお話しします。そして、その開発から得られた教訓について、皆様のビジネスにも活用していただけることを願ってご紹介します。最後に、私が特に興味を持っている話題として、データ収集、分析、そしてデータコミュニケーションというサイクルにLLMsをどのように組み込んで影響力を高められるかについてお話しします。これはLLMsの活用方法として、まだあまり注目されていない分野だと考えています。

ゴルフ分析における数学の重要性とLLMsの可能性

Thumbnail 230

まずは分析における課題から始めましょう。母がよく言っていたのですが、人は4文字の言葉が嫌いなんです。この場合、その4文字の言葉とは「数学」です。人は数学が嫌いなんです。これは当社のData Analytics責任者であるLou Stagnerに向けられたツイート(TwitterなのかXなのか、どちらでも構いませんが)です:「あなたは数学が全てだと思っているけど、数学はしばしば間違っている。ゴルフボールは電卓で打つわけじゃないんだ」。数学に対する人々の嫌悪感を、これ以上うまく表現できる言葉はないでしょう。確かに、ゴルフボールを実際に打つのに電卓は使いませんが、数学は信じられないほど有用なのです。

Thumbnail 280

これは、ゴルフ分析でもビジネス分析でも、私たちが直面している全般的な抵抗感です。人々は分析や数字に苦手意識を持っているのです。そこには一般的な嫌悪感があります。なぜでしょうか?そして、なぜ特に私たちの領域であるゴルフ分析において課題となるのでしょうか?それは、人々は一次元的な分析なら理解できる - つまり、理解しやすい - という事実に集約されると思います。アナリストや専門家のように深く掘り下げるほどの時間も情熱も持ち合わせていないのです。でも基本的なことは理解できます。ただし、問題はその基本的なことが価値の低いものだということです。

人々には、アナリストと同じレベルで詳細に踏み込むための時間も情熱もありません。ゴルフの分野では、フェアウェイ率やパット数といった一般的な指標があります。正直に言って、これらは古くさい分析で、もはやあまり良い指標とは言えません。実際、これらは証明力の低い指標なのです。例えばパット数を見てみましょう。パット数は実は、アプローチやショートゲームの出来具合と相関関係があります。ある程度はパッティングの統計を示すかもしれませんが、実際にはピンまでの距離が短いアプローチショットの精度をより多く反映しているのです。でも人々にはわかりやすい。「今ラウンドは35パットだった」とか、私の場合なら「75パットだった」と簡単に言えるからです。

Thumbnail 350

分析において私たちが目指すべき方向性、そして実際にハードコアな分析側で進んでいる方向は、多次元的なものです。非常に証明力が高いのですが、理解するのが難しい。ゴルフでいえば、それがStrokes Gainedです。ここにいる方で、Strokes Gainedを知っている人はいますか?ほとんどがゴルファーの中でたった3人だけですね。まさにこれが私の言いたいポイントです。これはゴルフゲームを分析する最良の方法ですが、非常に複雑で理解しにくいものでもあります。簡単に説明すると、Strokes Gainedはショットごとの基準で、ツアープレーヤーやスクラッチゴルファー、あるいは比較したい対象に対して、自分のパフォーマンスがどうだったかを判断できる指標です。

しかし、それ以上に多くの要素があり、理解するのは簡単ではありません。プラス0.2というのは実際にはとても良いStrokes Gainedスコアで、比較対象グループに対して0.2ストローク獲得したことを意味します。ホールでプラス2というスコアは、ダブルボギーを意味し、それはあまり良くありません。Strokes Gainedの基本的なスケールは、一般のゴルファーにとって直感に反するものなのです。おそらく、ほとんどの人はSlopeやRating、Handicapについて正確に説明できないと思いますが、これらは実はゴルフのパフォーマンスを測る適切な方法なのです。

Thumbnail 450

これは私たちがゴルフで、そしておそらくスポーツ全般、さらにはビジネスの分野でも直面している根本的な課題です。この課題を解決する方法は、LLMsやGenerative AI以外にもあります。私たちは、素晴らしいゴルファーであり人間でもあるEduardo Moriとパートナーシップを結びました。彼はEuropean World Tourのプレイヤーですが、訓練を受けたエンジニアでもあり、世界トップ10に入るゴルファーのほとんどのSports Analyticsを担当しています。これは素晴らしく機能しています - Eduardoと彼のチームがこの問題を解決していますが、非常に手間がかかり、コストも高くなります。素晴らしい結果を生み出すものの、スケールしません。Eduardoは一人しかいませんし、すべての顧客からのリクエストに応えることはできません。

ここで、LLMsがこれをある程度民主化する明確な解決策となります。しかし、単にGenerative AIのためのGenerative AIを提供したいわけではありません。私が大好きで深く敬意を持っているあるアプリからの引用をご紹介します。彼らは本当に革新的なことをしていて、私たちArccosは、彼らが先に似たようなコンセプトを発表してくれたおかげで、そこから学ぶことができて幸運でした。明らかに生成された内容を引用したくはありません - それは誰の役にも立ちません。少しでも不正確なGenerative AIは使いたくありません。これは彼らを批判するためではなく、私たちがユーザー向けのコアプロダクトで対処したかった問題を強調するために言及しています。

LLMを活用したゴルフ分析の実践と今後の展望

Thumbnail 550

これがArccos Driveレポートです。皆さんはゴルファーなので、ティーショットがいかに重要かご存知でしょう。また、おそらくクラブに最もお金をかけるのもこの部分です。私のように1、2年ごとに新しいDriverを購入して、ゲームを改善しようとするかもしれません。また、これは最も楽しい部分でもあります - 誰もが長いドライブを打つことが大好きです。より分析的なレベルでは、これはゲームの重要な部分です。ティーショットが悪ければ、そのホールの残りの部分で苦戦することになります。そのため、うまくいっていることを伝えることで、ゴルファーのドライビングを改善できれば、意味のある影響を与えることができます。私たちの目標はデータで影響を与えることですが、Driverに関する多くのデータと、そのデータを分析する多くの方法があります。どのようにLLMを使ってそれを要約し、彼らの注意を集中させるのでしょうか?

Thumbnail 600

これがプロダクトレベルの話ですが、私はエンジニアなので、エンジニアリングレベルで行っていることと、私たちが自身に課している制約についてお話ししましょう。

Thumbnail 660

大企業ではなくStartupとして、私たちはこれを迅速かつ効率的に行い、できるだけ早く顧客に提供したいと考えています。数値入力から学びたい - 良い数値入力が良いテキスト出力を生み出すのです。LLMsは計算機ではありません。数字で考えるのではなく、トークンで考えます。これは全く異なるものです。私たちは素早くProof of Conceptを行いたいので、Fine Tuningのようなことは行わない可能性があります。パーソナライズし、繰り返しを避け、ユーザーに焦点を当てたいと考えています。名前は伏せますが、先ほど言及した他のアプリの例に戻ると、単に情報を再現するだけのことは避けたいと考えています。

Thumbnail 680

驚くようなことは言いませんが、うまくいって目標を達成できました。ただし、これで発表が終わりというわけではありません。私たちがどこで苦労したのかをお話しして、皆さんにもこれらの教訓を学んでいただき、ご自身のアプリケーションに活かしていただければと思います。 最初に私たちを驚かせたのは、今から考えれば予測できたことなのですが、レポートのオーケストレーション層に予想以上の時間を費やしたことです。LLMを使用しない従来の方法であれば、おそらく1つのスクリプトで最後にPDFを出力するだけで済んだでしょう。しかし、よく考えてみると、LLMがアウトプットを生成するためには、そのレポートに含まれる他のすべてのデータが必要なのです。

ここではRAGを意図的に使用しませんでした。なぜなら、LLMにユーザーと同じものを見せて、プレゼンテーションの適切な部分に注意を向けさせたかったからです。LLMを実行する前に、テキスト以外の部分を含むレポート全体を生成する必要がありました。Step Functionsを使用してLambdaを実行し、他のデータを生成しましたが、これは私たちにとってうまく機能しました。技術的には50通りくらいの方法があるでしょうが、これが私たちが選んだ方法です。そしてそれらのデータをすべてLLMに送り、テキストを生成し、最後にすべてを組み合わせて配信用のレポートを作成します。ただ、当初の想定以上に、この部分に時間がかかってしまいました。

Thumbnail 750

もう1つ多くの時間を費やしたのが、モデルの選択とプロンプトの最適化です。これは現時点でLLMや生成AIを使用する上で避けて通れない基本的な作業です。Amazon Bedrockの利点の1つを強調したいのですが、異なるモデルをテストして、アウトプットの品質とコストのバランスを見つけることができました。大きなモデルが必要なのか、小さなモデルで十分なのか。通常は会話に1つの文字列を入れるだけでテストできます。私たちは異なるモデルをテストし、人間にテキストを読んで評価してもらいました。その後、異なるモデルのアウトプットをモデルに送り、0から100でスコアリングさせることで、スケールでの評価を実現しました。

Thumbnail 840

最終的に、新しいバージョンがリリースされた時点で最新のCloudバージョンを使用することにしました。これもBedrockの利点で、最新モデルに変更するだけですべてがシームレスに動作しました。また、プロンプトジェネレーターの使用をお勧めします。私たちはAnthropicのものを使用しています。プロンプト生成は一種の暗黒の技芸であり科学ですが、LLMを活用することで実際にパフォーマンスが向上しました。特に専門のプロンプトエンジニアではなく、ジェネラリストの場合に効果的でした。 さらに、私たちを驚かせたパフォーマンス改善のポイントがいくつかあります。データフォーマットが本当に重要だったのです。YAML、JSON、XMLをテストしましたが、特に先月と今月のパフォーマンスを比較する場合など、XMLが最も良い結果を示しました。

LLMは比較に苦労していましたが、前月と翌月のブロックをすべてレポートにXMLで入れることで、最も良い結果が得られました。LLMのために「3マイナス2は1で、変化は1」というような計算を試みましたが、全く効果がありませんでした。実際には、XMLフォーマットを使用することが最大の改善につながりました。また、チャートやグラフを入れることで効果があったことも驚きでした。LLMはそれらのチャートを生成した数値データをすべて持っていたのですが、実際にチャートを入れることでアウトプットの品質が大幅に向上したのです。

そして技術面で最後に行ったのは、分析とサマリーを分離したことです。これには少なくとも2つの方法があります:LLMにデータを与えて要約し、150文字程度のテキストを生成する方法と、まずLLMにデータを与えて制約のない分析を行い、その後でゴルファーのモチベーションを高めるようなブランドに合った150文字の素晴らしいサマリーを生成する方法です。私たちにとっては、単純にAからBへ直接行くよりも、後者の方がはるかに成功した方法でした。

Thumbnail 940

AIがユーザーに誤ったデータを提供するという他の人々の経験に話を戻しましょう。驚くかもしれませんが、これはユーザーにとって本当によくないことで、LLMは修正なしではこの問題に特に陥りやすいのです。最初は出力されるデータの正確性が非常に一貫性を欠いていたため、プロジェクトの中止も検討したほどでした。私たちはこれを、同じモデルの中で別の会話として最後にもう一つのプロンプトを設定し、テキスト出力を評価して同じデータを与えることで解決しました。最初のモデルがより多くの単語を出力し、その後「これは正しいですか?」と尋ねると、JSONで正確かどうか(true/false)を出力し、不正確な場合は修正して新しいテキストを提供します。これによって、プロジェクト中止の危機から、正確性に関する懸念が完全になくなるまでに改善されました。他のプレゼンテーションでもこのLLMをジャッジとして使用する概念を目にするかもしれませんが、私たちにとってはうまく機能し、正当で素晴らしいものでした。これが要約についての説明です。

Thumbnail 1030

Thumbnail 1040

次は、私が本当にワクワクしていることについてお話ししましょう。ただし、セクシーなGenerative AIのようにデモンストレーションが派手ではないため、あまり耳にすることがないかもしれません。 ゴルフに話を戻しましょう。ゴルファーが知っているように、ゴルフは無限の複雑さを持つスポーツです。世界中に38,000以上のコースがあり、それぞれが独自のレイアウトを持ち、206カ国でそれぞれがユニークな存在です。これらのコースには少なくとも544,000のホールがあります。各ホールには複数のティーボックスがあり、ざっと計算すると約160万のティーボックスがあります。そして、あらゆるスキルレベルのゴルファーが約8,700万人います。大規模なゴルフアプリを運営するなら、これら全てに対応しなければなりません。Saint Helena島(これは調べてみたのですが、大洋の真ん中にあります)のゴルフコースにも対応しなければなりません。誰かがそこでプレーしようとする場合、アプリが機能しないという言い訳は通用しません。これは私たちがアプリの開始当初から取り組んできた課題であり、LLMを使ってさらに多くのことができることに私はワクワクしています。

Thumbnail 1100

ご存知の通り、ゴルフの目的はとてもシンプルです:できるだけ少ないストロークでボールをホールに入れることです。ゴルフの分析を行う際の課題は、その日のホールの正確な位置を知ることです。一部のコースでは毎日位置が変わり、日々移動する目標となります。分析を行う上で、これはゴルファーに正確な情報を提供するための重要な要素です。確実な情報源は存在しませんが、一部のゴルフコースではクラブハウスでゴルファー向けにピンシートを印刷しています。これらは標準フォーマットではなく、様々なベンダーが作成しています。しかし、私たちはLLM(基本的なFoundational Modelとプロンプト)を使用して、ピンシートの写真から、ホールの下からの距離、左からの距離、グリーンの深さのデータを取得することができました。そのデータを使って、ユーザーのためにピンを正確な位置に配置することができるのです。

これは素晴らしい技術です。LLMがなければ手に負えなかったでしょう。確かに、Computer Visionに何十万ドルもかけて、独自のアルゴリズムを書き、データセットを用意することもできたでしょう。しかし、実際にはトレーニングは全く必要なく、ピンシートの写真を撮り、プロンプトを調整するだけで欲しいデータが得られました。人間では解決できなかったでしょう。なぜなら、写真を撮ってからデータを入力するまでの待ち時間が、ティーオフしようとしているゴルファーにとって長すぎるからです。これこそがLLMの価値があり、さらなる探求の余地がある部分だと考えており、私たちがここで行っていることにワクワクしています。皆さんも、より良いデータの取得、データの分析、またはユーザーへのフィードバックなどで、何か面白いことをされているのではないでしょうか。

Thumbnail 1230

ご来場ありがとうございました。頑張ってください。ぜひGolfシミュレーターを体験してみてください - PGAツアープロと自分のプレーを比較することができますよ。私のように、グリーンに乗せるのも難しいような会社で一番下手なゴルファーかもしれませんが、とても楽しい体験になると思います。Q&Aの時間は取れませんが、これから30-45分ほどGolfエリアにいますので、ゴルフデータについて語り合いたい方はぜひお声がけください。皆様、お時間をいただき、ありがとうございました。カンファレンスの残りもお楽しみください。


※ こちらの記事は Amazon Bedrock を利用することで全て自動で作成しています。
※ 生成AI記事によるインターネット汚染の懸念を踏まえ、本記事ではセッション動画を情報量をほぼ変化させずに文字と画像に変換することで、できるだけオリジナルコンテンツそのものの価値を維持しつつ、多言語でのAccessibilityやGooglabilityを高められればと考えています。

Discussion