注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

例:コンテナモデルアダプターを実装する

以下は、コンテナを基盤とするモデル向けに定義されたモデルアダプターの例です。使用するイメージは、/mirror エンドポイントで待ち受け、「text」のみをフィールドとして持つリクエストオブジェクトを受け取るシンプルな Flask サーバーであると想定しています。モデルアダプターは、レスポンスオブジェクトの「returnedText」フィールドにそのテキストをそのまま返します。

container_context オブジェクトの完全な定義は、API: ModelAdapter リファレンスドキュメントで確認できます。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 import requests import json import pandas as pd import palantir_models as pm class ExampleIdentityFunctionModelAdapter(pm.ContainerModelAdapter): """ :display-name: Example Identity Function Model Adapter :description: Reference example of a model adapter for container-backed model """ def __init__(self, shared_volume_path, model_host_and_port): self.shared_volume_path = shared_volume_path self.model_host_and_port = model_host_and_port @classmethod def init_container(cls, container_context): shared_volume_path = container_context.shared_empty_dir_mount_path # このアダプターは、1つのサービス URI が指定された1つのコンテナ名のみを想定していることに注意してください。 model_host_and_port = list(container_context.services.values())[0][0] return cls(shared_volume_path, model_host_and_port) @classmethod def api(cls): inputs = {"input_df": pm.Pandas(columns=[("text", str)])} outputs = {"output_df": pm.Pandas(columns=[("text", str), ("returnedText", str)])} return inputs, outputs def predict(self, input_df): def run_inference_on_row(row): request = {"text": row.text} response = requests.post("http://" + self.model_host_and_port + "/mirror", json=request) json_res = json.loads(response.content.decode("utf-8")) return (row.text, json_res["returnedText"]) results = [run_inference_on_row(row) for row in input_df.itertuples()] columns = ["text", "returnedText"] return pd.DataFrame(results, columns=columns)