GitHub のホット プロジェクト: 実稼働レベルのディープラーニング プロジェクトを構築するには?

GitHub のホット プロジェクト: 実稼働レベルのディープラーニング プロジェクトを構築するには?

ディープラーニング モデルを本番環境に導入することは、優れたパフォーマンスのモデルをトレーニングするだけでは不十分であるため、困難な場合があります。実稼働レベルのディープラーニング システムを導入するには、多数のコンポーネントを適切に設計および開発する必要があります。この記事では、実際のアプリケーションに導入される本番環境レベルのディープラーニング システムを構築するための GitHub のエンジニアリング ガイドを紹介します。

この記事では、実稼働レベルのディープラーニング システムのさまざまな構成要素を詳しく見ていき、各コンポーネントに適したツールセットとフレームワーク、および実践者が提供するベスト プラクティスを推奨します。

1. データ管理

1.1. データソース

オープンソースデータ(良いスタートだが、有利ではない)、データ拡張、合成データ

1.2. 注釈

注釈付き労働力源:

  • クラウドソーシング
  • サービス会社: FigureEight
  • 注釈者を雇う

注釈プラットフォーム:

  • Prodigy: アクティブラーニング (Spacy の開発者による)、テキスト、画像を活用した注釈ツール。
  • HIVE: コンピューター ビジョン用の AI-as-a-Service プラットフォーム。
  • Supervisely: 完全なコンピューター ビジョン プラットフォーム。
  • ラベルボックス: コンピュータービジョン。
  • AI データ プラットフォーム (コンピューター ビジョンと自然言語処理) を拡張します。

1.3. ストレージ

データ保存オプション:

(1)オブジェクトストレージ:バイナリデータ(画像、音声ファイル、圧縮テキスト)の保存

  • アマゾンS3
  • Ceph オブジェクトストレージ

(2)データベース:メタデータ(ファイルパス、タグ、ユーザーアクティビティなど)を保存します。

  • Postgres は、最高の SQL と非構造化 JSON の強力なサポートを提供するため、ほとんどのアプリケーションにとって最適な選択肢です。

(3)データレイク:データベースからは取得できない特徴(ログなど)を集約するために使用される。

  • アマゾンレッドシフト

(4)特徴量保存:機械学習の特徴量の保存とアクセス。

  • FEAST (Google Cloud、オープンソース)
  • ミケランジェロ(Uber)
  • トレーニング中: データをローカルまたはクラスター ファイル システムにコピーします。

バージョン管理

  • DVC: 機械学習プロジェクト向けのオープンソースバージョン管理システム
  • Pachyderm: データのバージョン管理用
  • Dolt: SQL データベースのバージョン管理

1.5. 処理

実稼働モデルのトレーニング データは、データベースやオブジェクト ストレージに保存されたデータ、ログ処理、他の分類子からの出力など、さまざまなソースから取得される場合があります。

タスク間には依存関係があり、各キャラクターは依存関係が完了した後にのみ開始できます。たとえば、新しいログ データをトレーニングするには、トレーニングの前に前処理が必要です。したがって、この点ではワークフローが非常に重要になります。

ワークフロー:

  • エアフロー(最も一般的に使用される)

2. 開発、研修、評価

ソフトウェアエンジニアリング

エディタ:

  • ヴィム
  • エマック
  • VS Code (著者の推奨): 組み込みの Git ステージングとファイルの差異の表示、Lint コード スキャン、SSH 経由のリモート プロジェクトのオープン。
  • Jupyter Notebooks: プロジェクトの開始点としては最適ですが、拡張が困難です。
  • Streamlit: アプレットを備えたインタラクティブなデータ サイエンス ツール。

提案:

個人またはスタートアップ向け:

  • 開発: 4 コアの Turing アーキテクチャ コンピューター。
  • トレーニング/評価: 同じ 4 コア GPU コンピューターを使用します。多くの実験を実行する場合は、共有サーバーを購入するか、クラウド インスタンスを使用できます。

大企業の場合:

  • 開発: 各機械学習科学者に 4 コアのチューリング マシンを購入するか、V100 インスタンスを使用させます。
  • トレーニング/評価: 適切な構成と障害処理を備えたクラウド インスタンスを使用します。

2.2. リソース管理

プログラムに空きリソースを割り当てます。

リソース管理オプション:

  • レガシー クラスタ ジョブ スケジューラ (例: Slurm ワークロード マネージャー)
  • ドッカー + Kubernetes
  • キューブフロー
  • Polyaxon(有料機能)

2.3. ディープラーニングフレームワーク

特別な理由がない限り、TensorFlow/Keras または PyTorch を使用してください。次の図は、開発と運用におけるさまざまなフレームワークの比較を示しています。

2.4. 実験管理

戦略を開発、トレーニング、評価する: 常にシンプルに始めます。小さなバッチで小さなモデルをトレーニングし、それが機能する場合にのみ、より大きなデータとモデルにスケールアップし、ハイパーパラメータの調整を実行します。

実験管理ツール:

  • Tensorboard: 機械学習の実験に必要な視覚化とツールを提供します。
  • Losswise(機械学習のモニタリング)
  • Comet: 機械学習プロジェクトのコード、実験、結果を追跡できます。
  • 重みとバイアス: 簡単な共同作業で、研究のあらゆる詳細を記録して視覚化します。
  • MLFlow トラッキング: パラメータ、コード バージョン、メトリック、出力ファイルを記録し、結果を視覚化します。

2.5. ハイパーパラメータの調整

Hyperas: シンプルなテンプレート表記を使用して、調整するハイパーパラメータの範囲を定義する、Keras 用の hyperopt のシンプルなラッパーです。 SIGOPT: スケーラブルなエンタープライズレベルの最適化プラットフォーム。 Ray-Tune: スケーラブルな分散モデル選択研究プラットフォーム (ディープラーニングとディープ強化学習に重点を置いたもの)。重みとバイアスからのスイープ: パラメータは開発者によって明示的に指定されませんが、機械学習モデルによって近似され、学習されます。

2.6. 分散トレーニング

データ並列処理: 反復処理に時間がかかりすぎる場合に使用します (TensorFlow と PyTorch の両方でサポートされています)。

モデルの並列処理: モデルが単一の GPU に収まらない場合に使用されます。

その他の解決策:

  • レイ
  • ホロヴォド

3. トラブルシューティングは「改善が必要」

4. テストと展開

4.1. テストとCI/CD

機械学習の生産ソフトウェアには、従来のソフトウェアよりも多様なテスト スイートが必要です。

ユニットテストと統合テスト

テストタイプ:

  • トレーニング システムのテスト: トレーニング パイプラインのテスト。
  • 検証テスト: 検証セットで予測システムをテストします。
  • 機能テスト。
  • 継続的インテグレーション: 新しいコード変更がリポジトリにプッシュされるたびにテストを実行します。

継続的インテグレーションのための SaaS:

  • CircleCI、トラビス
  • ジェンキンス、ビルドカイト

4.2. ネットワーク展開

(1)予測システムとサービスシステムから構成される

  • スケールを考慮して予測を提供します。
  • REST API を使用して予測 HTTP リクエストを処理します。
  • 予測システムを呼び出して応答する
  • 予測システム: 入力データを処理して予測を行います。
  • サービスシステム(Webサーバー):

(2)サービスオプション:

  • ドッカー
  • Kubernetes(現在最も人気)
  • メソス
  • マラソン
  • モデルサービング ソリューションを通じてデプロイされます。
  • コードをサーバーレス関数としてデプロイします。

(3)モデルサービス:

  • Tensorflow サービング
  • MXNet モデルサーバー
  • クリッパー(バークレー)
  • SaaS ソリューション (Seldon、アルゴリズム)
  • 機械学習モデルのネットワーク展開に特化しています。
  • GPU 推論のバッチ要求。
  • フレームワーク: Tensorflow Serving、MXNet Model Server、Clipper、SaaS ソリューション (Seldon、アルゴリズム)

(4)意思決定:

  • TensorFlow Serving または Clipper
  • 適応バッチ処理は便利です。
  • CPU 推論が要件を満たす場合は、それが優先されます。
  • サーバーを追加して拡張するか、サーバーレスにするかを選択します。
  • CPU 推論:
  • GPU推論:

4.3 サービスメッシュとトラフィックルーティング

モノリシック アプリケーションから分散マイクロサービス アーキテクチャへの移行は困難な場合があります。

サービス メッシュ (マイクロサービスのネットワークで構成) は、このようなデプロイメントの複雑さを軽減し、開発チームの負担を軽減します。

Istio: サービス内のコードをほとんどまたはまったく変更せずに、デプロイされたサービスのネットワークの作成を簡素化するサービス メッシュ テクノロジー。

監視

目的:

  • ダウンタイム、エラー、配布の変更に関するアラート。
  • スクレイピング サービスとデータ回帰。

さらに、クラウドプロバイダーが提供するソリューションも非常に優れています。

4.5. 組み込みデバイスおよびモバイルデバイスへの展開

主な課題: メモリ使用量と計算上の制限

解決:

  • DistillBERT(自然言語処理用)
  • モバイルネット
  • 定量化
  • モデルサイズを縮小する
  • 知識の蒸留

組み込みおよびモバイル フレームワーク:

  • テンソルフローライト
  • PyTorch モバイル
  • コアML
  • MLキット
  • フリッツ
  • オープンVINO

モデル変換:

  • Open Neural Network Exchange (ONNX): ディープラーニング モデル用のオープン ソース形式。

4.6. 統合ソリューション

  • Tensorflow 拡張 (TFX)
  • ミケランジェロ(Uber)
  • Google Cloud AI プラットフォーム
  • Amazon セージメーカー
  • ネプチューン
  • フロイド
  • ペーパースペース
  • 決意のAI
  • ドミノデータラボ

Tensorflow 拡張 (TFX)

Airflow と KubeFlow ML パイプライン

<<:  あなたのお子さんは「顔スキャン」されましたか?顔認識技術がキャンパスに導入され物議を醸す

>>:  AI企業の成人式:自由が996と衝突し、技術的理想が地上戦争と衝突する

ブログ    
ブログ    
ブログ    

推薦する

Apple、Google Play ランキングアルゴリズム

すべてのアプリにおいて、製品自体が登場する前、アイデアが生まれた時点で、すでに製品マーケティングの問...

...

オープンソースAIとプロプライエタリAIの戦い

IBM と Meta のパートナーおよび協力者には、AMD、Intel、NASA、CERN、Hugg...

機械学習に効果的なデータを取得する方法 小さなデータを扱うための 7 つのヒント (一読の価値あり)

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

製造業、農業、医療…AIは新しい時代をどのように変えるのでしょうか?

2018年、国内の人工知能とビッグデータ産業は引き続き急速な発展を遂げ、国家計画の導入に伴い、各地...

このAIはガールフレンドの自撮りを手伝います: 写真から3D動画を生成

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

定量評価、アルゴリズム拡張:強化学習研究の10原則

[[252430]]ビッグデータダイジェスト制作編纂者:江宝尚今年 9 月に開催された Deep L...

人工知能は 5 つの主要な地球規模の問題に解決策をもたらす | ダボス ブログ

[[183562]]人々は常に人工知能について多くの懸念を抱いています。人工知能は私たちの仕事にとっ...

...

清華大学の学生が強化学習プラットフォーム「TianShou」を開発:数千行のコードが完成、オープンソース化

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

変革的な AI、ノーコード、ローコード - エンタープライズ AI 導入に最適なパスはどれでしょうか?

COVID-19のパンデミックにより、私たちはテクノロジー、オンライン活動、人工知能への依存をさら...

TFserving によるディープラーニング モデルの導入

1. TFservingとは何かモデルをトレーニングし、それを外部の関係者に提供する必要がある場合は...

清華大学の崔鵬氏:因果推論技術の最新開発動向

著者 | 真実を追求する実践主義者人工知能が発展し続けるにつれて、セキュリティとコンプライアンスの問...

人工知能に関する長期的および短期的な懸念

人工知能(AI)技術の発展により、いつか「超人」的なAIが出現する日は来るのでしょうか?もしそうなれ...

ネットワークセキュリティにおける人工知能の4つの主要な応用シナリオ

セキュリティにおける人工知能の応用は、人々に 4 つの独自のセキュリティ上の利点をもたらします。この...