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
Azure OpenAIを使用したChatGPTもどきを作るためのIaCとDevOps環境を作ってみた
Search
SoftBank Tech Night
July 28, 2023
Technology
1
1.4k
Azure OpenAIを使用したChatGPTもどきを作るためのIaCとDevOps環境を作ってみた
SoftBank Tech Night
July 28, 2023
Tweet
Share
More Decks by SoftBank Tech Night
See All by SoftBank Tech Night
ソフトバンクのネットワーク基盤を支えるSRv6 のこれまでとこれから
sbtechnight
0
420
生成AI と Microsoft Power Apps を活用したとにかく早く PoC を回す環境の検討
sbtechnight
1
720
生成AI離れを防ぐ、組織定着化のヒント
sbtechnight
9
4.9k
Blockchain/Web3 Walletの技術動向について
sbtechnight
0
420
GPT3.5以降に性能がアップした理由に関する理論ほか
sbtechnight
3
1.6k
GPT 回答精度を上げるアプローチ
sbtechnight
4
6.8k
Azure OpenAI を活用してエンタープライズ向けのデータ活用基盤を作ってみる
sbtechnight
2
1.1k
プライベートなChatGPTをLINEから使えるようなシステムをサクッと構築してみた
sbtechnight
1
1.1k
ChatGPT/OpenAI問わず生成AI関連サービス構築方法・応用例を紹介する
sbtechnight
6
3.8k
Other Decks in Technology
See All in Technology
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
3
570
Grafana x PagerDuty Better Together
jacopen
0
140
アクセス制御にまつわる改善 / Improving access control
itkq
0
560
On Your Data を超えていく!
hirotomotaguchi
2
700
20240418_Google ColabにLLMが搭載されたようなのでPython x データ分析の勉強方法を考えてみる
doradora09
0
140
TechFeed Experts Night#27 〜 フロントエンドフレームワーク最前線 (Svelte)
baseballyama
1
540
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
390
20分で完全に理解するGrafanaダッシュボード
hamadakoji
3
730
MapLibreとAmazon Location Service
dayjournal
1
160
地理空間データ可視化・解析・活用ソリューション Pacific Spatial Solutions (PSS)
pacificspatialsolutions
0
300
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
4
440
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
0
300
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
274
13k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
Being A Developer After 40
akosma
57
580k
How GitHub (no longer) Works
holman
304
140k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
For a Future-Friendly Web
brad_frost
172
9k
Music & Morning Musume
bryan
41
5.6k
Transcript
Azure OpenAIを使用した ChatGPTもどきを作るためのIaCとDevOps SoftBank テクノロジーユニット 共通プラットフォーム開発本部 宮田 銀河 1 2023年
7月29日
【経験】 • インフラのコード化・デプロイの自動化 • Webアプリ開発 (フロント・サーバ) • 2023 AWS Jr.
Champion & All Certifications Engineer 自己紹介: 宮田 銀河 2 合格した資格 (22コ) AWS12冠
今回の発表内容 ↑話しません 3 生成AIの詳しい 仕組み 【Azure】 生成AIアプリの デプロイ自動化 メイン
Azure OpenAIを使用した ChatGPTもどきを作るためのIaCとDevOps 4
Azure OpenAIを使用した ChatGPTもどき?を作るためのIaCとDevOps 5
ChatGPTもどきのデモ動画 (資料の構成案) 6
7 ChatGPTもどきのデモ動画 (車の画像)
「え? ChatGPTで良くない?」 と思った方へ 8
Azure OpenAI: GPT-3.5 (ChatGPTと同じ) がAzure上で使え、 可用性・セキュリテイ・監視が優れている ChatGPT と Azure OpenAIの比較
9 提供会社 ChatGPT Azure OpenAI 使えるモデル • GPT-4 • GPT-3.5 • DALL-E • GPT-4 • GPT-3.5 • DALL-E 可用性 • SLAなし • SLA99.9% セキュリティ • 閉域接続が不可 • 閉域接続が可能 監視 • 独自に監視設定が必要 • ログ・メトリックの監視 2023/07/21時点
提供会社 Azure OpenAI 可用性 • SLA99.9% セキュリティ • 閉域接続が可能 監視
• ログ・メトリックの監視 顧客 顧客 顧客 顧客 顧客 顧客 生成AIを • いつでも自由に使いたい • セキュアな環境で使いたい • どのくらい使われているかを知りたい 上記を満たす ChatGPTを使いたい Azure OpenAIを使いたい理由 10 →Azure OpenAIの活用が不可欠
Azure OpenAIを迅速に構築/検証できるサービス (SoftBankの法人サービス) 参考URL 11 本サービスの提供に、IaCとDevOpsが不可欠だった
Azure OpenAIを使用した ChatGPTもどきを作るためのIaCとDevOps 12
以下リソースが作成される IaC = Infrastructure as Code (インフラのコード化) 13 コマンド実行 Virtual
Network Azure OpenAI Service IaC (Terraform)のコード
数個のコマンドを実行するだけで、環境の構築が可能 →誰でも迅速にデプロイ可能 & 手作業のミスが減る IaCを導入するメリット 14 Azure環境 Terraform デプロイ Virtual
Network Azure OpenAI Service Network Security Group Network Security Group App Service Private Endpoin Private DNS 作業者
Azure OpenAIを使用した ChatGPTもどきを作るためのIaCとDevOps 15
DevOps: 開発(Dev)と運用(Ops)を支援する仕組み 開発者と運用者がスムーズに開発〜運用可能 →システムの価値を継続的に向上できる 16 DevOpsの要素である”デプロイの自動化”をメインで説明
今回作成した インフラの自動デプロイの仕組み 17
インフラの自動デプロイの流れ • 人の仕事はTFファイルの準備 & 承認だけ • インフラを迅速にデプロイ可能 18 作業者 GitHubにTFファイルをpush、PR作成
PRを承認し、マージする terraform plan terraform apply (約10分) 承認 TFファイル TFファイルを準備 自動 自動
デプロイ自動化 → 顧客にも素早く展開が可能 19 顧客B 顧客C 顧客A 作業者 TFファイル 検証環境
今回作成した Chatアプリの自動デプロイの仕組み 20
Chatアプリの自動デプロイの流れ • 人の仕事はコーディング&ブランチ作成だけ • 静的解析/E2Eテスト→コード品質を高く保てる • URLをクリックするだけで動作確認可能 21 GitHubに検証ブランチを作成する E2Eテストが実行される
静的解析が実行される 検証環境がデプロイされる App Service 検証環境 (デプロイスロット) 検証ブランチ 自動
この仕組みが”ない”と、PRレビューが遅くなる (参考) 22 開発者A 開発者B
この仕組みが”ある”と、PRレビューが速くなる 23 開発者A 開発者B
24 Azure OpenAIを使用した ChatGPTもどきを作るためのIaCとDevOps の作成過程で困ったこと
Azure OpenAIが最新サービスなので、サンプルコードが見つからない →ChatGPTに生成させたコードや試行錯誤で作ったコードでは、 Private Endpointの名前解決ができず... (ちなみに、手作業で作ると名前解決可能 ) IaC導入時の困りごと: サンプルコードがない 25
Azure環境 Virtual Network Azure OpenAI Service Network Security Group Network Security Group App Service Private Endpoin Private DNS
足りなかったコード 解決方法: terraform -generate-config-outを使う (2023年6月) terraformのv1.5から、既存リソースをコード化できるように → 手作業で作成した既存リソースから、コードを生成可能に。 26 generate-
config-out 既存リソース TFコード
Private Endpointの名前解決のフロー (例) Virtual Network linkがないと、③のアクセスができない。 →Clientから Private IPが取得できない (参考URL)
27
まとめ • IaCとDevOps導入により、Chatアプリを迅速にデプロイ可能に • IaC導入時の課題: 最新サービスのためにサンプルコードがない ◦ 手作業でリソースを作成して、-generate-config-outでコード作成が有効。 28 スターターパッケージ
は、 本資料で説明したIaCとDevOpsを利用しています