mlflow.catboost
The mlflow.catboost module provides an API for logging and loading CatBoost models.
This module exports CatBoost models with the following flavors:
- CatBoost (native) format
- This is the main flavor that can be loaded back into CatBoost. 
- mlflow.pyfunc
- Produced for use by generic pyfunc-based deployment tools and batch inference. 
- mlflow.catboost.get_default_conda_env()[source]
- Returns
- The default Conda environment for MLflow Models produced by calls to - save_model()and- log_model().
 
- mlflow.catboost.get_default_pip_requirements()[source]
- Returns
- A list of default pip requirements for MLflow Models produced by this flavor. Calls to - save_model()and- log_model()produce a pip environment that, at minimum, contains these requirements.
 
- mlflow.catboost.load_model(model_uri, dst_path=None)[source]
- Load a CatBoost model from a local file or a run. - Parameters
- model_uri – - The location, in URI format, of the MLflow model. For example: - /Users/me/path/to/local/model
- relative/path/to/local/model
- s3://my_bucket/path/to/model
- runs:/<mlflow_run_id>/run-relative/path/to/model
 - For more information about supported URI schemes, see Referencing Artifacts. 
- dst_path – The local filesystem path to which to download the model artifact. This directory must already exist. If unspecified, a local output path will be created. 
 
- Returns
- A CatBoost model (an instance of CatBoost, CatBoostClassifier, CatBoostRanker, or CatBoostRegressor) 
 
- mlflow.catboost.log_model(cb_model, artifact_path: Optional[str] = None, conda_env=None, code_paths=None, registered_model_name=None, signature: mlflow.models.signature.ModelSignature = None, input_example: Union[pandas.core.frame.DataFrame, numpy.ndarray, dict, list, csr_matrix, csc_matrix, str, bytes, tuple] = None, await_registration_for=300, pip_requirements=None, extra_pip_requirements=None, metadata=None, name: Optional[str] = None, params: Optional[dict[str, typing.Any]] = None, tags: Optional[dict[str, typing.Any]] = None, model_type: Optional[str] = None, step: int = 0, model_id: Optional[str] = None, **kwargs)[source]
- Log a CatBoost model as an MLflow artifact for the current run. - Parameters
- cb_model – CatBoost model (an instance of CatBoost, CatBoostClassifier, CatBoostRanker, or CatBoostRegressor) to be saved. 
- artifact_path – Deprecated. Use name instead. 
- conda_env – - Either a dictionary representation of a Conda environment or the path to a conda environment yaml file. If provided, this describes the environment this model should be run in. At a minimum, it should specify the dependencies contained in get_default_conda_env(). If - None, a conda environment with pip requirements inferred by- mlflow.models.infer_pip_requirements()is added to the model. If the requirement inference fails, it falls back to using get_default_pip_requirements. pip requirements from- conda_envare written to a pip- requirements.txtfile and the full conda environment is written to- conda.yaml. The following is an example dictionary representation of a conda environment:- { "name": "mlflow-env", "channels": ["conda-forge"], "dependencies": [ "python=3.8.15", { "pip": [ "catboost==x.y.z" ], }, ], } 
- code_paths – A list of local filesystem paths to Python file dependencies (or directories containing file dependencies). These files are prepended to the system path when the model is loaded. 
- registered_model_name – If given, create a model version under - registered_model_name, also creating a registered model if one with the given name does not exist.
- signature – - an instance of the - ModelSignatureclass that describes the model’s inputs and outputs. If not specified but an- input_exampleis supplied, a signature will be automatically inferred based on the supplied input example and model. To disable automatic signature inference when providing an input example, set- signatureto- False. To manually infer a model signature, call- infer_signature()on datasets with valid model inputs, such as a training dataset with the target column omitted, and valid model outputs, like model predictions made on the training dataset, for example:- from mlflow.models import infer_signature train = df.drop_column("target_label") predictions = ... # compute model predictions signature = infer_signature(train, predictions) 
- input_example – one or several instances of valid model input. The input example is used as a hint of what data to feed the model. It will be converted to a Pandas DataFrame and then serialized to json using the Pandas split-oriented format, or a numpy array where the example will be serialized to json by converting it to a list. Bytes are base64-encoded. When the - signatureparameter is- None, the input example is used to infer a model signature.
- await_registration_for – Number of seconds to wait for the model version to finish being created and is in - READYstatus. By default, the function waits for five minutes. Specify 0 or None to skip waiting.
- pip_requirements – Either an iterable of pip requirement strings (e.g. - ["catboost", "-r requirements.txt", "-c constraints.txt"]) or the string path to a pip requirements file on the local filesystem (e.g.- "requirements.txt"). If provided, this describes the environment this model should be run in. If- None, a default list of requirements is inferred by- mlflow.models.infer_pip_requirements()from the current software environment. If the requirement inference fails, it falls back to using get_default_pip_requirements. Both requirements and constraints are automatically parsed and written to- requirements.txtand- constraints.txtfiles, respectively, and stored as part of the model. Requirements are also written to the- pipsection of the model’s conda environment (- conda.yaml) file.
- extra_pip_requirements – - Either an iterable of pip requirement strings (e.g. - ["pandas", "-r requirements.txt", "-c constraints.txt"]) or the string path to a pip requirements file on the local filesystem (e.g.- "requirements.txt"). If provided, this describes additional pip requirements that are appended to a default set of pip requirements generated automatically based on the user’s current software environment. Both requirements and constraints are automatically parsed and written to- requirements.txtand- constraints.txtfiles, respectively, and stored as part of the model. Requirements are also written to the- pipsection of the model’s conda environment (- conda.yaml) file.- Warning - The following arguments can’t be specified at the same time: - conda_env
- pip_requirements
- extra_pip_requirements
 - This example demonstrates how to specify pip requirements using - pip_requirementsand- extra_pip_requirements.
- metadata – Custom metadata dictionary passed to the model and stored in the MLmodel file. 
- name – Model name. 
- params – A dictionary of parameters to log with the model. 
- tags – A dictionary of tags to log with the model. 
- model_type – The type of the model. 
- step – The step at which to log the model outputs and metrics 
- model_id – The ID of the model. 
- kwargs – kwargs to pass to CatBoost.save_model method. 
 
- Returns
- A - ModelInfoinstance that contains the metadata of the logged model.
 
- mlflow.catboost.save_model(cb_model, path, conda_env=None, code_paths=None, mlflow_model=None, signature: mlflow.models.signature.ModelSignature = None, input_example: Union[pandas.core.frame.DataFrame, numpy.ndarray, dict, list, csr_matrix, csc_matrix, str, bytes, tuple] = None, pip_requirements=None, extra_pip_requirements=None, metadata=None, **kwargs)[source]
- Save a CatBoost model to a path on the local file system. - Parameters
- cb_model – CatBoost model (an instance of CatBoost, CatBoostClassifier, CatBoostRanker, or CatBoostRegressor) to be saved. 
- path – Local path where the model is to be saved. 
- conda_env – - Either a dictionary representation of a Conda environment or the path to a conda environment yaml file. If provided, this describes the environment this model should be run in. At a minimum, it should specify the dependencies contained in get_default_conda_env(). If - None, a conda environment with pip requirements inferred by- mlflow.models.infer_pip_requirements()is added to the model. If the requirement inference fails, it falls back to using get_default_pip_requirements. pip requirements from- conda_envare written to a pip- requirements.txtfile and the full conda environment is written to- conda.yaml. The following is an example dictionary representation of a conda environment:- { "name": "mlflow-env", "channels": ["conda-forge"], "dependencies": [ "python=3.8.15", { "pip": [ "catboost==x.y.z" ], }, ], } 
- code_paths – A list of local filesystem paths to Python file dependencies (or directories containing file dependencies). These files are prepended to the system path when the model is loaded. 
- mlflow_model – - mlflow.models.Modelthis flavor is being added to.
- signature – - an instance of the - ModelSignatureclass that describes the model’s inputs and outputs. If not specified but an- input_exampleis supplied, a signature will be automatically inferred based on the supplied input example and model. To disable automatic signature inference when providing an input example, set- signatureto- False. To manually infer a model signature, call- infer_signature()on datasets with valid model inputs, such as a training dataset with the target column omitted, and valid model outputs, like model predictions made on the training dataset, for example:- from mlflow.models import infer_signature train = df.drop_column("target_label") predictions = ... # compute model predictions signature = infer_signature(train, predictions) 
- input_example – one or several instances of valid model input. The input example is used as a hint of what data to feed the model. It will be converted to a Pandas DataFrame and then serialized to json using the Pandas split-oriented format, or a numpy array where the example will be serialized to json by converting it to a list. Bytes are base64-encoded. When the - signatureparameter is- None, the input example is used to infer a model signature.
- pip_requirements – Either an iterable of pip requirement strings (e.g. - ["catboost", "-r requirements.txt", "-c constraints.txt"]) or the string path to a pip requirements file on the local filesystem (e.g.- "requirements.txt"). If provided, this describes the environment this model should be run in. If- None, a default list of requirements is inferred by- mlflow.models.infer_pip_requirements()from the current software environment. If the requirement inference fails, it falls back to using get_default_pip_requirements. Both requirements and constraints are automatically parsed and written to- requirements.txtand- constraints.txtfiles, respectively, and stored as part of the model. Requirements are also written to the- pipsection of the model’s conda environment (- conda.yaml) file.
- extra_pip_requirements – - Either an iterable of pip requirement strings (e.g. - ["pandas", "-r requirements.txt", "-c constraints.txt"]) or the string path to a pip requirements file on the local filesystem (e.g.- "requirements.txt"). If provided, this describes additional pip requirements that are appended to a default set of pip requirements generated automatically based on the user’s current software environment. Both requirements and constraints are automatically parsed and written to- requirements.txtand- constraints.txtfiles, respectively, and stored as part of the model. Requirements are also written to the- pipsection of the model’s conda environment (- conda.yaml) file.- Warning - The following arguments can’t be specified at the same time: - conda_env
- pip_requirements
- extra_pip_requirements
 - This example demonstrates how to specify pip requirements using - pip_requirementsand- extra_pip_requirements.
- metadata – Custom metadata dictionary passed to the model and stored in the MLmodel file. 
- kwargs – kwargs to pass to CatBoost.save_model method.