Slide 1

Slide 1 text

Bedrock Night オンライン 〜AWSで⽣成AIアプリ開発! 最新ナレッジ共有〜 森⽥⼒ Dify で AWS を使い倒す!

Slide 2

Slide 2 text

⾃⼰紹介 2 ● 名前 ○ 森⽥ ⼒ ● 所属 ○ クラスメソッド株式会社 ■ 福岡オフィス所属 ○ クラウド事業本部 コンサルティング部 ● 好きなAWSサービス ○ Amazon Bedrock! ○ AWS Lambda re:Invent 初参加してきました!

Slide 3

Slide 3 text

本⽇のテーマ:Dify

Slide 4

Slide 4 text

Difyとは 4 ⽣成AIアプリケーションを開発するプラットフォーム ● ノーコードで作成 ○ アプリケーション ○ ワークフロー ○ APIとしての呼び出しも可能 ● OSS ● 様々なLLMの利⽤(Amazon Bedrock, Azure, Google Cloud) ● 先⽇ v1.0.0 をリリース 🎉🎉

Slide 5

Slide 5 text

DifyをAWSで使い倒すまで

Slide 6

Slide 6 text

使い倒すまでの道のり🚶 6 1. ホスティング 2. 機能拡張 3. ガバナンス

Slide 7

Slide 7 text

ホスティング

Slide 8

Slide 8 text

Difyを使うための選択肢 8 ● Dify Cloud ● Self Host

Slide 9

Slide 9 text

Dify Cloud 9 メリット ● すぐにDifyの利⽤可能 ● ホスティングと⽐較して安価 デメリット ● ベクトルDB等の制限あり ● API呼び出し時のタイムアウト60秒 ● セキュリティ等のカスタマイズ不可

Slide 10

Slide 10 text

Self Host 10 Self Hostするため、カスタマイズが可能 ● ベクトルDB ● セキュリティ, タイムアウトなど

Slide 11

Slide 11 text

Self Host 11 Self Hostするため、カスタマイズが可能 ● ベクトルDB ● セキュリティ, タイムアウトなど → AWSで Self Host するなら...?

Slide 12

Slide 12 text

AWSでのSelf Host 12 1. EC2 ● Docker Compose で容易に構築可能 ● ベクトルDB等もEC2内 デメリット ● インスタンスの管理が必要 ● 負荷によって、⾼性能のインスタンスが必要なるケースもある

Slide 13

Slide 13 text

ワークショップもあります 13 Dify での生成 AI アプリケーション構築ワークショップ

Slide 14

Slide 14 text

公式AMIの利⽤ 14 ● カスタムブランディング ○ ⾃社サービスとして展開可能

Slide 15

Slide 15 text

AWSでのSelf Host 15 2. EKS, Aurora, ElastiCache 構成 ● AWSマネージドサービスの利⽤ ● ⽐較的⼤規模なトラフィックでも捌ける ● DBサービスのコスト最適化 ○ ElastiCache for Valkey ○ Aurora Serverless 0ACU ● CDKの提供 ○ aws-sample ○ Dify公式 引⽤: solution-for-deploying-dify-on-aws

Slide 16

Slide 16 text

AWSでのSelf Host 16 3. ECS, Aurora, ElastiCache 構成 ● AWSマネージドサービスの利⽤ ● ECSのため学習コストやメンテナンスコストが⼩ ● CDKの提供 ○ aws-sample 引⽤:dify-self-hosted-on-aws

Slide 17

Slide 17 text

ここまでのまとめ 17 Dify Cloud EC2 EKS ECS 学習コスト 無 小 大 中 メンテナンス 無 大 中 小 最低利用費 極小 小 大 中 カスタマイズ ❌ ✅ ✅ ✅

Slide 18

Slide 18 text

機能拡張

Slide 19

Slide 19 text

機能拡張 〜ナレッジベース〜 19 Dify標準ナレッジベースの課題 ● チャンキング戦略不可 ○ 識別⼦での分割のみ ● PDF内の図表からデータを読み取り不可 ○ 事前にMermaid変換などが必要

Slide 20

Slide 20 text

機能拡張 〜ナレッジベース〜 20 Bedrock Knowledge Bases を利⽤する ● ⾼度なチャンキング戦略 ○ 階層的チャンキング ○ セマンティックチャンキング ● PDF内の図表からデータを読み取り ● 他にも ○ 構造化データ取得 ○ GraphRAG(GA!!)

Slide 21

Slide 21 text

機能拡張 〜ナレッジベース〜 21 外部ナレッジベース追加するためエンドポイントが必要 → dify-self-hosted-on-aws でIaC化👏👏 https://dev.classmethod.jp/articles/dify-bedrock-knowledge-bases/

Slide 22

Slide 22 text

機能拡張 〜LLM〜 22 ⾃社独⾃のLLMを使いたい ● ソースコードに記載することで追加可能 ○ xinference.yaml ○ xinference.llm.llm.py

Slide 23

Slide 23 text

機能拡張 〜LLM〜 23 SageMaker AI 連携により容易にモデル追加可能 ● AWS で SageMaker Endpointの作成 ● SageMaker Endpoint を⼊⼒する

Slide 24

Slide 24 text

ガバナンス

Slide 25

Slide 25 text

ガバナンス 25 簡単に⽣成AIを使えるからこそガバナンスは重要 ● Guardrails ● ログ記録

Slide 26

Slide 26 text

Guardrails 26 Bedrock Guardrailsのツールを利⽤する ● LLM処理の前後に配置可能

Slide 27

Slide 27 text

ログ記録 27 マネジメントコンソールでBedrockログ記録の有効化 ● Dify標準でLangfuse利⽤可能 ○ アプリ利⽤のみでしかロギングされない

Slide 28

Slide 28 text

以上、 DifyでAWSを使い倒していきましょう!!