[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業界は依然として寒い冬に:資金調達規模はピーク時の半分以下、上場ブームは倒産の波を伴う
[[317566]] 、新型コロナウイルスは世界的な感染拡大段階に入り、記事執筆時点で中国国内の累...
IoT テクノロジー、ロボット、人間が相互運用されると、高度なロボット機能が実現され、新しいアプリケ...
近年、セキュア アクセス サービス エッジ (SASE) テクノロジーは急速に発展し、産業界で広く使...
[[420388]] '('、')'、'{'、...
MNIST 認識の精度は 100% に達しましたか?最近、プレプリントプラットフォームarXivに掲...
過去数十年にわたる量子物理学技術の探求において、最も注目を集めているのは量子コンピュータです。 [[...
アドビの共同創業者ジョン・ワーノック氏が19日、82歳で亡くなった。本日、Adobe は公式に発表を...
AI が社会に重大なリスクをもたらすという警告が見出しで報じられているにもかかわらず、ボストン コン...
ディープ ニューラル ネットワーク (DNN) は、基本的に複数の接続されたパーセプトロン (パーセ...
[[361220]] [51CTO.com クイック翻訳] 私たちはますます分断が進む世界に住んでい...
人工知能の黄金の10年基礎技術は基本的に安定しており、拡大シナリオは流行の10年を迎えています。中国...
最近、「つながりとインテリジェンス、より安全な世界の構築」をテーマにした2021年世界セキュリティ博...
顔認識とは、顔の特徴情報の本人分析を利用して本人認証を行う生体認証技術を指します。人気の生体認証技術...