

2024/6月のTech勉強会はオフライン開催でした。
お品書きはタイトルにもある通り、「AWS生成AI(GenU)ワークショップ体験記」と、もう一つは内容が社外秘ですがかいつまんで紹介すると「要件定義ヒアリング/インタビュー会」でした。
「要件定義ヒアリング/インタビュー会」では、社内で実際に動いているプロジェクトの要件がどのように要件定義されたかをヒアリング・インタビューし、要件定義と実際にシステムが稼働した後にどのような問題が発生したか、何が課題であったかを知れる場となりました。
では今回は沖縄出身のT氏による「AWS生成AI(GenU)ワークショップ体験記」について簡単にご紹介しようと思います。
AWS生成AI(GenU)ワークショップ体験記
インデックス
- GenUとは?
- アプリケーション構成
- ワークショップの流れ
- RAGチャット
- セキュリティ対応
- 感想
GenUとは?
Generative AI Use Case
AWSが提供するOSS
- すぐに業務活用できるビジネスユースケース集付きの安全な生成AIアプリ ○ チャット・文章生成・要約・校正・翻訳・ Webコンテンツ抽出・画像生成・映像分析
- AWSの知識がほとんど必要なく、数十分でデプロイが完了
- 日本語で提供されており、日本語圏の開発者にとってアクセスがしやすい
https://github.com/aws-samples/generative-ai-use-cases-jp?tab=readme-ov-file
アプリケーション構成

ワークショップの流れ
所要時間:約1時間
- 事前準備
- Amazon Bedrockで大規模言語モデルと画像生成モデルの有効化
- Amazon Bedrock:基盤モデルをAPI経由で使用できるサービス
- アプリケーション構築
- 開発環境(AWS Cloud9)の作成
- AWS CloudShellからAWSが提供しているサンプルのClaud9をクローン
- 依存関係の設定
- Cloud9上でGenUリポジトリをクローン&パッケージインストール
- AWSアカウント上にAWS CDKをセットアップ
- アプリケーション確認


RAGチャット
Retrieval Argumented Generationとは?
- 情報検索とLLMの文章生成を組み合わせ、より適切な応答を生成する手法
- 大規模なDBや文書から情報を検索するため、情報の精度が向上
- 情報源の追加や生成モデルの改善によって、性能を向上させることが可能
- より質の高い対話システムやチャットボットの開発に貢献
RAGチャット使用手順
- RAG機能の有効化
- cdk.jsonのragEnabledをtrueに修正してデプロイ
- Amazon S3へのアップロード
- AWS提供のデータを追加
- Amazon KendraとAmazon S3の連携
- Kendraのマネジメントコンソール画 面上で、作成済みのKendraインデッ クスに上記のS3を同期
- 設定のSync run scheduleから、定期的に自動でデータを同期することも可能
ワークショップの内容を細かくは掲載しないですが、RAG機能とAmazon KendraによりAWS内のドキュメント(S3やRSD含む)、今回ならS3に配置されたドキュメントを効率的に検索し、学習させることでより特定環境に対して適切な、以下のような回答を返してくれるようになります。

セキュリティ対応
- デフォルトでは「インターネット上のどこからでも」アクセス可能な状態
- RAGを使用して社内データを活用する場合に懸念が生じる
- AWS WAFによるIPアドレスの制限
- デフォルトでは「セルフサインアップ」の機能が有効化された状態
- 管理者が権利を与えずともユーザが自ら使用開始できてしまう懸念が生じる
- セルフサインアップ機能の無効化(今回紹介)
- 管理者が権利を与えずともユーザが自ら使用開始できてしまう懸念が生じる
セルフサインアップ無効化手順
- セルフサインアップ無効化
- cdk.jsonのselfSignUpEnabledをfalseに修正
- 招待メッセージの作成
- auth.tsのuserPoolを右のように修 正してデプロイ
- Amazon Cognitoでのアカウント作成
- デプロイ時に作成されたユーザープール上で登録対象のEメールを入 力し、ユーザへ仮パスワードを含む 招待メッセージを送信


セルフサインアップ無効後のログイン画面と招待メッセージ
感想
- 数十分でデプロイでき、とても簡単に生成AIサービスを体験できた
- 生成AIのユースケースが多く、「何ができるか?」がイメージできる
- ユースケース毎に専用のUIが提供されているため、感覚的に操作可能
- 日本語対応のため、より簡単にわかりやすく使用可能
- そもそも生成AIで何ができるのかが知りたい方におすすめ
以上です。ありがとうございました。