Upgrade to Pro — share decks privately, control downloads, hide ads and more …

エッジAIにおけるCIとAI開発環境

 エッジAIにおけるCIとAI開発環境

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/

GO Inc. dev

July 14, 2023
Tweet

More Decks by GO Inc. dev

Other Decks in Technology

Transcript

  1. エッジAIにおける
    CIとAI開発環境
    2023.07.11
    Ryosuke Kamesawa
    GO株式会社

    View Slide

  2. © GO Inc. 2
    自己紹介
    プロフィール写真
    正方形にトリミングした写
    真を「図形に合わせてトリ
    ミング」で円形にすると真
    円になる
    GO株式会社
    エンジニア / 亀澤 諒亮
    DeNAでAI創薬に機械学習エンジニアとして従事後、
    2019年より『DRIVE CHART』にエッジAIエンジニアとして参加。
    現在はエッジAIチームリーダーとして、
    MLOps(モデル組み込み)や高速化などを担当。

    View Slide

  3. © GO Inc.
    1. CIでの実機デバイスを使った自動テストが難しい
    - デバイスでしか再現しない不具合も検出したい
    - QAフェーズより早い開発フェーズでデグレを検出したい
    2. デバイス上での推論結果のPC/サーバーでの再現が難しい
    - デバイス専用の推論エンジンを利用、PC/サーバーで同一実装での実行ができない
    - 量子化丸めの実装差異により許容できない精度誤差が生じる
    - デバイスを使って本番と同じ環境での精度評価を行いたい
    3. 全ての開発メンバーがデバイスを使えない
    - デバイスを所持しないモデル開発者でもデバイス上でモデルの精度評価ができるように
    - デバイス評価のためのモデル開発者と組み込み開発者のコミュニケーションコストを減らしたい
    3
    エッジAIを取り巻く課題
    ドライブレコーダー

    View Slide

  4. © GO Inc.
    1. CIでの実機デバイスを使った自動テストが難しい
    - デバイスでしか再現しない不具合も検出したい
    - QAフェーズより早い開発フェーズでデグレを検出したい
    2. デバイス上での推論結果のPC/サーバーでの再現が難しい
    - デバイス専用の推論エンジンを利用、PC/サーバーで同一実装での実行ができない
    - 量子化丸めの実装差異により許容できない精度誤差が生じる
    - デバイスを使って本番と同じ環境での精度評価を行いたい
    3. 全ての開発メンバーがデバイスを使えない
    - デバイスを所持しないモデル開発者でもデバイス上でモデルの精度評価ができるように
    - デバイス評価のためのモデル開発者と組み込み開発者のコミュニケーションコストを減らしたい
    4
    エッジAIを取り巻く課題
    ドライブレコーダー

    View Slide

  5. © GO Inc.
    1. CIでの実機デバイスを使った自動テストが難しい
    - デバイスでしか再現しない不具合も検出したい
    - QAフェーズより早い開発フェーズでデグレを検出したい
    2. デバイス上での推論結果のPC/サーバーでの再現が難しい
    - デバイス専用の推論エンジンを利用、PC/サーバーで同一実装での実行ができない
    - 量子化丸めの実装差異により許容できない精度誤差が生じる
    - デバイスを使って本番と同じ環境での精度評価を行いたい
    3. 全ての開発メンバーがデバイスを使えない
    - デバイスを所持しないモデル開発者でもデバイス上でモデルの精度評価ができるように
    - デバイス評価のためのモデル開発者と組み込み開発者のコミュニケーションコストを減らしたい
    5
    エッジAIを取り巻く課題
    ドライブレコーダー

    View Slide

  6. © GO Inc.
    案1: サーバーで完結させる
    ✅ 何も考える必要はない
    ❌ 検証項目が限られる。デバイスとの推論誤差がある
    案2: クラウドモバイルテスティングサービスの利用
    ✅ デバイスに近いモバイル端末を選べば、推論誤差は改善
    ❌ 検証としては不完全。外部サービスなため、個人情報(評価データ)の取扱いに難点
    案3: デバイスを接続したSSHサーバーを立てる
    ✅ SSH経由でデバイスを直接利用可能になる
    ❌ 自動テストや複数人での利用のためには排他アクセス制御が必要、セキュリティ上の懸念
    案4: GitHub Actions セルフホストランナーによる実デバイスの利用 [採用]
    ✅ 前述の課題はクリア
    ❌ 運用に一定の手間がかかる
    解決案
    6

    View Slide

  7. © GO Inc.
    あらかじめデーモンプロセスを起動することで
    任意のサーバー・PC上でGitHub Actionsの
    ジョブを実行できる仕組み
    GitHub Actions セルフホストランナー (Self-hosted Runner)
    ワークフロー定義
    7

    View Slide

  8. © GO Inc.
    - GitHub Actionsの仕組みに乗ることで自前での排他アクセス制御が不要
    オフィス
    実際の構成
    Mac
    SHR Daemon
    Job
    USB
    GitHub Actions
    ジョブ発行
    実行結果通知
    ドライブレコーダー
    画像
    入力データ
    実行ファイル
    推論結果
    ベンチマーク
    8
    GitHub
    ワークフローエンジン
    (Kubeflow)
    push
    workflow_dispatch

    View Slide

  9. © GO Inc.
    - GitHub Actionsの仕組みに乗ることで自前での排他アクセス制御が不要
    オフィス
    実際の構成
    Mac
    SHR Daemon
    Job
    USB
    GitHub Actions
    ジョブ発行
    実行結果通知
    ドライブレコーダー
    画像
    入力データ
    実行ファイル
    推論結果
    ベンチマーク
    9
    GitHub
    ワークフローエンジン
    (Kubeflow)
    push
    workflow_dispatch

    View Slide

  10. © GO Inc.
    1. 実機デバイスを使った継続的な自動テストが難しい→✔継続的なテストが可能
    - デバイス固有の不具合が検出できた
    - 継続的なテスト結果監視によりQAフェーズより前にデグレを検出できるようになった
    2. デバイス上での推論結果のPC/サーバーでの再現が難しい→✔デバイス利用で再現不要
    - 本番環境と同じ推論結果で精度評価を行えるようになった
    3. 全ての開発メンバーがデバイスを使えない→✔デバイス所持不要で精度評価可能
    - デバイスを所持しない複数人のモデル開発者がデバイスでの精度評価を行えるようになった
    - 日単位でかかっていたモデル開発者と組み込み開発者のコミュニケーションが不要になった
    10
    導入した結果

    View Slide

  11. © GO Inc.
    - エッジAI開発における課題
    - デバイスを使った自動テストが難しい
    - デバイス推論の再現が難しい
    - デバイスを所持していないとモデル評価ができない
    - GitHub Actions セルフホストランナーにデバイスを接続する構成を採用
    - GitHub Actionsの仕組みに乗ることで自前での排他アクセス制御が不要
    - デバイスを手元に持たなくてもテストやモデル評価をデバイス上で実行可能になった
    - テスト、ベンチマーク自動化
    - AIモデル開発効率改善
    まとめ
    11

    View Slide