re:Invent 2024: AWSのAerospace&Satelliteチームが語る生成AIを活用した衛星画像分析の向上
はじめに
海外の様々な講演を日本語記事に書き起こすことで、隠れた良質な情報をもっと身近なものに。そんなコンセプトで進める本企画で今回取り上げるプレゼンテーションはこちら!
📖 AWS re:Invent 2024 - Getting better image analysis with generative AI (AES307)
この動画では、Prompt Engineeringの重要性と実践的な活用方法について解説しています。Aerospace and SatelliteチームのChris WiseとJoy Fashnachtが、プロンプトの構造化における重要な要素であるコンテキスト、指示、制約について詳しく説明します。特に衛星画像分析の具体例を用いて、Amazon BedrockのAnthropic Claude 3.5 Sonnetモデルによる画像分析のデモを行い、プロンプトの改良によって分析結果がどのように向上するかを実演しています。Western Australiaの沿岸部の衛星画像を使用した高潮予測の事例を通じて、プロンプトの構造化が分析精度に与える影響を具体的に示しています。
※ 画像をクリックすると、動画中の該当シーンに遷移します。
re:Invent 2024関連の書き起こし記事については、こちらのSpreadsheet に情報をまとめています。合わせてご確認ください!
本編
Prompt Engineeringの重要性とその要素
みなさん、こんにちは。Chris Wiseと申します。Aerospace and SatelliteチームのSolutions Architect Managerを務めております。本日は、Principal Solutions ArchitectのJoy Fashnachtと一緒に登壇させていただきます。まず最初に質問させていただきたいのですが、みなさん2024年のGenerative AIカンファレンス、通称re:inventを楽しんでいらっしゃいますでしょうか?
本日は特にPrompt Engineeringに焦点を当ててお話しさせていただきます。画像分析を行う際には、プロンプトの構造化が非常に重要になってきます。Amazon Bedrockを使用して、画像分析からより良いインサイトを得る方法についてご紹介します。Joyが実際にデモを通して、これらの画像分析テクニックと、ビジネスで活用できるより良い結果を得る方法をお見せします。 そして最後に、時間が許せば質疑応答の時間を設けたいと思います。もし時間が足りない場合は、セッション後に会場の端で皆様のご質問にお答えさせていただきたいと思います。
Prompt Engineeringは、Generative AIについて話す際にあまり深く掘り下げられることのないトピックですが、実はほぼすべてのGenerative AIモデルとの対話において重要な鍵となります。特に、Prompt Engineeringがなぜ大きな違いを生むのか。そもそもPrompt Engineeringとは何なのか。プロンプトの異なる要素とは何なのか。会場の皆様の中で、プロンプトの異なる要素について詳しくご存知の方はいらっしゃいますか?これは幅広いトピックで、多くの方々が深く理解していない分野です。今日は、コンテキストとリファインメントのバランスに関するベストプラクティスについてお話しします。
もう少し詳しく見ていきましょう。まず、プロンプトの異なる要素とは何でしょうか?第一に、コンテキストがあります。これはビジネスケース、つまりこのAIモデルで何を行うのか、モデルがあなたのビジネスや業務について知っておくべきことは何かということです。これはタスクの舞台設定となる背景情報や関連する制約を含みます。制約について触れましたが、具体的な制約については別のセクションで扱います。ここでお話しする制約は、コンテキストに焦点を当てた制約のことです。最も単純な例は役割です - モデルはビジネスアナリストの視点で見るべきか、マーケティングの視点で見るべきか、というようなデータの見方についてです。
指示とは、AIに実行してほしい具体的なタスクのことです - あなたが求めることを正確に伝える、明確で簡潔な指示です。そして最後に、実際の制約です。返答してほしいデータセットのサイズに制限はありますか? プロンプトのその他の要素として注目すべきは、入力データ、具体的な指標、トポロジー、分析してほしいあらゆる種類のデータ分析です。そして最後に出力フォーマット - すべての出力データを整理して、しっかりとしたコンテキストのある応答を得るための方法です。
この作業には試行錯誤が伴いますが、具体例の1つを見てみましょう。CosmosNet Solutionsという衛星インターネットに特化したパイオニア企業のTechnology Copywriterとしての文脈から始まります - これがモデルが受け取るコンテキストの始まりです。どのような指示を出しているのでしょうか?潜在的な顧客にGlobalConnectサービスを紹介するプロモーションブログを書くことです。入力データには、私たちの会社の情報、サービスの内容、月額料金が含まれています。これらはすべて、モデルが考慮に入れる入力データにつながっています。出力フォーマットとしては、注目を集める見出し、導入段落、そして3〜4つの箇条書きが必要です。最後に、制約条件は何でしょうか?Technology Copywriterとして専門用語を避け、プロフェッショナルかつ魅力的なトーンで400〜500語のブログ記事を書くことです。
テキストベースの概念からこれを見ることで、画像分析に移行し、画像分析やGeospatial LLMsにどのように適用するかを見ていく際に、テキストベースのLLMsと画像分析の間の類似点が見えてきます。ここで、画像分析の主要な例を説明してくれるJoyにバトンを渡したいと思います。ありがとう、Chris。皆さん、こんにちは。再度お集まりいただき、ありがとうございます。Chrisが言ったように、皆さんがre:inventを楽しんでいることを願っています。私はJoyと申しまして、ChrisとともにAirspaceおよびSatelliteチームのPrincipal Solutions Architectを務めています。
Amazon Bedrockを用いた衛星画像分析のデモンストレーション
私が作成したデモでは衛星画像を使用し、Bedrockを使用したプロンプトの改良によって、衛星画像という私たちにとって非常に興味深い分野において、どのように結果を改善できるかをお見せします。デモに入る前に、AWSのGenerative AIスタックにおける現状について少し説明させていただきます。私たちは顧客に提供するスタックを3つのレベルに分けており、お客様が独自のGenerative AIアプリケーションを構築する際の柔軟性を提供しています。最下層レベルには、大規模なモデルを独自にトレーニングする際に使用するハードウェアとトレーニングインスタンスがあります。
Swamiのキーノートを聞く機会がなかったので、このスライドをすぐに更新する必要があるような発表があったのではないかと思います。しかし一般的に、これが私たちが提供しているものです。ハードウェアスタックである下層、中層、そして上層があり、上層にはAmazon Qのようなビジネスアプリケーションがあり、Amazon Q Developerを使用してGenerative AIの機能が一般ユーザーに提供されています。このデモで私たちが位置しており、質問するためのプロンプトの改良方法の利点をお見せしたいのは、Bedrockがある中層です。
このデモセットでは、Anthropic Claude 3.5 Sonnetを使用しています。Claude 3.5はテキストと画像の両方を扱える非常に興味深いモデルで、画像を入力してClaude 3.5にテキストを生成させることができます。例えば、画像の説明を生成させるなど、様々な業界で適用可能な興味深いユースケースです。マーケティングの観点からすると、この種の画像分析と画像生成の大きな用途の1つは、カタログ画像の入力です。例えば、インターネットで猫のおもちゃを販売している場合、すべての猫のおもちゃの写真を入力して、製品を販売するためのウェブサイトに使用する説明文を生成するよう依頼することができます。これらが異なるモデルとClaudeの進化を示しており、このデモでは3.5 Sonnetを使用しました。
それでは、実際にどのように動作するのかデモをお見せしましょう。最後にQRコードをお見せしますが、このデモのコードはAmazon Bedrockのサンプル用オープンソースGitHubリポジトリにあります。私が作ったものは全てこのGitHubリポジトリのものを使用しています。こちらが、そのリポジトリから構築したアプリケーションです。Claude Sonnetを使った画像分析を行うシンプルなものです。特定のモデルを指定できるようになっており、今回は3.5を使用しています。
それではデモを始めていきましょう。まず画像を選択するのですが、これが基本的なケースになります。プロンプトは一切与えず、モデルにこの画像を分析させて、それが何なのかを説明させます。私たちは宇宙航空や衛星の分野に携わっているため、衛星画像やそのデータ、そしてそれらのデータをより効率的に処理する方法について多く考えています。これは西オーストラリアの海岸を撮影した高解像度の衛星画像です。
モデルは画像の内容について非常に詳細な応答を返してきました。JSONフォーマットで出力されていますが、これは私が指定したわけではなく、モデルが自然とそうしたものです。様々な情報を提供してくれています:これは沿岸部である、植生がある、いくつかの建造物が見える、道路がある、といった具合です。これは興味深いですが、おそらく私たちが必要としているものとは少し違います。そこで、プロンプトを改良してみましょう。モデルに背景情報を与えてみましょう。上部の領域にいくつかの情報を入力します。まず文脈を与え、モデルに衛星画像アナリストとしての役割を与え、具体的な指示を出します。西オーストラリアのこの沿岸部を分析するよう指示します。
目的も設定します:この地域で10フィートの高潮が発生した場合に起こりうることを予測してほしいのです。テキストは5段落に制限し、都市計画のユースケースとして、この地域を訪れたことのない人でもこの衛星画像から情報が得られるようにしたいと思います。
では、どのように機能するか見てみましょう。先ほどの文脈と指示を含めてプロンプトを改良し、上部の領域に貼り付けました。ボックスに直接コピー&ペーストしただけです。そして、Claude Sonnet 3.5にこの画像を分析させます。比較のために同じ画像を使用しています。まだJSONデータで出力されていますが、それを止めるよう指示はしていません。しかし今度は特定の役割を持って応答しています。衛星画像アナリストとして5段落の分析を提供し、この地域で10フィートの高潮が発生した場合に起こりうることを予測しています。都市計画担当者が考慮すべき点についても言及しています。基本的に私の指示に従い、その役割とペルソナを引き受けて、指示通りの出力を提供してくれました。
しかし、いくつかの制約があります。モデルは単なる衛星画像だけで正確な予測を行うべきではありません。なぜなら、Digital Elevation Modelと呼ばれるものがあるからです。これは基本的に地形図で、例えばそこが崖であることを把握でき、10フィートのStorm Surgeが実際には影響を及ぼさないかもしれないことを知ることができます。そこでモデルにいくつかの制約を設けることにしました。また、衛星画像分析において、特定の衛星画像に大量の雲がかかっている場合、その有用性が低下することも分かっています。そのため、予測やモデルの画像からテキストへの分析の精度が少し落ちてしまいます。
モデルには雲量がどの程度あるかを教えてもらいたいと思います。雲量が25%を超える場合は警告を出し、この画像を人間が確認して、本当に正確な予測をしているかどうかを確認する必要があることを伝えます。ただし、25%以上の雲量があっても停止せずに、5つのパラグラフを出力し、人間による確認が必要だという警告だけを出すように指示することもできます。
では、3回目のデモを実行してみましょう。これが2回目のPromptの改良です。役割を設定し、指示を与え、そして制約を設けました。Chrisの例で気に入っているのは、「constraints」という言葉でモデルに伝えたことです。これにより、モデルはこの分析で何をすべきか、何をすべきでないかのガードレールを理解します。同じWestern Australiaの沿岸の画像を使って、もう一度モデルを実行してみましょう。今回もJSONを出力し、5つのパラグラフを生成しましたが、とても興味深い結果が出ました。今回は画像の40〜50%が雲に覆われていると教えてくれました。実際の雲量の推定を非常に正確に行えたことに感心しました。
以上が私たちが用意した3つのデモです。皆さんのために2つのQRコードをご用意しました。1つ目のQRコードは、Chrisが発表した内容をさらに詳しく説明したドキュメントにつながります。Prompt Engineeringやそのさまざまなスタイルに関する科学的な研究論文が多数あり、それらを読んで自分のユースケースに適用することができます。入力、役割、制約についてもっと学ぶことができます。下のQRコードは、今日お見せした画像分析を含むBedrockのサンプルコードが大量に掲載されているGitHubに接続します。
個人的には、昨日発表されたNovaという新しいモデルでこれを試してみたいと思っています。Novaでどのような結果が出るか見てみたいので、これが次の宿題プロジェクトになりそうです。時間がほぼ来ましたので、質問がある方はこちら側にいらしてください。私たちはAirspaceとSatelliteチームです。AWS Industriesパビリオンのパブリックセクターの看板の下にブースがありますので、私たちのチームに会いに来てください。最後に、皆様の貴重なお時間とご注目いただき、ありがとうございました。セッションのアンケートにご協力いただき、私たちの発表についてのフィードバックをお願いいたします。ありがとうございました。
※ こちらの記事は Amazon Bedrock を利用することで全て自動で作成しています。
※ 生成AI記事によるインターネット汚染の懸念を踏まえ、本記事ではセッション動画を情報量をほぼ変化させずに文字と画像に変換することで、できるだけオリジナルコンテンツそのものの価値を維持しつつ、多言語でのAccessibilityやGooglabilityを高められればと考えています。
Discussion