MEGAZONEブログ
Use gen AI to query space imagery APIs with natural language prompts
自然言語プロンプトで宇宙画像APIをクエリするためにgen AIを使用
Pulisher : Cloud Technology Center イ・ヨンジン
Description : APIとGen. AIの一般的な内容紹介と、それに必要なFoundation ModelとPrompt Engineeringを直接体験できるHands-onセッション
はじめに
Aerospace & Satellite分野でLLMを活用し、自然言語の方法でAPIをどのように実装できるかを学ぶセッションでした。
セッションの概要紹介
APIとGen. AI、そしてAWSのGen. AIの一般的な内容について学び、それに必要なFoundation ModelとPrompt Engineeringを直接体験できるHands-onで構成されていました。
従来のAPIは「脆弱性(brittle)」と「多くのドキュメント(heavy documentation)」が必要なのに対し、Gen.AIによるAPI活用は「自然言語プロンプトエンジニアリング」と「LangChain」を活用することでAPIを簡素化することができます。AIによるAPI活用は「自然言語プロンプトエンジニアリング」と「LangChain」を活用することで、APIを簡素化することができます。
Gen. AIは、新しいコンテンツやアイデアを生み出し、大量のデータを事前学習した大型モデルであるFoundation Modelによって駆動されます。
Gen. AIの応用分野には、カスタマーエクスペリエンスの向上(チャットボット、仮想アシスタントなど)、従業員の生産性向上(インタラクティブ検索、要約など)、創造性とコンテンツ作成(ライティング、メディア、デザインなど)、ビジネスオペレーションの改善(ドキュメント処理、プロセス最適化、サイバーセキュリティなど)があります。
Gen. AIを宇宙分野に適用することで、衛星画像分析の改善、合成データを使用したトレーニングデータセット、これによる物体識別の改善、そして衛星画像セットに対する自然言語クエリと結果値の向上などのメリットを得ることができます。
Amazon SageMaker JumpStartは、事前にトレーニングされたモデルとアルゴリズムを含む機械学習ハブであり、ユーザーインターフェイスとAPIベースのシングルクリックによるモデル配布、例題を含むノートブック、および組織内でモデルとノートブックを共有してコラボレーションする機能を提供します。
Amazon Bedrockの動作原理は4つのステップで構成されています。
1.基礎モデルの選択
2.プロンプトエンジニアリング
3.追加のAPIまたはデータ接続
4.実行
このプロセスでは、作業を分解して調整し、ユーザーに代わってAPI呼び出しを実行し、完全に管理されたインフラストラクチャを提供します。
Amazon SageMaker JumpStartは、事前にトレーニングされたモデルとアルゴリズムを含む機械学習ハブであり、ユーザーインターフェイスとAPIベースのシングルクリックによるモデル配布、例題を含むノートブック、および組織内でモデルとノートブックを共有してコラボレーションする機能を提供します。
Amazon SageMaker JumpStartの使用方法は3つのステップで構成されています。
1.モデルプロバイダーが提供する基礎モデルを選択
2.AWSコンソールからモデルを試用し、デプロイします。
3.選択したモデルを微調整し、機械学習ワークフローを自動化します。
使用されたデータはユーザーのアカウントに残り、Amazon SageMakerの機能と完全に統合されます。
様々なFoundation Modelにはどのようなものがあるのでしょうか。
・Amazon Titanは、テキストの要約、生成、分類、情報抽出、検索を扱います。
・Jurassic-2は複数の言語のテキスト生成のための多言語モデルです。
・Claude 2は、会話や質問応答、ワークフローの自動化に焦点を当てたモデルです。
・Commandは、100以上の言語でビジネスアプリケーション用のテキスト生成を提供します。
・Llama 2は、会話や言語作業に適した微調整モデルです。
・Stable Diffusionは、ユニークでリアルな画像、アートワーク、ロゴ、デザインを生成します。
プロンプトエンジニアリングは、自然言語テキスト(プロンプト)を使用して、生成的なAIソリューションをガイドし、目的の出力を生成するプロセスです。ここでは、「Amazon Bedrock基礎モデル」が中間段階として使用されます。
プロンプトエンジニアリングを活用する方法として、2つの方法があります。
・Zero-shot promptは、単一の入力を使用します。
・Few-shot promptは、複数の例を利用して単一の結果を出力します。例えば、森の中にカモフラージュされた複数の車両の衛星画像から新たな車両を生成することです。
それでは、さっそくハンズオンに入りましょう。
このワークショップは、SageMaker、LLM、Multimodel FM、LLM prompt、CodeWhispererなど、最新のトレンドに合わせて構成されています。 特に、衛星画像データの取り込みにおいて、個人がAPI学習をしなくても、AIにAPIドキュメントを学習させ、LLM promptを利用して、衛星画像データを取り込んで自動化するrequest callを作成する、これが本当にできるのか? という程度のワークショップとなります。
全体的な流れは以下の通りです。一番後ろはBedrockが存在し、FMを回して、それに対する問い合わせをConsoleを通じて簡単に確認できる構造です。
Bedrockは、Chat playgroundというインターフェースを提供し、どのようなUIを作らなくても、これを介して複数のFMを利用しながら問い合わせを残すことができます。
上記のChat Playgroundと同じ効果をアプリケーション内で実装する必要があるので、SageMaker StudioのJupyter notebookを利用してClaude Instant modelを活用します。 後端のBedrockはSDK for Python (Boto3) を利用したAPI連動を実装します。
LangChainを利用して、LLMを利用したインタラクティブなコントロールが可能になります。
特に、LangChainの”APIChain”関数を利用してAPIドキュメントを学習させる予定で、インタラクティブなコメントのために”from_llm_and_api_docs”を使います。これをSageMaker StudioのNotebookで実装してみます。
最終的なコードは以下の通りです。
APIChainを通じてAPIドキュメントを学習し、LLMのLangChainを利用してインタラクティブにcommandを実行する部分は下記の通りです。
retval = chain_new.run(“Today is the 18th November 2023. Get the hdurl element from the first image. Expect the response to be in JSON format.”) * *retval = chain_new.run(“Today is the 18th November 2023. Get the hdurl element from the first image.”)
実質的なAPI callはしませんでしたが、”LLM + Bedrock + LangChain”を活用して結果値を取得することができました。下記が結果画像です。
セッションを終えて
AI/MLが様々な面で進化していることを実感しました。LLMとBedrockを利用することで、人がAPIドキュメントのようなものを学習する必要がなく、目的の結果値を導き出す手段が生まれています。 特に、LangChainはインタラクティブにサービスを作ることができるように構成されているので、そのプロセスがとても簡単になりました。 驚きつつも、一方で未来の姿を想像すると少し怖い部分もありました。
機械が代わりに学習してくれて、人は会話で要求すれば結果が出せる時代になったような気がします。