はじめに
モデルをトレーニングしても使用しなかった後、値はノートブックに残ります。この記事は、FastAPI と Docker を使用してモデルを単純なサービスにパッケージ化するのに役立ちます。これは、内部デモや実際のデプロイメントの基盤として十分です。
レッスンの目標
- モデルを適切にシリアル化します。
- 入力を受け取り、予測を返す API を作成します。
- Docker を使用してサービスをパッケージ化します。
最低限必要な出力
- 保存されたモデル ファイル (joblib など)。
- ファイルアプリ FastAPI。
- ファイル要件または同等のもの。
- サービスを安定して実行するための Dockerfile。
提案された手順
- モデルをトレーニングし、アーティファクトを保存します。
- 入力または出力スキーマを定義します。
- エンドポイント /predict を書き込みます。
- サンプルリクエストを使用してローカルでテストします。
- Docker を使用してコンテナ化します。
FastAPI フレームワーク コード
fastapi から FastAPI をインポート
pydanticインポートBaseModelから
ジョブライブラリをインポートする
パンダをPDとしてインポートする
実際の環境に出るときに考慮すべきこと
- 適切なレベルでリクエストとレスポンスをログに記録します。
- モデルのバージョンを管理します。
- 入力をより慎重に検証します。
- タイムアウト、リトライ、モニタリング。
よくある間違い
- モデルを保存しますが、前処理パイプラインは忘れます。
- API スキーマがトレーニング データと一致しません。
- 美しいデータでテストし、エラー入力をテストしないでください。
練習問題を練習する
- チャーンまたはハウジングのモデルを API にパッケージ化します。
- 3 つのサンプル リクエストを作成します: 有効なフィールド、欠落しているフィールド、間違ったデータ タイプ。
- Docker を使用してローカルで実行する方法を説明した短い README を作成します。
完了基準
- ローカルで実行できる予測 API があります。
- Docker がビルドされ、正常に実行されました。
- スキーマ入力は他の人が API を呼び出すことができるほど明確です。
段階的に練習する (上級)
- Pydantic を使用して入出力スキーマを標準化します。
- モデルと前処理をバージョン管理されたアーティファクトにパッケージ化します。
- エンドポイントの予測とヘルスチェックを作成します。
- 基本的なログを追加し、エラー処理をクリアします。
- Docker イメージをビルドし、curl を使用してスモーク テストを実行します。
アーティファクトを送信する必要があります
- API ソースコードと Dockerfile を実行できます。
- 3 つの状況のリクエスト/レスポンスの例。
- 最小限のローカル展開 README。
セルフテストの質問
- モデル アーティファクトのバージョン管理が必要なのはなぜですか?
- 入力スキーマが変更された場合、下位互換性はそれをどのように処理しますか?
- 最初から監視する必要がある実行時メトリクスはどれですか?