NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

生成系AIとエッジコンピューティングのワークショップから学ぶ今後の動向

こんにちは!志水です。みなさんre:Inventはどうでしたか?私は現地参加は3回目になり、毎回眠すぎて倒れそうになりますが、それ以上に楽しく最高にエキサイティングでした。シカゴピザのデカさには卒倒しました。 re:Inventの2日目に参加した「ANT306 | Build a data foundation to power your generative AI applications」というワークショップで学んだことを共有します。

ワークショップの概要

ワークショップの説明文は下記になります。

Generative AI applications are powered by foundation models or large language models that are trained on large volumes of data. They have several emerging data patterns including in-context learning, model fine-tuning, and build your own model. This is just the beginning. These applications require high-quality data and a solid data foundation to operate on. The building blocks of this data foundation include batch and real-time data pipelines, data governance, and vector data management, tailored to custom needs. Join this workshop to build a generative AI application on a robust data foundation for a complete generative AI experience. You must bring your own laptop to participate.

ジェネレーティブAIアプリケーションは、大量のデータで学習された基盤モデルや大規模な言語モデルによって駆動される。これらのアプリケーションには、イン・コンテキスト学習、モデルの微調整、独自のモデルの構築など、いくつかの新しいデータ・パターンがある。これは始まりに過ぎない。これらのアプリケーションには、高品質なデータと、その上で動作する強固なデータ基盤が必要です。このデータ基盤の構成要素には、バッチおよびリアルタイムのデータパイプライン、データガバナンス、カスタムニーズに合わせたベクトルデータ管理などが含まれます。このワークショップに参加して、完全なジェネレーティブAI体験のための強固なデータ基盤上にジェネレーティブAIアプリケーションを構築しましょう。参加にはご自身のノートパソコンが必要です。

要約すると下記になります。

  • ジェネレーティブAIアプリケーションは、大量のデータで訓練された基盤モデルや大規模言語モデルに基づく。
  • 新しいデータ・パターンには、イン・コンテキスト学習、モデルの微調整、独自モデルの構築が含まれる。
  • 高品質なデータと、バッチ及びリアルタイムのデータパイプライン、データガバナンス、カスタムニーズに応じたベクトルデータ管理が必要。
  • ワークショップでは、これらの要素を用いてジェネレーティブAIアプリケーションを構築する方法を学ぶ。

ワークショップで行った内容

このワークショップでは、ドローンを用いて橋やソーラーパネルなどのインフラ検査を行うという要件に焦点を当てています。操作の簡便化のために、自然言語を使った指示によるドローンの制御を採用していました。具体的には、「もう少し右に移動して」や「近くの橋に向かって」といった自然言語の命令を用いて、ドローンを操作する方法を検討していました。

次に、上述の要件を満たすために仮想ツールを作成し、ドローンが目的地まで到達するまでの時間を競いました。仮想ツールの外観は以下の通りです。

ドローンは2次元マス状の地図の上を左上のSTARTから右下のENDまで動くものとし、チャットから自然言語で命令して動かしていきます。

概要構成

このドローンの仮想環境のアーキテクチャの概要は下記になります。

ユーザがAppに対して自然言語で命令を出すと、LLMにCogeneration(ユーザの命令を元にAIがコンテンツやコード生成を行うこと)し、作られたコンテンツやコードを元にドローンを操作します。

ここで、ユーザからApp・Appからドローンへの接続について見ると、両方インターネットを通って接続しています。これはAppの場所がユーザやドローンのいる場所から遠いほどレイテンシが高くなり、ユーザの命令から操作までの時間がかかってしまいます。そこで、今回はAWS Local Zonesを利用して、ユーザやドローンに近い場所でAppが実行できるようにします。

AWS Local Zonesとは

AWS Local Zonesは、AWSのクラウドリソースをユーザーに物理的に近い場所に配置することで、低レイテンシのアクセスを実現するサービスです。つまり、データの生成元に近いロケーションで処理を行うエッジコンピューティングの一種と言えます。

AWS Local Zonesは、4年前のre:Invent 2019で発表されたサービスの一つで、低遅延アクセスを実現するためにAWSクラウドリソースを物理的にユーザーに近い場所に配置します。これは、エッジコンピューティングの目的である「データの生成源に近い場所での高速処理」を可能にします。さらに、AWS Local Zonesは特定のAWSリージョンに関連付けられており、この関連付けられたリージョンを「親リージョン」と呼びます。親リージョンは、Local Zoneのバックボーンとして機能し、メインのAWSサービスとリソースを提供します。Local Zoneは親リージョンの拡張として設計されており、親リージョンのサービスとリソースを活用しつつ、特定の地理的な場所で低遅延アクセスを提供します。

現在、AWS Local Zonesのロケーションは33箇所あり、東京リージョンが親リージョンであるLocal Zoneは台北(台湾)のみです。そのため、現状日本国内でAWS Local Zonesを利用するメリットはなく、主にアメリカやニュージーランドなどで提供されている地域でのユースケースが想定されます。

AWS Local Zones ロケーションより

ワークショップにおける環境ごとの構成

先ほどの構成を実際に構築する際には、何度も繰り返しテストする環境や、構築したアプリケーションを繰り返しデプロイするパイプラインが不足していました。そのため、これらの要素を含めた以下の構成を用意しました。

今回のワークショップでは、この構成を使用しました。最初に紹介した構成を本番環境とし、SageMakerのノートブックで試行錯誤する開発環境を設定しました。また、ノートブックからCodeCommitに修正したコードをプッシュすると、CodePipelineを通じて本番環境のアプリケーションへのデプロイが行われます。これにより、開発プロセスが高速化されています。

ワークショップの進め方

この構成を基に、ワークショップではSageMakerのノートブックにある課題を進めていく方式で行いました。ノートブックにはLab-01から03までが用意されており、Lab-01ではプロンプトエンジニアリングの基本を学び、Lab-02ではその知識を活用してCogenerationによってドローンに命令する方法を学びました。Lab-03では、より効率的にドローンに命令を出す方法を習得しました。最終的には、Lab-03でどれだけ効率的にドローンをゴールまで移動させるかによって順位が決定されました。残念ながら、私はランクインすることはできませんでした。

ワークショップで学んだこと

今回のワークショップでは非常に多くのことを学びましたので、それについて共有します。

自然言語インタフェースの作り方

今回のワークショップで最も印象に残ったのは、自然言語インタフェースの作り方を学んだことです。AWSなどのサービスで増えている自然言語インタフェース関連のアップデートの中で、その作り方を実際に体験できたのは貴重な経験でした。

ワークショップではドローンの操作を題材にしました。最初に、ドローンの基本動作(上下左右への移動)を関数として実装し、モデルに「上に移動」などの文章例を提示して、自然言語入力から関数への紐付けを構築しました。これにより、自然言語入力を動作の呼び出しに変換するインタフェースを実現しました。

この自然言語入力と動作呼び出しの変換を通じて、ドローン操作の自動化と効率化を実現できました。

LangChainでのコーディング

次に、LangChainを使ったコーディングについて学びました。以前はLangChainを使わず、直接ChatGPTやBedrockのAPIを操作していました。しかし、今回のワークショップでLangChainを使ってみて、その利便性がよく分かりました。

例えば、今回はChatGPTやBedrockにあるモデルではなく、HuggingFaceのFalconというモデルを利用しましたが、LangChainを使えば他のモデルとの書き方の違いはほとんどありませんでした。また、プロンプトの履歴を学習対象として利用できる方法を学んだことも良かったです。他にも多くのメリットがありますが、基本的な利点は他の多くのサイトで述べられています。

LLMの活用範囲

さらに、LLMの活用範囲の広さに驚かされました。例えば、チャットを介してドローンに指示を出すシーンでは、チャットシステムが命令以外の入力も受け付けるようになっています。ユーザーが質問をすることもあるため、質問文か命令文かを判別する必要があります。この判別を行うために、ユーザーの入力が命令か質問かをLLMに問い、その回答を識別結果として利用しました。昔の機械学習では、命令と質問の文章を学習させて識別問題を解決するアプローチが一般的でしたが、LLMを使うとプロンプトで簡単に解決でき、コードで適切に分岐することができることに驚きました。

学んだことから考えるre:Invent2023における動向

まず、エッジコンピューティングについてですが、re:Invent2023の直前にAmazon CloudFront KeyValueStoreの発表があり、この分野のアップデートもしっかり行われていることがわかります。ただ、発表数で見ると以前よりIoTやCDN関連の発表も少なくなっています。

次に、今回作成方法を学んだ自然言語インタフェースに関するいくつかのアップデートを下記に記載します。

まず、QuickSight Qは今回のre:Inventの目玉アップデートであるAmazon Qの元になる一部のサービスで、CloudWatch/Config/SageMaker Canvasの自然言語クエリは今回のre:Invent期間に発表されたサービスです。つまり、今回のre:Invent 2023では実は自然言語インタフェースに関するアップデートが多かったのです。このトレンドから考えられることは、AWSが自然言語インタフェースの重要性を強く認識し、各サービスに取り入れていこうとしているということです。

背景としては、ChatGPTなどのLLMの登場により、コンピューターとの自然な対話が可能になったことが大きいでしょう。AWSもこの流れに乗っていき、ユーザー体験の改善や開発者負荷の軽減を実現しようとしています。今後の動向としては、さらに多くのAWSサービスに自然言語インタフェースが取り入れられていくことが予想されます。例えば、EC2の設定変更やS3のデータ操作などのタスクに対して、自然言語で指示できるようになる可能性があります。また、単にインタフェースを自然言語化するだけでなく、LLMを活用した「理解力」の改善も期待できそうです。ユーザーの意図を正確に把握し、適切な処理を実行できるレベルに近づくことがAWSの目標になるでしょう。このように、自然言語インタフェースはAWSにとって重要な未来像と位置づけられていると見られ、re:Invent 2024以降もこの分野への取り組みが続くと予想されます。ユーザーエクスペリエンスと開発効率の両面で、大きな進化がもたらされることが期待できそうです。

まとめ

生成系AIとエッジコンピューティングのワークショップを受けることで、AWS Local Zonesについて・自然言語インタフェースの作り方・LangChainでのコーディング・LLMの活用範囲の広さを学べました。そして、自然言語インタフェースの今後について考えさせられる良い経験でした。

執筆者志水友輔

2023 Japan AWS Ambassador / 2021,2023 Japan AWS Top Engineer / 2021-2023 APN ALL AWS Certifications Engineers
大阪でAWSを中心としたクラウドの導入、設計、構築を専門に行っています。Generative AIとCDKとつけ麺が大好物

Twitter:https://twitter.com/shimi023

Amazon著者ページ:Amazon.co.jp: 志水友輔: books, biography, latest update