カミナシ エンジニアブログ

株式会社カミナシのエンジニアが色々書くブログです

【AWS re:Invent 2024】Generative AIによる未来のUXの広がりを感じた

はじめに

カミナシでID管理・認証基盤を開発しているmanaty(@manaty0226)です。12/6までラスベガスで開催されていたAWS re:Invent 2024に初めて参加しました。今回は最終日のワークショップセッションとして開催された「Build generative AI-powered search with Amazon Aurora and Amazon RDS」を聴講したレポートをお届けします。

生成AIによる検索機能の拡張

このワークショップでは架空のEC企業Baize BazaarのECサイトにおける検索機能を作ります。単なる全文一致や部分一致検索ではなく、自然言語による問い合わせに対応したり、あらかじめ登録されたユーザーの嗜好に合わせた商品を検索結果として返すために生成AIを利用します。今回のワークショップで利用したコードはGitHubに公開されています。

https://github.com/aws-samples/DAT301-reinvent-2024

ワークショップで構築するサンプルECサイトの会社

まず最初に、Amazonが公開しているECサイトの商品データセットから埋め込み表現を得ます。これにより、各商品の説明がそれぞれ1024次元のベクトルに変換され、埋め込み表現空間における類似度検索ができるようになります。この埋め込み表現空間におけるベクトルの類似度を利用した検索を担うのが、Amazon Aurora PostgreSQLの拡張機能であるpgvectorです。

https://github.com/pgvector/pgvector

pgvectorにより、以下のような構文であらかじめ設定した類似度計算アルゴリズムを使って類似度順に検索結果をソートして取得することができます。

SELECT product_name, 1 - (embedding <=> $1::vector) as similarity
FROM product_catalog
ORDER BY embedding <=> $1::vector
LIMIT $2;

このようなクエリで取得した商品情報をサンプルページで商品検索結果として動かしたものが以下のようになります。

リコメンドも含めた曖昧検索結果を出力できる

さらに、このSQLクエリ結果を生成AIに入力することで顧客へのリコメンド意図などを出力することができました。

この後、商品の返品ポリシーなど顧客からの問い合わせに自社の規約を返答するため、RAGを使ったチャットボットや、自社内で売り上げや在庫データなどからマーケティングや購買のために利用するAIエージェントも作ります。Bedrockのナレッジベースに社内のポリシードキュメントをアップロードしたS3を同期することで、検索結果としてナレッジベースの元ドキュメントを参照させることができるようです。

RAGアーキテクチャ

RAGを使って返品ポリシーの元ドキュメントを参照しつつ回答させる

生成AIはID管理に活かせるか

私は普段カミナシのID管理や認証基盤を開発しています。一般にお客様自身がユーザー管理を行う画面で必要となる検索は、作成日や社員番号、氏名といった属性値の完全一致または部分一致検索があれば十分なアプリケーションです。したがって、今回のような文脈や類似度に基づく曖昧な検索は単純には適用する場面はなさそうです。

そこで、少し視点を変えてみます。組織のID管理に対する成熟度が上がってくると、IDガバナンスと呼ばれる管理機能が必要となってきます。IDガバナンスはIDの生成から削除までのライフサイクルを管理するだけでなく、ユーザー自身が必要な権限を要求して承認申請したり、定期的にIDおよびその権限の監査レポートを生成・分析して、不要な権限やIDを削除するといった棚卸機能が必要です。

とくに大きな組織になってくると、大量のユーザー数に対してIDや権限の付与、削除を定期的かつ大規模に行っていく必要があるため、システムによってID管理者を支援することが必須となります。

そこで、今回のような生成AIを活用するのはどうでしょうか。例えば従業員は入社してから自分に必要な権限をセルフサービスで申請できるガバナンス機能が整備されていても、実際に自分がどの権限を申請すれば良いかはわからないものです。そうした時に、生成AIによって適切な権限セットをリコメンドすることが考えられます。

また、管理者側に立つと、現在のユーザーや権限の中で不要そうなものを抽出したり、どういったアクションを取ればよいか、インシデントレスポンスへの生成AI適用のようにサジェストしてくれると、彼らの業務効率は上がるように思います。

このように、高度なコンプライアンスが求められるほど、単純な機械的フィルタでなく文脈の中でのデータ抽出や判断が必要となってくるため、ID管理においても生成AIを活用して管理者のUXを改善する余地はあるのではないかと想像しました。

おわりに

5日間のAWS re:Inventが終わりました。どの日も興味深いセッションがたくさんあり、非常に充実した時間を過ごすことができました。もともと興味のあったcell-based architectureを動かしたり、テナント分離の意味をきちんと理解することができたり、Amazon Verified Permissionsのリアルな感想が聞けたり、今まで業務で使うことがなかったので触る機会がなかった生成AIを自分で動かすことができたりと幅広い分野を楽しく学ぶことができました。

また最終日の全セッション終了後、同僚と開催地付近にあるポケモンカードショップへ行って日本には売っていないグッズを色々と買うことができました。ショップでカードを購入し開封していた現地のカードゲーマーたちの熱を感じることもできて、大変充実したre:Invent参加になりました。

カミナシではIDガバナンスとポケモンカードが好きなソフトウェアエンジニアも募集しています。興味がある方は是非ご応募ください。