Skip to main content

REST API client for Fosfor AI to register models and get model details.

Project description

Fosforml

Overview

The fosforml package is designed to facilitate the registration, management, and deployment of machine learning models with a focus on integration with Snowflake. It provides tools for managing datasets, model metadata, and the lifecycle of models within a Snowflake environment.

Features

  • Model Registration: Register models to the Snowflake Model registry with detailed metadata, including descriptions, types, and dependencies.
  • Dataset Management: Handle datasets within Snowflake, including creation, versioning, and deletion of dataset objects.
  • Metadata Management: Update model registry with descriptions and tags for better organization and retrieval.
  • Snowflake Session Management: Manage Snowflake sessions for executing operations within the Snowflake environment.

Installation

To install the fosforml package, ensure you have Python installed on your system and run the following command:

pip install fosforml

Usage

Register a model with the Snowflake Model Registry using the register_model function. The function supports both Snowflake and Pandas dataframes, catering to different data handling preferences.

Requirements

  • Snowflake DataFrame: If you are using Snowflake as your data warehouse, you must provide a Snowflake DataFrame (snowflake.snowpark.dataframe.DataFrame) that includes model feature names, labels, and output column names.

  • Pandas DataFrame: For users preferring local or in-memory data processing, you must upload the following as Pandas DataFrames (pandas.DataFrame):

    • x_train: Training data with feature columns.
    • y_train: Training data labels.
    • x_test: Test data with feature columns.
    • y_test: Test data labels.
    • y_pred: Predicted labels for the test data.
    • prob: Predicted probabilities for the test data classes.
  • Numpy data arrays are not allowed as input datasets to register the model

Supported Model Flavours

Currently, the framework supports the following model flavours:

  • Snowflake Models (snowflake): Models that are directly integrated with Snowflake, leveraging Snowflake's data processing capabilities.
  • Scikit-Learn Models (sklearn): Models built using the Scikit-Learn library, a widely used library for machine learning in Python.

Registering a Model

To register a model with the fosforml package, you need to provide the model object, session, and other relevant details such as the model name, description, and type.

For Snowflake Models :

from fosforml import register_model

register_model(
  model_obj=my_model,
  session=my_session,
  name="MyModel",
  snowflake_df=snow_flake_dataframe,
  description="This is a test model",
  flavour="snowflake",
  model_type="classification",
  conda_dependencies=["scikit-learn", "pandas"]
)

For Scikit-Learn Models :

from fosforml import register_model

register_model(
  model_obj=my_model,
  session=my_session,
  name="MyModel",
  x_train=x_train,
  y_train=y_train,
  x_test=x_test,
  y_test=y_test,
  y_pred=y_pred,
  prob=prob,
  description="This is a test model",
  flavour="sklearn",
  model_type="classification",
  conda_dependencies=["scikit-learn", "pandas"]
)

Managing Datasets

The DatasetManager class allows for the creation, uploading, and removal of datasets associated with models.

from fosforml.model_manager import DatasetManager

dataset_manager = DatasetManager(model_name="MyModel", version_name="v1", session=my_session)
dataset_manager.upload_datasets(session=my_session, datasets={"x_train": x_train_df, "y_train": y_train_df})

Snowflake Session Management

The SnowflakeSession class is used to manage connections to Snowflake, facilitating the execution of operations within the Snowflake environment.

from fosforml.model_manager.snowflakesession import get_session

my_session = get_session()

Dependencies

  • pandas
  • snowflake-ml-python
  • requests

Ensure these dependencies are installed in your environment to use the fosforml package effectively.

For issues and contributions, please refer to the project's GitHub repository.

Additional Resources

For further assistance and examples on how to register models using fosforml, please refer to the example folder in the project repository. This folder contains Jupyter notebooks that provide step-by-step guidance on model registration and other operations.

Visit www.fosfor.com for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fosforml-1.0.6.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

fosforml-1.0.6-py3-none-any.whl (42.5 kB view details)

Uploaded Python 3

File details

Details for the file fosforml-1.0.6.tar.gz.

File metadata

  • Download URL: fosforml-1.0.6.tar.gz
  • Upload date:
  • Size: 37.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.13

File hashes

Hashes for fosforml-1.0.6.tar.gz
Algorithm Hash digest
SHA256 700d831b2e0e37b6ccc8fa70d61282a505a8aa3c317f77947fe544f68be9994a
MD5 4edb8daee3e0e37fd10e56486bcdb8a1
BLAKE2b-256 1e7f850cdbbbb4e447986540475c2ba87a8804c12d6f7c19af05a7e9e7366b89

See more details on using hashes here.

Provenance

File details

Details for the file fosforml-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: fosforml-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 42.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.13

File hashes

Hashes for fosforml-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 bd5bcc9b23e23fe38f49164c9d7fe5bff7ff114993243d1f80f22ca2163e7a15
MD5 ab6fbe71aa725a5f2db7be1a0628930b
BLAKE2b-256 8d5574a0cac06adf7dd6b9d0b5d3460523b3507648b6c35a236fd67b4d03ae6b

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page