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

AIのPoCを次に繋げよう! PoC成果をプロトタイプとしてデプロイする仕組みを紹介

AIのPoCを次に繋げよう! PoC成果をプロトタイプとしてデプロイする仕組みを紹介

Azureを活用し、A I機能を含むプロトタイプを効率的にデプロイする方法についての発表です。CI/CDやAzure App ServiceやAzure Machine Learningを使用した構成についてお話しします。

AITC - DENTSU SOKEN

October 20, 2022
Tweet

More Decks by AITC - DENTSU SOKEN

Other Decks in Technology

Transcript

  1. 2 ⾃⼰紹介 所属: 電通国際情報サービス クロスイノベーション本部 AIトランスフォーメーションセンター 経歴: 2018年3⽉:⼤学院卒業 2018年4⽉:新卒でISIDへ⼊社 現在は、顧客⽀援と並⾏してAIを使った⾃社サービス開発に尽⼒中

    業務: 機械学習システム開発・導⼊、⾃社のAIソフトウェアの開発、主にAzureによる アーキテクチャ設計 書籍: 「PyTorch実践⼊⾨」の翻訳出版 「アジャイルとスクラムによる開発⼿法: Azure DevOpsによる プロフェショナルスクラムの実践」の翻訳出版 後藤 勇輝
  2. 4 ⽬次 • 背景 • プロトタイプ開発における問題 • プロトタイプ開発を効率化するための3つのポイント • 開発からデプロイまでのCI/CD基盤

    • 使⽤する技術要素の削減 • PaaSの活⽤ • 新しいプロトタイプ開発を導⼊した感想 • まとめ
  3. 5 背景 お客様にAIシステムの価値を理解してもらい、PoCの次に進むのは難しい お客様 営業 良い精度が出たし、 本番運⽤でも成果 が出せそうです もう少し具体的に業 務に取り⼊れるイ

    メージがしたいです 本当に運⽤でき るのだろうか? 具体的にシステムの価値を伝えるためにプロトタイプが有効 どうしたら価値 をわかってもら えるだろうか
  4. 8 AI機能を含むプロトタイプ開発における問題 やることが多く時間がかかる モデル開発 フロントエンド開発 バックエンド開発 フィードバック ・データ準備、管理 ・モデル開発 ・パラメータ管理

    ・ブラウザからアクセスしたい ・社内ユーザーだけがアクセスできるようにしてほしい ・ある程度⾒た⽬を整えてほしい このほかにも • フィードバックの反映 • バグ修正 • デプロイ作業など ・推論環境の準備 ユーザー
  5. 9 AI機能を含むプロトタイプ開発における問題 要求技術要素も多く複雑 モデル開発 フロントエンド開発 バックエンド開発 フィードバック ・アルゴリズム調査 ・データ準備 ・モデル開発

    ・ブラウザからアクセスしたい ・社内ユーザーだけがアクセスできるようにしてほしい ・顧客に⾒せるのである程度⾒た⽬が整っていてほしい このほかにも • フィードバックの反映 • バグ修正 • デプロイ作業など Azure ・推論環境の準備 ユーザー
  6. 10 AI機能を含むプロトタイプ開発における問題 複雑化はバグ増加、属⼈化、変更が困難になり、機動⼒のある開発ができない モデル開発 フロントエンド開発 バックエンド開発 フィードバック 営業 or コンサル

    ・アルゴリズム調査 ・データ準備 ・モデル開発 ・ブラウザからアクセスしたい ・社内ユーザーだけがアクセスできるようにしてほしい ・顧客に⾒せるのである程度⾒た⽬が整っていてほしい このほかにも • フィードバックの反映 • バグ修正 • デプロイ作業など デプロイしても動かない 〇〇は変えられない or 変更に時間がかかる 〇〇さんしか直せない、作れない プロトタイプは素早く作成し、実際にユーザーにとって価値があるのか検証できることが重要
  7. 19 現在チームで利⽤しているCI構成 • CI実⾏内容 依存関係解決 (Poetry) コードチェック (Pysen) テスト実⾏ (Pytest)

    • PysenはPreferred Networks社が開発したPythonのlinter/formatter ツール • isort、black、flake8、mypyを利⽤し、コーディング規約に準拠し ているか確認する • 1コマンドで上記ツールを実⾏可能。それぞれのツールのCLIを覚え なくていい。CIが書きやすい • pyproject.tomlに設定を集約できる • pipの代わりに使⽤ • ローカルで依存関係の⾃動追記。pipより強⼒な依存関係の解決 • 開発⽤パッケージを別で管理可能
  8. 25 思い切って使わない選択 必要最低限にする • Docker • Nuxt.js • Celery •

    RabbitMQ • Django 過去にプロト開発で使⽤したもの
  9. 26 思い切って使わない選択 必要最低限にする 新しい構成 • フロントエンド • Django template •

    バックエンド • Django • ⾮同期処理 • PythonのsubprocessもしくはAzure Machine Learning • Docker • Nuxt.js • Celery • RabbitMQ • Django 過去にプロト開発で使⽤したもの
  10. 29 PaaSとは アプリケーション開発に必要なものが全て構築済みなサービス ネットワーク ストレージ サーバー OS・ミドルウェア アプリケーション 実⾏環境 アプリケーション

    ネットワーク ストレージ サーバー OS・ミドルウェア アプリケーション 実⾏環境 アプリケーション ネットワーク ストレージ サーバー OS・ミドルウェア アプリケーション 実⾏環境 アプリケーション IaaS (Infrastructure as a Service) PaaS (Platform as a Service) SaaS (Software as a Service)
  11. 33 Azure App Service – Web Apps もう少し具体的に • WebアプリケーションをVMの管理(OSやミドルウェア)なく簡単にデプロイできるサービス

    • ⾃動スケールに対応 • GitHub Actionsをはじめとした豊富なデプロイ⽅法がサポートされておりCI/CDワークフローが簡単に⽤意 できる • コンテナを⽤いたデプロイも可能 (プレビューですが、docker-composeも利⽤可能) • 無料かつ更新不要なマネージド証明書 • Azure ADを⽤いた認証も可能で、特定のユーザーにのみアプリを公開できる Webアプリケーションを簡単にホストできるサービス
  12. 34 なぜAzure App Serviceか • デプロイまでが素早く簡単に構築できる • ローカルで動作するアプリケーションがあればすぐにデプロイ環境で動かせる • CI/CDのためのテンプレートもApp

    Serviceが⽤意してくれる(GitHub) • Easy Authで簡単ログイン • 社内ユーザー(Azure ADに登録されているユーザー)だけがアクセス可能なアプリを簡単に実現 • アプリケーション側で追加のコードは必要ない • App Service Planに収まる範囲なら複数のアプリをデプロイできる • 複数アプリでも料⾦は変わらない
  13. 35 参考:Azure App Service料⾦ App ServiceはApp Service Planを削除しない限り⽉額固定の料⾦です Free無料で試す Basic開発/テスト専⽤の環境

    標準運⽤環境のワークロードの実 ⾏ Premium強化されたパフォー マンスとスケール Web、Mobile、API、API Apps 10 無制限 無制限 無制限 ディスク領域 1 GB 10 GB 50 GB 250 GB 最⼤インスタンス数 – 最⼤ 3 最⼤ 10 最⼤ 30* カスタム ドメイン – サポート対象 サポート対象 サポート対象 ⾃動スケール – – サポート対象 サポート対象 ハイブリッド接続 – サポート対象 サポート対象 サポート対象 仮想ネットワーク接続 – サポート対象 サポート対象 サポート対象 プライベート エンドポイント – サポート対象 サポート対象 サポート対象 コンピューティングの種類 Shared Dedicated Dedicated Dedicated 従量課⾦制料⾦ Free ¥2,005.394/⽉ ¥11,821.270/⽉ ¥12,982.288/⽉
  14. 37 Azure Machine Learning 機械学習ライフサイクル全体をサポートするマネージドサービス モデルのデプロイまで含めた機械学習ライフサイクル データ準備 学習⽤ コード記述 評価

    学習 モデル デプロイ 以下のような機能を提供 • 学習⽤データの管理 • 学習済みのモデル管理 • どのパラメータ、どのデータを学習に使⽤したかなどの実験管理 • 柔軟な計算リソース調達 • 推論エンドポイントを容易に作成 • その他、AutoMLや説明性、公平性の表⽰など多数の機能が存在
  15. 38 Azure Machine Learningの便利なところ 様々なユースケースやアプリケーションに少ない労⼒で対応可能 1. データ、モデル、実験管理が容易 • データ、パラメータ、モデル、精度、コードそれぞれが追加コードなしで正確に紐づく 2.

    機械学習モデルのAPI化が簡単にできる • API化されているとアプリケーション側でモデルの管理をしなくてよいため、バックエンドの開発が容易になる • ブラウザのAzure Machine Learning workspaceからエンドポイントのテストも可能 • マネージドオンラインエンドポイントも登場 • バッチ推論⽤のエンドポイントも作成可能 3. 学習計算リソースを無駄なく使える • 学習時だけ計算リソースを使⽤できるためコストに無駄がない。 • 必要であれば、学習を複数実⾏可能なため時間効率が上がる
  16. 44 まとめ 背景 PoCの先に進むためには具体的な業務イメージを想起できるプロトタイプが有効 AI機能を含むプロトタイプ開発の問題 モデル開発、推論環境など考慮事項が通常のアプリケーションより開発に時間がかかる AI機能を含むプロトタイプ開発を効率化する3つのポイント 1. CI/CD基盤の整備 →

    GitHub Actionsを利⽤し⾃動化 → CIではPoetryを利⽤した依存関係管理、Pysenを利⽤したコード品質を⾃動で保つ仕組み 2. 要素技術の削減 → DjangoとPython組み込み機能をフル活⽤し、学習コスト低減と開発の初動を⾼速化 → むやみに新しいものを⼊れない 3. PaaSの活⽤ → アプリケーションをホストするためにAzure App Service、機械学習の様々な要求を実現するAzure Machine Learning 本質的なコードを書く時間をいかに増やすかが重要
  17. 46 ISID AIトランスフォーメーションセンターでは新しい仲間を募集しています 少しでも興味がある⽅は、「 [email protected] 」までカジュアル⾯談のお問い合わせを頂くか、 「ISID 採⽤ページへ」や以下のQRとリンクから応募をお願いします! 製品開発系 コンサルティング系

    AIコンサルタント https://groupcareers.isid.co.jp /pgisid/u/job.phtml?job_code =591&company_code=1 AIビジネスプロジェクトマネージャー https://groupcareers.isid.co.jp /pgisid/u/sp/job.phtml?job_c ode=532 AIエンジニア(製品開発) https://groupcareers.isid.co.jp /pgisid/u/job.phtml?job_code =647&company_code=1 AIプロダクトマネージャー https://groupcareers.isid.co.jp /pgisid/u/job.phtml?job_code =693&company_code=1