[セッションレポート] Workflowsで生成AIをオーケストレートする DEV254 #GoogleCloudNext

Google Cloud Next '24 Orchestrate generative AI with Workflows (DEV254) のセッションレポートです。
2024.04.15

Google Cloudでは、Vertex AIで生成AIを利用することができますが、システム化する上でオーケストレーターとしてどのサービスを採用しどのような運用にするとよいかはまだまだ試行錯誤中と思います。

Google Cloud Next '24の『Orchestrate generative AI with Workflows』セッションでは、Workflowsを利用したオーケストレートの実装例が紹介されました。実装例はGitHubに公開されていたり、これから生成AIをエンジンとして使ったシステム構築をしたい方には大変参考になるセッションでしたので、気になったところを簡単にまとめてご紹介します。

登壇者:Mete Atamel (Developer Advocate Google Cloud)

セッション概要

セッションは40分弱のものでしたが、ここでは気になった点について紹介できればと思います。気になった方はぜひセッションをご覧ください。

登壇資料とサンプルコード

このセッションの素晴らしい点として、なんといっても登壇資料とサンプルコードが公開されている点です。

セッション冒頭でも紹介されていますが、以下のリンクに格納されているのでご確認ください。

  • https://speakerdeck.com/meteatamel/orchestrate-generative-ai-with-workflows
  • https://github.com/GoogleCloudPlatform/workflows-demos/tree/master/vertexai

Vertex AIの呼び出し

Google CloudのほかのサービスへのリクエストはWorkflowsのコネクタを使った実装が紹介されていました。コネクタについては以下のガイドで説明されています。

Vertex AIへのリクエストはHTTPリクエストでこれらにリクエストを送るとよさそうだなという印象でした。projects.locations.endpointsなどRESTのエンドポイントに関するガイドも公開されています。

これらの情報はデモで紹介されているように、WorkflowのYAMLの定義の中に記述していきます。

リクエストの記述

LLM利用の実装例

ワークフローの実装例では、LLMを利用するためのWorkflowの実装例をいくつか紹介頂きました。内容としては、単にWorkflowを作ったというよりも、LLMの利用でありがちな課題をどのようにWorkflowを作ることで解決できるか分かる内容となっており、とても参考になりました。

parallelの実装例

workflows-demos/vertexai/parallel-summaries/より引用

GeminiによるWorkflows開発の支援

Workflowsのコンソールより、Quick Helpを利用して、Geminiによる支援を受けることができるようです。この機能はのちにプレビュー提供されるとのことでした。セッションでは、実装中の箇所のWorkflowsの仕様の説明などが紹介されました。

Workflowsを利用するメリット

ほかのサービスとの比較

Google Cloudでのオーケストレートの仕組みは、Workflowsに限らずいくつかあります。

例えば私が思いつく範囲だと、

  • Cloud Composer
  • Vertex AI Pipelines
  • Workflows
  • BigQueryのスケジュールクエリ(リモート接続でVertex AIを利用)
  • Dataform(リモート接続でVertex AIを利用)
  • Compute Engineに独自のワークフローエンジンを構築

などです。

Workflowsのメリットとしては以下があると考えています。

  • マネージドサービスであること
  • 条件分岐ができること
  • 3rd Party製品もAPIが対応していればHTTPリクエストなどでワークフローに組み込めること
  • プログラミング言語の習得なしにYAMLで書けること

こちらのメリットは、セッション中の以下のスライドでも紹介されていました。

Workflowsの強み

私は以下で紹介したように、Vertex AI Pipelineによるオーケストレートの仕組みがよいかなと思っていたのですが、Google Cloud Pipeline Componentsで対応していないものもワークフローに組み込みたいときや、PythonによるコーディングではなくYAMLで書きたいとき(特に今後はGeminiによる支援があると思うので)はWorkflowsがよいかもしれません。

最後に

Google Cloudの生成AIを使った処理を自動化するため、オーケストレーターを選定する際に参考になる情報を、実際のコードやデモを交えて学ぶことができました。

YAMLでの記述でワークフローを定義できるため、それほどプログラミングに詳しくなくても始めやすい点も大きなポイントでした。

最後になりますが、Next '24 の翌週に帰国したばかりの現地参加メンバーが振り返り勉強会を行いますので是非とも現地でご参加ください!