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
510
企業向け生成AIアプリの 開発から得られた知見
Classmethod Odysseyのオンライン登壇資料です
日時:7/11(木) 15:40-16:20
タイトル:企業向け生成AIアプリの開発から得られた知見
TakaakiKakei
July 11, 2024
Tweet
Share
More Decks by TakaakiKakei
See All by TakaakiKakei
re:Invent 2024 生成AIまとめ
takaakikakei
0
220
OpenAIのAssistants API(Beta)の概要と使い方
takaakikakei
0
400
「AWSによる独自データ活用の生成AIソリューション」というタイトルでCM re:Growth 2023に登壇しました #AWSreInvent #cmregrowth
takaakikakei
0
980
LangChainを使ってChatGPTの機能を拡張してみた ~過去の会話やGoogle検索結果を活用して自然な応答を生成する方法~ #DevIO2023
takaakikakei
1
2.4k
Slack Boltコース!AWS Lambda & Pythonのビキナー仕立て #devio2022
takaakikakei
0
5.2k
AWS Step Functions上でエラーが発生した場合の効果的な通知方法を検討してみた
takaakikakei
0
7.3k
Other Decks in Programming
See All in Programming
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
310
コンテナをたくさん詰め込んだシステムとランタイムの変化
makihiro
1
130
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
330
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
330
Jakarta EE meets AI
ivargrimstad
0
240
ドメインイベント増えすぎ問題
h0r15h0
2
290
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
730
快速入門可觀測性
blueswen
0
350
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
270
暇に任せてProxmoxコンソール 作ってみました
karugamo
2
720
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
1
260
Featured
See All Featured
Visualization
eitanlees
146
15k
How GitHub (no longer) Works
holman
311
140k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
Testing 201, or: Great Expectations
jmmastey
40
7.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
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