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

第118回 雲勉【オンライン】AWS・Google Cloud 生成AI特集

第118回 雲勉【オンライン】AWS・Google Cloud 生成AI特集

iret.kumoben

November 02, 2023
Tweet

More Decks by iret.kumoben

Other Decks in Technology

Transcript

  1. 第118回 雲勉【オンライン】
    AWS・Google Cloud ⽣成AI特集

    View full-size slide

  2. 本日やること
    2
    ● 自己紹介
    ● AWS
    ○ LINE API/Amazon Bedrock/Claude2を組み合わせたLINE bot
    ● Google Cloud
    ○ LINE API/Vertex AI/PaLM2を組み合わせたLINE bot
    ● まとめ

    View full-size slide

  3. 自己紹介
    3
    Amazon ベストセラー獲得
    Kento.Yamada (github,Twitter,zenn,Qiita@ymd65536)
    経歴
    ● 2022年10月~現在 アイレット株式会社
    ○ クラウドインテグレーション事業部 MSP開発セクション(東京配属)
    ● (2016年~2022年9月)某通信キャリアの子会社
    ○ ITスペシャリスト(エンジニア)

    View full-size slide

  4. 4
    AWSの場合

    View full-size slide

  5. 利用技術
    ● LINE API
    ○ Messaging API
    ● AWS
    ○ AWS Lambda
    ○ Amazon Bedrock(Claude2を利用)
    6

    View full-size slide

  6. AWS Cloud
    全体構成
    7
    .zipアップロード、レイヤー作成
    1.Webhookによる接続
    4.LINEアプリ上で結果を閲覧
    2. モデルClaude2のAPIを実行
    3.結果を取得
    AWS Lambda
    Amazon Bedrock

    View full-size slide

  7. LINE Messaging API
    👈詳しく知りたい人はこちら
    8
    https://www.youtube.com/watch?v=KiuLRTSuTzg
    LINEのメッセージ機能をAPIとして提供するサービス

    View full-size slide

  8. Amazon Bedrockとは
    9
    基盤モデルを使用して生成系 AI アプリケーションを
    構築およびスケーリングする最も簡単な方法。
    主な特徴
    ● 大手 AI 企業が提供する高性能な基盤モデルを
    単一の API で選択できるフルマネージド型サービス
    ● サーバレス
    参考:https://aws.amazon.com/jp/bedrock/
    Amazon Bedrock

    View full-size slide

  9. 実装方法
    ● AWS SDK for Python(boto3)を使って実装
    Lambdaがデフォルトで提供しているboto3には
    bedrockのAPIを操作する実装が存在しない。(2023年10月23日現在)
    →bedrockのAPIに対応したboto3のLambdaレイヤーを作成する
    10

    View full-size slide

  10. 補足:Lambdaのboto3のバージョンを確認する方法
    11
    実行!
    Amazon Bedrockは1.28.57でサポート
    1.27.1では動作しない
    参考:
    https://github.com/boto/boto3/blob/develop/.changes
    /1.28.57.json

    View full-size slide

  11. 補足:Lambdaのレイヤーを作成する
    12
    boto3 1.28.58をインポート

    View full-size slide

  12. IAMポリシーを作成
    13
    権限は最小にする!
    CloudWatch Logsのポリシー

    View full-size slide

  13. Lambdaで実行するPythonスクリプトの仕様
    14
    event_type
    is Message
    message
    _type
    is
    text
    Start
    message
    _type
    is
    image
    message
    _type
    is
    sticker
    End
    Bedrock APIの実行
    画像には対応していな
    い旨を表示
    スタンプには対応して
    いない旨を表示
    実行結果を取得
    True
    True True
    False
    message_typeを返す
    True
    False False
    False

    View full-size slide

  14. ここまでのまとめ
    ● Amazon Bedrockを使うとサーバレスにAIをアプリケーションに実装できる
    ● AWS SDK for PythonからAPIを実行する
    ● LambdaでAPIを実行する時はレイヤーを組む必要がある
    ※現時点ではLambdaに実装されているバージョンが1.27.1であり、bedrockの
    APIに対応していない
    15

    View full-size slide

  15. 16
    Google Cloudの場合

    View full-size slide

  16. 利用技術
    ● LINE API
    ○ Messaging API
    ● Google Cloud
    ○ Cloud Run
    ○ Artifact Registry
    ○ Vertex AI(PaLM2を利用)
    18

    View full-size slide

  17. 全体構成
    19
    Artifact
    Registry
    Cloud Run
    Vertex AI
    イメージをpush
    2.コンテナイメージをpull
    1.Webhookによる接続
    5.LINEアプリ上で結果を閲覧
    3. chat-bisonのAPIを実行
    4.結果を取得

    View full-size slide

  18. Cloud Runとは
    コンテナを実行できるマネージドサービス
    特徴
    ● サーバレスコンピューティング
    ● 受信リクエストに合わせて、コンテナが自動的にスケール
    今回はジョブではなく、サービスとしてコンテナを実行
    LINE Messaging APIのWebhook URLとして利用
    20
    CloudRunの料金:https://cloud.google.com/run/pricing?hl=ja

    View full-size slide

  19. Artifact Registryとは
    21
    次世代の Container Registry
    特徴
    ● パッケージと Docker コンテナイメージを1 か所で保管し、管理
    できる
    ● CloudBuildのアーティファクトを保存する場所として利用できる
    Caution
    現在はContainer Registryではなく、Artifact Registryが推奨されてい
    ます!
    今回はCloud Runに使うコンテナのイメージを保存するために利用
    Artifact Registryの料金:https://cloud.google.com/artifact-registry/pricing?hl=ja

    View full-size slide

  20. Vertex AIとは
    22
    エンタープライズ対応の生成 AI でイノベーションを加速する
    特徴
    ● さまざまなAIモデルの提供およびトレーニング
    ● 検証にちょうどいいGenerative AI Studio
    ● もちろん、PaLM2も提供

    View full-size slide

  21. PaLM2とは
    ● Google が開発した最新のLLMであり、PaLMの後継
    ● 4種類のモデル:Gecko、Otter、Bison、Unicorn
    ● 25 を超える Google の製品と機能に搭載
    23
    引用元:PaLM 2 のご紹介 https://japan.googleblog.com/2023/05/palm-2.html

    View full-size slide

  22. Vertex AI における生成 AI サポートの料金
    24
    Vertex AI における生成 AI サポートの料金:https://cloud.google.com/vertex-ai/pricing?hl=ja
    1,000文字あたり、$0.0005

    View full-size slide

  23. 実装方法
    ● Vertex AI SDK for Pythonを使って実装
    →SDKからgoogle-cloud-aiplatformのvertexaiをインポート
    →language_modelsからChatModelをInvoke
    25
    〜実装のポイント〜
    ● context を設定
    ● InputOutputTextPairを設定

    View full-size slide

  24. Pythonスクリプトの仕様(AWSで実装した時とほぼ同じ)
    26
    event_type
    is Message
    message
    _type
    is
    text
    Start
    End
    VertexAI APIの実行
    実行結果を取得
    True
    True
    False
    False

    View full-size slide

  25. 補足:テキストだけでなく画像などの情報もAIでやっていきたいところですが。。
    27
    プレビュー中のモデルが多いので今回は断念 ↓現在(2023.10.23)利用できるモデル

    View full-size slide

  26. Google Cloudを使ったLINE botのまとめ
    ● 今回はCloud Runを使ってVertex AIを実行した
    ● Vertex AIを使うと手軽に生成AIが扱える!
    ● まだまだ知見は少ないけども、可能性は無限大!
    28

    View full-size slide