注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
モデルアダプタの api()
メソッドは、このモデルアダプタの推論ロジックを実行するために必要な入力と出力を指定します。入力と出力は別々に指定されます。
api()
次の例は、API が1つの入力(input_dataframe
という名前)および1つの出力(output_dataframe
という名前)を指定していることを示しています。入力オブジェクトと出力オブジェクトの両方が Pandas データフレームとして指定されており、入力データフレームには input_feature
という名前の float
タイプの1つの行があり、出力データフレームには2つの行があります:(1)input_feature
という名前の float
タイプの行、および(2)output_feature
という名前の int
タイプの行。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
import palantir_models as pm # ExampleModelAdapter クラスを定義 class ExampleModelAdapter(pm.ModelAdapter): ... # APIメソッドを定義 @classmethod def api(cls): # 入力データの定義 inputs = { "input_dataframe": pm.Pandas(columns=[("input_feature", float)]) } # 出力データの定義 outputs = { "output_dataframe": pm.Pandas(columns=[("input_feature", float), ("output_feature", int)]) } # 入力データと出力データを返す return inputs, outputs ...
APIの定義は、任意のタイプの複数の入力または出力をサポートするように拡張することもできます:
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
import palantir_models as pm # クラス ExampleModelAdapter を定義する class ExampleModelAdapter(pm.ModelAdapter): ... # クラスメソッド api を定義する @classmethod def api(cls): # 入力データの設定 inputs = { "input_dataframe": pm.Pandas(columns=[("input_feature", float)]), # 入力データフレーム "input_parameter": pm.Parameter(float, default=0.0) # 入力パラメータ } # 出力データの設定 outputs = { "output_dataframe": pm.Pandas(columns=[("input_feature", float), ("output_feature", int)]) # 出力データフレーム } return inputs, outputs ...
モデルアダプター API の入力および出力のタイプは、以下で詳しく説明するクラスを使用して指定できます。
pm.Pandas
、Pandas Dataframes 用pm.Spark
、Spark Dataframes 用pm.Parameter
、一定の単一値パラメーター用pm.FileSystem
、Foundry Dataset ファイルシステムアクセス用pm.MediaReference
、メディアリファレンスの使用に関して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
# 次のクラスは `palantir_models` または `pm` を通じてアクセス可能です class Pandas: def __init__(self, columns: List[Union[str, Tuple[str, type]]]): """ Pandasのデータフレーム入力または出力を定義します。列名と型の定義は、このタイプのパラメータとして指定できます。 """ class Spark: def __init__(self, columns: List[Union[str, Tuple[str, type]]] = []): """ Sparkのデータフレーム(pyspark.sql.Dataframe)入力または出力を定義します。列名と型の定義は、このタイプのパラメータとして指定できます。 """ class Parameter: def __init__(self, type: type = Any, default = None): """ 定数の単一値パラメータ入力または出力を定義します。このパラメータの型(デフォルトはAny)とデフォルト値は、このタイプのパラメータとして指定できます。 """ class FileSystem: def __init__(self): """ ファイルシステムへのアクセス入力または出力オブジェクトを定義します。このタイプは、モデルアダプタの `transform()` または `transform_write()` メソッドがFoundryデータセットオブジェクトと共に呼び出される場合にのみ使用可能です。 入力として使用する場合、データセットのFileSystem表現が返されます。 出力として使用する場合、`open()` メソッドを含むオブジェクトが出力データセットにファイルを書き込むために使用されます。 FileSystemの出力は、`.transform_write()` を呼び出すことによってのみ使用可能であることに注意してください。 """ class MediaReference: def __init__(self): """ 入力オブジェクトをMediaReferenceタイプとして定義します。この入力は、メディアリファレンスオブジェクトの文字列化されたJSON表現または辞書表現のいずれかを期待します。 このタイプはAPI出力としてはサポートされていません。 """
Pandas
や Spark
の入力と出力において、行は行名を指定した strings
のリスト、または (<name>, <type>)
の形式で2つのオブジェクトからなる tuples
のリストとして指定できます。ここで <name>
は行名を表す文字列であり、<type>
は列内のデータの型を表す Python の型です。列の定義に文字列が提供された場合、その型はデフォルトで Any
になります。
以下の型が表形式の行に対応しています:
str
int
float
bool
list
dict
set
tuple
typing.Any
MediaReference
行の型は強制されず、このモデルアダプターの消費者に対して予想される行の型を示す方法として機能します。唯一の例外は MediaReference
型で、列の各要素がメディア参照文字列であることを期待し、各要素を MediaReference
オブジェクトに変換した後、このモデルアダプターの推論ロジックに渡されます。
Parameter
の入力と出力に対して、以下の型が対応しています:
str
int
float
bool
list
dict
set
tuple
typing.Any
パラメーター型は強制され、指定された型に対応しない model.transform()
への任意のパラメーター入力はランタイムエラーをスローします。