AI事業本部MLOps研修とは
はじめまして、AI Labでリサーチエンジニアをしている岩崎(@chck)と、AI事業本部 Dynalystでデータサイエンティストをしている長江(@nsakki55)と干飯(@hosimesi)です。
今回は、AI事業本部研修で行われた講義のMLOps回の資料を公開します。
🔳 AI事業本部の事業を担う一員として、「AI事業本部で必要なドメイン知識を身につける・関係を構築する(縦・横・ななめまで)」が研修の目標
サイバーエージェントでは、入社後3週間ほどのエンジニア全体研修を行った後、各事業部に配属されます。AI事業本部では、事業部配属直後に2週間ほどエンジニア研修を行います。この研修では、全社研修とは異なり、AI事業本部に特化したアドテクや機械学習に関連する内容が取り扱われています。
▼事業部研修全体スケジュール
AI事業本部の研修は、以下の3つのパートで構成されています。
・オリエンテーション
・講義編
・実践編
オリエンテーションでは、役員の方や各事業領域の責任者からマーケットを踏まえたAI事業本部の事業説明を行いました。また開発責任者へのインタビューを行い、組織体制や開発責任者の考え・役割について理解を深めました。
講義編では、職種別に講義が行われる一方で、データエンジニアリングやデータモデリングなど事業部のドメインに関連する講義は共通で実施されました。講義の内容としてはLinux/OSの基礎から事業部に特化したA/Bテストや大規模言語モデルまで幅広くカバーしています。今回公開するMLOps回は、これらの講義のうちの1つであり、ML/DS向けに行われました。
▼SWE講義スケジュール
▼ML/DS講義スケジュール
実践編では、実際にSWE&ML/DSでMLワークフローやA/Bテストの機構を備えた広告配信システムを2~3人のメンバーで開発してもらうタスクになります。(参考)
MLOps講義とは
近年、機械学習の活用が広がり、効果的な運用と継続的な改善が求められるようになってきました。このため、MLOpsの重要性が高まり、機械学習モデルの開発から運用までの効率化と品質向上が不可欠となっています。
このような背景もあり、今年の実践編ではMLOpsの要素を組み込みました。具体的には、イベントをトリガーにキックする学習ワークフローと推論サーバの構築、自動デプロイまでを必須要件としました。MLOpsの経験がない方でも、実践編で躓かないように1日にわたってMLOpsの講義を行いました。
MLOpsの講義は、以下の3つのパートで構成されています。
- Container編
- 基礎編
- 応用編
Container編では、MLOps環境ではスタンダードになっているコンテナ環境への導入と推論サーバの構築をハンズオン形式で学習する講義です。
基礎編では、MLOpsの概要に始まり、何から手をつければいいのかやアンチパターンなどを網羅したContainer編と応用編をつなぐ講義になっています。
応用編では、実際に実践編で扱うAWS上に学習ワークフローと推論サーバを構築するハンズオンになっています。
Container編
Container編では、MLOpsの前提知識としてのコンテナ技術を学びます。
普段の研究開発で想定されるストーリーを元に、「今日から使えるPortableな実験環境とScalableな推論App」を目指します。
Dockerの基礎から、CI/CD、Cloud連携までを以下のように段階的にハンズオン形式でインプットできる内容になっています。
- Python scriptのDocker化
- Training codeが走るJupyterLabのDocker Compose運用
- 学習済モデルを乗せた推論AppのCloud Deploy
Docker、Docker Compose、AWS App Runnerがメインですが、コンテナオーケストレーションの紹介としてKubernetes及びkindにも少し触れています。
今年のエンジニア全体研修との兼ね合いでCloudはAWSでの内容になっていますが、GCPやAzureでもそのまま応用できる話かなと思います。ハンズオンのコード、スライドは以下から。https://github.com/chck/container4ml-aws
▼スライド
基礎編
MLOps基礎編では、MLOpsの概要と全体感を把握してもらう講義になっています。基礎編のコンセプトはMLOpsを新たに始める際に要点を掴める資料で、以下の構成になっています。
- MLOpsとは
- なぜMLOpsが必要なのか
- MLOpsレベル別紹介
- 推論システム紹介
- 学習ワークフロー紹介
- アンチパターン
- システムの品質担保
MLOpsの定義から始め、MLOpsの必要性やシステムの定量的な評価を説明しています。また、応用編でも扱われるMLOpsの代表的なタスクである推論システム・学習ワークフロー・A/B基盤についてお話ししています。
その後、MLOpsのアンチパターンを紹介し、失敗しがちなポイントを列挙しています。そして、MLOpsのOps部分であるシステムの運用・品質担保の部分を紹介して、結論に続きます。
前半のContainer編と応用編の間に行われることもあり、両者との繋がりを意識して作成しました。
▼スライド
応用編
MLOps応用編は、Container編で扱った技術を土台として、MLOps基礎編で紹介されたシステムを実際に作る内容となっています。
「広告クリック率をリアルタイム予測するML基盤を作成する」ことをMLOpsの要件としています。
前半部分は、MLOpsと言いつつもDevOpsの内容に意図的に寄せています。「ML特有の問題に取り組む前に、コード・システムの品質を担保できるようになって欲しい」という意図があったためです。なので静的解析やテスト、CI/CDについて重点的に触れています。
後半部分はAWSのインフラ上に学習ワークフロー・推論サーバを構築する内容になっています。SageMakerなどのMLマネージドサービスをあえて採用しませんでした。マネージドサービスの使い方研修になるのを避けたかったのと、自前で運用環境を作ることで、MLシステムを作る際の技術的な難しさを体験して欲しかったためです。Container編の繋がりからECSを採用し、コードをコンテナ化して実行しています。
時間の関係上、講義内では詳しく扱えていませんが、作成したインフラを再現できるTerraformを用意してます。
応用編で使用したコードをGitHubに公開しています。https://github.com/nsakki55/aws-mlops-handson
▼スライド
最後に
AI事業本部ではMLOps研修に加え、多くの研修が行われます。プロダクト配属後にデータサイエンティストの実務におけるタスクに関する講義・議論や、応用的なデータサイエンス的なトピックに関する講義を行うDSOps研修もあります。
サイバーエージェントでは様々な人材を募集しています。興味のある方、採用ページからご連絡をお待ちしております。