snowflake.ml.model.ModelVersion¶
- class snowflake.ml.model.ModelVersion¶
Bases:
LineageNode
Model Version Object representing a specific version of the model that could be run.
Initializes a LineageNode instance.
- Parameters:
session – The Snowflake session object.
name – Fully qualified name of the lineage node, which is in the format ‘<db>.<schema>.<object_name>’.
domain – The domain of the lineage node.
version – The version of the lineage node, if applies.
status – The status of the lineage node. Possible values are: - ‘MASKED’: The user does not have the privilege to view the node. - ‘DELETED’: The node has been deleted. - ‘ACTIVE’: The node is currently active.
created_on – The creation time of the lineage node.
- Raises:
ValueError – If the name is not fully qualified.
Methods
- create_service(*, service_name: str, image_build_compute_pool: Optional[str] = None, service_compute_pool: str, image_repo: str, ingress_enabled: bool = False, max_instances: int = 1, cpu_requests: Optional[str] = None, memory_requests: Optional[str] = None, gpu_requests: Optional[str] = None, num_workers: Optional[int] = None, max_batch_rows: Optional[int] = None, force_rebuild: bool = False, build_external_access_integration: Optional[str] = None, block: bool = True) Union[str, async_job.AsyncJob] ¶
- create_service(*, service_name: str, image_build_compute_pool: Optional[str] = None, service_compute_pool: str, image_repo: str, ingress_enabled: bool = False, max_instances: int = 1, cpu_requests: Optional[str] = None, memory_requests: Optional[str] = None, gpu_requests: Optional[str] = None, num_workers: Optional[int] = None, max_batch_rows: Optional[int] = None, force_rebuild: bool = False, build_external_access_integrations: Optional[List[str]] = None, block: bool = True) Union[str, async_job.AsyncJob]
Create an inference service with the given spec.
- Parameters:
service_name – The name of the service, can be fully qualified. If not fully qualified, the database or schema of the model will be used.
image_build_compute_pool – The name of the compute pool used to build the model inference image. It uses the service compute pool if None.
service_compute_pool – The name of the compute pool used to run the inference service.
image_repo – The name of the image repository, can be fully qualified. If not fully qualified, the database or schema of the model will be used.
ingress_enabled – If true, creates an service endpoint associated with the service. User must have BIND SERVICE ENDPOINT privilege on the account.
max_instances – The maximum number of inference service instances to run. The same value it set to MIN_INSTANCES property of the service.
cpu_requests – The cpu limit for CPU based inference. Can be an integer, fractional or string values. If None, we attempt to utilize all the vCPU of the node.
memory_requests – The memory limit with for CPU based inference. Can be an integer or a fractional value, but requires a unit (GiB, MiB). If None, we attempt to utilize all the memory of the node.
gpu_requests – The gpu limit for GPU based inference. Can be integer, fractional or string values. Use CPU if None.
num_workers – The number of workers to run the inference service for handling requests in parallel within an instance of the service. By default, it is set to 2*vCPU+1 of the node for CPU based inference and 1 for GPU based inference. For GPU based inference, please see best practices before playing with this value.
max_batch_rows – The maximum number of rows to batch for inference. Auto determined if None. Minimum 32.
force_rebuild – Whether to force a model inference image rebuild.
build_external_access_integration – (Deprecated) The external access integration for image build. This is usually permitting access to conda & PyPI repositories.
build_external_access_integrations – The external access integrations for image build. This is usually permitting access to conda & PyPI repositories.
block – A bool value indicating whether this function will wait until the service is available. When it is False, this function executes the underlying service creation asynchronously and returns an AsyncJob.
- Raises:
ValueError – Illegal external access integration arguments.
- Returns:
If block=True, return result information about service creation from server. Otherwise, return the service creation AsyncJob.
- delete_metric(metric_name: str) None ¶
Delete a metric from metric storage.
- Parameters:
metric_name – The name of the metric to be deleted.
- Raises:
KeyError – When the requested metric name does not exist.
- delete_service(service_name: str) None ¶
Drops the given service.
- Parameters:
service_name – The name of the service, can be fully qualified. If not fully qualified, the database or schema of the model will be used.
- Raises:
ValueError – If the service does not exist or operation is not permitted by user or service does not belong to this model.
- export(target_path: str, *, export_mode: ExportMode = ExportMode.MODEL) None ¶
Export model files to a local directory.
- Parameters:
target_path – Path to a local directory to export files to. A directory will be created if does not exist.
export_mode – The mode to export the model. Defaults to ExportMode.MODEL. ExportMode.MODEL: All model files including environment to load the model and model weights. ExportMode.FULL: Additional files to run the model in Warehouse, besides all files in MODEL mode,
- Raises:
ValueError – Raised when the target path is a file or an non-empty folder.
- get_metric(metric_name: str) Any ¶
Get the value of a specific metric.
- Parameters:
metric_name – The name of the metric.
- Raises:
KeyError – When the requested metric name does not exist.
- Returns:
The value of the metric.
- get_model_task() Task ¶
- lineage(direction: Literal['upstream', 'downstream'] = 'downstream', domain_filter: Optional[Set[Literal['feature_view', 'dataset', 'model', 'table', 'view']]] = None) List[Union[FeatureView, Dataset, ModelVersion, LineageNode]] ¶
Retrieves the lineage nodes connected to this node.
- Parameters:
direction – The direction to trace lineage. Defaults to “downstream”.
domain_filter – Set of domains to filter nodes. Defaults to None.
- Returns:
A list of connected lineage nodes.
- Return type:
List[LineageNode]
This function or method is in private preview since 1.5.3.
- list_services() DataFrame ¶
List all the service names using this model version.
- Returns:
- The name of the service, can be fully qualified. If not fully qualified, the database
or schema of the model will be used.
- Return type:
List of service_names
- load(*, force: bool = False, options: Optional[Union[BaseModelLoadOption, CatBoostModelLoadOptions, CustomModelLoadOption, LGBMModelLoadOptions, SKLModelLoadOptions, XGBModelLoadOptions, SNOWModelLoadOptions, PyTorchLoadOptions, TorchScriptLoadOptions, TensorflowLoadOptions, MLFlowLoadOptions, HuggingFaceLoadOptions, SentenceTransformersLoadOptions]] = None) Union[catboost.CatBoost, lightgbm.LGBMModel, lightgbm.Booster, CustomModel, sklearn.base.BaseEstimator, sklearn.pipeline.Pipeline, xgboost.XGBModel, xgboost.Booster, torch.nn.Module, torch.jit.ScriptModule, tensorflow.Module, base.BaseEstimator, mlflow.pyfunc.PyFuncModel, transformers.Pipeline, sentence_transformers.SentenceTransformer, HuggingFacePipelineModel] ¶
- Load the underlying original Python object back from a model.
This operation requires to have the exact the same environment as the one when logging the model, otherwise, the model might be not functional or some other problems might occur.
- Parameters:
force – Bypass the best-effort environment validation. Defaults to False.
options – Options to specify when loading the model, check snowflake.ml.model.type_hints for available options. Defaults to None.
- Raises:
ValueError – Raised when the best-effort environment validation fails.
- Returns:
The original Python object loaded from the model object.
- run(X: Union[pd.DataFrame, dataframe.DataFrame], *, function_name: Optional[str] = None, partition_column: Optional[str] = None, strict_input_validation: bool = False) Union[pd.DataFrame, dataframe.DataFrame] ¶
- run(X: Union[pd.DataFrame, dataframe.DataFrame], *, service_name: str, function_name: Optional[str] = None, strict_input_validation: bool = False) Union[pd.DataFrame, dataframe.DataFrame]
Invoke a method in a model version object via the warehouse or a service.
- Parameters:
X – The input data, which could be a pandas DataFrame or Snowpark DataFrame.
service_name – The service name. If None, the function is invoked via the warehouse. Otherwise, the function is invoked via the given service.
function_name – The function name to run. It is the name used to call a function in SQL.
partition_column – The partition column name to partition by.
strict_input_validation – Enable stricter validation for the input data. This will result value range based type validation to make sure your input data won’t overflow when providing to the model.
- Raises:
ValueError – When no method with the corresponding name is available.
ValueError – When there are more than 1 target methods available in the model but no function name specified.
ValueError – When the partition column is not a valid Snowflake identifier.
- Returns:
The prediction data. It would be the same type dataframe as your input.
- set_alias(alias_name: str) None ¶
Set alias to a model version.
- Parameters:
alias_name – Alias to the model version.
- set_metric(metric_name: str, value: Any) None ¶
Set the value of a specific metric.
- Parameters:
metric_name – The name of the metric.
value – The value of the metric.
- show_functions() List[ModelFunctionInfo] ¶
Show all functions information in a model version that is callable.
- Returns:
name: The name of the function to be called (both in SQL and in Python SDK).
target_method: The original method name in the logged Python object.
signature: Python signature of the original method.
- Return type:
A list of ModelFunctionInfo objects containing the following information
- show_metrics() Dict[str, Any] ¶
Show all metrics logged with the model version.
- Returns:
A dictionary showing the metrics.
- unset_alias(version_or_alias: str) None ¶
unset alias to a model version.
- Parameters:
version_or_alias – The name of the version or alias to a version.
Attributes
- comment¶
The comment to the model version.
- description¶
The description for the model version. This is an alias of comment.
- fully_qualified_model_name¶
Return the fully qualified name of the model to which the model version belongs.
- model_name¶
Return the name of the model to which the model version belongs, usable as a reference in SQL.
- version_name¶
Return the name of the version to which the model version belongs, usable as a reference in SQL.