Slide 1

Slide 1 text

前野 佑宜 アイレット株式会社 DX開発事業部 モダンエンジニアリングセクション ビジネスデザインG GenU案件を通して学んだ教訓 クラウド食堂 #2 ~AWSネタでLT会~ 登壇資料

Slide 2

Slide 2 text

01 アジェンダ 自己紹介 02 GenUとは 03 GenU案件で学んだ教訓 3選 04 まとめ

Slide 3

Slide 3 text

前野 佑宜 2023年新卒入社/入社2年目 2024 Japan AWS Jr. Champions選出 アイレット株式会社 ま え の ゆ う き 経歴 DX開発事業部/モダンエンジニアリングS/ビジネスデザインG 担当業務 Python/Laravelを使った開発をメインに従事 現在はAWSの生成AIサービスを使った開発を担当

Slide 4

Slide 4 text

02. GenUとは

Slide 5

Slide 5 text

みなさん、 「GenU 」はご存知でしょうか?

Slide 6

Slide 6 text

02.GenUとは?

Slide 7

Slide 7 text

02.GenUとは? GenU(generative-ai-usecases-jp) ● AWSがOSSとして公開している生成AI活用のためのフレームワーク ● 現状ではv3.0が最新版(日々アップデートされている) ● サービスページも公開されている ● Reactを用いて実装されている ● チャット/RAGチャット/Agentチャット/Flowチャット・要約 ● 執筆・校正・翻訳・Webコンテンツ抽出 ● 文章生成・画像生成・動画生成・映像分析・音声認識 ● ユースケースビルダー・プロンプト最適化・ダイアグラム生成 3/25時点で、提供されている機能は 17機能! 場面に応じて 機能利用の有無を選択可能

Slide 8

Slide 8 text

03.GenU 案件で学んだ教訓 3選 GenUを使った、約2か月間の 開発を通して学んだこと

Slide 9

Slide 9 text

03.GenU案件で学んだ教訓 3選 1.CDKの作りは事前に確認する必要あり ● デプロイ自体は、コマンドを実行するだけで簡単にできる ○ cdk:deploy 一発でデプロイ可能(前段2-3個のコマンドを除けば) ● 反面内部の作りを把握していないと、期待しない挙動になって焦る ○ 開発途中でデプロイ不能になりリソース全削除する羽目になる可能性も どんなリソースが、どんな仕組みで 立ち上がっているかはしっかり確認する

Slide 10

Slide 10 text

03.GenU案件で学んだ教訓 3選 ● GenUのcdk.jsonの、ドメイン設定に関するオプション ○ 開発環境で、カスタムドメインのオプションを誤って設定し、一度全てnullにし て再デプロイしようとしたらエラーに ○ 再度デプロイし直し手動でカスタムドメインの紐付けを行った "hostName": , "domainName": , "hostedZoneId": XXXXX(Route53 のHostedZoneId), 失敗談: デプロイ不能になってリソース作り直し "hostName": null, "domainName": null, "hostedZoneId": null,

Slide 11

Slide 11 text

03.GenU案件で学んだ教訓 3選 CloudFormationを見ると、エラー発生 CloudFrontWafStack failed: ValidationError: Stack:arn:aws:cloudformation:us-east-1:***:stack/CloudFrontWafStack/1f2a8f70-d4a5-11ef -bbc9-125487e00b97 is in UPDATE_ROLLBACK_FAILED state and can not be updated. ROLLBACK続行or リソース削除しか選択肢なし →結局解決できず crossRegionReferences(異なるリージョン間でリソースの受け渡しができる仕組みを使っている)の部分でエラー

Slide 12

Slide 12 text

03.GenU案件で学んだ教訓 3選 2.GenUのバージョン間のそれぞれの作りの違い、 影響範囲を確認しておくべし ● GenUは、主にv2.0/v3.0(3/26時点最新版)が存在 ○ v2.0→v3.0にあたり破壊的変更も存在。Kendra検索はv3.0以降削除(次頁 ○ v3.0以降→検索だけできる UIを作るには自分で作る必要あり ● 担当案件では「検索だけしたい」というニーズがあり、Kendra検索を残す決断 ○ →v2.0を採用 ユーザーにとって必要な(コアな)機能は何か? を第一に考え、どのバージョンを使うかは検討するのが良さそう

Slide 13

Slide 13 text

03.GenU案件で学んだ教訓 3選 GenU v3.0リリース時 のドキュメント

Slide 14

Slide 14 text

03.GenU案件で学んだ教訓 3選 3.RAGのどのフェーズがボトルネックかを明確に ● GenUのRAG機能では、以下のフローで回答生成がされる クエリ生成 検索 回答生成 クエリは 期待通りに変換さ れているか? 期待するドキュメン トが検索結果に出 てきているか?

Slide 15

Slide 15 text

03.GenU案件で学んだ教訓 3選 GenUにおけるRAGの仕組み

Slide 16

Slide 16 text

03.GenU案件で学んだ教訓 3選 3.RAGのどのフェーズがボトルネックかを明確に ● GenUのRAG機能では、以下のフローで回答生成がされる クエリ生成 検索 回答生成 クエリは 期待通りに変換さ れているか? 期待するドキュメン トが検索結果に出 てきているか?

Slide 17

Slide 17 text

03.GenU案件で学んだ教訓 3選 ● GenUのデフォルトでは、関連するクエリがないと、「No Query」が返却 case1:クエリ生成でうまく行っていない場合 →クエリ生成時のプロンプト改善 /質問文の改善

Slide 18

Slide 18 text

03.GenU案件で学んだ教訓 3選 case1:クエリ生成でうまく行っていない場合 →クエリ生成時のプロンプト改善 /質問文の改善 Query生成時のプロンプト (packages/web/src/prompts/claude.ts)

Slide 19

Slide 19 text

03.GenU案件で学んだ教訓 3選 3.RAGのどのフェーズがボトルネックかを明確に ● GenUのRAG機能では、以下のフローで回答生成がされる クエリ生成 検索 回答生成 クエリは 期待通りに変換さ れているか? 期待するドキュメン トが検索結果に出 てきているか?

Slide 20

Slide 20 text

03.GenU案件で学んだ教訓 3選 ● GenUのデフォルトでは、10件の結果しかretrieveしない ○ retrieveAPIは、最大100件の結果まで抽出可能 ■ →抽出対象のドキュメントの数を増やすのも一つの方法 case2:期待するドキュメントが得られない場合 →取得件数を増やす

Slide 21

Slide 21 text

04.まとめ まとめ どこにボトルネックがあるのかを意識して機能改善を 行うことが大事 簡単にデプロイできるのは GenUの魅力。 それに甘えすぎず内部的な仕組みも理解しよう

Slide 22

Slide 22 text

ご清聴ありがとうございました

Slide 23

Slide 23 text

参照文献 • 関連ブログ ○ GenU サービスページ(AWS) 
 ○ 生成 AI アプリをノーコードで作成・社内配布できる GenU ユースケースビルダー (AWS)