第13章. PyTorchモデルをホスティングする
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
本書の前の章( )では、コンピュータビジョン、NLP、シーケンスモデリングなど、MLモデルをトレーニングするための多くのシーケンスを見てきた。しかし、それは最初のステップに過ぎない。モデルは、他の人がその力を使う方法がなければ、ほとんど役に立たない!この章では、MLモデルの学習方法を提供する、より一般的なツールを簡単に紹介する。
学習したPyTorchモデルを本番環境で利用可能なサービスに持っていくには、単にデプロイするだけでなく、多くのことが必要であり、機械学習オペレーション(MLOps)分野はそれを念頭に置いて設計されていることに注意する必要がある。このようなモデルを提供する世界に入ると、リアルタイムのリクエストの処理、コンピューティングリソースの管理、信頼性の確保、さまざまな負荷の下でのパフォーマンスの維持など、新たな課題を理解する必要がある。
最終的には、MLOpsはデータサイエンスとソフトウェアエンジニアリングのギャップを埋めることになる。それはこの章の範囲を超えているが、O'ReillyからYaron HavivとNoah Giftの「Implementing MLOps in the Enterprise 」やAbi Aryanの「LLMOps」など、MLOpsに関する素晴らしい本が出ている。
この章では、本番環境でPyTorchモデルを提供するための2つの一般的なアプローチを紹介する。
まず、PyTorchの公式配信ソリューションであるTorchServeから始める。TorchServeは、大規模なDeep Learningモデルを配信するために特別に設計された堅牢性の高いフレームワークを提供する。TorchServeは、モデルのバージョニング、A/Bテスト、メトリックの収集といった標準的な配信要件のためのソリューションをすぐに利用できる。TorchServeは、最小限のセットアップで本番環境に対応できるソリューションを探しているチームにも最適だ。
次に、より柔軟性を必要とする開発者や、より単純な配信要件を持つ開発者のために、人気のあるFlaskフレームワークを使用して配信ソリューションを構築する方法を探る。Flaskはシンプルでエコシステムも充実しているため、小規模なデプロイや概念実証のサービスにも適している。
この章では、前の章で作成したモデルをデプロイし、推論のためにホスティングサーバを呼び出す方法を説明する。
TorchServeの紹介
TorchServeはPyTorchのデフォルトの サービングフレームワークで、パフォーマンスと柔軟性のために設計されている。pytorch.org/serveで発見できる。
TorchServeのゴールは元々、拡張可能なモジュラーアーキテクチャでモデルを適切に提供する方法のリファレンス実装であったが、それを超えて、どのような提供ニーズにも十分すぎるほど対応できる、完全にパフォーマンスの高いプロフェッショナルグレードのフレームワークに成長した。
また、モジュラーアーキテクチャの上に構築されており、大規模なモデル配信の複雑さに対応することを目的としている。この目的のために、以下の主要コンポーネントから構築されている:
- モデルサーバ
-
PyTorchモデルサーバは、モデルのライフサイクルを処理し、すべての推論リクエストを処理する中心的なコンポーネントである。モデルの管理と推論のエンドポイントを提供し、RESTとgRPCの呼び出しをサポートする。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access