Slide 1

Slide 1 text

1 Gemini の Structured Output を活用した クラウド設計支援システム 株式会社サイバーエージェント Staff Engineer kargo113

Slide 2

Slide 2 text

Contents 01 What is AI Tech Studio? 02 Our Motivation 03 Cloud Architect Buddy 04 User Feedback 05 Summary 2

Slide 3

Slide 3 text

01 What is AI Tech Studio ? 3

Slide 4

Slide 4 text

4 サイバーエージェント全体 インターネット広告事業 デジタルマーケティング全般の研究・開発 - 30 を超える AI・DX 関連のサービス開発 - AI 研究専門組織「AI Lab」 - 主に技術職が所属 デジタルマーケティングの提供・運用 - 国内トップシェア - あらゆる領域の DX コンサルティング - 主にビジネス・クリエイター職が所属 AI 事業本部 インターネット広告代理事業

Slide 5

Slide 5 text

Data Science Center データ サイエンティストの横断組織 事業へのデータサイエンスの応用・実装 アドテク 協業リテールメディア 協業 DX オペレーションテクノロジー AI クリエイティブ 株式会社AI Shift AI Lab AI 技術の研究開発を行う専門組織 国際学会への論文投稿など学術貢献にも活発 横断組織 株式会社MG-DX AI オペレーション室 ※関連部署 AI 事業本部の組織体制 5

Slide 6

Slide 6 text

極シリーズ・LLM AI クリエイティブ BPO 事業 独自開発の「極予測 AI」を BPO サービスとして企業ご とにカスタマイズ提供し、企業のクリエイティブ DX を支 援する事業。デジタル広告などオンライン媒体のみな らず、DM やカタログなどオフライン媒体まで、企業が 必要とするあらゆるクリエイティブ制作のマーケティン グ効果向上と制作効率化を支援。 AI ローカライズ事業 AI を活用し漫画などの海外展開に向けたローカライズ を支援する専門組織。漫画やアニメ、ゲームなどの海 外展開における国や地域の文化や特性を考慮した戦 略策定・実行等を支援。また多言語対応や文脈理解 の AI 研究を強化し、各配信国や地域に合わせたロー カライズも強化。 AI で効果の高いクリエイティブを制作 実績:2.6 倍の広告効果・制作効率 5.6 倍 AI で検索連動型広告文を自動生成 実績:2.3 倍の広告効果 AI で広告効果予測値の高い LP(ランディングページ)を制作 大規模言語モデル(LLM)開発 6

Slide 7

Slide 7 text

株式会社 AI Shift 【AI コールセンター事業】 【AI エージェント事業】 企業の AI 活用を加速させるプラットフォーム開発 公開事例数 No.1 ボイスボット チャット専業の BPO サービス 大規模言語モデルの連携により人間らしい対話エンジンを実現 <導入事例> ワクチン接種予約の完全自動化・ FAQ 対応・代表電話の一次受付 カスタマーサポート向け 高品質チャットボット 7

Slide 8

Slide 8 text

株式会社 MG-DX 【遠隔接客 AI アシスタント】 8 AI エージェント搭載のロボットが受付業務を支援

Slide 9

Slide 9 text

9 AI Lab 研究組織「AI Lab」は、デジタルマーケティング全般に関わる幅広い AI 技術の研究開発を目的に 2016 年に設立。 AI 領域を中心に 100 名近い研究員が所属しており、多くの研究成果 を学術コミュニティへ発表。 ※右グラフでは査読付き国際会議への採択数を示しています。 2024年 論文採択数 約 87 本 ※査読付のみ 実証実験 プロダクト 実データ利用 研究のみにとどまらず、社外連携先を巻き込んだ実証実験や、プロダクト応用、実データを利用した研究成果の発表 など、民間企業研究組織として幅広い事業貢献。

Slide 10

Slide 10 text

02 Our Motivation 10

Slide 11

Slide 11 text

プロダクト開発における業務フロー プロダクトごとに個別に行われる プロダクト側とインフラ専門側でのコミュ ニケーションコストが高い 特に「要件定義」において インフラ専門チームによるレビュー 企画 プロダクトチーム インフラ専門チーム レビュー 11 要件定義 設計・開発 運用 ヒアリング 改善提案

Slide 12

Slide 12 text

Agent によって、よりスピーディにプロ ダクト企画・開発・運用が行えるように なるのではないか? 12

Slide 13

Slide 13 text

Human-Centric Agent/System-Driven 13

Slide 14

Slide 14 text

03 Cloud Architect Buddy 14

Slide 15

Slide 15 text

Cloud Architect Buddy 15

Slide 16

Slide 16 text

構成要素 Proposal Overview Inspection Inquiry ● 必要なクラウドサー ビスの列挙 ● それぞれの役割や 設定を説明 ● アーキテクチャの要 約 ● Mermaid による全 体の可視化 ● 想定される懸念点 の列挙 ● 代替案の提案 ● 優先度順に質問を 提示 ● ユーザーの好みを 自由に反映 16

Slide 17

Slide 17 text

User-System Interaction User State - Architecture State を State Control 17 ユーザー要件の 初期化 User State Subject Host jupyter on cloud … Preferences Architecture State Services Summary Inspection Inquiry User State Subject Host jupyter on cloud … Preferences Architecture State Services EC2, VPC Summary Inspection Inquiry User State Subject Host jupyter on cloud … Preferences Architecture State Services EC2, VPC Summary Security OK Inspection No volumes Inquiry User State Subject Host jupyter on cloud … Preferences Architecture State Services EC2, VPC Summary Security OK Inspection No volumes Inquiry Save data? User State Subject Host jupyter on cloud … Preferences Save data? Y Architecture State Services EC2, VPC Summary Security OK Inspection No volumes Inquiry Save data? アーキテクチャ (再)提案 アーキテクチャ 要約・検証 問い合わせ項目の 生成 設定の更新 設定に基づきアーキテクチャを再提案 Cloud Architect Buddy の処理 1 1 2 2 3 4 5 5 4 3

Slide 18

Slide 18 text

Cloud Service の一覧 Pin 機能で固定できる Service View 18 (a) Services View サービス・用途・設定 👈 クリックでサービスを評価

Slide 19

Slide 19 text

アーキテクチャの全体図 Summary View 19 (b) Summary View Mermaid で可視化

Slide 20

Slide 20 text

懸念点を列挙 代替案の提示 Inspection View 20 (c) Inspection View 👈 クリックで代替案を評価

Slide 21

Slide 21 text

優先度の高い質問から順に表示 回答することで要件を精緻化 Inquiry Form 21 (d) Inquiry Form

Slide 22

Slide 22 text

システム アーキテクチャ 22 Access Application & Presentation Storage GenAI Cloud Storage IAP Gemini CloudRun Firestore 2 3 1 4 Monitoring Logging Cloud Run ベースの シンプルな構成 Stateの格納 Gemini Request Auto Scaling Access Control Monitoring

Slide 23

Slide 23 text

Structured Output ● 構造化された JSON で返り値を制約 ● State Control 上の IF となる ● Gemini-2.0 Flash / Pro ともに対応 23 async def parse( prompt: str, response_format: BaseModel, *, instruction: str | None = None, model: str = "gemini-2.0-flash", ) -> GenerateContentResponse: client = genai.Client( vertexai=True, project="aitech-example-project", location="us-central1" ) resp = await client.aio.models.generate_content( model="gemini-2.0-flash", contents=prompt, config=GenerateContentConfig( system_instruction=[instruction], response_mime_type="application/json", response_schema=response_format, ), ) return resp tools=[google_search_tool] Google 検索によるグラウンディング

Slide 24

Slide 24 text

GenAI SDK ● Gemini API / Vertex AI ともに対応 ○ 今回は Vertex AI を利用 ● Pydantic で Format を指定 24 from google import genai client = genai.Client( vertexai=True, project="aitech-example-project", location="us-central1" ) class Architecture(BaseModel): ID_PREFIX: ClassVar[str] = "arc" session_id: Annotated[str, Field(description="The session ID of the architecture")] version: Annotated[int, Field(description="The version of the architecture")] services: Annotated[ List[CloudService], Field(description="List of cloud services in the architecture"), ] class CloudService(BaseModel): name: Annotated[ str, Field(description="The name of cloud service (e.g., EC2, BigQuery, etc.)") ] usage: Annotated[ str, Field(description="Descriptive passage of how the service is used") ] …

Slide 25

Slide 25 text

Output Example ● 返り値は全て JSON 25 { "session_id": "AI_AGENT_SUMMIT_001", "version": 1, "services": [ { "name": "Cloud SQL", "usage": "顧客情報やトランザクションデータのデータベースとして使用し、データの一貫性と性能を確保します。", "category": "database", "settings": [ { "name": "データベースの種類", "value": "Cloud SQL", "notes": [ "スケーリングと高可用性" ] } ] } ...

Slide 26

Slide 26 text

Structured のメリット Proposal Overview Inspection Inquiry 26

Slide 27

Slide 27 text

“A structured Output” is All Agents Need. 27

Slide 28

Slide 28 text

Nuxt.js 開発言語 + Python 28

Slide 29

Slide 29 text

単一コンテナ内通信 ● Python 側は FastAPI の REST で設計 ● Nuxt.js 側は State を保持 しない ● BFF 層を緩衝材に BFF 層による単一コンテナ内での通信制御 Service Client Server Middleware 29 States Views

Slide 30

Slide 30 text

04 User Feedback 30

Slide 31

Slide 31 text

Staffs In Total 16 Preview として実際に様々な職種のユーザーを 集めて、シナリオベースでの検証を実施 ChatGPT Only とも比較 初期検証 Data Scientists / ML Engineers 8 Backend / Infra Engineers 31 8

Slide 32

Slide 32 text

フィードバック 自由な入力とディスカッション (8) 意図を自由に反映できる 非構造化テキストで理解が困難 (6) 大規模なサービス提案が把握しづらい 32 直感的な設計意図の反映 (4) 回答に基づく更新が便利 ChatGPT Cloud Architect Buddy × 視覚的な図表が全体理解を助ける (9) 一目でアーキテクチャが明確に 要件指定の柔軟性の制限 (7) テキストで具体的な修正を指示したい 特定のトピックの深堀が困難 (6) 対話でより深く掘り下げたかった 効果的な質問の作成に専門知識が必要 (7) 次に何を質問すべきか判断が難しい 馴染みやすく単純な対話モデル (3) シンプルなチャット形式が快適

Slide 33

Slide 33 text

良い点 - 網羅性の担保 - より直感的な設計 - 構造化による可視性 - 柔軟性の低さ - 技術選定理由の不足 - 意図の反映のしづらさ 改善すべき点 → Hybrid Approach 33

Slide 34

Slide 34 text

チャットの柔軟性を統合 カスタム入力 34 チャットダイアログ

Slide 35

Slide 35 text

Agent による制約 と User の柔軟性 のバランス 35

Slide 36

Slide 36 text

専門家チームのレビュープロセスの削減 1 実運用での活用 研修のオンボーディングへの活用 2 同様のフレームワークで異なるタスクを解く(シ ナリオ制作など) 3 36

Slide 37

Slide 37 text

Next Step: Agent-Centric 37 Proposal Overview Inspection Monitoring Deploy IaC Approve Actions

Slide 38

Slide 38 text

38 Agent による自律実行 承認フローは必須

Slide 39

Slide 39 text

05 Summary 39

Slide 40

Slide 40 text

Structured Output は Agent を 活用する上で重要な枠組み Agent による制約と User の柔軟性の バランスを取る Agent-Centric 時代に向けて、ユーザー の役割を明確にする 01 02 03 40

Slide 41

Slide 41 text

41 Thank you