GO TechTalk #20 Deep Dive into AI - 次世代AIドラレコサービス編 で発表した資料です。
■ YouTube https://www.youtube.com/live/R3r0CLhFoq8?feature=share&t=1890
■ connpass https://jtx.connpass.com/event/287383/
エッジAIにおけるCIとAI開発環境2023.07.11Ryosuke KamesawaGO株式会社
View Slide
© GO Inc. 2自己紹介プロフィール写真正方形にトリミングした写真を「図形に合わせてトリミング」で円形にすると真円になるGO株式会社エンジニア / 亀澤 諒亮DeNAでAI創薬に機械学習エンジニアとして従事後、2019年より『DRIVE CHART』にエッジAIエンジニアとして参加。現在はエッジAIチームリーダーとして、MLOps(モデル組み込み)や高速化などを担当。
© GO Inc.1. CIでの実機デバイスを使った自動テストが難しい- デバイスでしか再現しない不具合も検出したい- QAフェーズより早い開発フェーズでデグレを検出したい2. デバイス上での推論結果のPC/サーバーでの再現が難しい- デバイス専用の推論エンジンを利用、PC/サーバーで同一実装での実行ができない- 量子化丸めの実装差異により許容できない精度誤差が生じる- デバイスを使って本番と同じ環境での精度評価を行いたい3. 全ての開発メンバーがデバイスを使えない- デバイスを所持しないモデル開発者でもデバイス上でモデルの精度評価ができるように- デバイス評価のためのモデル開発者と組み込み開発者のコミュニケーションコストを減らしたい3エッジAIを取り巻く課題ドライブレコーダー
© GO Inc.1. CIでの実機デバイスを使った自動テストが難しい- デバイスでしか再現しない不具合も検出したい- QAフェーズより早い開発フェーズでデグレを検出したい2. デバイス上での推論結果のPC/サーバーでの再現が難しい- デバイス専用の推論エンジンを利用、PC/サーバーで同一実装での実行ができない- 量子化丸めの実装差異により許容できない精度誤差が生じる- デバイスを使って本番と同じ環境での精度評価を行いたい3. 全ての開発メンバーがデバイスを使えない- デバイスを所持しないモデル開発者でもデバイス上でモデルの精度評価ができるように- デバイス評価のためのモデル開発者と組み込み開発者のコミュニケーションコストを減らしたい4エッジAIを取り巻く課題ドライブレコーダー
© GO Inc.1. CIでの実機デバイスを使った自動テストが難しい- デバイスでしか再現しない不具合も検出したい- QAフェーズより早い開発フェーズでデグレを検出したい2. デバイス上での推論結果のPC/サーバーでの再現が難しい- デバイス専用の推論エンジンを利用、PC/サーバーで同一実装での実行ができない- 量子化丸めの実装差異により許容できない精度誤差が生じる- デバイスを使って本番と同じ環境での精度評価を行いたい3. 全ての開発メンバーがデバイスを使えない- デバイスを所持しないモデル開発者でもデバイス上でモデルの精度評価ができるように- デバイス評価のためのモデル開発者と組み込み開発者のコミュニケーションコストを減らしたい5エッジAIを取り巻く課題ドライブレコーダー
© GO Inc.案1: サーバーで完結させる✅ 何も考える必要はない❌ 検証項目が限られる。デバイスとの推論誤差がある案2: クラウドモバイルテスティングサービスの利用✅ デバイスに近いモバイル端末を選べば、推論誤差は改善❌ 検証としては不完全。外部サービスなため、個人情報(評価データ)の取扱いに難点案3: デバイスを接続したSSHサーバーを立てる✅ SSH経由でデバイスを直接利用可能になる❌ 自動テストや複数人での利用のためには排他アクセス制御が必要、セキュリティ上の懸念案4: GitHub Actions セルフホストランナーによる実デバイスの利用 [採用]✅ 前述の課題はクリア❌ 運用に一定の手間がかかる解決案6
© GO Inc.あらかじめデーモンプロセスを起動することで任意のサーバー・PC上でGitHub Actionsのジョブを実行できる仕組みGitHub Actions セルフホストランナー (Self-hosted Runner)ワークフロー定義7
© GO Inc.- GitHub Actionsの仕組みに乗ることで自前での排他アクセス制御が不要オフィス実際の構成MacSHR DaemonJobUSBGitHub Actionsジョブ発行実行結果通知ドライブレコーダー画像入力データ実行ファイル推論結果ベンチマーク8GitHubワークフローエンジン(Kubeflow)pushworkflow_dispatch
© GO Inc.- GitHub Actionsの仕組みに乗ることで自前での排他アクセス制御が不要オフィス実際の構成MacSHR DaemonJobUSBGitHub Actionsジョブ発行実行結果通知ドライブレコーダー画像入力データ実行ファイル推論結果ベンチマーク9GitHubワークフローエンジン(Kubeflow)pushworkflow_dispatch
© GO Inc.1. 実機デバイスを使った継続的な自動テストが難しい→✔継続的なテストが可能- デバイス固有の不具合が検出できた- 継続的なテスト結果監視によりQAフェーズより前にデグレを検出できるようになった2. デバイス上での推論結果のPC/サーバーでの再現が難しい→✔デバイス利用で再現不要- 本番環境と同じ推論結果で精度評価を行えるようになった3. 全ての開発メンバーがデバイスを使えない→✔デバイス所持不要で精度評価可能- デバイスを所持しない複数人のモデル開発者がデバイスでの精度評価を行えるようになった- 日単位でかかっていたモデル開発者と組み込み開発者のコミュニケーションが不要になった10導入した結果
© GO Inc.- エッジAI開発における課題- デバイスを使った自動テストが難しい- デバイス推論の再現が難しい- デバイスを所持していないとモデル評価ができない- GitHub Actions セルフホストランナーにデバイスを接続する構成を採用- GitHub Actionsの仕組みに乗ることで自前での排他アクセス制御が不要- デバイスを手元に持たなくてもテストやモデル評価をデバイス上で実行可能になった- テスト、ベンチマーク自動化- AIモデル開発効率改善まとめ11