PyCon JP 2024

MLOpsの「あるある」な課題の解決と、そのためのライブラリgokart
2024-09-27 , 20F Track2

LLMを含め、機械学習技術は快適なアプリケーションを作成する上で、もはや欠かせない存在ではないでしょうか?一方で、「運用」という側面に目を向けると、機械学習はモデルの更新や入出力の変更など、普段のアプリケーション運用とは一味違った問題が出てきますよね。

例えば、以下のような課題があがってくるかと思います。
- 実験した機械学習モデルの再現性がない
- モデルのバージョニングがごちゃごちゃになり、どの設定で作ったものかわからない
- バッチ実行のたびに重複した処理を繰り返して非効率的
- 似たような関数がプロダクトごとに重複して作られてしまう
- 開発者によって書き方がばらつき、他メンバーが読みにくい

こうした問題の解決には、「処理結果をキャッシュして、同じ処理は再実行しない」や「モデルとコードとを1:1で対応させる」といった戦略が効果的だと考えられます。これらの課題解決の知見を元に、エムスリーでは、MLOpsのためのライブラリ「gokart」を開発し活用してきました。

この発表では、MLOpsの「あるある」な課題とそれへの対処法に関して、今まで培ってきた知見と実際の実装を紹介していきます。ぜひお楽しみに!


本発表は、主にMLOpsでの「あるある」な課題解消にフォーカスしています。
LLMなどの発展もあり、今日では多くのアプリケーションに当たり前のように機械学習技術が組み込まれるようになってきました。
機械学習エンジニアだけでなく、機械学習を活用するアプリケーションに関わる/関わりたい/関わることになりそうな、多くの方に価値をお届けできると考えています。

想定オーディエンス

  • 機械学習モデルをアプリケーションへの組み込みに苦心している、機械学習エンジニア
  • データの収集から分析を効率的に実施したい、データサイエンティスト
  • MLOpsと日々格闘している、データエンジニア/ソフトウェアエンジニア
  • モデルの再現性やバージョン管理で困っている、リサーチャー

アジェンダ

導入: 機械学習プロジェクトの「あるある」な課題
- 実験した機械学習モデルの再現性がない
- モデルのバージョニングが面倒
- バッチ実行のたびに重複した処理を繰り返して非効率的
- 似たような関数がプロダクトごとに重複して作られる
- 開発者によって書き方がばらつき、他メンバーが読みにくい

エムスリーでは「あるある」な課題をどう解消してきたのか?
- 再現性: 作成した機械学習モデルのキャッシュを使うので、実験結果を再現できる
- モデルのバージョニング: モデル作成のコードとモデルファイルが1:1で対応する
- 同じ処理を繰り返す: 処理結果のキャッシュファイルを活用
- 似た関数: 共通タスクを作って共有しやすい
- 書き方のばらつき: クラス設計に縛りがあるので似やすい

gokartの使い方紹介
- Taskを作る
- 依存関係を記述する
- パイプラインを実行する

さらに効率化するために
- パイプラインの記述を1つのTaskに集約
- TaskLockを使った分散処理

もっと知るには?


Why did you choose this topic?:

私が所属するエムスリーのAI・機械学習チームでは、日々、機械学習プロジェクト特有の課題に直面しています。都度、効率化や再発防止の対策を講じて乗り越えてきましたが、チーム内での再利用性を高めるために、MLOpsライブラリ「gokart」に実装する形で対処しているものも多くあります。

これらの知見は、機械学習に関わるすべての人が共通して活用できるものだと思いますので、共有したく、このテーマを選択しました。

Knowledges and know-how the audience can get from your talk:

MLOpsで出会う「あるある」な課題とその対処法
- 再現性のあるモデルを作る方法
- モデルを手軽にバージョン管理する方法
- 重複処理を省略する方法
- 似た関数をメンバー毎に作らないようにする方法
- 他の人にも読みやすいクラス設計方法
- 分散処理で高速化する方法

Prior knowledges speakers assume the audience to have:

本発表は、主にMLOpsでの「あるある」な課題解消にフォーカスしています。機械学習では、データ収集 -> 特徴量作成 -> 学習 -> 評価 -> 推論、といったフローがあることをご存知であれば、より理解しやすい内容となっています。

必須ではありませんが、機械学習を活用するプロジェクトに関わった経験があると、「あるある」に共感いただけると思います。今後、機械学習プロジェクトに関わりたい方や、関わることになりそうな方にも伝わるように丁寧に説明していきますので、ご安心ください。

Audience experiment:

Intermediate

Language of presentation:

日本語

Language of presentation material:

日本語

See also: 発表資料(speakerdeck)

エムスリー株式会社
AI・機械学習チーム 機械学習エンジニア

2019年入社。
ユーザーの興味トピック推計システムの開発など、機械学習を使ったプロダクト開発に従事。
MLOpsのためのパイプラインツールgokartの開発にも参加。

X: @mski_iksm