Slide 1

Slide 1 text

©Fusic Co., Ltd. 0 初めての札幌と初めてのBedrock ~Bedrock Converse API×SAMで遊んでみる~ 2024.07.12 Mai Miyazaki @maimyyym 第36回 JAWS-UG札幌

Slide 2

Slide 2 text

©Fusic Co., Ltd. 1 今⽇話すこと はじめに 対象 Bedrockって結局何?どう使うの? 気になるけど、ついていけない! …という⼈!=今の私 ⾔いたいこと 初めてを楽しもう

Slide 3

Slide 3 text

©Fusic Co., Ltd. 2 宮崎 真⾐ Miyazaki Mai HN: mai (@maimyyym ) ◉ I am - 管理栄養⼠(養成校卒業・資格保持のみ) - 元百貨店スタッフ(Beauty Counselor) - 2023年10⽉ Fusic⼊社 ◉ Skill - PHP / AWS / TypeScript / Python ◉ Comment - はじめての北の⼤地! ⾃⼰紹介 はじめに 事業本部 技術創造部⾨ / エンジニア 株式会社Fusic at 福岡

Slide 4

Slide 4 text

©Fusic Co., Ltd. 3 CONTENTS ⽬次 1. ⽣成AI時代の⾃分を考える 2. サラッと⾒てみるBedrock 3. SAM × Bedrock Converse API 4. 感想・まとめ

Slide 5

Slide 5 text

©Fusic Co., Ltd. 4 ⽣成AI時代の⾃分を考える 時代は⽣成AI。ついていけてる? / Bedrockに対する知識感 1

Slide 6

Slide 6 text

©Fusic Co., Ltd. 5 時代は⽣成AI。ついていけて… ⽣成AI時代の⾃分を考える ついていけて…ない なぜキャッチアップするのか 惰性でキャッチアップ? それは違う

Slide 7

Slide 7 text

©Fusic Co., Ltd. 6 時代は⽣成AI。ついていけて… ⽣成AI時代の⾃分を考える 「⽣成AI」の知識、必要? ⽣成AIを武器にする未来は⾒えていない。 ⾃分も、社会も、 ⽣成AIだけというわけにはいかない。 とはいえ、けして無視できない 必須となる新しい技術=基礎となるものだから ⾃分⾃⾝の Specialty IT基礎 ⽣成AI

Slide 8

Slide 8 text

©Fusic Co., Ltd. 7 サラッと⾒てみるAWS Bedrock 2

Slide 9

Slide 9 text

©Fusic Co., Ltd. 8 Bedrockについて、今の知識 サラッと⾒てみるBedrock Bedrockってどう デプロイするんだろう? Bedrockは呼び出すもの たしかに・・・!

Slide 10

Slide 10 text

©Fusic Co., Ltd. 9 まずはこれ、Bedrock頻出単語 サラッと⾒てみるBedrock 。 基盤モデル(Foundation Model) ⽣成AIの⼀種。 “基盤”なので様々なデータで 再トレーニングして、独⾃の複雑な タスク・アプリケーションに使える エージェント ユーザーの⼊⼒に対して、その達成に 必要なタスクを洗い出して実⾏する。 ざっくり:いい感じに処理してくれる。 RAG(検索拡張⽣成) 基盤モデルが学習していない内容(あ る個⼈や組織のプライベートなデータ とか)を外部ソースとして読みに⾏っ てレスポンスを⽣成できる仕組み ナレッジベース ある企業・組織・ドメイン等において ナレッジ=データ=情報を 集約・蓄積したもの。 RAGの外部ソースとなりうるもの。 ※⼝頭での説明はとばします

Slide 11

Slide 11 text

©Fusic Co., Ltd. 10 SAM × Bedrock Converse API 3

Slide 12

Slide 12 text

©Fusic Co., Ltd. 11 Converse API SAM × Bedrock Converse API Converse APIとは 従来のInvokeModel APIはモデルに よって呼び出し⽅が違った。 Converse APIはモデルの種類によらず 同じインターフェースで実⾏可能。 client = boto3.client("bedrock-runtime") inferenceConfig = { "temperature": 0.1, "maxTokens": 500, "topP": 0.9, } modelId = ”anthropic.claude-v2” prompt = "Who are you?” messages = [{ "role": "user", "content": [{"text": prompt}] }] response = client.converse( modelId=modelId, messages=messages, inferenceConfig=inferenceConfig ) 何が嬉しい? APIにアクセスする仕組みを⼀つ実装 するだけでBedrockの各モデルを簡単 にお試しできる! 同じコードで、 値を変えるだけで 実⾏可能!

Slide 13

Slide 13 text

©Fusic Co., Ltd. 12 ConverseAPIを呼び出すLambda関数をSAMで構築する SAMとは? CloudFormationをベースとした、サーバーレスアプリケーションを構築 するためのフレームワーク。 SAM CLIを利⽤することでビルドやデプロイを簡単に実⾏。 ローカル起動も! 私にとって⾝近なSAMで、Bedrockを試す SAM × Bedrock Converse API SAM

Slide 14

Slide 14 text

©Fusic Co., Ltd. 13 SAMでローカルAPIサーバーを起動 SAM × Bedrock Converse API を実⾏すると、 $ sam local start-api --{option} http://localhost:3000 が APIエンドポイントに SAM

Slide 15

Slide 15 text

©Fusic Co., Ltd. 14 ConverseAPIを呼び出す SAM × Bedrock Converse API client = boto3.client("bedrock-runtime") inferenceConfig = { "temperature": 0.1, "maxTokens": 500, "topP": 0.9, } def handler(event, context): modelId = event["queryStringParameters"]["modelId"] prompt = event["queryStringParameters"]["prompt"] messages = [{ "role": "user", "content": [{"text": prompt}] }] response = client.converse( modelId=modelId, messages=messages, inferenceConfig=inferenceConfig ) クエリパラメータで モデルIDとプロンプトを指定 ※ローカルで簡単に検証するためのコードです Converse API 呼び出し SAM

Slide 16

Slide 16 text

©Fusic Co., Ltd. 15 APIテストツール”Postman”で⼿軽に実⾏ SAM × Bedrock Converse API GUIで簡単に値を変えて Bedrockを試すことができる

Slide 17

Slide 17 text

©Fusic Co., Ltd. 16 感想・まとめ 4

Slide 18

Slide 18 text

©Fusic Co., Ltd. 17 やってみて感じたこと 感想・まとめ 情報は多いが、少ない 新機能・アップデートの情報量は多い! ⼀⽅で、実装にあたって困ったことの解決⽅法は、 新しいが故にまだまだ情報が少ない。 ⼿探りで、⾃分の発想で、問題を解決する必要がある。 発信とコントリビュートのチャンス!

Slide 19

Slide 19 text

©Fusic Co., Ltd. 18 まとめ 初めての札幌と初めてのBedrock〜Converse API×SAMで遊んでみる〜 情報がいっぱい、ついていけない・・・ ひとつずつ理解 ×できることからチャレンジ 新しいが故の情報の多さと少なさを楽しむ 頻出単語を まずは知る 私の場合は SAMだった

Slide 20

Slide 20 text

©Fusic Co., Ltd. 19 まとめ 初めての札幌と初めてのBedrock〜Converse API×SAMで遊んでみる〜 初めてを楽しもう!

Slide 21

Slide 21 text

©Fusic Co., Ltd. 20 Thank You We are Hiring! https://recruit.fusic.co.jp/ ご清聴いただきありがとうございました