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と衝突し、技術的理想が地上戦争と衝突する

ブログ    
ブログ    

推薦する

ゲームの背後にあるAIストーリー:小規模サンプル学習と転移学習

2019年、人間と機械のゲームバトルにおいて、Open AI Fiveが圧倒的なパフォーマンスでD...

ディープラーニングとディープクローニング: チャットボットにとってより優れたソリューションはどちらでしょうか?

[[200112]]編集者注: チャットボットは目新しいものではありません。Facebook や ...

...

初め!プログラム可能なメモリスタコンピュータが誕生しました!

[[271164]]人類史上初のプログラム可能なメモリスタ コンピュータが誕生しました。音声コマン...

アメリカの科学者が、将来AI人工知能に代わるAGIの概念を提唱しました!

人工知能の分野の中心にあるのは、いつの日か人間と同じくらい賢い機械を作ることができるようになるという...

ニッチから人気へ: 世界的な AI イノベーションが「ソフト」になった理由

この人工知能の波が出現したとき、世界中の AI 研究所が競争を重視していたことを今でも覚えています。...

Pythonがリードを拡大、PyTorchはわずか6.4%

最近、有名なデータサイエンスのウェブサイト KDnuggets が、2018 年のデータサイエンスお...

ディープラーニングを使用して映画を推奨するにはどうすればよいでしょうか?独自の推奨システムを作成する方法を教えます!

導入ほとんどすべての人が、家族や友人と一緒に映画を観ながら余暇を過ごすのが好きです。誰でもこんな経験...

大規模言語モデル評価における信頼性の低いデータに注意: Flan-T5 に基づくプロンプト選択のケーススタディ

翻訳者|朱 仙中レビュー | Chonglou導入信頼性の高いモデル評価はMLOP と LLMop ...

労働者の皆さん、ご注意ください: AI は組立ラインの労働者を置き換えるものではなく、管理者を置き換えるものです。

今後 15 年間で、人工知能によって米国の雇用が 40% から 50% 減少すると私は予測しています...

...

...

クラウドで必要な 5 つの機械学習スキル

機械学習と AI は IT サービスにさらに深く浸透し、ソフトウェア エンジニアが開発したアプリケー...

いくつかの名門大学とAdobeは、このオープンソースアルゴリズムを使用して、300年以上前の手紙を「透視」しました。

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

...