0Pricing
MLOps Academy · レッスン

サービスとそのAPIを定義する

型付きのサービスエンドポイントを通じてrunnerを公開します。

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

サービスとは

BentoMLではServiceがデプロイする単位です。モデルをラップし、クライアントが呼び出せる1つ以上のAPIエンドポイントを公開します。🛎️

Runnerがモデルを実行する

runnerは、保存されたモデルをBentoML向けに最適化してラップするものです。独自のワーカーで推論を処理するため、APIの応答性を維持できます。

runner = bentoml.sklearn.get("iris_clf:latest").to_runner()

サービスを作成する

名前を付け、Runnerを渡してサービスを作成します。Serviceオブジェクトが、BentoMLによって提供およびスケーリングされる対象です。

svc = bentoml.Service("iris_classifier", runners=[runner])

エンドポイントを追加する

@svc.apiデコレーターを使うと、関数をAPIとして公開できます。その関数は呼び出し可能なHTTPルートになります。

@svc.api(input=..., output=...)
def classify(data):
    ...

入力と出力を宣言する

型付きのIO記述子を設定すると、BentoMLが検証とシリアライズを行えます。NumpyNdarrayは、配列を受け取り、配列を返すことを指定します。

from bentoml.io import NumpyNdarray

内部でRunnerを呼び出す

API関数内では、Runnerを通じてモデルを呼び出します。runを使うと、入力がモデルのワーカーに送られ、結果が返されます。

result = runner.predict.run(data)
return result

service.pyに配置する

BentoMLは慣例に従ってファイル内のコードを探します。プロジェクトのルートにあるservice.pyにサービスを配置します。

ローカルで提供する

1つのコマンドで開発用サーバーを起動できます。bentoml serveはファイルとsvcオブジェクトを指定し、変更を監視します。

bentoml serve service:svc --reload

辞書にはJSONを使う

すべてのAPIが配列を扱うわけではありません。クライアントが辞書を送受信する場合は、記述子をJSONに変更します。

from bentoml.io import JSON

組み込みのSwaggerドキュメント

起動すると、BentoMLはルートURLでインタラクティブなSwaggerドキュメントを提供します。ブラウザで各エンドポイントをテストできます。🎉

curlで呼び出してテストする

ターミナルから稼働中のエンドポイントにアクセスできます。簡単なcurlのPOSTでサンプル入力を送ると、返された予測結果が表示されます。

curl -X POST localhost:3000/classify -d "[[5.1,3.5,1.4,0.2]]"

確認問題

API関数の内部からモデルを呼び出したいとします。使用すべき正しいラッパーは何でしょうか?

まとめ

ランナーをServiceに変換し、型付きの入出力を持つ@svc.apiエンドポイントを公開して、service.pyに配置し、組み込みドキュメント付きで提供しました。ライブAPIの完成です!🙌

よくある質問

「サービスとそのAPIを定義する」レッスンは無料ですか?

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

「サービスとそのAPIを定義する」で何を学びますか?

型付きのサービスエンドポイントを通じてrunnerを公開します。 ブラウザで直接実行するハンズオンコードでMLOps Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「サービスとそのAPIを定義する」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. モデルをBento Storeに保存する
  2. サービスとそのAPIを定義する
  3. 適応型マイクロバッチ処理を有効にする
  4. Bentoをビルドしてコンテナ化する
← MLOps Academyに戻る