1. 背景
近年、人工知能技術は自然言語処理、映像表現、自動運転などで大きな成果を上げ、産学を問わず驚かされるモデルが次々とデザインされています。しかし、実際にアルゴリズム エンジニアリングを行った学生にとっては、これらのモデルに驚きながらも、これらのモデルをビジネスに迅速かつ効果的に実装し、商業的価値を生み出す方法のほうが心配です。Google の「機械学習システムの隠れた技術的負債」で述べられているように、ML コードは、データ収集、特徴抽出、構成管理、リソース管理、モデルのデプロイメント、モデルの監視など、機械学習システムの重要な部分にすぎません。
非常に多くのコンポーネントまたはサブシステムで構成されている典型的な機械学習システムを見ると、別の疑問を考えるでしょう。これほど多くのサブシステムはどのように効率的に連携すべきでしょうか?
答えは機械学習のワークフローです。機械学習ワークフローを通じて、さまざまなサブシステムを効果的に直列に接続できます。各ビジネス シナリオは、エンドツーエンドの機械学習ワークフローを通じて説明できます。同時に、ワークフローは各モデル出力またはモデルの要素を追跡することもできます。オンライン情報 (データ、構成、基本モデルなど)。
業界では、より成熟した機械学習ワークフローとして、Google の Vertex AI Pipeline や Amazon の Sagemaker Pipeline が挙げられるので、興味があれば、公式 Web サイトにアクセスして体験してください。
この記事では、オープンソースの機械学習ワークフロー ソリューションである Kubeflow Pipelines を紹介します (注: Vertex AI Pipeline は Kubeflow Pipelines に基づいて変換されます)。
2. Kubeflow パイプライン
Kubeflow は、kubernetes 環境ですぐに使える機械学習プラットフォームを迅速に構築できるように設計されたクラウドネイティブの機械学習プラットフォームです。Kubeflow は複数のサブシステムで構成され、機械学習ステートメント サイクルのプロセス全体をカバーします。
- トレーニング段階: Kubeflow は、さまざまな機械学習フレームワークに対応するオペレーターを提供します。これは、ユーザーが kubernetes 環境で分散トレーニング タスクを送信するのに便利です。
- 導入フェーズ: Kubeflow は、ユーザーがビジネス ニーズに応じて選択できるさまざまな導入フレームワークも提供します。
- モニタリング段階: Kubeflow は、モデルのアーティファクト、系統、パフォーマンスを分析するためのメタデータと TensorBoard を提供します。
上記の機械学習の段階に対して、Kubeflow は Kubeflow Pipeline ワークフロー プラットフォームを提供します。これは、機械学習のさまざまな段階を直列に接続するために使用され、次の機能を提供します。
- タスクの配置: Kubeflow Pipeline は、豊富で多様な DAG ワークフローを実現できる argo を通じてワークフロー機能を提供し、ユーザーはビジネス ニーズに応じて独自のワークフローを定義、管理、再利用できます。
- 実験管理: 実験の機能により、Kubeflow Pipeline はさまざまな実験パラメーター (モデルのハイパーパラメーターなど) の下で Pipeline の実行結果を表示および比較でき、ユーザーは結果に応じてワークフロー タスクを調整できます。
- モデルのトレーサビリティ: 追跡機能を通じて、Kubeflow Pipeline は各パイプライン操作の各ステップの入出力情報を記録でき、ユーザーは記録された内容に従ってモデルのトラブルシューティングや最適化を行うことができます。
3. 導入とインストール
Kubeflow Pipelines には 2 つのインストール モードがあります。
- モード 1: Kubeflow Platform のフルセットをインストールすると、Kubeflow Pipelines も同時にインストールされます
- モード 2: Kubeflow Pipelines を個別にインストールするこの記事では、この状況を紹介します。
kubeflow パイプライン バージョン 1.8.0 をインストールする
(K8S は coreDNS サービスをインストールする必要があります)
https://github.com/kubeflow/pipelines/tree/1.8.0
https://github.com/kubeflow/pipelines/tree/1.8.0/manifests/kusTOMize
インストール方法は次のとおりです。
インストール:
KFP_ENV=platform-agnostic
kubectl apply -k cluster-scoped-resources/
kubectl wait crd/applications.app.k8s.io --for condition=established --timeout=60s
kubectl apply -k "env/${KFP_ENV}/"
kubectl wait pods -l application-crd-id=kubeflow-pipelines -n kubeflow --for condition=Ready --timeout=1800s
kubectl port-forward -n kubeflow svc/ml-pipeline-ui 8080:80
これで、ブラウザで http://localhost:8080によって Kubeflow Pipelines UI にアクセスできるようになりました。
対応する画像をダウンロードするには
インストールが成功したら:
(すべてのポッドが実行されている必要があります)
1. mysql と minio はストレージに依存するため、対応するデプロイメントのボリュームを変更する必要があります
4 サービスのアンインストール
4.1 名前空間スコープ リソースのアンインストール kubectl kusTOMize env/platform-agnostic | kubectl delete -f -
4.2 クラスタースコープのリソース uninstall kubectl delete -k cluster-scoped-resources/
バイナリ インストール kubernetes 1.23.2_kubectl バイナリ インストール_Lao Duan スタジオ ブログ - CSDN ブログ
バイナリ インストール k8s v1.25.0_ubuntu 20.04 インストール バイナリ k8s 1.25 に基づく