サービスとその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 resultservice.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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- モデルをBento Storeに保存する
- サービスとそのAPIを定義する
- 適応型マイクロバッチ処理を有効にする
- Bentoをビルドしてコンテナ化する