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
企業向け生成AIアプリの 開発から得られた知見
Search
TakaakiKakei
July 11, 2024
Programming
0
420
企業向け生成AIアプリの 開発から得られた知見
Classmethod Odysseyのオンライン登壇資料です
日時:7/11(木) 15:40-16:20
タイトル:企業向け生成AIアプリの開発から得られた知見
TakaakiKakei
July 11, 2024
Tweet
Share
More Decks by TakaakiKakei
See All by TakaakiKakei
「AWSによる独自データ活用の生成AIソリューション」というタイトルでCM re:Growth 2023に登壇しました #AWSreInvent #cmregrowth
takaakikakei
0
930
LangChainを使ってChatGPTの機能を拡張してみた ~過去の会話やGoogle検索結果を活用して自然な応答を生成する方法~ #DevIO2023
takaakikakei
1
2.3k
Slack Boltコース!AWS Lambda & Pythonのビキナー仕立て #devio2022
takaakikakei
0
5.1k
AWS Step Functions上でエラーが発生した場合の効果的な通知方法を検討してみた
takaakikakei
0
7k
Other Decks in Programming
See All in Programming
大公開!iOS開発の悩みトップ5 〜iOSDC Japan 2024〜
ryunakayama
0
180
dRuby 入門者によるあなたの身近にあるdRuby 入門
makicamel
4
340
Scala におけるコンパイラエラーとの付き合い方
chencmd
1
150
Mastering AsyncSequence - 使う・作る・他のデザインパターン(クロージャ、Delegate など)から移行する
treastrain
3
1.3k
What we keep in mind when migrating from Serverless Framework to AWS CDK and AWS SAM
kasacchiful
1
130
ドメイン駆動設計を実践するために必要なもの
bikisuke
3
290
Prompt Cachingは本当に効果的なのか検証してみた.pdf
ttnyt8701
0
250
TypeScriptで 負荷テストを書こう 〜k6のシングルバイナリの秘密〜
dora1998
7
2.8k
Swiftで高速フーリエ変換してオーディオビジュアライザーを作る / iOSDC Japan 2024 Day1 Track D
kyome22
2
460
LangGraphでのHuman-in-the-Loopの実装
os1ma
3
550
全力の跳躍を捉える計測アプリを作る
ogijun2018
0
1k
最高の構文木の設計 2024年版
yui_knk
7
2.4k
Featured
See All Featured
How to name files
jennybc
75
97k
We Have a Design System, Now What?
morganepeng
48
7.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
Statistics for Hackers
jakevdp
793
220k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
109
6.9k
Practical Orchestrator
shlominoach
185
10k
Being A Developer After 40
akosma
82
580k
RailsConf 2023
tenderlove
26
790
Build your cross-platform service in a week with App Engine
jlugia
228
18k
4 Signs Your Business is Dying
shpigford
179
21k
Become a Pro
speakerdeck
PRO
22
4.8k
Transcript
企業向け⽣成AIアプリの 開発から得られた知⾒ 2024.7.11 AWS事業本部 筧 剛彰(Takaaki Kakei)
Xへの投稿の際は、 ハッシュタグ #cm_odyssey でお願いいたします。 2 お願い
⾃⼰紹介 筧 剛彰(Takaaki Kakei) • 所属 ◦ AWS事業本部 ◦ サービスグロースチーム
◦ ⽇⽐⾕(東京)オフィス • 役割 ◦ チームリーダー ◦ AI-Starterのサービスオーナー • SNS ◦ X(@TakaakiKakei) 3
AIを取り巻く状況 短期間で様々のサービスやLLMが登場し、AIを取り巻く環境は激しく変化している。 4 Souce 2024年6⽉のAIリリース年表 | npaka Souce Document history
for the Amazon Bedrock User Guide
⽇本のAI導⼊状況 2023年8⽉~9⽉の実態調査。AIサービスの導⼊率が約2割にとどまる⽇本企業。 今後の⽣成AI導⼊の需要はまだまだ⾒込まれる。 5 Source NRIセキュア、日・米・豪の 3か国で 「企業における情報セキュリティ実態調査 2023」を実施 |
野村総合研究所
⽇本のAI活⽤の可能性 横軸が各国のGDPで、縦軸はDX未実施企業の割合。⽇本はDXの余地が⾼く、伸びしろが⼤きい。 6 Souce ⽣成AIの産業における可能性 | 松尾研究所
AI導⼊時の選択肢 いずれの選択肢も⼀⻑⼀短がある。導⼊⽬的、セキュリティ要件、予算、⾃社技術⼒などを総合 的に勘案し、⾃社に最適な選択する。 7 • ⽣成AIプロバイダーのサービス ◦ 代表例は、OpenAIのChatGPT、GoogleのGemini • SaaS
◦ 法⼈向け⽣成AIの導⼊サービスを提供する企業が⼿掛ける • ⾃社開発 ◦ 企業内で⽣成AIシステムを⾃前で開発‧運⽤する選択肢
本セッション内容 ⾃社開発を進める上での具体的な課題や、それらを克服するための知⾒を共有します。 8 • ⽣成AIプロバイダーのサービス ◦ 代表例は、OpenAIのChatGPT、GoogleのGemini • SaaS ◦
法⼈向け⽣成AIの導⼊サービスを提供する企業が⼿掛ける • ⾃社開発 ◦ 企業内で⽣成AIシステムを⾃前で開発‧運⽤する選択肢
Agenda • ⾃社開発のおける課題と解決策 ◦ Part1:信頼性の確保 ◦ Part2:拡張性の確保 ◦ Part3:運⽤の効率化 •
おまけ ◦ Part4:⾃社ソリューションの紹介 9
PART 1 信頼性の確保 10
信頼性の確保が重要な理由 ⾃社開発に関わらず、AI導⼊には経営層からの⽀援が必要不可⽋。経営層が慎重な姿勢の場合、 「信頼性」が要因の可能性が⾼い。 11 Source ⽣成AIで企業が変わる:現状と課題 | IBM 引⽤) ⽣成
AI への投資をためらわせている要因は 何だろう か。⼀⾔で⾔えば、「信頼」である。 5 ⼈中 4 ⼈の経 営層は、⽣成 AI の導⼊の妨 げになっている要因とし て、信頼に関連する 問題が少なくとも 1 つあると考え ている。上 位にはサイバーセキュリティーやプライバ シー、正確性が挙がり、説明可能性や倫理、 バイアス (偏⾒や思い込み)についても懸念 が広がっている。
信頼性に関わる上位の問題 Part1では、信頼性に関わる上位の問題の概要と解決策を提⽰する。 12 • サイバーセキュリティ ◦ AIシステムがサイバー攻撃やデータ侵害から保護されるための措置。 • プライバシー ◦
ユーザーの個⼈情報が適切に管理され、プライバシーが尊重されること。 • 正確性 ◦ AIモデルが信頼性の⾼い情報や決定を出⼒すること。
信頼性に関わる上位の問題 Part1では、信頼性に関わる上位の問題の概要と解決策を提⽰する。 13 • サイバーセキュリティ ◦ AIシステムがサイバー攻撃やデータ侵害から保護されるための措置。 • プライバシー ◦
ユーザーの個⼈情報が適切に管理され、プライバシーが尊重されること。 • 正確性 ◦ AIモデルが信頼性の⾼い情報や決定を出⼒すること。
サイバーセキュリティへの対応 1/2 ⾃社開発初期は社内ネットワーク内で運⽤すると安⼼。Googleの以下のソリューションは、簡単 に認証をかけられるので便利。 14 Source [1] Brand Resource Center
[2] Google Apps Script ソリューション例 • Google CoLaboratory(Colab) ◦ Python ◦ サンドボックスのような環境 • Google App Script(GAS) ◦ JavaScriptベース ◦ 簡単アプリをつくりやすい [1] [2]
[参考]CoLabの使い⽅ CoLabで、Azure OpenAIのモデルを呼び出す⽅法を紹介 15 参考 Azure OpenAI Service ⼊⾨ |
Takaaki Kakei | Zenn
サイバーセキュリティへの対応 2/2 インターネット公開する場合は、厳格なアクセス管理を徹底する。以下のソリューションが便 利。あわせて社内有識者や信頼のおける外部パートナーの⼒を借りる。 16 ソリューション例 • 認証 ◦ Auth.js
• WAF ◦ AWS WAF • HTTPS ◦ App Runnerは、デフォルト ドメインがHTTPS
信頼性に関わる上位の問題 本セッションでは各問題を以下の通り定義する。 ⾃社開発においては、それぞれの問題を解決していく必要がある。 17 • サイバーセキュリティ ◦ AIシステムがサイバー攻撃やデータ侵害から保護されるための措置。 • プライバシー
◦ ユーザーの個⼈情報が適切に管理され、プライバシーが尊重されること。 • 正確性 ◦ AIモデルが信頼性の⾼い情報や決定を出⼒すること。
プライバシーへの対応 1/3 利⽤⽣成AIプロバイダーで、⼊⼒情報が学習されない⽅法を確認する。 18 • ⼊⼒情報が学習されないかは重要確認事項。 • API経由の利⽤では学習されないことが多い。 • しかし、例外があったりするので要注意。
プライバシーへの対応 2/3 利⽤⽣成AIプロバイダーで、⼊⼒情報がどのように監視されるか確認。⾃社ポリシーに沿うか チェックする。 19 • 前提 ◦ ⽣成AIプロバイダーによる監視は、コンプライアンスや法的理由などが挙げられる。 ◦
監視状況は、⽣成AIプロバイダーによってまちまち。 • ⾃社ポリシーに合致するか確認する ◦ ⼊⼒情報が何⽇間保持されるのか ◦ ⼊⼒情報への監視⽅法 ◦ 監視のオプトアウトできるか
プライバシーへの対応 3/3 利⽤⽣成AIプロバイダーで、⼊⼒情報がどのリージョンに置かれるか確認。⾃社ポリシーに沿うか チェックする。 20 • 前提 ◦ ⽇本リージョン対応状況は、⽣成AIプロバイダーによってまちまち。 •
⾃社ポリシーに合致するか確認する ◦ 企業によっては、⽇本リージョン利⽤ではないと⾏けないケースがある。
プライバシーの対応状況を確認 するの⼤変ですよね 21
主要⽣成AIプロバイダーの 記載場所をまとめました 22
[参考]主要⽣成AIプロバイダーの状況 ポリシーが更新される場合もあるので公式から最新情報を常に確認すること。 23 • OpenAI ◦ モデルのパフォーマンスを向上させるためにデータがどのように使⽤されるか | OpenAI ヘルプセンター
• Azure OpenAI ◦ Azure インフラストラクチャのセキュリティ ◦ Azure OpenAI Service による保存データの暗号化 ◦ Data, privacy, and security for Azure OpenAI Service • Amazon Bedrock ◦ Amazon Bedrock のセキュリティ ◦ Amazon Bedrock abuse detection ◦ ⽇本におけるプライバシーに関する考慮事項に照らした AWS の利⽤ • Google ◦ Google AI と Vertex AI の違い ◦ Gemini アプリのプライバシー ハブ ◦ Gemini API 追加利⽤規約 ◦ ⽣成 AI とデータ ガバナンス • その他(⾮公式) ◦ ChatGPT APIリリースに伴ってOpenAIのAPIデータ利⽤ポリシーが改定されたので読んでみた ◦ Amazon Bedrockの規約周りの情報を読んでみる ◦ [⽐較表] Azure OpenAIと本家OpenAI APIの⽐較表 ◦ Geminiのキャッチアップ
信頼性に関わる上位の問題 本セッションでは各問題を以下の通り定義する。 ⾃社開発においては、それぞれの問題を解決していく必要がある。 24 • サイバーセキュリティ ◦ AIシステムがサイバー攻撃やデータ侵害から保護されるための措置。 • プライバシー
◦ ユーザーの個⼈情報が適切に管理され、プライバシーが尊重されること。 • 正確性 ◦ AIモデルが信頼性の⾼い情報や決定を出⼒すること。
正確性への対応 1/1 ⽣成AIは、質問に対して必ずしも正しい答えを返すわけではない。ハルシネーション対策をシス テムに組み込む。 25 • 対応 ◦ AIの回答は必ずしも正確とは限らない旨を、シ ステムの画⾯に出したり、周知することで、
ユーザーに誤解を与えないようにする ◦ ⽣成AIと社内データを組み合わせる場合は、回 答の参照元を明⽰させる [1] Geminiアプリ画⾯の注意書き [2] グラウンディングの概要 | Google Cloud
信頼性の確保 まとめ 26 • サイバーセキュリティ ◦ AIシステムがサイバー攻撃やデータ侵害から保護されるための措置。 ▪ ⾃社開発の初期は社内ネットワークで運⽤ ▪
インターネット公開時は、厳格なアクセス管理を徹底 • プライバシー ◦ ユーザーの個⼈情報が適切に管理され、プライバシーが尊重されること。 ▪ ⼊⼒情報が学習されないか ▪ ⼊⼒情報がどのように監視されるか ▪ ⼊⼒情報がどのリージョンに置かれるか • 正確性 ◦ AIモデルが信頼性の⾼い情報や決定を出⼒すること。 ▪ システム画⾯に出す、周知 ▪ グラウンディング
PART 2 拡張性の確保 27
拡張性の確保が重要な理由 経営層は、能⼒拡張に期待を寄せているため。 28 Source ⽣成AIで企業が変わる:現状と課題 | IBM 引⽤) > 彼らが特に期待を寄せるのは、コンテンツの質向上や
競争優位性の促進、従業員の専⾨性拡充などだ。総じ て経営層は、AI によるエクスペリエンス(体験)向上 を通じて、能⼒を拡張し、成⻑を促すことを重視してい る。⼀⽅で、コスト削減にはそれほど重きを置いてい ない(図 3 参照)。
拡張性に関わる観点 本セッションでは以下の観点に着⽬する。 29 • LLMの観点 ◦ どのLLMを採⽤するか • UIの観点 ◦
どのようなUIで提供するか • 実⽤性の観点 ◦ どのような価値が求められるか
LLMの観点 どのLLMを利⽤するかで得られる回答が異なる。特定のLLMへのロックインは⾮推奨。⾃社技術⼒ を考慮して適切なサービスやライブラリを採⽤する。 30 • 前提 ◦ 回答品質‧速度‧価格の観点で、最新LLMを使うのが⼀番 ◦ おすすめのLLMは、数ヶ⽉の間隔で変わっていく
◦ ユースケースによっておすすめのLLMも異なる • 各LLMをラップしたサービスやライブラリをうまく使う ◦ Vercel AI SDK ◦ Amazon Bedrock ◦ Cloudflare AI Gateway
[参考] Vercel AI SDK 主要な⽣成AIプロバイダーのモデルを、統⼀された書き⽅で呼び出すことができる 31 Source Vercel AI SDK
[参考] Amazon Bedrock 主要な⽣成AIプロバイダーのモデルをサポート。Converse APIを利⽤すると、統⼀された書き⽅ で呼び出すことができる。 32 Source Amazon Bedrock
でサポートされている基盤モデル
[参考] Cloudflare AI Gateway 主要な⽣成AIプロバイダーのモデルをサポート。ゲートウェイ機能としてCachingやRate limiting も。 33 Source Cloudflare
AI Gateway
[参考] どの⽣成AIモデルが流⾏か おすすめの海外サイトを紹介。 34 https://artificialanalysis.ai/ https://chat.lmsys.org/?leaderboard
UIの観点 どのUIを採⽤するかで届けられる価値が異なる。⾃社開発⼒と天秤をかけて決める。OSSをうま く活⽤すると開発のハードルを下げることができる。 35 • 主な選択肢 ◦ コミュニケーションツール(Slack,Teamsなど) ◦ Web
UI ◦ Chrome拡張機能 • 信頼のおけるOSSをうまく活⽤して開発するのを推奨 ◦ ChatGPT-in-Slack | seratch ◦ generative-ai-use-cases-jp | aws-samples
[参考] ChatGPT-in-Slack Slack Bolt(Slack開発のフレームワーク)開発者のseratch⽒のOSS。SlackとOpenAIを組み合わ せたAI Botを作成できる。 36 Source ChatGPT-in-Slack |
seratch
[参考] generative-ai-use-cases-jp AWSのリポジトリで公開されているOSS。ビジネスユースケース集に沿ったWeb UI。ブラウザ拡 張機能も提供している。 37 Source generative-ai-use-cases-jp | aws-samples
実⽤性の観点 RAG機能や個別アシスタント機能の需要は⾼い。あらかじめ⾒据えて開発する。 38 • RAG機能 ◦ 通常、⽣成AIは学習したデータに含まれている内容以 外に関する質問には回答ができない ◦ ユーザからの質問に回答するために必要な情報が書か
れた⽂章を検索し、その⽂章を⽣成AIへの⼊⼒(プロ ンプト)に付け加えて渡すことで、ユーザが欲しい情 報に関して回答させる • 個別アシスタント機能 ◦ 実運⽤すると業務特化したアシスタントの需要が増え る ◦ アシスタントやBotをスケールできるような仕組みを ⾒据えて開発する Source ChatGPTアプリの画⾯
拡張性の確保まとめ 拡張性の確保については、以下の観点にそれぞれ対応していくことが重要。 39 • LLMの観点 ◦ どのLLMを採⽤するか ▪ 特定のLLMへのロックインは⾮推奨。 ▪
⾃社技術⼒を考慮して適切なサービスやライブラリを採⽤する。 • UIの観点 ◦ どのようなUIで提供するか ▪ ⾃社開発⼒を考慮して決める。 ▪ OSSをうまく活⽤する。 • 実⽤性の観点 ◦ どのような価値が求められるか ▪ RAG機能や個別アシスタント機能を⾒据えて開発する。
PART 3 運⽤の効率化 40
運⽤の効率化に関わる観点 本セッションでは以下の観点に着⽬する。 41 • アーキテクチャの観点 ◦ どのようなアーキテクチャを採⽤するか • 分析‧監視の観点 ◦
何のために何をどのように監視するか • フィードバックの観点 ◦ 利⽤者からのフィードバックをどう得るか
アーキテクチャの観点 ⽣成AIの動向を追うだけでも⼤変。なるべくマネージドなサービスを活⽤して運⽤負荷を軽減す る。 42 • AWSのサービス例 ◦ ECS Fargate ◦
App Runner ◦ Knowledge Base ◦ DynamoDB ◦ S3 ◦ Secrets Manager Source generative-ai-use-cases-jp | aws-samples
分析‧監視の観点 ⽬的を明確にして、適切なサービスを選択する。AWSならば、CloudWatch Logsのクエリを保存 するなどして運⽤を効率化。 43 • AWSのサービス例 ◦ CloudWatch Logs
◦ EventBridge ◦ Amazon SNS ◦ AWS Chatbot • 分析項⽬例 ◦ 利⽤者数 ◦ チャット回数 ◦ 利⽤アシスタントランキング
フィードバックの観点 利⽤者とコミュニケーションがとりやすい⽅法を採⽤する。専⽤チャンネルを作成してコミュニ ティ的に運⽤するほうが双⽅向のコミュニーションができて、改善しやすいことも。 44 フィードバックのもらい⽅のおすすめ • コミュケーションツールの専⽤チャンネル • アプリ上からのフィードバック画⾯
運⽤の効率化 まとめ 運⽤の効率化に関しては、⾃社開発では以下の観点にそれぞれ対応していくことが重要。 45 • アーキテクチャの観点 ◦ どのようなアーキテクチャを採⽤するか ▪ なるべくマネージドなサービスを活⽤して運⽤負荷を軽減する。
• 分析‧監視の観点 ◦ 何のために何をどのように監視するか ▪ ⽬的を明確にして、適切なサービスを選択する。 ▪ CloudWatch Logsのクエリ保存は便利。 • フィードバックの観点 ◦ 利⽤者からのフィードバックをどう得るか ▪ 利⽤者とコミュニケーションがとりやすい⽅法を採⽤する。
PART 4 ⾃社ソリューションの紹介 46
[宣伝] AI-Starter 複数の⽣成AIサービスを1つのプラットフォームでシームレスに利⽤可能。お客様のAWSアカウン トにデプロイされるため、データはセキュアに管理され、プライバシーも安⼼。パッケージでの 提供のため、導⼊もスムーズ。 47 参考 ⽣成AI環境構築サービス「AI-Starter」 | クラスメソッド株式会社
AI-Starter 信頼性の確保 ⼊⼒情報が学習されない⽅法や情報を提供。お客様の認証プロバイダーに対応。参照元表⽰した り、注意書きをかくこと(新UI)でハルシネーション対策。 48
AI-Starter 拡張性の確保 主要な⽣成AIプロバイダーのLLMに対応。スクラッチのWeb UI開発で柔軟な表現。 49
AI-Starter 運⽤の効率化 サーバレスアーキテクチャでパッケージ管理。CloudWatch LogsやEventBridgeを利⽤して分析‧ 監視。社内では専⽤のSlackチャネル作成。お客様とはBacklog等でコミュニケーション。 50 参考 ⽣成AI環境構築サービス「AI-Starter」 | クラスメソッド株式会社
None
None