re:Invent 2024: SageMaker Studioで加速するMLワークフロー
はじめに
海外の様々な講演を日本語記事に書き起こすことで、隠れた良質な情報をもっと身近なものに。そんなコンセプトで進める本企画で今回取り上げるプレゼンテーションはこちら!
📖 AWS re:Invent 2024 - Accelerate ML workflows with Amazon SageMaker Studio (AIM355)
この動画では、Amazon SageMakerのSenior ManagerのSumit ThakurとPiyush Kadam、そしてGoDaddyのPrincipal AI ArchitectのAnkush Prasadが、SageMaker Studioを用いたAIワークフローの加速について解説しています。SageMaker Studioの統合インターフェースを通じて、データの準備からモデルの評価、チューニング、デプロイまでの一連の流れを効率化できる機能を紹介しています。特にFoundation Modelのカスタマイズに焦点を当て、RAGやFine-tuningなどの手法を用いた具体的な実装方法を示しています。また、GoDaddyの事例として、AIドメイン検索システムの構築をSageMaker Studioで実現し、20%のコスト削減を達成した実績も共有されています。さらに、MLflow統合やAmazon Qによるコード支援など、最新の開発者支援機能についても詳しく解説しています。
※ 画像をクリックすると、動画中の該当シーンに遷移します。
re:Invent 2024関連の書き起こし記事については、こちらのSpreadsheet に情報をまとめています。合わせてご確認ください!
本編
Amazon SageMaker StudioによるエンドツーエンドのAIワークフロー
ご参加いただき、ありがとうございます。Amazon SageMakerのSenior Manager of Product Managementを務めるSumit Thakurです。本日は、Amazon SageMakerのSenior Product ManagerであるPiyush Kadamと、GoDaddyのPrincipal AI ArchitectであるAnkush Prasadをお迎えしています。本日は、SageMaker StudioがどのようにしてAIワークフローを加速できるかについて、皆様とご一緒に見ていきたいと思います。
Studioについてお話する前に、企業におけるGenerative AI導入に関する重要なトレンドをいくつかご紹介したいと思います。Generative AIは、多くの業界において、カスタマーエクスペリエンスを革新し、生産性を向上させ、業務効率を高めています。そのため、多くの組織が新しいAIソリューションの創出に向けて投資を加速させているのは、当然の流れと言えるでしょう。そして、これらのソリューションの多くは、複数のモデルを基盤として構築されています。
組織は複数のモデルプロバイダーを評価し、多くの場合、タスクに最適なモデルを選択しています。これらのモデルをカスタマイズする際、組織はゼロからモデルを事前学習させるのではなく、RAGやFine-tuningなどの費用対効果の高い手法を選択しています。つまり、お客様のAIワークフローの構築を支援するためには、最先端のFoundation Modelを幅広く提供し、それらのモデルの選択、カスタマイズ、評価、デプロイ、モニタリングを支援するツールを提供する必要があるということです。
これこそが、私たちがSageMaker Studioを構築した理由です。SageMaker Studioは、データサイエンティストや開発者がデータの準備からモデルの評価、チューニング、そして最終的な本番環境へのデプロイとモニタリングまで、エンドツーエンドのAIワークフローを構築できる統合インターフェースです。本日は、AIワークフローの各ステップをサポートするStudioの目的特化型ツールについてご説明していきます。
SageMaker Studioのデータ準備と探索機能
まず、データの発見と準備から始めましょう。StudioはAmazon DataZoneのビジネスデータカタログと完全に統合されています。ビジネスデータカタログを使用することで、組織全体のデータパブリッシャーが高品質なデータセットを公開・共有でき、データ管理者がガバナンスのガードレールを設定し、ビジネスアナリストやマシンラーニング開発者などのデータ消費者が、これらのデータセットを発見、サブスクライブ、活用して洞察を得ることができます。
データワーカーは、Studioでこれらのインサイトを作成するために、Jupiter Notebookのようなツールをよく使用します。私たちは、Jupiter Notebookにポリグロット機能を搭載することで大幅に性能を向上させました。これにより、同じNotebook内でSQLコードとPythonコードの両方を記述することができます。データ処理ワークフローの準備が完了したら、Studio NotebookをEMR Serverlessエンドポイントに接続して、基盤となるインフラを管理することなく、分散Spark処理ジョブをすぐに実行できます。
具体的な操作方法をご説明しましょう。画面に表示されているのは、SageMaker Studioの画面です。左側のパネルには、SageMaker Studio内のすべてのツールが表示されています。まず、Asset Data Catalogにアクセスすると、すべてのデータとアセットを確認できます。パブリッシャー、作成日、必要なデータ属性などに基づいてデータアセットを検索することができます。
目的のデータセットが見つかったら、Studio上から直接そのデータセットをポリグロットStudio Notebookで開くことができます。私たちは、Notebookのためのデータブラウザ拡張機能を開発し、これをJupiterオープンソースにも提供しています。このデータブラウザ拡張機能を使用すると、テーブル、カラム、データ型、説明などのデータセットスキーマを閲覧し、メインのNotebookセルでSQLクエリの作成を始めることができます。
ポリグロットNotebookではSQLを第一級のサポート対象としており、コードの自動補完、構文のハイライト表示など、プログラミング言語として期待されるすべての機能が利用できます。上部の簡単なクリック操作で、SQLクエリの結果をPandasデータフレームに変換でき、Notebook内で直接結果を分析することができます。
データ処理スクリプトの開発が完了したら、Studioに戻ってEMR Serverlessエンドポイントを選択できます。その後、NotebookをアタッチしてApache Livyを使用してリモートでSparkジョブを実行します。これにより、基盤となるクラスターを管理することなく、NotebookをSparkエンドポイントに接続してSparkジョブを実行することができます。 データの準備が完了したら、次のステップは、タスクに適したFoundation Modelを選択することです。そのために
Foundation Modelの選択とファインチューニング
SageMaker Studioには、JumpStartモデルハブが搭載されており、Hugging Face、Meta、Mistral AI、AI21、Stability AIなどの著名なプロバイダーから300以上のオープンソースおよび商用Foundation Modelにアクセスできます。モデルを選択し、そのタスクに対する効果を評価するため、すぐにテストを実行できます。評価方法として、精度、有害性、意味的堅牢性、バイアスなどの様々な側面をテストするための組み込みの評価アルゴリズムとデータセットを使用する自動評価を選択できます。また、独自のAI専門家チームを導入するか、Amazonがサポートするワークフォースの中から選択して、人間参加型の評価を行うこともできます。これは特に、自社のブランドボイスやトーンを維持するようなユースケースでモデルの応答を調整する際に非常に役立ちます。
具体的な使い方をご説明します。SageMaker Studioに戻り、JumpStartで様々なモデルプロバイダーからのモデルを閲覧します。例えば、Hugging Faceを使いたい場合は、モデルを選択し、JumpStartハブ上で直接評価タスクを設定できます。自動評価を設定する場合は、モデルを評価したいタスクを選択します。例えば、質問応答タスク、テキスト生成タスク、オープンエンドなテキスト生成などです。タスクを選択し、精度などの評価したい側面を選び、組み込みデータセットの中から1つを選んで評価ジョブを開始します。この評価スコアを使用して、ユースケースに対して十分な性能を発揮しているモデル候補を絞り込むことができます。
これらの候補モデルが選定できたら、次のステップは精度を向上させるために、これらのモデルを独自のデータでチューニングすることです。SageMaker Studioでは、JumpStartモデルハブから直接モデルのチューニングが簡単に行えます。モデルハブのホームページにあるサンプルノートブックを使用してSageMakerでモデルをチューニングするためのサンプルコードを入手するか、ビジュアルインターフェースを使用することができます。ビジュアルインターフェースでは、トレーニングデータセットのS3バケットを指定するだけで、Studioが選択したモデルアーキテクチャに基づいて、すべてのモデルハイパーパラメータに適切なデフォルト値を自動的に設定します。これにより、ワークロードのコストパフォーマンスを気にすることなく、すぐにモデルのFine-tuningを開始できます。
モデルのチューニングは通常、反復的なプロセスです。異なるモデル、データセット、ハイパーパラメータを試し、これらの実験を行う際には、進捗を測定し、後で実験を再現できるように、時系列で追跡したいと考えます。そのために、Studioには完全マネージド型のMLflowが統合されています。完全マネージド型のMLflow統合により、MLflowトラッキングサーバーの基盤インフラストラクチャを管理する必要がありません。使い慣れたMLflow SDKとMLflowウェブアプリを使用して、モデルの追跡、比較、可視化、評価を開始し、さらにデプロイメントのステップに進むためにSageMakerモデルレジストリにモデルバージョンを登録することもできます。
MLflowへのアクセス方法は非常に簡単です。Studio内のアプリケーションハブに移動し、そこからMLflowを別のブラウザウィンドウでフルページアプリケーションとして起動し、SageMaker Studioインスタンスの横で実験の追跡と比較を開始できます。これらの機能については、後ほどプレゼンテーションでデモをお見せする予定です。さて、十分な精度で動作する適切なモデル候補が見つかったら、それをデプロイしたいと思います。SageMakerでのデプロイは簡単です。いくつかのオプションがあります。SageMaker Python SDKを使用することができます。これには組み込みのモデルビルダーとモデルデプロイユーティリティが付属しており、ほとんどの一般的なオープンソースモデルを2ステップでデプロイできます。このユーティリティは、これらのオープンソースモデルに最適化された推論コンテナを自動的に選択し、エンドポイントをデプロイします。また、最近リリースされたInference Optimization Toolkitを使用して、より高度な最適化レシピを実装することもできます。これには、小規模なドラフトモデルを使用してトークンを事前生成し、Foundation Modelからのレスポンス遅延を削減する投機的デコーディングなどの技術が含まれています。
モデルの重みをクリッピングして圧縮することで、メモリ効率を高めてレイテンシーを削減できるModel Quantizationを使用できます。また、ターゲットハードウェア向けにモデルをコンパイルして性能を向上させることもできます。皆さんにはInference Optimization Toolkitを試していただき、フィードバックをいただければと思います。
MLflowとSageMaker Studioによるモデル管理と最適化
モデルをデプロイしたら、それで終わりというわけではありません。データ準備からモデルチューニング、評価、デプロイまでの開発したすべてのコンポーネントを効率的なワークフローとして接続し、自動化してモデルを再トレーニングできるようにする必要があります。ワークフローの自動化は簡単です。SageMakerのPython SDKに付属のRemote Decoratorユーティリティを使用すれば、ワークフローの各ステップをステップデコレータで注釈付けすることで、Pythonの関数を自動的に検出してSageMaker Pipelineに組み込むことができます。
また、Visual Drag and Drop Designerも利用できます。Visual Drag and Drop Designerは、ポイント&クリックのインターフェースです。Studioを開いてDesignerにアクセスすると、ビルトインのパイプラインステップのリポジトリが見つかります。ステップを選択してビジュアルキャンバスにドラッグし、DAGとして接続することでパイプラインを作成できます。パイプラインの個々のステップもカスタマイズ可能です。例えば、評価ステップでは、独自のコード、ランタイムコンテナ、データを提供し、環境変数を設定してステップの実行を完全にカスタマイズすることができます。
本日は、MLワークフローの様々なステップについてお話ししました。もちろん、こうした複雑なワークフローを構築する際には、サポートが必要です。そのために、Amazon Qを活用したStudioのAIアシスタンスを導入しました。これは今年初めのNew York Summitで発表されました。Amazon Qアシスタンスを使用すると、SageMakerの機能の使い方について質問したり、サンプルコードを生成したり、コードの実行エラーをStudio上で直接トラブルシューティングしたりできます。Amazon Qだけでなく、プライベートなAPIのインラインアシスタンスを得るために、プライベートなコードリポジトリでトレーニングした独自のFoundation Modelを導入することもできます。
私たちはJupyterLab向けの拡張機能として開発しました。これは、Jupyterコミュニティに還元したオープンソースプロジェクトの1つで、Jupyter AIと呼ばれています。これはSageMakerチームによって開発されました。Jupyter AIを使用すると、ノートブックの拡張機能パネルからチャットウィンドウを開き、ノートブックの横で質問を始めることができます。モデルが生成したサンプルコードは、シンプルなクリックで本体のノートブックにコピーして実行できます。また、ノートブックセル内のコードをハイライトして、チャットウィンドウにコードの説明、デバッグ、最適化を依頼することもできます。
SageMaker Studioの統合機能とパートナーアプリケーション
この体験は、Studio内のJupyter Notebookだけでなく、Code-OSS(Visual Studio Codeのオープンソース版)をベースとしたCode Editor IDEを含む、Studioでサポートされている完全マネージド型IDEのスイートでも利用可能です。本日は、SageMaker Studioで利用できる機械学習ワークフローの各ステップに特化して構築されたさまざまなツールについてお話ししました。しかし、お客様からはさらなるニーズが寄せられています。彼らは、SageMakerと統合したい独自のツールを持っているとおっしゃっています。これらのツールの統合は、しばしば面倒な作業となります。まず、組織のセキュリティとコンプライアンスの基準を満たすために、これらのツールを評価、査定、認証する必要があります。その後、これらのツールをデプロイし、構築、スケーリング、管理、運用する必要があり、オペレーターにとって多くの付加的な作業が発生します。もう一つの選択肢は、ツールのSaaS版を使用することですが、その場合、データを組織のガバナンス境界外のサードパーティアプリケーションに移動する必要があるため、データのセキュリティを妥協しなければなりません。
お客様からより良いソリューションを求める声が寄せられていました。そこで昨日、新機能であるAmazon SageMakerのパートナーAIアプリを発表しました。主要なAWSパートナーが提供する業界をリードする生成AIとML開発アプリケーションに、プライベートな環境でアクセスできるようになります。
これらのアプリケーションは、お客様のSageMaker開発環境で安全に実行されます。順不同で4つのパートナーとともにローンチします。最初のパートナーは、人気の実験管理プラットフォームを開発したComet です。Cometを使用すると、実験の追跡、比較、可視化、モデルの評価が可能です。次のパートナーは、モデル評価のための人気のオープンソースパッケージを開発したDeepChecksです。DeepChecksを使用することで、モデルを本番環境にデプロイする前に、継続的なデバッグ、品質保証、コンプライアンス認証のベストプラクティスを確立できます。
モデルが本番環境に移行した後は、Fiddler AIプラットフォームを使用してモニタリングできます。FiddlerはAI可観測性の分野でリーダー的存在であり、Fiddlerのプラットフォームを使用することで、データドリフトや精度の低下などのさまざまな問題をモニタリングし、自動的なアクションを取ることができます。そして最後に、Lakeraでは、低レイテンシーのAIアプリケーションファイアウォールを提供し、プロンプトインジェクション攻撃や機密データの意図しない漏洩など、さまざまなセキュリティ脅威から生成AIアプリケーションを保護します。
これら4つのパートナーアプリはすべて、SageMakerで完全マネージド型アプリケーションとして提供されます。つまり、SageMakerがこれらのアプリケーションのスケーリング、アップグレード、パッチ適用、運用を担当します。さらに、これらのアプリケーションはパブリックインターネットから完全に切り離された、プライベートで安全なVPCで実行されます。これは、データが外部に流出したり、知的財産が他所に送信されたりするリスクが一切なく、SageMaker内の安全なガバナンスの枠組みの中に留まり続けることを意味します。これらのアプリはSageMaker Studioにネイティブに統合されているため、複数の異なるインターフェースを切り替える必要はありません。SageMaker内での自然な開発ワークフローの一部として、これらのアプリを発見し使用することができます。
このように、すべてのIDEやMLflow、その他のアプリケーションにアクセスできるアプリギャラリーが表示されます。パートナーアプリにもアクセスできます。まず、パートナーアプリを有効にすることができます。例えばComet MLの場合、ユーザーはプラットフォーム管理者にこのアプリの有効化をリクエストすることができます。アプリが有効化されると、 起動可能な状態になります。そこでアプリのURLが提供され、SageMaker Studioの隣で完全な機能を持つアプリケーションとしてワンクリックで起動できるボタンが表示されます。
本日お話しした全ての機能、すべてのAIツールは、 SageMaker Studioだけでなく、2日前に発表された新しいSageMaker Unified Studioでも利用可能です。Unified Studioでは、SageMaker StudioのすべてのAI機能と、最高クラスのデータ分析機能および生成AIツールを単一のインターフェースに統合しており、これらの機能は本日からUnified Studioですべてご利用いただけます。
ここで、これらの機能のデモをご覧いただくために、Piyushをステージにお招きしたいと思います。ありがとうございます。素晴らしい概要説明をありがとうございます。手を挙げていただきたいのですが、LLMをデプロイして使用したことがある方は何人いらっしゃいますか?LLMをファインチューニングしたことがある方は?あまり手が挙がっていませんね。でも、このセッションが終わる頃には、皆さんが自分自身のFoundation Modelをカスタマイズする自信を持てるようになることを願っています。それでは始めましょう。
SageMaker Studioを活用したエンドツーエンドのAIワークフローデモ
今日のデモでは、 SageMakerが提供するモデルのカスタマイズに関するエンドツーエンドの機能をすべて探索できるよう、非常にシンプルなユースケースを取り上げてみましょう。あなたがFintechカンパニーの開発者またはデータサイエンティストで、画面に表示されているような質問の回答を探している金融アナリストがいるとします。例えば、アナリストは毎日「2020年にテクノロジー以外のS&P 500企業が強調した3つの主要リスクは何でしたか?」というような質問をします。これは特定のセクターの、特定の時期に関する非常に具体的な質問です。アナリストが作成する回答は、簡潔で実行可能であり、実際の定量的データに基づいている必要があります。
現在、アナリストはどのようにしてこのような要約を作成しているのでしょうか?それは骨の折れるプロセスです。EDGARデータベースを通じて公開されているSECの膨大な文書を読み込む必要があります。アナリストが特定のセクターに注目している場合、1社の文書を分析するのに6〜12時間かかり、四半期ごとに10〜20社を調査しています。これは、文書の読み込み、解析、要約、そして広範なチームとの共有に最低でも60〜120時間を費やすことを意味します。
もし、Generative AIアプリケーションを使って、これらの情報密度の高い文書を自動的に解析し、トレンドや戦略、リスクなどの重要な洞察を抽出し、SECデータベースに新しい10-K、10-Q、S-1などのフォームが追加されるたびに一貫した出力を提供できたらどうでしょうか?私たちは、まさにそれを実現しようとしています。金融分野に特化し、金融アナリストに向けてこれらの要約を効果的に提供できる独自のモデルを構築していきます。
それでは始めましょう。 こちらがSageMaker Studioのホームページです。ご存知かもしれませんが、ここには始めるための素晴らしいリソースが多数用意されています。コードサンプルやブログ、その他のマーケティング資料、そして実際のユースケースを見つけることができます。独自のモデルを構築する前に、すでに利用可能なものを探ってみましょう。先ほど画面で見た質問に対して、既存のFoundation Modelがどのように応答するか確認してみましょう。
左側にJumpStartというタブがあります。これは、オープンソースやサードパーティプロバイダーのモデルが集まる中心的なモデルハブです。例えば、Hugging Face hub、Meta hub、Cohereのモデルなどがあります。 今日のデモでは、Metaのオープンソースモデルに焦点を当てましょう。 ご存知の方もいるかもしれませんが、Metaは異なるバージョンとモデルサイズを持つ一連のLlamaモデルを公開しています。最新のMeta Llama 3.2を見てみましょう。これらのモデルは1億パラメータから900億パラメータまでの範囲があります。その中間くらいのモデル、30億パラメータのモデルを選んでみましょう。
ここには多くの重要な詳細が表示されています。少し拡大してみましょう。例えば、ライセンス条項や、 標準的なベンチマークに対するモデルのパフォーマンスが確認できます。異なるLlamaモデルのバージョンを横並びで比較することができます。最後の方には、モデルのホスティングやFine-tuningに適したハードウェアタイプの推奨事項も記載されています。
では、このモデルを試してみたいので、デプロイをクリックします。 SageMakerのSDKとUXの優れている点は、エンドユーザーにとって低レベルの複雑さを抽象化してくれることです。例えば、どのコンテナを使用するか、どのパッケージをアップロードする必要があるか、どの標準パラメータを設定するかなどの詳細は、すべて自動的に処理されます。同時に、上級ビルダーの場合は、SDKを通じてこれらの低レベル設定にすべてアクセスすることができます。ここでは、インスタンスタイプはデフォルトのままにして、詳細設定もそのままにしておき、デプロイをクリックします。
デプロイメントにより推論エンドポイントが立ち上がります。エンドポイントを立ち上げるプロセスは1分から最大10分程度かかることがあります。これは、モデルのサイズ、モデルの配置場所、推論インスタンスタイプによって大きく異なります。私の場合は、これらの点を考慮してエンドポイントをセットアップしました。
SageMaker Studioのインターフェースでは、このセクションですべてのエンドポイントを確認できます。セッションの直前に、「aim355-llama-base」というテストエンドポイントを設定しました。ここでは、クエリパラメータを設定しています。モデルに対して、2020年にこれらの企業が強調した3つの主要リスクは何かを尋ねようとしています。単なる要約ではなく、具体的な定量的データを提供してほしいと考えています。市場レポートなどの他のソースに頼るのではなく、実際の10-Kフォームを分析したいと思います。また、回答はできるだけ簡潔にしてほしいと考えています。
invoke endpointファンクションを使用した単一のAPIコールで、ベースのLlamaモデルにそのクエリを送信できます。これがモデルからの応答です。リスクの概要は適切に示されていますが、定量的なデータの一部が欠けているため、具体性に欠けます。最後の方の応答はかなり的外れなので、この時点ではこのモデルを信頼することはできません。私のユースケースに特化するようにカスタマイズする必要があります。そこで、このモデルのファインチューニングを検討することにしました。
大まかに言って、モデルをファインチューニング、つまりカスタマイズする方法は2つあります。Retrieval Augmented Generation(RAG)を使用するか、モデルをファインチューニングするかです。RAGは、頻繁に変更される大量のデータがあり、モデルが厳密な形式で応答することを期待せず、モデルの重みを本質的に更新しない場合に有用です。一方、ファインチューニングでは、大規模な初期データセットがある場合、モデルの特定のレイヤーを学習させることで、モデルを根本的に更新できます。
この例では、ファインチューニングに焦点を当て、そのプロセスのいくつかのステップをお見せします。実際にモデルをファインチューニングする前に、モデルが理解できるように、データを一貫した形式で準備する必要があります。ここでは、S&P 500企業の関連するSECフォームをEDGARデータベースからダウンロードし、ローカルのJupyterLab環境に保存しています。また、トレーニングジョブがデータファイルを取得するS3バケットにもコピーをアップロードしています。
そのようなドキュメントの一例をお見せしましょう。これは数年前のAmazonの 10-Kドキュメントです。ご覧の通り、これは非構造化データで、先ほど申し上げたように、わずか数文の洞察にまとめるには、かなり密度の高いドキュメントです。
構造化データがある場合、例えばS3バケットで更新されているデータがある場合、JupyterLabの優れている点は、異なるデータや異なるリポジトリを見るために別のウィンドウを行き来する必要がないことです。このData Discoveryタブを使用すると、S3やRedshift、Snowflakeなどのデータソースに接続して、テーブルを直接閲覧・クエリすることができます。私はすでにS3とJupyterLabの間の接続を設定しています。S3バケットはGlue Crawlerを使用してスクレイピングされており、ここでクエリノートブックをクリックするだけです。すると、サンプルクエリが自動的にノートブックに入力され、実行すると、S3に保存されている企業名や損益計算書、従業員数などのデータのサブセットが表示されます。さて、モデルの探索から始めて、Fine-tuningデータセットの設定が完了し、次のステップは実際のFine-tuningジョブです。
JupyterLab Explorerに戻って、LLMカスタマイズノートブックを開きましょう。先ほどSageMaker UIを使用してモデルを簡単にデプロイできることを見ましたが、SDKを使用したFine-tuningも同様に簡単です。JumpStartからモデルIDを指定し、3つの異なるFine-tuningジョブを並行して設定しています。これらのFine-tuningジョブは、ハイパーパラメータのみが異なります。各モデルのパフォーマンスを評価し、どれを推論エンドポイントにデプロイするかについて、十分な情報に基づいた判断ができるよう、ハイパーパラメータの複数のバリエーションを試すことは常に良い習慣です。
このコードでは、各Fine-tuningジョブをMLflowにログ記録しています。MLflowはデータサイエンティストの間で人気のある実験ツールで、すべてのトレーニングやFine-tuningジョブの統合ビューを提供し、本番環境にデプロイする前にどのモデルが期待通りのパフォーマンスを発揮しているかを評価できます。Fine-tuningジョブは、モデルのサイズに応じて数時間から数日かかる場合があります。セッションの前に、いくつかのFine-tuningジョブを実行しており、それらはMLflowにログ記録されています。これらのモデルのFine-tuningジョブを並べて比較するために、すべてを選択して比較ボタンをクリックします。
ご覧のように、それらのFine-tuningジョブのハイパーパラメータと、すべてのモデルのパフォーマンスメトリクスが並べて表示されます。現在はDPSメトリクスを表示していますが、必要に応じて他の種類の可視化も確認できます。3つのFine-tuningの実行を評価した結果、2番目の実行が十分良好だと思います。メトリクスが私の期待に合致しているからです。それでは、モデルリポジトリでそのモデルを探してみましょう。
SageMaker Studioの環境に戻ると、トレーニングされた、あるいはファインチューニングされたすべてのモデルが表示されます。Model Registryでは、モデルの保存だけでなく、バージョン管理も可能です。これは、同じベースモデルの複数のイテレーションがある場合や、異なるユーザーが同じモデルセットに貢献している場合に特に便利で、系統管理や監査のための履歴を維持することができます。この特定のバージョンをクリックすると、ステータスが承認済みであることがわかります。Model Registryには組み込みのライフサイクル管理機能があるため、本番環境へのデプロイが上級職員や広範なチームによって管理される大規模な組織では、パフォーマンスの低いモデルや有害なコンテンツを生成するモデルが本番環境に到達しないようにするためのゲート機構を実装できます。
先ほど、オープンソースフレームワークであるMLflowを使った実験をデモンストレーションしましたが、パートナーアプリケーションとの統合も発表しました。Comet MLは、ワンクリックでセットアップできる、もう1つの人気のある実験フレームワークです。簡単に開いてみましょう。この特定のファインチューニングジョブはComet MLでログを取っていなかったため、データはあまりありませんが、この機能がどのように動作するかのイメージをつかむことができます。
ここで話題を変えて、モデルのページに戻り、先ほどファインチューニングしたモデルを確認してみましょう。モデルバージョン1をチェックして、もう一度このモデルをデプロイしたいと思います。このモデルが実際にエンドポイントのリストに表示されるまでには数分かかるので、私は事前にLlamaファインチューニング推論エンドポイントとしてセットアップしておきました。これで、ベースモデルのエンドポイントとファインチューニングされたモデルのエンドポイントの両方がセットアップされました。
ここで、多くの時間を費やした後、実際にレスポンスが改善され、ファインチューニング後の期待が満たされているかどうかを確認したいと思います。そこで、JupyterLab環境に切り替えます。ここでも、先ほどと同じクエリを使用します。ただし今回は、2つの異なるエンドポイントに送信します。これがベースモデル用のinvoke endpoint APIコールで、こちらがファインチューニングされたモデル用のinvoke endpoint APIです。
このセルを実行すると、以下のような応答が得られます。左側は予想通り、先ほどの探索フェーズで見たのと同じ応答です。右側はファインチューニングされたモデルからの新しい応答で、かなり改善されています。3つのリスクが強調されているだけでなく、定量的なデータも含まれています。さらに、いくつかの例も示されており、以前のモデルのように冗長な出力になっていません。このように、アナリストがこれらの難しい質問に答え、以前よりもはるかに少ない時間で作業できるように支援する、ファインチューニングされたモデルを稼働させるという目標を達成することができました。
ここでは1つの質問と回答についてのみモデルをテストしましたが、他にも試すべきバリエーションがあるかもしれませんし、実行したい分析が他にもあるかもしれません。これらすべてを手動で実行することは難しいかもしれないので、従来のソフトウェア開発のパラダイムでは、大規模にモデルのストレステストを行いたいところです。そのために、Amazon SageMaker Studioには評価機能が組み込まれています。
特定のモデルと特定のタスクがある場合、今回の例では文書の要約のようなタスクを行っているわけですが、もう一度Studioの環境に移動して、モデル評価をクリックし、LLMを選択します。自動評価を行うか、人間を介在させる評価を行うかのオプションがあります。モデルの応答をデータワーカーに送信して、thumbs upかthumbs downで評価してもらうことも可能です。
自動評価の部分を見てみましょう。まず最初にモデルを選択する必要があります。これらのモデルの中から1つを選び、タスクタイプを選択します。Question Answering、Classification、Text Summarizationなどのタスクタイプがあります。最初のものを選んでみましょう。Text Summarizationの中では、異なる側面でモデルをスコアリングするオプションがあります。ここには精度、有害性、意味的堅牢性があります。今回は精度に絞ることにして、デフォルトのデータセットも提供されています。評価用のデータセットが手元にない場合は、Studioで利用可能なものを使用するか、カスタムデータセットをS3にアップロードしてここにリンクすることもできます。
その他の情報を追加すると - もちろんデフォルト値がたくさんありますが、自由にオーバーライドすることができます - 大規模な評価を実行して、このモデルのパフォーマンスを確認することができます。また、最近発表されたパートナーエコシステムの統合により、代替手段も用意されています。例えば、Deepchecksはモデルの評価とモニタリングのための人気のあるフレームワークです。これがそのダッシュボードの例です。
大規模なモデルの応答のスコアを表示し、各側面でのスコアを示してくれます。例えば、モデルがセキュリティリスクとなる個人識別情報を漏洩していないか、有害なコンテンツを提供していないかなどを示しています。Deepchecksのようなツールを使用することで、このような問題を早期に発見することができます。
少し前に戻りますが、これらのサンプルNotebookのいずれかを選んで、例えばこのサンプルコードを見てみましょう。同僚からこのコードを渡されたものの、あまり詳しくない場合を想定してみましょう。このコードを更新したり保守したりする際に、Amazon Qの組み込み統合機能を使用して生成的なアシスタンスを受けることができます。コードのこのセクションを選択して右クリックすると、Generative AIオプションが表示され、「コードの説明」をクリックすると、左側にAmazon Qがコードの各セクションの内容を詳しく説明してくれます。これらはAmazon Qサービスからのリアルタイムのレスポンスで、最後には各セクションの目的と主なメリットについての包括的なサマリーも提供されます。つまり、環境を離れたり、コードを別のサービスにコピー&ペーストしたりする必要がないわけです。
SageMakerを使用したこの一連の流れでは、データ準備からモデルの探索、Fine-tuning、モデルのデプロイ、そして評価まで、多くのステップを経てきました。今回はLlama 3.2モデルを使用しましたが、例えば1ヶ月後に新しいプロバイダーが登場し、より優れたLLMを提供したとしましょう。同様のステップを再度実行する必要がありますが、そのフレームワークを手動やコードで何度も構築したくはありません。モデルやデータセットが変更されたときに、チームの誰もが、あるいはあなた自身が必要に応じて実行できるように、ワークフロー全体を自動化する方法が必要です。
そこで登場するのがSageMaker Pipelinesです。これはStudio内部に組み込まれたネイティブのMLワークフローサービスで、SDKまたはビジュアルなドラッグ&ドロップエディタを使用して、これらのエンドツーエンドのワークフローを構築できます。このセッションの前に、私たちが今まで行ってきた journey用のMLワークフローを作成しました。現在はビジュアルエディタビューを表示しています。SECデータの準備から始まり、Llamaモデルのfine-tuning、パッケージング、デプロイ、評価を行いました。モデルがエラー状態に陥った場合にワークフローを終了するステップや、モデルを登録するステップもあります。このワークフローは200ステップまで拡張可能で、場合によってはそれ以上も可能です。また、これらのワークフローを同時に何千回も実行できます。
このワークフローを修正して、別のモデル、例えばミクスチャーモデル用のfine-tuningステップを1つ追加したい場合は、ここにドラッグして、すべての設定を行い、パイプラインの残りの部分に接続するだけです。今はすべての必要な設定を入力していないためエラーが表示されています。これは、ワークフローを改善・更新し続ける際に役立つ便利な機能です。実行すると、バックグラウンドで動作し続け、リアルタイムで観察する必要はありません。何か問題が発生した場合には通知されます。これが、SageMaker Studioを使用したカスタマイズからデプロイメントまでのMLライフサイクル全体を通じた journey の概要でした。次は、Ankushに登壇してもらい、彼の組織での興味深いユースケースをご紹介します。ありがとうございました。
GoDaddyのミッションとAI駆動型ドメイン検索の概要
本日は、GoDaddyでAIをどのように加速させているかについてお話しします。GoDaddyのカスタマーエクスペリエンスを変革するためにAIをどのように活用しているかを探る前に、私たちの根本的な原動力に焦点を当ててみましょう。私たちは皆、起業家です。ビジネスを始めるにせよ、パーソナルブランドを立ち上げるにせよ、プロジェクトやミッションをリードするにせよ、インパクトを生み出そうとする原動力は私たち全員の中にあります。GoDaddyの目的は、その原動力に火をつけることです。この目的は、「起業家の可能性を世界中で開花させ、すべての人にとってより包括的な機会を創出する」という私たちのミッションステートメントに込められています。なぜなら、私たちはすべてのアイデアが飛躍する価値があり、すべてのビジョンが成功するためのサポートを受けるに値すると信じているからです。
私たちのビジョンステートメントは、さらに先を見据えています。私たちは起業家の方々にツールを提供するだけでなく、彼らが大きな成功を収め、オンライン上で影響力のある存在感を築けるような道筋を切り開いています。世界は変化し続けており、私たちのミッションとビジョンはイノベーションへの取り組みを通じて実現されています。今日のデジタル世界で起業家の方々を本当に支援するには、適切なデジタルツールを提供する必要があります。そこで登場するのがGoDaddy Airoです。これは起業家の journey のあらゆる段階をサポートする統合型AIプラットフォームです。Airoでは、アイデンティティ、プレゼンス、コマースという3つの重要な領域でAIの力を活用しています。
すべてはアイデンティティから始まります。AiroのAIドメイン検索エンジンは、起業家の方々に関連性の高いドメイン名の候補を提案し、独自性があり目立つアイデンティティを確保できるようにします。ドメインに加えて、ロゴ作成からウェブサイトのコンテンツ生成まで、ブランド構築のためのAIツールも提供しています。これにより、起業家の方々は一貫性があり影響力のあるオンラインプレゼンスを作り出すことができます。さらに、AI駆動のコマースツールにより、ブランド作りから成長までの道のりをシンプルにしています。
本日は、AIドメイン検索を支えるアーキテクチャに焦点を当てていきます。このシステムの中核には、Amazon SageMakerとAWSに支えられた堅牢なMLインフラストラクチャがあり、起業家の方々に関連性が高くパーソナライズされたデータ駆動型のドメイン名候補を提供する重要な役割を担っています。AIドメイン検索は、MLサイエンティスト、エンジニア、プロダクトチームの円滑な協力の成果です。この部門横断的なアプローチにより、私たちは顧客の期待を先取りし、統一されたユーザー体験を継続的に提供することができています。
SageMakerに支えられた集中型AIプラットフォームにより、データセットの準備から、モデルのトレーニング、モデル開発まで、MLライフサイクルのあらゆる段階を効率化しています。AWSは、膨大な顧客データと市場データを処理する私たちのデータインフラストラクチャにスケーラビリティと信頼性を提供しています。リアルタイムの顧客シグナルは、顧客ニーズを理解し、リアルタイムで対応できるようMLモデルを改良する上で重要な役割を果たしています。
GoDaddy AIドメインの journey は、イノベーションと顧客インパクトの物語です。画面でご覧いただけるように、私たちは基本的な提案を超えて、好みのTLD、人気のキーワード、市場トレンドなどのデータを活用し、今日の顧客のニーズに真に適合した、より個人化された会話調のドメイン名候補を提供しています。顧客プロファイルと慎重に選別されたデータに基づいて、10億以上の潜在的なドメイン名を処理してきました。
これまでの議論を踏まえて、リアルタイム配信に最適化された高品質なデータセットを作成してきました。ドメイン名の提案について話を進めていきましょう。この課題について何がわかっているでしょうか?完璧なドメイン名を見つけることはブランド構築に不可欠ですが、今日の混雑した市場ではますます困難になっています。人気のあるドメイン名はすでに取得されており、起業家は限られた選択肢に悩まされています。私たちの目標は、関連性が高く、パーソナライズされた、そして実際に利用可能なドメイン名を提供できるソリューションを作ることでした。
GoDaddyのAIドメイン検索:技術的詳細と今後の展望
この課題に対して、私たちはGoDaddyの独自ドメインデータセットを使用してLLMモデルをファインチューニングすることで対応しました。数千億のパラメータを持つ大規模な汎用モデルで問題に取り組むのではなく、ドメイン発見に特化した小規模な目的特化型モデルに焦点を当てました。当時利用可能だったLlama-7Bモデルは、このタスクに完璧にフィットしていることが証明されました。前述の通り、リアルタイムシグナルは私たちにとって非常に重要です。顧客の過去の選好、過去の検索、地域のトレンドなどのリアルタイムシグナルをシステムに組み込み始めました。これにより、ドメインの提案を完全に顧客の好みに合わせることができ、市場競争力があるだけでなく、顧客のニーズにも合致することを確実にしています。
結果は明白です。AIドメイン検索は従来のディープラーニングモデルを上回る性能を示し、一般的なソリューションと比較してエンゲージメントの向上を実現しています。最終的に、このパイプライン全体は起業家にとって何を意味するのでしょうか?課題に立ち返ると、彼らは実際に完璧なドメインを見つけ、自信を持ってブランドを構築することができ、夢を現実にすることがこれまで以上に身近になったということです。では、これらがどのように連携して機能するのか、実際の動きを見てみましょう。
下から上へと見ていくと、まずGoDaddyの独自ドメイン検索データに焦点を当てたデータレイヤーから始まります。EMR、AthenaなどのAWSサービスを使用して、この生データを構造化された意味のある特徴に処理し、バッチトレーニング用にFeature StoreとS3に、リアルタイム推論用にキャッシュに保存します。これは、ドメインの提案をミリ秒単位で即座に配信できるようにするために重要です。私たちのファインチューニングプロセスは、下のレイヤーから浮上してきたGoDaddyの独自データでカスタマイズされたSageMaker基盤モデルを活用しています。これは、顧客に高品質で的確な、パーソナライズされたドメイン名の提案を提供できる最も重要なレイヤーです。
ファインチューニング後、モデルはSageMakerエンドポイントを通じて、リアルタイムで提案を配信するか、他のプロセスを通じて後で提供します。SageMaker MLflowが3つのレイヤーすべてを接続し、自動インスタンススケーリングやシャットダウンなどのSageMaker Studioの機能により、GoDaddyの複数のチームが最大20%のコスト削減を達成することができました。さらに、SageMaker Studioは開発パイプラインのあらゆる段階を効率化する統合環境を提供します。私たちは今後の展開として、AWS SageMakerチームと協力して、APIを通じたモデルデプロイメントの効率化や、より高速で生成的なAI機能の実現など、顧客にとってさらなる価値を引き出すことに取り組んでいます。また、顧客に正確な更新を提供するために、データアクセスに最適化された大容量データストアの組み込みにも注力しています。SageMaker AutoMLは、モデルデプロイメントを加速し、私たちのイノベーションを促進するため、現在検討を進めているところです。
また、データ探索を強化しAIの効率性を高めるため、AWS Data Lake、Redshift、EMRとの統合にも注力しています。AI Domain Search やその他のソリューションを通じて得た貴重な知見を皆様と共有し、皆様のAIの取り組みを加速させていただきたいと思います。
SageMaker Studioのようなプラットフォームにツールを集約することで、ワークフローの効率化とオーケストレーションの自動化が実現され、イノベーションが促進されます。自動化による効率的なリソース管理は、コストを抑えながらAIをスケールアップするのに役立ちます。チーム間で知見を共有し学び合える、オープンで実験的な文化を育むことで、さらなるイノベーションが生まれます。AIは常に進化しているので、変化する顧客ニーズに合わせて継続的に改善・適応・対応していく必要があります。
まとめと質疑応答
GoDaddyでは、皆様がAIの旅を始めるにあたり、起業家精神をAIで後押しすることに全力で取り組んでいます。適切なプラットフォーム、適切なプラクティス、そして適切なマインドセットがあれば、皆様も顧客に対して非常に大きな価値を提供することができます。一緒にAIの力を活用して、目的のある意味のあるソリューションを作り上げていきましょう。ありがとうございました。それでは、SumitとPiyushをステージにお呼びしたいと思います。
本日はご参加いただき、ありがとうございます。質疑応答の時間を少し設けております。この時間内にご質問できなかった方は、セッション終了後も外でお答えいたしますので、どうぞご遠慮なくご質問ください。フィードバックもありがとうございます。アプリでぜひこのセッションについてのフィードバックをお寄せください。皆様にどのようなコンテンツを提供すべきか理解する上で、大変参考になります。お手数ですが、このセッションの評価とフィードバックをお願いいたします。ありがとうございました。
※ こちらの記事は Amazon Bedrock を利用することで全て自動で作成しています。
※ 生成AI記事によるインターネット汚染の懸念を踏まえ、本記事ではセッション動画を情報量をほぼ変化させずに文字と画像に変換することで、できるだけオリジナルコンテンツそのものの価値を維持しつつ、多言語でのAccessibilityやGooglabilityを高められればと考えています。
Discussion