[レポート]AWS Step Functions と生成 AIによるワークフローの高度化 #AWSreInvent #API210

2023.12.13

re:Invent 2023 で行われた BreakOut セッションElevating workflows with AWS Step Functions and generative AI(API210)のセッションレポートです。

概要

Generative AI is changing the way businesses operate—providing opportunities to accelerate innovation. Large language models (LLMs) provide organizations with unique building blocks that would otherwise require extensive investment to build generative AI applications. In this session, discover how new capabilities on AWS Step Functions can make it easier to compose these building blocks into production-grade applications. See a demo of how you can use Step Functions for orchestrating generative AI applications with Amazon Bedrock foundation models. Explore patterns such as prompt chaining that can be tailored to your own specific use case, and enrich your workflows with capabilities from the many AWS services using natural language.

(日本語訳) 生成 AI はビジネスの運営方法を変え、イノベーションを加速する機会を提供します。大規模言語モデル (LLM) は、生成 AI アプリケーションを構築するために大規模な投資が必要となる独自の構成要素を組織に提供します。このセッションでは、AWS Step Functions の新機能により、これらの構成要素を実稼働グレードのアプリケーションに簡単に構築できる方法を学びます。 Step Functions を使用して生成 AI アプリケーションを Amazon Bedrock 基盤モデルとオーケストレーションする方法のデモをご覧ください。独自の特定のユースケースに合わせて調整できるプロンプトチェインなどのパターンを探索し、自然言語を使用する多くの AWS サービスの機能でワークフローを強化します。

動画

最初にまとめ

  • AWS Step Functions を利用することによる、コードを書かない事のメリットが解説されている
  • AWS Step Functions は Amazon Bedrock と統合されており、モデルを選択して直接 API を実行できる
  • Public API に対しても AWS Step Functions から実行が可能

セッションの内容

  1. 問題の状況を調査する
  2. 生成型 AI アプリケーションを構築する
  3. Amazon Bedrock との統合
  4. AWS Step Functions での HTTPS エンドポイントの導入
  5. Get Started today

問題の状況を調査する

生成型 AI の普及とビジネスへの応用可能性についての共有から始まり、様々な業界での生成 AI の活用例が紹介されました。生成 AI を利用するにあたり、既にある既存サービスやアプリケーションと合わせてどのように活用するべきか例示されました。

基礎モデルを用いた運用する場合、Lambda から呼び出されるケースでは失敗時の考慮や並列で実行などを考慮しておく必要があります。

例えばクレジットカードのアプリケーションでは利用限度額の引き上げを自動化したいケースでは、受け入れか否かは人間によるレビューを挟んだりエラー時の対応は行う必要があります。

生成型 AI アプリケーションを構築する

生成 AI アプリケーションの構築で、ここではビデオ処理アプリケーションを例としました。

  • アップロードされたビデオからタイトルを作成
  • それを使うかどうかを人間に送信し、利用するかを確認
  • その応答に応じてコンテンツのアバターを作成

ここでは、ビデオの内容を翻訳・テキストにして基礎モデルに送信する必要があります。ここで Lambda を利用すると、先ほど説明したエラー時の考慮などの課題に直面します。

そこで AWS Step Functions を利用します。

AWS Step Functions では直接 API を実行する機能があり、さまざまな AWS サービスと連携が可能です。またワークフローを全てステップに組み込むことで、エラーの状況やログを確認できるようになります。

直接 API を呼び出すことで、ロギングのコードを書かずに済むのが大きなメリットです。

Amazon Bedrockとの統合

Amazon Bedrock も AWS Step Functions と統合されており、直接 API を呼び出すことが可能です。

利用したいモデルを選択し、プロンプトをパラメータとして渡すことで実行できます。直接プロンプトを入力に渡すだけでなく、S3 バケットを指定して参照も可能です。

AWS Step Functions での HTTPS エンドポイントの導入

もし Public API を利用する場合、これまでであればこのような構成を取ります。

Lambda を実装する必要があるため、コードの実装やエラーハンドリング、ロギングや認証といった要素を検討する必要がありました。

これを AWS Step Functions で実装する場合は、HTTPS エンドポイントを呼び出すことができます。ASL で定義するとこのような形で実装が可能です。

ApiEndpoint にモデルを指定、認証には EventBridge ConnectionArn を指定することでコードを実装せずに呼び出すことができました。

Get Started today

セッションの最後には、知識を実践に活かすためのリソースとガイドが提供されました。

おわりに

Elevating workflows with AWS Step Functions and generative AI(API210)のセッションレポートでした。

AWS Step Fucntions を利用する利点から Amazon Bedrock の呼び出し方、Public API の呼び出し方まで学ぶことができました。

ASL の定義方法についても解説があったので、迷わず実装できそうです。ここではビデオ処理アプリケーションについてはあまり触れませんでいたが、セッション内ではアーキテクチャや実装方法まで解説があったのでぜひ元動画も見てください。参考になる点が多くありました。

また、本セッションと関連して以下ブログも参考になリますので、ぜひ合わせてご覧ください。