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

ClearMLで行うAIプロジェクトの管理(レポート,最適化,再現,デプロイ,オーケストレーション)

Ringa_hyj
December 31, 2024

 ClearMLで行うAIプロジェクトの管理(レポート,最適化,再現,デプロイ,オーケストレーション)

Ringa_hyj

December 31, 2024
Tweet

More Decks by Ringa_hyj

Other Decks in Technology

Transcript

  1. 紹介 1/6 はじめに ClearMLの目的は・・・ 実験管理から本番デプロイまでの機械学習プロジェクト の全体を自動化/可視化するプラットフォーム こんな経験はありませんか? • 実験結果やモデル、パラメータの管理が煩雑で、以前の実験の再現が困難 •

    複数人での実験結果や進捗状況の共有に時間がかかる • 異なる計算機で複数の処理を経由する実験過程や複雑な実験環境が再現できない • パラメータやデータを変更して性能を比較することが難しい • チーム共有のマシンでGPUリソースの使用状況が不透明 • 作成したモデルをすぐにデプロイできず困っている
  2. 紹介 2/6 チューニング/学習機能 2行のコードで実験を記録しサーバーへ保存 DataOps Tuning Train Reports Modelstore Pipelines

    Deploy Reproducibility Orchestrate from clearml import Task Task.init(project_name='main_project/sub_project', task_name='test') • 容易な実行環境/結果の保存 • データ, モデルを自動or手動保存可能 • 保存モデルは別タスクから再利用可能 • 保存タスクをcloneして再実行可能 • パラメータの変更と再実行 • まとめて評価指標を比較可能 Modelstore Pipelines Deploy
  3. 紹介 3/6 DataOps機能 DataOps Tuning Train Reports Modelstore Pipelines Deploy

    Reproducibility Orchestrate • データセットの登録/アップロード • 変更時に元となるデータセットとの差分の表示 • データセットの継承履歴の可視化 from clearml import Dataset dataset = Dataset.create( dataset_project="dataset_examples", dataset_name="Training Dataset") child_dataset = Dataset.create( dataset_project="dataset_examples", dataset_name="Complete Dataset", parent_datasets=[dataset.id]) Modelstore Pipelines Deploy
  4. 紹介 4/6 Reports機能 DataOps Tuning Train Reports Modelstore Pipelines Deploy

    Reproducibility Orchestrate • html, マークダウン形式のレポート作成 • 実験タスクの結果から図表が引用可能 • 共有リンク生成, pdf出力への対応
  5. 紹介 5/6 Pipelines機能 DataOps Tuning Train Reports Modelstore Pipelines Deploy

    Reproducibility Orchestrate • 前処理/学習/評価など分割タスクをデコレータで装飾し、一連の処理として実行可能 • パイプライン自体のcloneとデータやパラメタを変更した実験の実行が可能 • 処理ごとに実行マシンを割り当て、個別にタスク実行が可能 from clearml.automation.controller import PipelineDecorator @PipelineDecorator.component(return_values=['data_frame'], cache=True) def step_one(pickle_data_url: str, extra: int = 43): import pickle import pandas as pd from clearml import StorageManager local_iris_pkl = StorageManager.get_local_copy(remote_url=pickle_data_url) with open(local_iris_pkl, 'rb') as f: iris = pickle.load(f) data_frame = pd.DataFrame(iris['data'], columns=iris['feature_names']) return data_frame
  6. 紹介 6/6 Deploy機能 DataOps Tuning Train Reports Modelstore Pipelines Deploy

    Reproducibility Orchestrate 学習用マシン ClearMLサーバー 推論用コンテナ モデル学習 モデル保存 Serving Service 推論用エンドポイント HTTP Cliant POST JSON モデル同期 • 学習したモデルをdocker, Kubernetesを利用したスケーラブルな環境で展開 • 多様なモデルタイプのサポート(Scikit-learn,XGBoost,TensorFlow,PyTorch,ONNX) • カナリアデプロイ、モデル追加や置き換えなども柔軟に実行できる