[51CTO.com クイック翻訳] 機械学習の分野を見ると、ソフトウェアエンジニアリングの原理を機械学習に適用することに重点を置いたプロジェクトの数が急増していることが大きな傾向です。たとえば、Cortex は推論パイプラインの助けを借りて、サーバーレス関数のデプロイのエクスペリエンスを再現します。同様に、DVC は機械学習向けに最新のバージョン管理と CI/CD パイプラインを実装します。
PyTorch Lightning にも同様の概念がありますが、トレーニング専用です。このフレームワークは PyTorch 用の Python ラッパーを提供し、データ サイエンティストやエンジニアがクリーンかつ管理しやすく、パフォーマンスの高いトレーニング コードを作成できるようにします。 私たちがこのデプロイメント プラットフォーム全体を構築した理由の 1 つは、定型コードを書くのが嫌いで、PyTorch Lightning の大ファンだからです。その精神で、私は PyTorch Lightning モデルを本番環境にデプロイするためのこのガイドを作成しました。途中で、PyTorch Lightning モデルをエクスポートして推論パイプラインに含めるいくつかの方法について説明します。 推論用の PyTorch Lightning モデルを展開するさまざまな方法 PyTorch Lightning モデルをデプロイ用にエクスポートする方法は 3 つあります。
Cortex を使用すると、これら 3 つのアプローチすべてを満たすことができます。 1. PyTorch Lightningモジュールを直接パッケージ化してデプロイする 最もシンプルなアプローチから始めて、変換手順なしで PyTorch Lightning モデルをデプロイしてみましょう。 PyTorch Lightning Trainer は、定型的なトレーニング コード (トレーニングと検証の手順など) を抽象化するクラスであり、モデルを .ckpt ファイルとして保存する save_checkpoint() 関数が組み込まれています。モデルをチェックポイントとして保存するには、トレーニング スクリプトに次のコードを追加するだけです。 図1 さて、このチェックポイントのデプロイを始める前に、私が「PyTorch Lightning モデル」と言い続けているものの、PyTorch Lightning は PyTorch のラッパーであることに注意してください。プロジェクトの README には、実際に「PyTorch Lightning は、単に組織化された PyTorch です」と書かれています。したがって、エクスポートされたモデルは通常の PyTorch モデルであり、それに応じてデプロイできます。 保存されたチェックポイントを使用すると、Cortex にモデルを簡単にデプロイできます。 Cortex に詳しくない場合は、ここで簡単にツアーに参加できますが、Cortex の展開プロセスの簡単な概要は次のとおりです。
私たちの予測 API は、Cortex の Python Predictor クラスを使用して init() 関数を定義し、API を初期化してモデルをロードし、クエリ時に predict() 関数を使用して予測を行います。
とても簡単です。トレーニング コードの一部のコードを再利用し、推論ロジックを少し追加しました。注意すべき点は、モデルを S3 にアップロードする場合 (推奨)、モデルにアクセスするためのロジックを追加する必要があることです。 次に、YAML を使用してインフラストラクチャを構成します。
非常にシンプルです。 API に名前を付け、必要な予測 AI を Cortex に伝え、CPU リソースを割り当てます。 次に、それをデプロイします。 注: Cortex によって開始および管理されるクラスターにデプロイすることもできます。 図3 すべてのデプロイメントにおいて、Cortex は API をコンテナ化し、Web サービスとして公開します。クラウド展開の場合、Cortex は負荷分散、自動スケーリング、監視、更新、およびその他の多くのインフラストラクチャ機能を構成します。 これで完了です。これで、リクエストに応じてモデル予測を処理する実際の Web API ができました。 2. ONNXにエクスポートし、ONNXランタイム経由でデプロイする 通常の PyTorch チェックポイントをデプロイしたので、もう少し複雑なものにしてみましょう。 PyTorch Lightning には最近、モデルを ONNX にエクスポートするための便利な抽象化が追加されました (以前は PyTorch の組み込み変換関数を使用できましたが、少しだけ定型コードが必要でした)。モデルを ONNX にエクスポートするには、トレーニング スクリプトに次のコードを追加するだけです。 図4 入力サンプルは実際のモデル入力の形状を模倣する必要があることに注意してください。 ONNX モデルをエクスポートしたら、Cortex の ONNX Predictor を使用してデプロイできます。コードは基本的に同じに見え、プロセスも同じです。たとえば、ONNX 予測 API は次のとおりです。
基本的に同じです。唯一の違いは、モデルを直接初期化するのではなく、Cortex がモデルを展開するために起動する ONNX ランタイム コンテナーである onnx_client を介してモデルにアクセスすることです。 YAML は次のようになります。
ここで監視フラグを追加したのは、設定がいかに簡単かを示すためです。ONNX 固有のフィールドがいくつかありますが、それ以外は同じ YAML です。 最後に、以前と同じ $ cortex deploy コマンドを使用してデプロイし、ONNX API がアクティブになります。 3. TorchscriptのJITコンパイラを使用して初期化する 最終的なデプロイメントとしては、PyTorch Lightning モデルを Torchscript にエクスポートし、PyTorch の JIT コンパイラを使用してデプロイします。モデルをエクスポートするには、トレーニング スクリプトに次のセクションを追加するだけです。 図5 このための Python API は通常の PyTorch の例と同じです。
YAML は以前と同じで、もちろん CLI コマンドも同じです。必要であれば、古い predictor.py スクリプトを新しいスクリプトに置き換えて、$ cortex deploy を再度実行するだけで、以前の PyTorch API を更新して新しいモデルを使用することもできます。 図6 Cortex はここでローリング アップデートを自動化し、新しい API を作成して古い API と交換することで、モデルの更新間のダウンタイムを防止します。 それでおしまい。これで、Torchscript モデルから予測を行うためのリアルタイム推論用の完全に機能する予測 API が手に入りました。 では、どの方法を使用すればよいのでしょうか? 当然の疑問は、どのアプローチが最も効果的かということです。実のところ、ここでは簡単な答えはなく、モデルによって異なります。 ONNX は、BERT や GPT-2 などの Transformer モデルに対して優れた最適化を提供します (CPU で 40 倍のスループット向上を測定)。他のモデルの場合、Torchscript は標準の PyTorch よりもパフォーマンスが優れている可能性がありますが、すべてのモデルを Torchscript にきれいにエクスポートできるわけではないため、いくつか注意点があります。 幸いなことに、3 つのアプローチをすべて並行してテストして、特定の API に最も適したものを確認できます。 元のタイトル: PyTorch Lightning モデルを本番環境にデプロイする方法、著者: Caleb Kaiser [51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください] |
<<: AIが伝統的な製造業のデジタル進化を促し、国内のスマート工場は活力に満ち溢れている
>>: AI業界は依然として寒い冬に:資金調達規模はピーク時の半分以下、上場ブームは倒産の波を伴う
[[413467]]モデルの並列処理により、ビジョンタスクのパフォーマンスが向上します。しかし、現...
[[327792]]はじめに: この質問は、実はほとんどのプログラマーに当てはまります。国内のイン...
この「横歩き」マイクロロボットはとってもかわいいです!サイエンス・ロボティクス誌5月号に、サブミリメ...
[[404434]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
EUCAIM (EUropean Federation for CAncer IMages) プロジ...
会話型人工知能 (AI) プロジェクトを正常に展開することは、他のデジタル ビジネス プロセスのアッ...
1956年にコンピューターの専門家ジョン・マッカーシーが「人工知能」という言葉を作り出して以来、わず...
バイデン政権は、すべての主要なAIシステムの開発者にセキュリティテストの結果を政府に開示することを義...
NASA の推進により、電子機器の小型化は消費者向け製品産業全体に広がりました。ベートーヴェンの全作...
今年の大学入試には最初から最後までAIが登場した。 2020年の大学入試は史上最難関と言っても過言で...
今日、言語を超えた効果的なコミュニケーションはこれまで以上に重要になっています。企業が新しい市場に進...
2017 年現在までに最もよく使われている流行語は人工知能 (AI) と機械学習 (ML) ですが...
ラフル・プラダン出典| https://www.infoworld.com/article/3708...