MLOps Academy · レッスン

モデルのシグネチャとスキーマを定義する

想定する入力と出力を明示的に宣言します。

レッスン 4/413 ステップ

「モデルのシグネチャとスキーマを定義する」はCoddyKit上の無料MLOps Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはMLOps Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 MLOps Academyコースには全4レッスンが含まれています。

入力されるものと出力されるもの

モデルのsignatureは、想定する入力と返す出力を正確に宣言します。モデルの契約書にあたるものです。📜

signatureが重要な理由

明確なschemaがあれば、呼び出し側は送るべき列と型を把握できます。予測時にクラッシュするのではなく、不正な入力を早い段階で検出できます。

入力と出力

signatureは2つの部分で構成されます。各特徴量を説明するinput schemaと、予測の形状を説明するoutput schemaです。

列スキーマとテンソルスキーマ

表形式のモデルでは、名前と型を持つフィールドのcolumnスキーマを使います。画像やテキストのモデルでは、形状とdtypeを持つテンソルスキーマを使うことが多いです。

自動的に推測する

最も簡単な方法はinfer_signatureです。サンプルの入力と出力を渡すだけで、MLflowがスキーマを推測してくれます。

from mlflow.models import infer_signature
sig = infer_signature(X, model.predict(X))

記録時に付与する

推測したsignatureをlog_modelに渡すと、モデルのMLmodelファイル内に保存されます。

mlflow.sklearn.log_model(model, name='m', signature=sig)

入力例を追加する

input_exampleも記録すると、チームメンバーは有効な入力のサンプルをコピーして使えます。また、ツールが正しいリクエストを作成するのにも役立ちます。

mlflow.sklearn.log_model(model, name='m',
    input_example=X[:1])

サービング時に適用する

モデルをサービングすると、MLflowは各リクエストをスキーマと照合し、誤ったtypeや不足しているフィールドを含む入力を拒否します。🛡️

安全な型変換

MLflowはintからlongへの変換など、安全な型のアップキャストを暗黙に行えます。一方で、情報が失われる変換はブロックし、モデルが破損したdataを受け取らないようにします。

オプション列と追加列

フィールドをoptionalとして指定でき、想定外の追加列は削除されます。そのため、入力の小さな変更でサービングが壊れることはありません。

常に更新されるドキュメント

signatureはドキュメントとしても機能します。MLmodelファイルを開けば、モデルの入力と出力の完全なcontractをすぐに確認できます。

理解度チェック

モデルのsignatureとスキーマについての最終確認です。

まとめ

signatureはモデルの入力と出力の契約です。推測して、例とともに記録し、サービング時にはMLflowに適用させましょう。🎉

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「モデルのシグネチャとスキーマを定義する」レッスンは無料ですか?

はい。「モデルのシグネチャとスキーマを定義する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、MLOps Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 MLOps Academyコースには全4レッスンが含まれています。

「モデルのシグネチャとスキーマを定義する」で何を学びますか?

想定する入力と出力を明示的に宣言します。 ブラウザで直接実行するハンズオンコードでMLOps Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

MLOps Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのMLOps Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「モデルのシグネチャとスキーマを定義する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このMLOps Academyレッスンでコードを書いて実行できますか?

はい。すべてのMLOps Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. PickleとJoblibでシリアライズする
  2. MLflow Model Flavor
  3. 移植性のためにONNXへエクスポートする
  4. モデルのシグネチャとスキーマを定義する
← MLOps Academyに戻る