Slide 1

Slide 1 text

ゆるSRE勉強会 #9 〜最近始めた取り組み共有大会〜 2025/2/21 Daigo Hiroka (機械学習システムでも) SLO から始める信頼性構築

Slide 2

Slide 2 text

自己紹介 ● 廣岡大吾 ○ dhirooka (@daigo_hirooka) / X(Twitter) ○ 趣味:🏂⛳☕🎮 ● At キャディ株式会社 ○ MLOps Engineer (2022/12 - 2023/03) ○ SRE (2023/04 - 2024/09) ○ Backend Engineer (ML) (2024/10 - now) ○ SRE → Backend (ML) 異動後に取り組んだ信頼性構築を紹介します 2

Slide 3

Slide 3 text

© CADDi Inc. Mission モノづくり産業のポテンシャルを解放する Unleash the potential of manufacturing モノづくりに携わるすべての⼈が、 本来持っている⼒を最⼤限に発揮できる社会を実現する。 そのために私たちは、産業の常識を変える「新たな仕組み」をつくります。 現在モノづくり産業では、⾮常に多くの⼒が埋もれたままになっています。 ⾒積業務や管理業務に忙殺される、 営業⼒が⾜りない、情報やネットワークが乏しい。 あらゆる理由によってがんじがらめにされ、 本来の開発⼒や技術⼒を発揮しきれていません。 こうした縛りをほどくことで、各企業のポテンシャルを解放。 産業全体に⼤きな⼒を⽣み出し、豊かにすることが私たちの使命です。 ⼩さな町⼯場も、歴史ある⼤規模メーカーも、創⽴まもないベンチャーも。 すべてのモノづくり企業が強みを活かして輝き、新たな価値がたくさん⽣まれる。 そんな未来を切り拓くために、私たちは挑み続けます。 3

Slide 4

Slide 4 text

図⾯ 仕様書 不具合 情報 ⾒積 やり取り 記録 不良写真 発注⾦額 データソース CADDi データ基盤 情報を統合‧解析 3D CAD ERP PLM / PDM ファイルサーバー 紙ファイル データ探索‧分析 製造業データ活⽤クラウド 調達業務の⾼度化 製造業AI⾒積クラウド アプリケーション データ活⽤ 製造業AIデータ プラットフォーム CADDi ⽣産性向上 / 脱属⼈化 / QCD最適化 … AI System of CADDi データを統合し、データを活かして価値を⽣む 4

Slide 5

Slide 5 text

© CADDi Inc. 図⾯ etc.. 品質 設計 ⾒積 受注 発注 図⾯を 貯める 検索する 情報を 抜きだす 情報を 関連づける ⾏動する 分析する 機能 1:図⾯の⾃動解析 図⾯内のテキスト情報、 製品の形状を⾃動で解析 機能 2:キーワード検索 図⾯内の⼿書きを含めたあ らゆるテキスト情報をキーに 図⾯を検索できます   機能 3:形状検索 解析した製品形状データを 利⽤して、類似形状検索、画 像検索ができます 機能 4:必要情報の紐づけ 受発注情報、不具合情報、 3Dモデル等関連する情報を 2D図⾯に紐づけます 特許 取得済 最重要な図⾯データを抑えた上で、全ての周辺データを繋ぎにいく Application ① CADDi Drawer は図⾯データを資産に変える 5

Slide 6

Slide 6 text

SRE → Backend (ML) 異動後に取り組んだ信頼性構築を紹介します ● 背景:機械学習バックエンドをプロダクションレディに ● アプローチ: SLI/O の構築 ● SLI/O の結果と学び ● 今後やりたいこと 6

Slide 7

Slide 7 text

● 新しい ML バックエンドをプロダクションに載せるために、 非機能要件や運用面を整備しているところだった ○ 機能要件はほとんど完了 ○ 運用開始に向けてパフォーマンス把握や、ログ・モニタリング整備も必要 背景:機械学習バックエンドをプロダクションレディに 7

Slide 8

Slide 8 text

ML Project ● 図面アップロードに応じて、ストリーミング形式で非同期解析を行う ○ 解析結果は Drawer 内の機能で利用している 背景:ML バックエンドの構成 解析種類 A Inference Worker Compute Engine Multiple Instances Pub/Sub BigQuery Inference Proxy Cloud Run 解析種類 B Inference Worker Compute Engine Multiple Instances Pub/Sub Pub/Sub Pub/Sub 他にも複数の解析種類 Pub/Sub Other Internal Project Pub/Sub 8

Slide 9

Slide 9 text

● ログやモニタリング整備など、運用面でできることはたくさん ○ SRE のプラクティスとして、まずは SLI/O に着手 ○ 社内の Production Readiness Checklist にも項目あり→やろう ■ 他にもセキュリティやデータ管理など色々 背景:プロダクションレディにするには 9

Slide 10

Slide 10 text

● 3つのステップで SLI/O を構築した ○ SLI/O の定義:CUJ をベースに SLI の仕様やスコープを決める ○ SLI/O の実装:仕様に基づいて必要なログやインフラを追加する ○ SLI/O の運用:ダッシュボードや SLO 逸脱時の合意形成 アプローチ: SLI/O の構築 10

Slide 11

Slide 11 text

● お作法通り、重要なユーザー体験(CUJ)から SLI を定義する ○ CUJ:アップロードした全ての図面に対して、解析情報が 早く参照できる アプローチ: SLI/O の定義 11

Slide 12

Slide 12 text

● お作法通り、重要なユーザー体験(CUJ)から SLI を定義する ○ CUJ:アップロードした全ての図面に対して、解析情報が 早く参照できる ○ 全ての図面に対して解析情報を参照できる ■ →解析成功率(coverage) ○ 解析情報が早く参照できる ■ →解析処理時間(freshness) アプローチ: SLI/O の定義 12

Slide 13

Slide 13 text

● 解析成功率(Coverage) ○ 対象期間:直近2週間 ○ Good event:図面解析の成功 ○ SLO:対象期間の Good events > x% ● 解析処理時間(Freshness) ○ 対象期間:直近2週間 ○ Good event:N 時間以内に成功した図面解析 ○ SLO:対象期間の Good events > y% アプローチ: SLI/O の定義 ML Project 解析種類 A 解析種類 B 他にも複数 この範囲の成功率/処理時間 13

Slide 14

Slide 14 text

● スループットは処理性能を測る代表的なパフォーマンス指標だが、 必ずしもユーザー体験とは一致しない ○ SLI/O はリクエスト〜解析完了までの処理時間に設定 ○ スループットは別途 ML モデルのパフォーマンス把握に利用 アプローチ: SLI/O の定義:スループットの落とし穴 時間 解析 解析 解析 解析 4枚の図面 アップロード スループットは 単位時間の処理量 リクエスト起点の処理時間の方が 解析システムのユーザー体験に近い 14

Slide 15

Slide 15 text

● 同期 API に比べて、非同期処理は SLI 計測に工夫が必要 ○ 解析リクエスト一覧を把握するための BigQuery テーブルを追加で構築 ○ 解析結果の BigQuery と突合して成功率・処理時間を算出する アプローチ: SLI の実装 ML Project 解析種類 A 他にも複数 リクエスト一覧 BigQuery 突合して SLI を計算 15

Slide 16

Slide 16 text

● SLI は BigQuery で計算して、Looker Studio でダッシュボード化 ○ BigQuery を通じて多様な集計や分析が可能 ○ Looker Studio では多様な可視化が可能、月単位や四半期単位のレポーティングも容易 ○ アラート設定は別途 Datadog を検討中 アプローチ: SLO の運用:モニタリング ダッシュボード Looker Studio ML Project 解析種類 A 他にも複数 リクエスト一覧 BigQuery SLI/O BigQuery 16

Slide 17

Slide 17 text

● ダッシュボードチェックのタイミングやエスカレーション方針を 明文化して EM, PdM などと合意 ○ なぜエラーバジェットポリシーを運用するのか ○ 確認の機会:開発チームでは日次、マネジメントミーティングでは週次でチェック ○ エラーバジェット消費時の対応方針 ■ 初動調査の内容、根本対応の優先度 ■ エスカレーション方針(連絡チーム、報告内容など) アプローチ: SLO の運用:運用ポリシー 17

Slide 18

Slide 18 text

● 関係者と合意した上で、自分たちのシステムの健全性を客観的に説明できる ● SLI/O はパフォーマンス評価の共通言語になる ○ 新しい ML モデル開発時の目標パフォーマンスの目安になる ○ スケーリング設定、キャパシティプランニングの指針になる ■ ML バックエンドの場合、特に GPU のスケール上限や Quota が気になる SLO を運用してみて 18

Slide 19

Slide 19 text

● SLI/O の構築によって、ML バックエンドのプロダクションレディ への自信を強められた ● 学び ○ 機械学習バックエンドでも、 SLI/O はお作法通り構築できる ○ 非同期処理における SLI/O の実装は工夫が必要 ○ SLI/O はモデルの開発・チューニングやキャパシティプランニングの共通言語になる SLI/O 構築の結果と学び 19

Slide 20

Slide 20 text

● 今後の事業成長を見据えたキャパシティプランニング ○ 流入データや提供する機械学習モデルの増加に耐えられるか、ボトルネックはどこか ○ SLI/O をベースとしてキャパシティの議論をしたい ○ →必要に応じて将来のアーキテクチャ検討 ● LLM API の運用整備、信頼性構築 ○ 様々な LLM API の取りまとめ、パフォーマンス管理含めた運用ガイドライン構築など 今後やりたいこと 20

Slide 21

Slide 21 text

● キャディには「モノづくり産業のポテンシャル解放」 に向けて多くの仲間が集まっています ○ Data&Analysis Dept. にも CTO 経験者が二人所属しています 🤝 ● ML・データ職種も絶賛募集中! ○ Software Engineer (Backend / Analysis Platform) ○ ML Eng, Data Eng, EM も ○ キャディ 採用情報 から! We are hiring 🤝 なぜキャディはCTO経験者を1年間で3名も採⽤できたのか? 優秀なエンジニアを惹きつける企業の条件 - Findy Engineer Lab 21