Discovery DataScience Meet up (DsDS) #0に参加しました
「Discovery DataScience Meet up (DsDS) #0」に参加したので(オンライン)、まとめました。
間違っている箇所がある場合、指摘いただけると助かります(専門でない部分も多いため、間違っていたらすみません)
どんなイベント?
Yahooエンジニア, CAエンジニア, DeNAエンジニア, MoTエンジニア合同イベント! ScrambleTech19が主催している、データサイエンティストが日頃の業務で得た知見や悩みについて情報共有する会です! 「組織の枠を超えて、支えあえるDSコミュニティを創る」ことを目指しています!
今回は6名のLTから構成されていました。
LT
広告文自動生成プロダクトでDataflowを導入した話
- Dataflowをコピー生成プロダクトに導入した話
TensorflowのモデルをGCPでサービングしてきた話
- APIで予測結果をフロントに提供する必要がある→どのようにしてきたか?
SageMakerで試行錯誤する推論パイプライン
- 動画を入力とする推論パイプラインをSageMakerで作った話
- 当初のつらみ
- SageMaker導入
- 最初SageMaker Batch Transformで推論
- 感想
- Airflowの管理が面倒くさい
- 書き出し先のpathが分散しててイケてなかった
- Batch Transformへの書き換えが辛い(これが一番大きかったとのこと)
- Batch Transformのイケてない所があった
- 感想
- 修正事項
- 次にBatch Transformの代わりにProcessingを使う
- コードの修正は最小限になった
- スポットインスタンス未対応でコストがかかる
- 書き出し先pathをdag_idでまとめた
- 次にBatch Transformの代わりにProcessingを使う
- 最終構成
- Training jobで推論
- スポットインスタンス使える
- 未だ残るつらさ
- manifest fileがローカルモードに対応してない
- Training jobで推論
- 最初SageMaker Batch Transformで推論
Cloud Composerで組む機械学習パイプライン
- お客様探索ナビの機械学習パイプラインについて
- Cloud Composer
- ワークフローエンジン
- Airflowを採用
- タスクへの情報の渡し方
- Variable:Composer環境全体で共有される環境変数のようなもの
- XCom:動的な値を渡す(複数のdagでは参照できない)
- パイプラインを作っていく際
- GKEPodOperatorで全部やる
- PythonOperatorの制約等、Composer環境は複雑な処理に不向き
- 外部パッケージを良く使うような扱いでは、環境汚染が起きやすいPythonOperatorは向いてない
- PythonOperatorの制約等、Composer環境は複雑な処理に不向き
- GKEPodOperatorで全部やる
- まとめ
- Cloud Composerは構築・運用・実装がお手軽なワークフローエンジン
- 目標:MLリポジトリに変更があっても、パイプライン側は修正不要な状態が理想
- パイプラインはあくまでがわなので、実際の処理はGKEやAI Platformに全て任せる
- Composerの有効活用により、前処理からモデルの本番デプロイまで自動化と安定運用を実現できる
- Cloud Composer
検索システムのMLRモデル更新の自動化
- Solrのリランクプラグイン
- まとめ
- チーム内での検証が終わった段階でサービス導入はこれから
- A/Bテストやモデル選択も自動化したい
- モデル開発等にリソースを割くためにオペレーションコストを減らすのは大事
全社共通レコメンドプラットフォームへのKubernetes/Airflow導入
- 共通レコメンドプラットフォームを社内のKubernetes基板に移管
- プラットフォーム
- 専属のレコメンドチームを持たないサービス向けで様々なサービスが導入されている
- システム構成
- ETL・集計・学習を集約
- なぜAirflow?
- GUIで実行進捗管理出来る
- Kubernetesとの相性が良い→Kubernetes上で動的に学習リソース管理をしたい用途にマッチ
- Pipeline as Code
- Slack通知機能
- 効果
- DNN学習の運用改善
- DNNハイパラチューニングの定常稼働
- Airflowにおるworkflow管理の一元化・状況の可視化
- 現状の課題
- 特徴量管理
- サービス内の一部のログしか使えてない
- 実験管理
- kedro + MLFlow trackingに着目
- 監視
- オンライン性能の継続監視はまだ
- 特徴量管理
- プラットフォーム