Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon Bedrock を利用したAIチャットボット開発

yu-Matsu
December 01, 2023

Amazon Bedrock を利用したAIチャットボット開発

2023年12月1日の 「Qiita Night〜AI、機械学習〜」にて発表した資料になります。
内容はAmazon Bedrockを利用したSlack botやLINE botの開発、PartyRockについてになります。

yu-Matsu

December 01, 2023
Tweet

Other Decks in Technology

Transcript

  1. Amazon Bedrock を利⽤
    したAIチャットボット開発
    2023.12.1 @Qiita Night〜AI、機械学習〜
    KDDIアジャイル開発センター株式会社 松好 祐紀

    View full-size slide

  2. 1
    KDDI Agile Development Center Corporation
    ⾃⼰紹介
    • ⽒名︓ 松好 祐紀(@yu-Matsu)
    • 所属︓ KDDIアジャイル開発センター株式会社
    • 役割︓ インフラ/フロントエンジニア
    • 業務︓ アプリのシステムインフラ/フロントエンド開発、
    社内クラウド(AWS/Azure)環境整備、
    ⽣成AI関連プロダクト開発
    • 趣味︓ゲーム、ウォーキング、観光スポット巡り
    先⽉頭にスカイツリーや動く ▶
    ガンタムを⾒てきました

    View full-size slide

  3. 2
    KDDI Agile Development Center Corporation
    Amazon Bedrockとは

    View full-size slide

  4. 3
    KDDI Agile Development Center Corporation
    Amazon Bedrockとは
    • AWSから提供されている⽣成AIプラットフォーム
    • Amazonが開発した基盤モデル以外にも、他のAIスタートアップ企業が
    開発したモデルを選択することが出来る
    • モデルをカスタマイズすることが出来るため、独⾃のデータを⽤いて
    チューニングすることも可能
    • AWSのその他のサービスとも連携することが出来るので、
    既存のアプリケーションに組み込むことも容易
    • ϓϥΠόγʔͱηΩϡϦςΟΛҡ࣋͠ͳ͕Β։ൃ͕Մೳ
    • LangChainも対応済み︕
    ◦ LangChain = LLMを⽤いたアプリケーション開発を効率的に⾏うためのライブラリ

    View full-size slide

  5. 4
    KDDI Agile Development Center Corporation
    かぐたん のご紹介

    View full-size slide

  6. 5
    KDDI Agile Development Center Corporation
    かぐたん について
    • ⽣成AI関連の取り組みの⼀種として開発している社内⽤Slack bot
    • 名前の由来は弊社の略称が「KAG(かぐ)」だから
    ※ KDDI Agile Development Center à KAG
    • 元々はAzure OpenAIを利⽤しており、AWS × Azure のハイブリッド構成だった
    AWS Cloud Azure
    &$3
    'BSHBUF
    λεΫ
    "1*αʔό

    4MBDL
    "[VSF0QFO"* 4FSWJDF
    Πϝʔδऔಘ
    イベント検知
    会話履歴の送信
    下記情報とともに
    AOAI APIエンドポイント
    にリクエスト
    ・システムプロンプト
    ・会話履歴
    (認証︓IP+APIキー)
    '8CPMUGPS1ZUIPO
    (15
    (15
    ࠷৽ϝοηʔδͷจݴͰ
    ޲͖ઌ൑ఆ
    VPC
    かぐたん

    View full-size slide

  7. 6
    KDDI Agile Development Center Corporation
    かぐたん について
    回答フォーマットやキャラ設定は、システムプロンプトで実現

    View full-size slide

  8. 7
    KDDI Agile Development Center Corporation
    かぐたん について

    View full-size slide

  9. 8
    KDDI Agile Development Center Corporation
    かぐたん について
    • Amazon Bedrockを利⽤し、フルAWSで構築
    • ⾔語モデルはClaude v2を採⽤(採⽤当時はGPT-4より安価だったが、今はGPT-4 Turboの⽅が安価。。。)
    • 社外展開も睨んで会話履歴とプロンプトをDynamoDBに保存、取得して利⽤出来るように変更
    AWS Cloud
    &$3
    'BSHBUF
    λεΫ
    "1*αʔό

    4MBDL
    Πϝʔδऔಘ
    イベント検知
    会話履歴の送信
    '8CPMUGPS1ZUIPO
    VPC
    %ZOBNP%#
    "NB[PO#FESPDL
    Bedrockのみ
    バージニア北部
    リージョンを利⽤
    (Claude v2モデル
    利⽤のため)
    会話履歴の保持
    テキスト⽣成
    %ZOBNP%#
    プロンプトの取得
    現在、Bedrockを利⽤して魔改造中︕︕
    会話履歴とプロンプ
    トをDynamoDBに
    外出し

    View full-size slide

  10. 9
    KDDI Agile Development Center Corporation
    かぐたん について
    • Bedrockを利⽤するにあたり、書き換えたコードはこれだけ︕
    既にLangChainでアプリを作成している場合は簡単に置き換え可能︕
    ▼ Bedrock利⽤の場合
    ▼ Azure OpenAI利⽤の場合
    Claude v2 など
    を指定

    View full-size slide

  11. 10
    KDDI Agile Development Center Corporation
    かぐたん の今後の展望
    • 社内⽤Slack Botに留まらず、社外にも展開していきたい
    • RAG(Retrieval Augmented Generation: 検索拡張⽣成)の搭載
    ◦ 提供先に合わせたデータを利⽤出来るように⼯夫したい
    ◦ Amazon Kendra や Knowledge Bases for Amazon Bedrock の利⽤
    A社のについて教えて︕ A社の情報を検索
    検索結果
    検索結果を元に回答
    Amazon Kendra
    A社のドキュメント

    View full-size slide

  12. 11
    KDDI Agile Development Center Corporation
    LINE Bot 作ってみた

    View full-size slide

  13. 12
    KDDI Agile Development Center Corporation
    LINE Bot 作ってみた
    • かぐたんへのRAG搭載に向けて、個⼈でLINE Botを開発し検証中
    • かぐたんと同じくBedrockを利⽤(⾔語モデルはClaude Instance)
    • RAGのデータストアにはPineconeを利⽤
    AWS Cloud
    &$3
    Πϝʔδऔಘ
    ユーザーのメッセージ送信
    4
    "NB[PO#FESPDL
    会話履歴の保持
    テキスト⽣成
    4
    プロンプトの取得
    "1*(BUFXBZ -BNCEB
    Claude v2ではなく
    Claude Instanceを利⽤
    し、全て東京リージョ
    ンで実装
    データを検索

    View full-size slide

  14. 13
    KDDI Agile Development Center Corporation
    LINE Bot 作ってみた
    ずんだもん
    東北地⽅のマスコットキャラクター
    (擬⼈化)
    ▼ システムプロンプト
    ずんだもん︓https://zunko.jp/#charaZM
    イラスト: 坂本アヒル様(h"ps://seiga.nicovideo.jp/user/illust/97452727)
    キャラクター設定はかぐたんと同様に、システムプロンプトで実現

    View full-size slide

  15. 14
    KDDI Agile Development Center Corporation
    LINE Bot 作ってみた

    View full-size slide

  16. 15
    KDDI Agile Development Center Corporation
    LINE Bot 作ってみた
    • RAGのデータソースは、ずんだもんに関連するキャラクターや⾳声合成ソフト(VOICEOVOX/VOICEROID)の
    Wikipediaのデータを利⽤
    • 検証する上での⼯夫点
    ◦ コスト削減のために、会話履歴とシステムプロンプトの管理にDynamoDBを利⽤せず、S3を利⽤
    ◦ 特に会話履歴の管理に関しては、仕組みの理解につながったので良かった
    PDFで保存 Vector Store作成

    View full-size slide

  17. 16
    KDDI Agile Development Center Corporation
    PartyRock

    View full-size slide

  18. 17
    KDDI Agile Development Center Corporation
    PartyRock
    誰でも簡単に⽣成AIアプリが作成出来ます︕
    • Amazon Bedrockを活⽤したサービスで、ローコードで⽣成AIアプリケーションを作成することが出来る︕
    • Amazonアカウント、Googleアカウント、Apple IDがあれば誰でも利⽤可能︕
    • 作成したアプリを、簡単に他のユーザーに公開することも出来る︕
    https://partyrock.aws/

    View full-size slide

  19. 18
    KDDI Agile Development Center Corporation
    PartyRock
    以下のようなアプリケーションが、ローコードで5分ほどで作成出来ます︕
    「PartyRockを早速使ってみた︕」︓https://qiita.com/yu-Matsu/items/40cf32c2950f3d0e6094

    View full-size slide

  20. 19
    KDDI Agile Development Center Corporation
    まとめ

    View full-size slide

  21. 20
    KDDI Agile Development Center Corporation
    まとめと所感
    • フルAWSでアプリケーションを構築出来るようになったので、閉域化しやすくなった
    • LangChainが直ぐに対応したので、既存のアプリケーションの置き換えも簡単
    • PartyRockの登場により、誰でも⽣成AIアプリケーションを作成出来るようになった︕(敷居が低くなった)
    あったらいいな
    • Claude v2が東京リージョンに来てほしい
    ◦ セキュリティやレスポンスの速度など⾊々と課題がある
    • Add your data (Azure OpenAI) や Assistants API (OpenAI) のようにもっと気軽に独⾃データを使いたい
    ◦ re:Invent で発表されたばかりの Agents for Amazon Bedrock に期待︕︕

    View full-size slide

  22. 21
    KDDI Agile Development Center Corporation
    まとめと所感
    さあ、みんなも
    Bedrockしよう︕︕💪

    View full-size slide

  23. 22
    KDDI Agile Development Center Corporation
    最後に宣伝になります
    URL: https://qiita.com/advent-calendar/2023/kag
    本⽇からKAG社のアドベントカレンダーが始まっています︕

    View full-size slide

  24. Be a Change Leader.
    アジャイルに⼒を与え
    共に成⻑し続ける社会を創る

    View full-size slide