Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第132回 雲勉【オンライン】春の生成AI祭り
Search
iret.kumoben
April 11, 2024
Technology
1
100
第132回 雲勉【オンライン】春の生成AI祭り
下記、勉強会での資料です。
https://youtu.be/Ok0-qoNmBWQ
iret.kumoben
April 11, 2024
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第149回 雲勉 AWS ベストプラクティスの最新と実態 AWS Well-Architected
iret
0
39
第148回 雲勉 Web アプリケーションセキュリティ
iret
0
30
第147回 雲勉 Amazon CloudWatchをウォッチ!
iret
0
53
第146回 雲勉 BLEAを眺めてCDKの書き方について学ぶ
iret
1
55
第145回 雲勉 Amazon ECSでサービス間通信する方法を調べてみよう
iret
0
51
第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を覗いてみる
iret
0
99
第143回 雲勉 [New Relic]インフラストラクチャ監視と気をつけたいポイント
iret
0
45
第142回 雲勉 AWS Backupの復元テストで自動化できること・できないこと
iret
0
110
第141回 雲勉 Amazon Inspectorによる脆弱性管理~ECR コンテナイメージ編~
iret
0
300
Other Decks in Technology
See All in Technology
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
28
24k
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
1
280
TypeScript開発にモジュラーモノリスを持ち込む
sansantech
PRO
3
760
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
410
2024年にチャレンジしたことを振り返るぞ
mitchan
0
160
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
620
Working as a Server-side Engineer at LY Corporation
lycorp_recruit_jp
0
450
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
320
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
340
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
320
AWS re:Invent 2024 recap
hkoketsu
0
470
クレカ・銀行連携機能における “状態”との向き合い方 / SmartBank Engineer LT Event
smartbank
2
110
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
230
52k
Embracing the Ebb and Flow
colly
84
4.5k
Optimising Largest Contentful Paint
csswizardry
33
3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
GraphQLとの向き合い方2022年版
quramy
44
13k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Speed Design
sergeychernyshev
25
690
Facilitating Awesome Meetings
lara
50
6.1k
A Tale of Four Properties
chriscoyier
157
23k
Done Done
chrislema
182
16k
Gamification - CAS2011
davidbonilla
80
5.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
171
50k
Transcript
第132回 雲勉【オンライン】 春の⽣成AI祭り
話すこと 2 • 自己紹介 • PR • 生成AIを活用すると何ができるか ◦ プロンプトとは
◦ プロンプトの具体例 ◦ プロンプトエンジニアリング • AIが知っていること知らないこと ◦ 自分専用!独自の知見をAIに教えるにはどうしたら良いか ◦ プロンプトへ回答に必要な情報を含める ◦ RAG(Retrieval-Augmented Generation) • さまざまな生成AIモデル(一部紹介) ◦ PaLM2 ◦ Gemini ▪ 読み方について ◦ Claude ▪ Claudeの種類 • AIを検証する方法(一部) ◦ Vertex AI Studio ◦ Vertex AI Workbench + Vertex AI SDK for Python ◦ BigQuery ML • AIを実装する方法(一部) ◦ Vertex AI SDK for Python ◦ LangChain ◦ Semantic Kernel • Slack botを使った具体例 ◦ 具体例1 シンプルにAIと対話する ▪ 構成図 ◦ 具体例2 iret.mediaを検索する ▪ 構成図 ◦ 具体例3 cloudpackの事例ページを検索する ▪ 構成図 ◦ 具体例4 画像に含まれている文字列を検査する ▪ 構成図 • LINE botを使った具体例 ◦ デモ • 実装する上で必要な用語 ◦ チャンクとオーバーラップ ◦ エンべディング • 生成AI利用時の注意点 • まとめ
経歴 • 2022年10月~現在 アイレット株式会社 MSP開発セクション • (2016年~2022年9月)某通信キャリアの子会社 ITスペシャリスト 直近の実績 •
2024年3月 LAPRAS OUTPUT AWARD • 2024年2月 Google Cloud Partner Tech Blog Challenge 2023 Cloud AI/ML部門 github,zenn,Qiita,X(旧Twitter),Facebook@ymd65536 経歴含め自己紹介 3
LAPRAS OUTPUT AWARD 4 LAPRAS株式会社 様からいただいた表彰! 執筆を続けたことが書籍出版や転職のチャンスを引き寄せた Kento.Yamadaさんのアウトプット戦略【LAPRAS OUTPUT AWARD
202401】 受賞インタビュー「Kento.Yamadaさん」
Google Cloud Partner Tech Blog Challenge 2023 Cloud AI/ML部門 5
Google Cloudの魅力を伝える年に一度のブログチャレンジ! 「Google Cloud」と「LINE bot」の2つをテーマにして受賞! 引用:Google Cloud Partner Tech Blog Challenge の 2023 年度受賞者発表
PR 6 コンピュータ・IT部門で1位 アプリケーション部門で1位 Amazon ベストセラー獲得 2023/9/2 発売 AWS認定 高度なネットワーキングー専門知識
(ANS-C01)完全対応テキスト 2024/03/25 発売
7 本編
生成AIを活用すると何ができるか 8 指示(プロンプト)とナレッジを元に新たな情報を生成する! ナレッジ ナレッジ ナレッジ ナレッジ ナレッジ ナレッジ ナレッジ
指示(プロンプト) 回答 たとえば、質問回答やアイデアの壁打ちなどの用途がある。
プロンプトとは 9 生成AIにおいてはAIに対する指示書 命令 コンテキスト 入力データ 出力形式 モデルに実行して欲しいタスク タスクに関する追加の情報、追加の文脈 タスクを実行するための入力データ
どのような種類や形式で出力するか ※タスクの種類によって、プロンプトに含める要素を変更する
プロンプトの具体例 10 より具体的に書くことで良い結果を得られるようになる! 命令 コンテキスト 入力データ 出力形式 Hello Worldのコードを生成してください あなたはPythonのエンジニアです
POSTメソッドのエンドポイント Flaskとして動作可能な形式で あなたはPythonのエンジニアです。Flaskとして動作可能な形式で POSTメソッドのエンドポイントで動作するHello Worldのサンプルコードを書いてください。
プロンプトエンジニアリングとは 11 • 最適な結果を得るために、プロンプト(指示)を設計すること • 最適な結果を効率的に得ることでLLMをより効果的に活用できる 曖昧なプロンプト より適切な回答が得られるプロンプト かしこまりました。 以下は、C言語のサンプルコードです。
Hello Worldのサンプルコードを書いてください あなたはPythonが扱えるエンジニアです。 Pythonで実行できるHello Worldのサンプルコード を書いてください。 かしこまりました。 以下はPythonで動作するサンプルコードです。
AIが知っていること知らないこと 12 学習している範囲でしか回答ができないのでもちろん知らないこともある! ナレッジ ナレッジ ナレッジ ナレッジ ナレッジ ナレッジ ナレッジ
アイレットの資格制度について教えてください。
AIが知っていること知らないこと 13 学習している範囲でしか回答ができないのでもちろん知らないこともある! ナレッジ ナレッジ ナレッジ ナレッジ ナレッジ ナレッジ 学習内容
アイレットの資格制度について教えてください 。 「わかりません!」 資格制度に関する情報がない
AIが知っていること知らないこと 14 知らないことは学習させるか情報を提供してあげる必要がある! ナレッジ ナレッジ ナレッジ ナレッジ ナレッジ ナレッジ 学習内容
アイレットの資格制度について教えてください 。 はい。AWSとGoogle Cloudで制度に関する 記載があります。 (以下略) AWSとGoogle Cloudで いくつか用意があります。
自分専用!独自の知見をAIに教えるにはどうしたら良いか 15 簡易的なやり方:プロンプトに回答に必要な情報を含める より本格的なやり方:RAG
プロンプトへ回答に必要な情報を含める 16 回答に必要な情報を指示(プロンプト)に含めて回答を得る方法 アイレットの資格制度にはAWSとGoogle Cloudで いくつか用意があります。 〜〜〜〜 上記の文脈を踏まえて以下の質問に回答してください。 アイレットの資格制度について教えてください。 AWSとGoogle
Cloud で制度に関する記載が あります。 (以下略)
RAG(Retrieval-Augmented Generation)とは 17 AI専用のナレッジベースをデータベースに持たせて回答を得る方法 アイレットの資格制度について教えてください 。 AWSとGoogle Cloud で制度に関する記載が あります。
(以下略) AWSとGoogle Cloudで いくつか用意があります 。 データベース データベースにアイレットの資格制度を記録しておく。
さまざまな生成AIモデル(一部紹介) 18 今回は3つほど紹介 • PaLM • Gemini • Claude
PaLM2とは 19 • Google が開発したLLMであり、PaLMの後継 • 4種類のモデル:Gecko、Otter、Bison、Unicorn • 25 を超える
Google の製品と機能に搭載 引用元:PaLM 2 のご紹介 https://japan.googleblog.com/2023/05/palm-2.html
Geminiとは 20 • Google DeepMindによって開発されたマルチモーダル大規模言語モデルのファミリー • Ultra、Pro、nanoの3つがある • Duet AIやBardはGeminiという名前に統一されている
• Gemini の由来は Core Contributors 6 人の頭文字 画像引用元: 創造力や生産性を高めましょう https://gemini.google.com/?hl=ja 引用元: Gemini: A Family of Highly Capable Multimodal Models https://storage.googleapis.com/deepmind-media/gemini/gemini_1_report.pdf
「Gemini」の読み方 21 Googleの公式見解では「ジェミニ」 英語圏では「ジェミナイ」と呼ぶ人が多いようです。※ なお、本編では「ジェミニ」という呼び方で統一しております。 ※英語圏に住む知人に聞きました。
Claudeとは 22 • Anthropic社によって開発された大規模な言語モデルのファミリー • Amazon BedrockやVertex AIで提供 主な特徴 •
長文の扱いに長けている • 種類が豊富(次スライドで時系列とともに紹介) Claude ¥ Anthropic:https://www.anthropic.com/claude
Claudeの種類 23 Claude 1.3 Claude Instant Claude 2 Claude 3
Opus Haiku Sonnet 2023年3月14日 2023年7月11日 2024年3月4日 ※Claude Instant:比較的軽量かつ安価に利用できるようにしたClaude ※2024年3月7日:Google Cloud Vertex AI に Anthropic の Claude 3 モデルが登場
AIを検証する方法(一部) 24 生成AIアプリケーションを作る前に役立つサービスを紹介! • Vertex AI Studio • Vertex AI
Workbench • BigQuery ML
Vertex AI Studioとは 25 旧称 Generative AI Studio、Google Cloudで手軽にAIを体験できるサービス 主な特徴
• AIがまとめられているサービス • さまざまなAIモデルのプレイグラウンド • AIを調整しながらプロンプトを試せる • コードを書かなくてもよい
Vertex AI Workbench 26 Google Cloud上でJupyterLabを利用できるサービス 主な特徴 • Google Cloudの認証/認可を使ってGoogle
Cloudのサービスに対して手軽に接続できる • Google Cloud StorageやBigQueryと連携できる • Git連携 ※JupyterLab:ノートブックという単位でスクリプトおよびプログラムを実行できる環境
BigQuery ML 27 BigQueryからSQLを実行してVertex AIのAIモデルを呼び出す! 最大の特徴 • BigQueryにあるデータセットを使いつつ、AIモデルを呼び出せる! • SQLで完結するため、SDKを使わなくてもRAGの検証ができる!
※Vertex AIへのリモートエンドポイント(コネクション)を構築する必要があります。
AIを実装する方法(一部) 28 Google CloudとSlack BoltまたはLINE botを使って具体例を紹介します! 紹介するフレームワーク・SDK • Vertex AI
SDK for Python • LangChain • 補足:Semantic Kernel
Vertex AI SDK for Python 29 Google Cloudで提供されているVertex AI用の開発キット 主な特徴
• Google Cloud公式が提供するSDK • 公式ドキュメントが詳細に書かれている • 数行記述するだけでVertex AIのAPIを利用できる ※なお、パッケージ名にpreviewとあるものはプレビュー版の機能であるため 利用には注意が必要です。
LangChain 30 LLMモデルを提供している複数のサービスで利用可能なフレームワーク! 主な特徴 • Azure、AWS、Google Cloudなどで提供しているLLMを手軽に呼び出せる ◦ 呼び出すモデル名などを少し変えるだけで他のクラウドサービスにも対応できる •
「Chain」という仕組みを使うことでLLMに対し、さまざまな呼び出しができる • RAGも容易に表現できる
Semantic Kernel 31 Microsoftが提供するLLMアプケーションを開発するためのフレームワーク 主な特徴 • Azure Open AIやOpen AIを操作するためのフレームワーク
• .NETアプリケーションとの強力なコラボレーション 触ってみたい方はzennでブログを書いていますので試していただけますと幸いです。 https://zenn.dev/ymd65536/articles/semantic_kernel_v101_handson
Slack botを使った具体例 32 実際に作成したものをいくつか紹介します!(Geminiを利用) • 具体例1:シンプルにAIと対話する • 具体例2:iret.mediaを検索する • 具体例3:cloudpackの事例ページを検索する
• 具体例4:画像に含まれている文字列を検査する
具体例1 シンプルにAIと対話する 33
具体例1 シンプルにAIと対話する 34 回答に必要な情報を与えない 右のように「山田顕人」を知らない。 また、わからないことを「わからない」と言うように 指示を受けていないので間違えた情報を返します。
具体例1 シンプルにAIと対話する 35 回答に必要な情報を与える 👈左のように質問をすると 上記のような回答を返します。
具体例1 シンプルにAIと対話する(構成図) 36
具体例2 iret.mediaを検索する 37 iret.mediaの内容を元に応答を取得する。 参照したリンク:アイレット広報通信2月号 👈左のように質問をすると 上記のような回答を返します。
具体例2 iret.mediaを検索する(構成図) 38
具体例3 cloudpackの事例ページを検索する 39 特定のサービスで事例を検索して要約する。 上記のように質問すると 右のような回答を返します。
具体例3 cloudpackの事例ページを検索する(構成図) 40
具体例4 画像に含まれている文字列を検査する 41 画像をチェックして秘匿情報が含まれていないかチェックする 上記のように画像を添付すると右のような回答を返します。 ※iret.mediaで紹介しています:https://iret.media/94023
具体例4 画像に含まれている文字列を検査する(構成図) 42
LINE botのデモ 43
LINE botを使った具体例(構成図) 44
補足:LINE botの作り方 45 zenn に作り方を載せているので興味のある方は覗いてみてください! [RAG]最近読んだ本を教えてくれるLINE botをGemini Proを使って作成してみた https://zenn.dev/ymd65536/articles/recently_read_books_bot
実装する上で必要な知識 46 おさえておくと実装が捗る用語 • チャンク • オーバーラップ • エンべディング
チャンクとオーバーラップ 47 文字列の分割する:チャンク、分割した文字列のつなぎ目を作る:オーバーラップ 文章を分割(チャンク)するだけだと、分割した文章同士の文脈を補完できない。 チャンクした文章毎に文章の一部を足して文脈を補完(オーバーラップ)する必要がある。 文章A 文章B 文章C 文章A 文章Bの冒
頭 文章Aの冒 頭文章B 文章Bの冒 頭 文章C 文 章 チャンク オーバラップ
エンべディング 48 入力した文章をAIが理解できるようにするための変換処理 文章A 文章B 文章C 文章A 文章Bの冒 頭 文章Aの冒
頭文章B 文章Bの冒 頭 文章C チャンク オーバラップ 文 章 ベクトル エンべディング 原則としてAIは人間の書いた文字列を数値でしか認識できない。 よって文字列を読み取れる数値、ベクトル値として変換する必要がある。
生成AI利用時の注意点 49 コストやセキュリティは大事だけども、ここではもう少し視野を広げて。。。 生成AIを扱ううえではクラウドネイティブ特有の問題だけでなく、さまざまな問題に直面します。 具体的には以下の問題です。 • 著作権の問題 ◦ 例)許可なく他人の著作物をAIに学習させて、類似の作品などを生成して販売するなどの行為 ▪
※AIと著作権(文化庁): https://www.bunka.go.jp/seisaku/chosakuken/pdf/93903601_01.pdf ◦ ※詳しくは法律の専門家に聞くようにしてください • 道徳や倫理に反するものを生成してしまう問題 ◦ 例)暴力的、性差別的、人種差別的などの表現をするという危険性 • 事実無根の回答を生成してしまう問題 ◦ 例)山田顕人はどんな人物か 回答:山田顕人は1990年9月13日生まれ、端正な顔立ちと高い演技力で知られる有名な俳優である 。
まとめ 50 今回は春の生成AI祭り • AIを使えば、指示(プロンプト)と多くのナレッジを元に新たな情報を生成できる ◦ ただし、わからないことは「わからない」と返すようにお願いしないとデタラメな内容を回答するよ! ◦ 指示(プロンプト)をしっかり書かないといけないよ! •
知らない情報について質問する ◦ プロンプトに質問に関連する情報を渡すかもしくはRAGを構成すると回答してくれるようになるよ! • AIアプリケーションを構築する際に便利なフレームワークが複数存在する ◦ LangChainやVertex AI SDK for Pythonを使った具体例をいくつか見たよ! • 実装に必要な用語がある ◦ チャンクやオーバーラップ、エンべディングがあるよ! • 生成AIの利用には注意点がある ◦ 法律や倫理に気をつけつつ、根拠のある回答を得られるように工夫する必要があるよ!
51 おわり