Skip to content
Latchkey

継続的トレーニングとは?自動化されたモデル再学習を解説

継続的トレーニング(CT)は、新鮮なデータやdriftのようなトリガーに応じてモデルを自動的に再学習し、時間とともに精度を保つMLOpsのプラクティスです。

ソフトウェアは、コードを変更するまでは正しいままです。一方、モデルは世界が足元で変化するにつれて、独りでに劣化します。継続的トレーニングは、モデルを自動的に再学習することでこれに応えます - scheduleに従って、または監視が劣化を検出したときに - 人間が毎回のrunを開始しなくても追いつけるようにします。

継続的トレーニングとは何か

継続的トレーニングは、MLOpsのpipelineの一部としてのモデルの自動再学習です。CI/CDをCTループで拡張します。新しいデータが到着し、pipelineがモデルを再学習して評価し、新しいモデルが優れていれば登録されpromoteされます - すべて手動の介入なしにです。

何が再学習をトリガーするか

再学習は、schedule(夜間に再学習)、新しいデータ量(N件の新規レコードの後に再学習)、または監視(driftやメトリクスの低下が検出されたら再学習)によってトリガーできます。トリガーの選択は、データと世界がどれほど速く変化するかによります。

ガードレール

自動的な再学習は、ゲートがなければリスクがあります。CTのpipelineは、各候補をholdoutセットに対して評価し、現在のモデルを上回った場合にのみpromoteする必要があります。これにより、不正なデータのbatchが良いモデルを静かに劣ったものに置き換えるのを防ぎます。

CI/CDでの継続的トレーニング

CTのpipelineは、新鮮なデータを取得し、再学習し、評価し、ゲートの背後でpromoteする、scheduleまたはトリガーされたworkflowです。

A continuous training pipeline
on:
  schedule: [{ cron: "0 3 * * 1" }]   # weekly retrain
jobs:
  retrain:
    runs-on: gpu-large
    steps:
      - run: dvc pull
      - run: python train.py
      - run: python evaluate.py --gate beats-production

Latchkeyノート

再学習のrunは重く、繰り返し発生します。Latchkeyでは、scheduleされたCTのjobがオンデマンドでGPUや大きなrunnerを使い、各runがギガバイトを再ダウンロードしないようにdatasetとベースモデルをcacheし、auto-retryが長い再学習が一時的なデータ取得で止まるのを防ぎます。

重要なポイント

  • 継続的トレーニングは、新鮮なデータやdriftのようなトリガーでモデルを自動的に再学習する。
  • 評価に基づいてpromotionをゲートし、不正なbatchが良いモデルを静かに置き換えないようにする必要がある。
  • CTは、GPUのrunnerとcacheを用いてCI/CDに自然に収まる、scheduleまたはトリガーされたpipelineとして実行される。

関連ガイド