GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

kubeflow

kubeflow – Kubernetesの機械学習ツールキット

投稿日:

Kubernetesの機械学習ツールキット

Kubeflow

Kubeflowプロジェクトは、 Kubernetesでの機械学習の展開をシンプルでポータブルかつスケーラブルにすることに専念しています。 私たちの目標は、他のサービスを再作成することではなく 、さまざまなインフラストラクチャに最適なオープンソースのMLシステムを導入するための簡単な方法を提供することです。 Kubernetesを実行しているところであれば、Kubeflowを実行できるはずです。


このリポジトリには、以下を作成するマニフェストが含まれています。

  • インタラクティブなJupyterノートブックの作成と管理を行うJupyterHub Project Jupyterは、すべてのプログラミング言語でインタラクティブなデータサイエンスと科学計算をサポートする非営利のオープンソースプロジェクトです。
  • CPUまたはGPUのいずれかを使用し、単一の設定でクラスタのサイズに動的に調整できるように構成できるTensorFlowトレーニングコントローラ
  • 訓練されたTensorFlowモデルをKubernetesにエクスポートするTensorFlow Servingコンテナ

このドキュメントでは、Kubernetesが動作する環境でKubeflowプロジェクトを実行するために必要な手順について説明します。

クイックリンク

Kubeflowミッション

私たちの目標は、Kubernetesに素晴らしいことをさせることによって、スケーリングマシンの学習モデルを作成し、できるだけ簡単にプロダクションに展開することです。

  • 多様なインフラストラクチャ(ラップトップMLリグ訓練クラスタ< – >本番クラスタ)上での簡単で再現性のあるポータブルな展開
  • 疎結合マイクロサービスの展開と管理
  • 需要に基づくスケーリング

ML実務家は非常に多くの種類のツールを使用しているので、スタックをカスタマイズして(理由の如何を問わず)システムが「退屈なもの」を処理できるようにすることが重要な目標です。 我々は狭い技術から始めていますが、私たちは多くの異なるプロジェクトと協力して、追加のツールを組み込んでいます。

最終的には、Kubernetesが既に稼働している場所で MLスタックを簡単に使用できるシンプルマニフェストのセットを用意したいと考えています。

誰がKubeflowの使用を検討すべきですか?

現在の機能に基づいて、Kubeflowの使用を検討する必要があります:

  • TensorFlowモデルをさまざまな環境(たとえば、ローカル、オン・プレミア、クラウド)でトレーニング/提供したい場合、
  • Jupyterノートブックを使用してTensorFlowトレーニングジョブを管理したい
  • パーソナルコンピュータでは利用できないリソース(CPUやGPUなど)を使用するトレーニングジョブを開始したい
  • TensorFlowを他のプロセスと組み合わせたい
    • たとえば、 テンソルフロー/エージェントを使用してシミュレーションを実行し、トレーニング強化学習モデルのデータを生成することができます。

このリストは現在の能力にのみ基づいています。 私たちは、機能を拡張し、寄付に興味のある企業や個人からの援助を積極的に求めるために、多大な資金を投入しています(下記参照 )。

セットアップ

このドキュメントでは、Kubernetesクラスタが既に利用可能であることを前提としています。

Kubernetesクラスタを設定する際に助けが必要な場合は、 Kubernetes Setupを参照してください。

GPUを使用する場合は、必ずKubernetesの指示に従ってGPUを有効にしてください

クイックスタート

要件

ステップ

すべてのコンポーネントをすばやく設定するには、次のコマンドを実行します。

# Create a namespace for kubeflow deployment
NAMESPACE=kubeflow
kubectl create namespace ${NAMESPACE}

# Initialize a ksonnet app. Set the namespace for it's default environment.
APP_NAME=my-kubeflow
ks init ${APP_NAME}
cd ${APP_NAME}
ks env set default --namespace ${NAMESPACE}

# Install Kubeflow components
ks registry add kubeflow github.com/kubeflow/kubeflow/tree/master/kubeflow
ks pkg install kubeflow/core
ks pkg install kubeflow/tf-serving
ks pkg install kubeflow/tf-job

# Create templates for core components
ks generate kubeflow-core kubeflow-core

# If your cluster is running on Azure you will need to set the cloud parameter.
# If the cluster was created with AKS or ACS choose aks, it if was created
# with acs-engine, choose acsengine
# PLATFORM=<aks|acsengine>
# ks param set kubeflow-core cloud ${PLATFORM}

# Enable collection of anonymous usage metrics
# Skip this step if you don't want to enable collection.
ks param set kubeflow-core reportUsage true
ks param set kubeflow-core usageId $(uuidgen)

# Deploy Kubeflow
ks apply default -c kubeflow-core

上記のコマンドは、JupyterHubとTensorFlowトレーニングジョブを実行するためのカスタムリソースを設定します。 さらに、ksonnetパッケージは、TensorFlowジョブの構成とTensorFlowモデルの展開に使用できるプロトタイプを提供します。 一緒に使用することで、ユーザーは、異なる環境間の移植可能な方法で最小限の労力でTensorflowを使用してトレーニングからサービングに簡単に移行できます。

Kubeflowの使用方法の詳細については、 ユーザーガイドを参照してください

重要上記のコマンドは、Kubeflowの改善に役立つ匿名ユーザーデータの収集を可能にします。 明示的に無効にする方法などの詳細については、[user_guide](user_guide#Usage Reporting)を参照してください。

トラブルシューティング

トラブルシューティングの詳細については、 このユーザーガイドのこのセクションを参照してください。

リソース

関与する

オープンで歓迎的な環境を育むことを目的として、私たちは寄付者やメンテナーとして、年齢、身体の大きさ、身体の障害、民族性、性同一性や表現にかかわらず、プロジェクトやコミュニティにすべての人にハラスメントフリーの体験を提供することを約束します。教育、社会経済的地位、国籍、身分、人種、宗教、性的アイデンティティー、オリエンテーションなどが含まれます。

Kubeflowコミュニティは、私たちが参加する前に誰もが読むことを奨励する行動規範によって導かれています。

誰がKubeflowへの貢献を検討すべきですか?

  • 他のMLフレームワーク(PyTorch、XGBoost、scikit-learnなど)のサポートを追加したい人は、
  • Kubernetesの魔法をMLに持っていきたい人(例えば、予測のためのISTIOの統合)
  • Kubeflowをより豊かなMLプラットフォーム(MLパイプライン、ハイパーパラメータチューニングなど)にしたい人は、
  • 特定のKubernetesディストリビューションやクラウドのためにKubeflowをチューニングしたい人
  • ML問題を解決するためにKubeflowを使用する方法を示すチュートリアル/ブログ記事を書きたい人







-kubeflow
-, , , , , ,

執筆者: