Chuyển đến nội dung chính

レッスン 22: FastAPI + Docker を使用したモデル提供

モデルをパッケージ化し、推論 API を構築し、モデルをバージョン管理して、コンパクトな ML サービスをデプロイします。

🧠 AI と ML — レッスン 21 レッスン 22: FastAPI + Docker を使用したモデル提供

機械学習: 基本から高度まで

パート 4: 制作、説明可能性、キャップストーン

xdev.asia

はじめに

モデルをトレーニングしても使用しなかった後、値はノートブックに残ります。この記事は、FastAPI と Docker を使用してモデルを単純なサービスにパッケージ化するのに役立ちます。これは、内部デモや実際のデプロイメントの基盤として十分です。

レッスンの目標

  • モデルを適切にシリアル化します。
  • 入力を受け取り、予測を返す API を作成します。
  • Docker を使用してサービスをパッケージ化します。

最低限必要な出力

  • 保存されたモデル ファイル (joblib など)。
  • ファイルアプリ FastAPI。
  • ファイル要件または同等のもの。
  • サービスを安定して実行するための Dockerfile。

提案された手順

  1. モデルをトレーニングし、アーティファクトを保存します。
  2. 入力または出力スキーマを定義します。
  3. エンドポイント /predict を書き込みます。
  4. サンプルリクエストを使用してローカルでテストします。
  5. Docker を使用してコンテナ化します。

FastAPI フレームワーク コード

fastapi から FastAPI をインポート
pydanticインポートBaseModelから
ジョブライブラリをインポートする
パンダをPDとしてインポートする

実際の環境に出るときに考慮すべきこと

  • 適切なレベルでリクエストとレスポンスをログに記録します。
  • モデルのバージョンを管理します。
  • 入力をより慎重に検証します。
  • タイムアウト、リトライ、モニタリング。

よくある間違い

  • モデルを保存しますが、前処理パイプラインは忘れます。
  • API スキーマがトレーニング データと一致しません。
  • 美しいデータでテストし、エラー入力をテストしないでください。

練習問題を練習する

  • チャーンまたはハウジングのモデルを API にパッケージ化します。
  • 3 つのサンプル リクエストを作成します: 有効なフィールド、欠落しているフィールド、間違ったデータ タイプ。
  • Docker を使用してローカルで実行する方法を説明した短い README を作成します。

完了基準

  • ローカルで実行できる予測 API があります。
  • Docker がビルドされ、正常に実行されました。
  • スキーマ入力は他の人が API を呼び出すことができるほど明確です。

段階的に練習する (上級)

  1. Pydantic を使用して入出力スキーマを標準化します。
  2. モデルと前処理をバージョン管理されたアーティファクトにパッケージ化します。
  3. エンドポイントの予測とヘルスチェックを作成します。
  4. 基本的なログを追加し、エラー処理をクリアします。
  5. Docker イメージをビルドし、curl を使用してスモーク テストを実行します。

アーティファクトを送信する必要があります

  • API ソースコードと Dockerfile を実行できます。
  • 3 つの状況のリクエスト/レスポンスの例。
  • 最小限のローカル展開 README。

セルフテストの質問

  • モデル アーティファクトのバージョン管理が必要なのはなぜですか?
  • 入力スキーマが変更された場合、下位互換性はそれをどのように処理しますか?
  • 最初から監視する必要がある実行時メトリクスはどれですか?