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
93
第132回 雲勉【オンライン】春の生成AI祭り
下記、勉強会での資料です。
https://youtu.be/Ok0-qoNmBWQ
iret.kumoben
April 11, 2024
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第146回 雲勉 BLEAを眺めてCDKの書き方について学ぶ
iret
1
45
第145回 雲勉 Amazon ECSでサービス間通信する方法を調べてみよう
iret
0
39
第144回 雲勉 Amazon Aurora Serverless v2の基礎とアーキの裏側を覗いてみる
iret
0
84
第143回 雲勉 [New Relic]インフラストラクチャ監視と気をつけたいポイント
iret
0
39
第142回 雲勉 AWS Backupの復元テストで自動化できること・できないこと
iret
0
84
第141回 雲勉 Amazon Inspectorによる脆弱性管理~ECR コンテナイメージ編~
iret
0
200
第2回 雲勉LT大会 パブリッククラウドのサーバレスサービスの違いを調べてみた
iret
0
24
第2回 雲勉LT大会 AWS Control Tower の「コントロール」って何? という謎から AWS Control Tower を知る
iret
0
23
第2回 雲勉LT大会 AWS/Google Cloud/Wasabi ストレージサービスを比較したい
iret
0
43
Other Decks in Technology
See All in Technology
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
210
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
470
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
120
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
280
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
3
200
スクラム成熟度セルフチェックツールを作って得た学びとその活用法
coincheck_recruit
1
140
Lexical Analysis
shigashiyama
1
150
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段
hiyanger
1
240
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
120
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
How to Ace a Technical Interview
jacobian
276
23k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Why Our Code Smells
bkeepers
PRO
334
57k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Designing for humans not robots
tammielis
250
25k
Happy Clients
brianwarren
98
6.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Agile that works and the tools we love
rasmusluckow
327
21k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
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 おわり