snowflake-ml-python 1.12.0__tar.gz → 1.13.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/CHANGELOG.md +16 -0
- {snowflake_ml_python-1.12.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.13.0}/PKG-INFO +17 -1
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/telemetry.py +3 -1
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/experiment_tracking.py +24 -2
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +11 -1
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/job.py +5 -2
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/manager.py +29 -7
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +3 -5
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/model/model_version_impl.py +5 -4
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/ops/model_ops.py +42 -9
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/ops/service_ops.py +2 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +3 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +1 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/sql/service.py +4 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +103 -21
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +5 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +1 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/models/huggingface_pipeline.py +23 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0/snowflake_ml_python.egg-info}/PKG-INFO +17 -1
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/README.md +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/pyproject.toml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/setup.cfg +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/station_feature.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/citibike_trip_features/features/trip_feature.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/location_features.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/features/trip_features.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/managed_wine_features.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/wine_quality_features/features/static_wine_features.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/feature_store.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/feature_store/feature_view.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/constants.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/function_payload_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/interop_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/spec_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/_utils/types.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/jobs/decorators.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/lineage/lineage_node.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_model_composer/model_user_file/model_user_file.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers_migrator/pytorch_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers_migrator/tensorflow_migrator_2025_01_01.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_handlers_migrator/torchscript_migrator_2023_12_01.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/model_signature.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/monitoring/model_monitor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake_ml_python.egg-info/SOURCES.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
+
## 1.13.0
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
### Behavior Changes
|
|
8
|
+
|
|
9
|
+
### New Features
|
|
10
|
+
|
|
11
|
+
* Registry: Log a HuggingFace model without having to load the model in memory using
|
|
12
|
+
the `huggingface_pipeline.HuggingFacePipelineModel`. Requires `huggingface_hub` package to installed.
|
|
13
|
+
To disable downloading HuggingFace repository, provide `download_snapshot=False` while creating the
|
|
14
|
+
`huggingface_pipeline.HuggingFacePipelineModel` object.
|
|
15
|
+
* Registry: Added support for XGBoost models to use `enable_categorical=True` with pandas DataFrame
|
|
16
|
+
* Registry: Added support to display privatelink inference endpoint in ModelVersion list services.
|
|
17
|
+
|
|
3
18
|
## 1.12.0
|
|
4
19
|
|
|
5
20
|
### Bug Fixes
|
|
6
21
|
|
|
7
22
|
* Registry: Fixed an issue where the string representation of dictionary-type output columns was being incorrectly
|
|
8
23
|
created during structured output deserialization. Now, the original data type is properly preserved.
|
|
24
|
+
* Registry: Fixed the inference server performance issue for wide (500+ features) and JSON inputs.
|
|
9
25
|
|
|
10
26
|
### Behavior Changes
|
|
11
27
|
|
{snowflake_ml_python-1.12.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.13.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-ml-python
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.13.0
|
|
4
4
|
Summary: The machine learning client library that is used for interacting with Snowflake to build machine learning solutions.
|
|
5
5
|
Author-email: "Snowflake, Inc" <support@snowflake.com>
|
|
6
6
|
License:
|
|
@@ -410,12 +410,28 @@ NOTE: Version 1.7.0 is used as example here. Please choose the the latest versio
|
|
|
410
410
|
|
|
411
411
|
# Release History
|
|
412
412
|
|
|
413
|
+
## 1.13.0
|
|
414
|
+
|
|
415
|
+
### Bug Fixes
|
|
416
|
+
|
|
417
|
+
### Behavior Changes
|
|
418
|
+
|
|
419
|
+
### New Features
|
|
420
|
+
|
|
421
|
+
* Registry: Log a HuggingFace model without having to load the model in memory using
|
|
422
|
+
the `huggingface_pipeline.HuggingFacePipelineModel`. Requires `huggingface_hub` package to installed.
|
|
423
|
+
To disable downloading HuggingFace repository, provide `download_snapshot=False` while creating the
|
|
424
|
+
`huggingface_pipeline.HuggingFacePipelineModel` object.
|
|
425
|
+
* Registry: Added support for XGBoost models to use `enable_categorical=True` with pandas DataFrame
|
|
426
|
+
* Registry: Added support to display privatelink inference endpoint in ModelVersion list services.
|
|
427
|
+
|
|
413
428
|
## 1.12.0
|
|
414
429
|
|
|
415
430
|
### Bug Fixes
|
|
416
431
|
|
|
417
432
|
* Registry: Fixed an issue where the string representation of dictionary-type output columns was being incorrectly
|
|
418
433
|
created during structured output deserialization. Now, the original data type is properly preserved.
|
|
434
|
+
* Registry: Fixed the inference server performance issue for wide (500+ features) and JSON inputs.
|
|
419
435
|
|
|
420
436
|
### Behavior Changes
|
|
421
437
|
|
{snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/_internal/telemetry.py
RENAMED
|
@@ -680,8 +680,10 @@ def _extract_arg_value(field: str, func_spec: inspect.FullArgSpec, args: Any, kw
|
|
|
680
680
|
elif func_spec.kwonlydefaults and field in func_spec.kwonlyargs:
|
|
681
681
|
if field in kwargs:
|
|
682
682
|
return True, kwargs[field]
|
|
683
|
-
|
|
683
|
+
elif field in func_spec.kwonlydefaults:
|
|
684
684
|
return True, func_spec.kwonlydefaults[field]
|
|
685
|
+
else:
|
|
686
|
+
return False, None
|
|
685
687
|
else:
|
|
686
688
|
return False, None
|
|
687
689
|
|
|
@@ -7,7 +7,7 @@ from urllib.parse import quote
|
|
|
7
7
|
import snowflake.snowpark._internal.utils as snowpark_utils
|
|
8
8
|
from snowflake.ml import model as ml_model, registry
|
|
9
9
|
from snowflake.ml._internal.human_readable_id import hrid_generator
|
|
10
|
-
from snowflake.ml._internal.utils import sql_identifier
|
|
10
|
+
from snowflake.ml._internal.utils import mixins, sql_identifier
|
|
11
11
|
from snowflake.ml.experiment import (
|
|
12
12
|
_entities as entities,
|
|
13
13
|
_experiment_info as experiment_info,
|
|
@@ -23,7 +23,7 @@ from snowflake.snowpark import session
|
|
|
23
23
|
DEFAULT_EXPERIMENT_NAME = sql_identifier.SqlIdentifier("DEFAULT")
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
class ExperimentTracking:
|
|
26
|
+
class ExperimentTracking(mixins.SerializableSessionMixin):
|
|
27
27
|
"""
|
|
28
28
|
Class to manage experiments in Snowflake.
|
|
29
29
|
"""
|
|
@@ -73,12 +73,34 @@ class ExperimentTracking:
|
|
|
73
73
|
database_name=self._database_name,
|
|
74
74
|
schema_name=self._schema_name,
|
|
75
75
|
)
|
|
76
|
+
self._session = session
|
|
76
77
|
|
|
77
78
|
# The experiment in context
|
|
78
79
|
self._experiment: Optional[entities.Experiment] = None
|
|
79
80
|
# The run in context
|
|
80
81
|
self._run: Optional[entities.Run] = None
|
|
81
82
|
|
|
83
|
+
def __getstate__(self) -> dict[str, Any]:
|
|
84
|
+
state = super().__getstate__()
|
|
85
|
+
# Remove unpicklable attributes
|
|
86
|
+
state["_sql_client"] = None
|
|
87
|
+
state["_registry"] = None
|
|
88
|
+
return state
|
|
89
|
+
|
|
90
|
+
def __setstate__(self, state: dict[str, Any]) -> None:
|
|
91
|
+
super().__setstate__(state)
|
|
92
|
+
# Restore unpicklable attributes
|
|
93
|
+
self._sql_client = sql_client.ExperimentTrackingSQLClient(
|
|
94
|
+
session=self._session,
|
|
95
|
+
database_name=self._database_name,
|
|
96
|
+
schema_name=self._schema_name,
|
|
97
|
+
)
|
|
98
|
+
self._registry = registry.Registry(
|
|
99
|
+
session=self._session,
|
|
100
|
+
database_name=self._database_name,
|
|
101
|
+
schema_name=self._schema_name,
|
|
102
|
+
)
|
|
103
|
+
|
|
82
104
|
def set_experiment(
|
|
83
105
|
self,
|
|
84
106
|
experiment_name: str,
|
|
@@ -236,7 +236,9 @@ def run_script(script_path: str, *script_args: Any, main_func: Optional[str] = N
|
|
|
236
236
|
|
|
237
237
|
# Create a Snowpark session before running the script
|
|
238
238
|
# Session can be retrieved from using snowflake.snowpark.context.get_active_session()
|
|
239
|
-
|
|
239
|
+
config = SnowflakeLoginOptions()
|
|
240
|
+
config["client_session_keep_alive"] = "True"
|
|
241
|
+
session = Session.builder.configs(config).create() # noqa: F841
|
|
240
242
|
|
|
241
243
|
try:
|
|
242
244
|
|
|
@@ -264,6 +266,7 @@ def run_script(script_path: str, *script_args: Any, main_func: Optional[str] = N
|
|
|
264
266
|
finally:
|
|
265
267
|
# Restore original sys.argv
|
|
266
268
|
sys.argv = original_argv
|
|
269
|
+
session.close()
|
|
267
270
|
|
|
268
271
|
|
|
269
272
|
def main(script_path: str, *script_args: Any, script_main_func: Optional[str] = None) -> ExecutionResult:
|
|
@@ -287,6 +290,13 @@ def main(script_path: str, *script_args: Any, script_main_func: Optional[str] =
|
|
|
287
290
|
output_dir = os.path.dirname(result_abs_path)
|
|
288
291
|
os.makedirs(output_dir, exist_ok=True)
|
|
289
292
|
|
|
293
|
+
try:
|
|
294
|
+
import ray
|
|
295
|
+
|
|
296
|
+
ray.init(address="auto")
|
|
297
|
+
except ModuleNotFoundError:
|
|
298
|
+
warnings.warn("Ray is not installed, skipping Ray initialization", ImportWarning, stacklevel=1)
|
|
299
|
+
|
|
290
300
|
try:
|
|
291
301
|
# Wait for minimum required instances if specified
|
|
292
302
|
min_instances_str = os.environ.get(MIN_INSTANCES_ENV_VAR) or "1"
|
|
@@ -50,7 +50,7 @@ class MLJob(Generic[T], SerializableSessionMixin):
|
|
|
50
50
|
def min_instances(self) -> int:
|
|
51
51
|
try:
|
|
52
52
|
return int(self._container_spec["env"].get(constants.MIN_INSTANCES_ENV_VAR, 1))
|
|
53
|
-
except TypeError:
|
|
53
|
+
except (TypeError, ValueError):
|
|
54
54
|
return 1
|
|
55
55
|
|
|
56
56
|
@property
|
|
@@ -83,7 +83,10 @@ class MLJob(Generic[T], SerializableSessionMixin):
|
|
|
83
83
|
def _container_spec(self) -> dict[str, Any]:
|
|
84
84
|
"""Get the job's main container spec."""
|
|
85
85
|
containers = self._service_spec["spec"]["containers"]
|
|
86
|
-
|
|
86
|
+
try:
|
|
87
|
+
container_spec = next(c for c in containers if c["name"] == constants.DEFAULT_CONTAINER_NAME)
|
|
88
|
+
except StopIteration:
|
|
89
|
+
raise ValueError(f"Container '{constants.DEFAULT_CONTAINER_NAME}' not found in job {self.name}")
|
|
87
90
|
return cast(dict[str, Any], container_spec)
|
|
88
91
|
|
|
89
92
|
@property
|
|
@@ -58,7 +58,8 @@ def list_jobs(
|
|
|
58
58
|
>>> from snowflake.ml.jobs import list_jobs
|
|
59
59
|
>>> list_jobs(limit=5)
|
|
60
60
|
"""
|
|
61
|
-
|
|
61
|
+
|
|
62
|
+
session = _ensure_session(session)
|
|
62
63
|
try:
|
|
63
64
|
df = _get_job_history_spcs(
|
|
64
65
|
session,
|
|
@@ -162,7 +163,7 @@ def _get_job_history_spcs(
|
|
|
162
163
|
@telemetry.send_api_usage_telemetry(project=_PROJECT)
|
|
163
164
|
def get_job(job_id: str, session: Optional[snowpark.Session] = None) -> jb.MLJob[Any]:
|
|
164
165
|
"""Retrieve a job service from the backend."""
|
|
165
|
-
session = session
|
|
166
|
+
session = _ensure_session(session)
|
|
166
167
|
try:
|
|
167
168
|
database, schema, job_name = identifier.parse_schema_level_object_identifier(job_id)
|
|
168
169
|
database = identifier.resolve_identifier(cast(str, database or session.get_current_database()))
|
|
@@ -434,8 +435,10 @@ def _submit_job(
|
|
|
434
435
|
|
|
435
436
|
Raises:
|
|
436
437
|
ValueError: If database or schema value(s) are invalid
|
|
438
|
+
RuntimeError: If schema is not specified in session context or job submission
|
|
439
|
+
snowpark.exceptions.SnowparkSQLException: if failed to upload payload
|
|
437
440
|
"""
|
|
438
|
-
session = session
|
|
441
|
+
session = _ensure_session(session)
|
|
439
442
|
|
|
440
443
|
# Check for deprecated args
|
|
441
444
|
if "num_instances" in kwargs:
|
|
@@ -486,10 +489,17 @@ def _submit_job(
|
|
|
486
489
|
stage_name = f"@{'.'.join(filter(None, stage_path_parts[:3]))}"
|
|
487
490
|
stage_path = pathlib.PurePosixPath(f"{stage_name}{stage_path_parts[-1].rstrip('/')}/{job_name}")
|
|
488
491
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
492
|
+
try:
|
|
493
|
+
# Upload payload
|
|
494
|
+
uploaded_payload = payload_utils.JobPayload(
|
|
495
|
+
source, entrypoint=entrypoint, pip_requirements=pip_requirements, additional_payloads=additional_payloads
|
|
496
|
+
).upload(session, stage_path)
|
|
497
|
+
except snowpark.exceptions.SnowparkSQLException as e:
|
|
498
|
+
if e.sql_error_code == 90106:
|
|
499
|
+
raise RuntimeError(
|
|
500
|
+
"Please specify a schema, either in the session context or as a parameter in the job submission"
|
|
501
|
+
)
|
|
502
|
+
raise
|
|
493
503
|
|
|
494
504
|
if feature_flags.FeatureFlags.USE_SUBMIT_JOB_V2.is_enabled():
|
|
495
505
|
# Add default env vars (extracted from spec_utils.generate_service_spec)
|
|
@@ -651,3 +661,15 @@ def _do_submit_job_v2(
|
|
|
651
661
|
actual_job_id = query_helper.run_query(session, query_template, params=params)[0][0]
|
|
652
662
|
|
|
653
663
|
return get_job(actual_job_id, session=session)
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
def _ensure_session(session: Optional[snowpark.Session]) -> snowpark.Session:
|
|
667
|
+
try:
|
|
668
|
+
session = session or get_active_session()
|
|
669
|
+
except snowpark.exceptions.SnowparkSessionException as e:
|
|
670
|
+
if "More than one active session" in e.message:
|
|
671
|
+
raise RuntimeError("Please specify the session as a parameter in API call")
|
|
672
|
+
if "No default Session is found" in e.message:
|
|
673
|
+
raise RuntimeError("Please create a session before API call")
|
|
674
|
+
raise
|
|
675
|
+
return session
|
|
@@ -4,14 +4,11 @@ from pydantic import BaseModel
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class InputSpec(BaseModel):
|
|
7
|
-
|
|
8
|
-
input_file_pattern: str = "*"
|
|
7
|
+
stage_location: str
|
|
9
8
|
|
|
10
9
|
|
|
11
10
|
class OutputSpec(BaseModel):
|
|
12
|
-
|
|
13
|
-
output_file_prefix: Optional[str] = None
|
|
14
|
-
completion_filename: str = "_SUCCESS"
|
|
11
|
+
stage_location: str
|
|
15
12
|
|
|
16
13
|
|
|
17
14
|
class JobSpec(BaseModel):
|
|
@@ -25,3 +22,4 @@ class JobSpec(BaseModel):
|
|
|
25
22
|
warehouse: Optional[str] = None
|
|
26
23
|
cpu_requests: Optional[str] = None
|
|
27
24
|
memory_requests: Optional[str] = None
|
|
25
|
+
replicas: Optional[int] = None
|
|
@@ -590,11 +590,12 @@ class ModelVersion(lineage_node.LineageNode):
|
|
|
590
590
|
cpu_requests=job_spec.cpu_requests,
|
|
591
591
|
memory_requests=job_spec.memory_requests,
|
|
592
592
|
job_name=job_name,
|
|
593
|
+
replicas=job_spec.replicas,
|
|
593
594
|
# input and output
|
|
594
|
-
input_stage_location=input_spec.
|
|
595
|
-
input_file_pattern=
|
|
596
|
-
output_stage_location=output_spec.
|
|
597
|
-
completion_filename=
|
|
595
|
+
input_stage_location=input_spec.stage_location,
|
|
596
|
+
input_file_pattern="*",
|
|
597
|
+
output_stage_location=output_spec.stage_location,
|
|
598
|
+
completion_filename="_SUCCESS",
|
|
598
599
|
# misc
|
|
599
600
|
statement_params=statement_params,
|
|
600
601
|
)
|
|
@@ -47,6 +47,7 @@ class ServiceInfo(TypedDict):
|
|
|
47
47
|
class ModelOperator:
|
|
48
48
|
INFERENCE_SERVICE_ENDPOINT_NAME = "inference"
|
|
49
49
|
INGRESS_ENDPOINT_URL_SUFFIX = "snowflakecomputing.app"
|
|
50
|
+
PRIVATELINK_INGRESS_ENDPOINT_URL_SUBSTRING = "privatelink.snowflakecomputing"
|
|
50
51
|
|
|
51
52
|
def __init__(
|
|
52
53
|
self,
|
|
@@ -612,6 +613,30 @@ class ModelOperator:
|
|
|
612
613
|
statement_params=statement_params,
|
|
613
614
|
)
|
|
614
615
|
|
|
616
|
+
def _is_privatelink_connection(self) -> bool:
|
|
617
|
+
"""Detect if the current session is using a privatelink connection."""
|
|
618
|
+
try:
|
|
619
|
+
host = self._session.connection.host
|
|
620
|
+
return ModelOperator.PRIVATELINK_INGRESS_ENDPOINT_URL_SUBSTRING in host
|
|
621
|
+
except AttributeError:
|
|
622
|
+
return False
|
|
623
|
+
|
|
624
|
+
def _extract_and_validate_ingress_url(self, res_row: "row.Row") -> Optional[str]:
|
|
625
|
+
"""Extract and validate ingress URL from endpoint row."""
|
|
626
|
+
url_value = res_row[self._service_client.MODEL_INFERENCE_SERVICE_ENDPOINT_INGRESS_URL_COL_NAME]
|
|
627
|
+
if url_value is None:
|
|
628
|
+
return None
|
|
629
|
+
url_str = str(url_value)
|
|
630
|
+
return url_str if url_str.endswith(ModelOperator.INGRESS_ENDPOINT_URL_SUFFIX) else None
|
|
631
|
+
|
|
632
|
+
def _extract_and_validate_privatelink_url(self, res_row: "row.Row") -> Optional[str]:
|
|
633
|
+
"""Extract and validate privatelink ingress URL from endpoint row."""
|
|
634
|
+
url_value = res_row[self._service_client.MODEL_INFERENCE_SERVICE_ENDPOINT_PRIVATELINK_INGRESS_URL_COL_NAME]
|
|
635
|
+
if url_value is None:
|
|
636
|
+
return None
|
|
637
|
+
url_str = str(url_value)
|
|
638
|
+
return url_str if ModelOperator.PRIVATELINK_INGRESS_ENDPOINT_URL_SUBSTRING in url_str else None
|
|
639
|
+
|
|
615
640
|
def show_services(
|
|
616
641
|
self,
|
|
617
642
|
*,
|
|
@@ -644,8 +669,10 @@ class ModelOperator:
|
|
|
644
669
|
fully_qualified_service_names = [str(service) for service in json_array if "MODEL_BUILD_" not in service]
|
|
645
670
|
|
|
646
671
|
result: list[ServiceInfo] = []
|
|
672
|
+
is_privatelink_connection = self._is_privatelink_connection()
|
|
673
|
+
|
|
647
674
|
for fully_qualified_service_name in fully_qualified_service_names:
|
|
648
|
-
|
|
675
|
+
inference_endpoint: Optional[str] = None
|
|
649
676
|
db, schema, service_name = sql_identifier.parse_fully_qualified_name(fully_qualified_service_name)
|
|
650
677
|
statuses = self._service_client.get_service_container_statuses(
|
|
651
678
|
database_name=db, schema_name=schema, service_name=service_name, statement_params=statement_params
|
|
@@ -659,17 +686,23 @@ class ModelOperator:
|
|
|
659
686
|
):
|
|
660
687
|
if (
|
|
661
688
|
res_row[self._service_client.MODEL_INFERENCE_SERVICE_ENDPOINT_NAME_COL_NAME]
|
|
662
|
-
|
|
663
|
-
and res_row[self._service_client.MODEL_INFERENCE_SERVICE_ENDPOINT_INGRESS_URL_COL_NAME] is not None
|
|
689
|
+
!= self.INFERENCE_SERVICE_ENDPOINT_NAME
|
|
664
690
|
):
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
691
|
+
continue
|
|
692
|
+
|
|
693
|
+
ingress_url = self._extract_and_validate_ingress_url(res_row)
|
|
694
|
+
privatelink_ingress_url = self._extract_and_validate_privatelink_url(res_row)
|
|
695
|
+
|
|
696
|
+
if is_privatelink_connection and privatelink_ingress_url is not None:
|
|
697
|
+
inference_endpoint = privatelink_ingress_url
|
|
698
|
+
else:
|
|
699
|
+
inference_endpoint = ingress_url
|
|
700
|
+
|
|
670
701
|
result.append(
|
|
671
702
|
ServiceInfo(
|
|
672
|
-
name=fully_qualified_service_name,
|
|
703
|
+
name=fully_qualified_service_name,
|
|
704
|
+
status=service_status.value,
|
|
705
|
+
inference_endpoint=inference_endpoint,
|
|
673
706
|
)
|
|
674
707
|
)
|
|
675
708
|
|
|
@@ -881,6 +881,7 @@ class ServiceOperator:
|
|
|
881
881
|
max_batch_rows: Optional[int],
|
|
882
882
|
cpu_requests: Optional[str],
|
|
883
883
|
memory_requests: Optional[str],
|
|
884
|
+
replicas: Optional[int],
|
|
884
885
|
statement_params: Optional[dict[str, Any]] = None,
|
|
885
886
|
) -> jobs.MLJob[Any]:
|
|
886
887
|
database_name = self._database_name
|
|
@@ -914,6 +915,7 @@ class ServiceOperator:
|
|
|
914
915
|
warehouse=warehouse,
|
|
915
916
|
cpu=cpu_requests,
|
|
916
917
|
memory=memory_requests,
|
|
918
|
+
replicas=replicas,
|
|
917
919
|
)
|
|
918
920
|
|
|
919
921
|
self._model_deployment_spec.add_image_build_spec(
|
|
@@ -207,6 +207,7 @@ class ModelDeploymentSpec:
|
|
|
207
207
|
gpu: Optional[Union[str, int]] = None,
|
|
208
208
|
num_workers: Optional[int] = None,
|
|
209
209
|
max_batch_rows: Optional[int] = None,
|
|
210
|
+
replicas: Optional[int] = None,
|
|
210
211
|
) -> "ModelDeploymentSpec":
|
|
211
212
|
"""Add job specification to the deployment spec.
|
|
212
213
|
|
|
@@ -226,6 +227,7 @@ class ModelDeploymentSpec:
|
|
|
226
227
|
gpu: GPU requirement.
|
|
227
228
|
num_workers: Number of workers.
|
|
228
229
|
max_batch_rows: Maximum batch rows for inference.
|
|
230
|
+
replicas: Number of replicas.
|
|
229
231
|
|
|
230
232
|
Raises:
|
|
231
233
|
ValueError: If a service spec already exists.
|
|
@@ -260,6 +262,7 @@ class ModelDeploymentSpec:
|
|
|
260
262
|
output_stage_location=output_stage_location,
|
|
261
263
|
completion_filename=completion_filename,
|
|
262
264
|
),
|
|
265
|
+
replicas=replicas,
|
|
263
266
|
**self._inference_spec,
|
|
264
267
|
)
|
|
265
268
|
return self
|
{snowflake_ml_python-1.12.0 → snowflake_ml_python-1.13.0}/snowflake/ml/model/_client/sql/service.py
RENAMED
|
@@ -63,6 +63,7 @@ class ServiceStatusInfo:
|
|
|
63
63
|
class ServiceSQLClient(_base._BaseSQLClient):
|
|
64
64
|
MODEL_INFERENCE_SERVICE_ENDPOINT_NAME_COL_NAME = "name"
|
|
65
65
|
MODEL_INFERENCE_SERVICE_ENDPOINT_INGRESS_URL_COL_NAME = "ingress_url"
|
|
66
|
+
MODEL_INFERENCE_SERVICE_ENDPOINT_PRIVATELINK_INGRESS_URL_COL_NAME = "privatelink_ingress_url"
|
|
66
67
|
SERVICE_STATUS = "service_status"
|
|
67
68
|
INSTANCE_ID = "instance_id"
|
|
68
69
|
INSTANCE_STATUS = "instance_status"
|
|
@@ -255,6 +256,9 @@ class ServiceSQLClient(_base._BaseSQLClient):
|
|
|
255
256
|
)
|
|
256
257
|
.has_column(ServiceSQLClient.MODEL_INFERENCE_SERVICE_ENDPOINT_NAME_COL_NAME, allow_empty=True)
|
|
257
258
|
.has_column(ServiceSQLClient.MODEL_INFERENCE_SERVICE_ENDPOINT_INGRESS_URL_COL_NAME, allow_empty=True)
|
|
259
|
+
.has_column(
|
|
260
|
+
ServiceSQLClient.MODEL_INFERENCE_SERVICE_ENDPOINT_PRIVATELINK_INGRESS_URL_COL_NAME, allow_empty=True
|
|
261
|
+
)
|
|
258
262
|
)
|
|
259
263
|
|
|
260
264
|
return res.validate()
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
3
|
import os
|
|
4
|
+
import shutil
|
|
4
5
|
import time
|
|
5
6
|
import uuid
|
|
6
7
|
import warnings
|
|
@@ -88,6 +89,7 @@ class HuggingFacePipelineHandler(
|
|
|
88
89
|
_HANDLER_MIGRATOR_PLANS: dict[str, type[base_migrator.BaseModelHandlerMigrator]] = {}
|
|
89
90
|
|
|
90
91
|
MODEL_BLOB_FILE_OR_DIR = "model"
|
|
92
|
+
MODEL_PICKLE_FILE = "snowml_huggingface_pipeline.pkl"
|
|
91
93
|
ADDITIONAL_CONFIG_FILE = "pipeline_config.pt"
|
|
92
94
|
DEFAULT_TARGET_METHODS = ["__call__"]
|
|
93
95
|
IS_AUTO_SIGNATURE = True
|
|
@@ -199,6 +201,7 @@ class HuggingFacePipelineHandler(
|
|
|
199
201
|
model_blob_path = os.path.join(model_blobs_dir_path, name)
|
|
200
202
|
os.makedirs(model_blob_path, exist_ok=True)
|
|
201
203
|
|
|
204
|
+
is_repo_downloaded = False
|
|
202
205
|
if type_utils.LazyType("transformers.Pipeline").isinstance(model):
|
|
203
206
|
save_path = os.path.join(model_blob_path, cls.MODEL_BLOB_FILE_OR_DIR)
|
|
204
207
|
model.save_pretrained( # type:ignore[attr-defined]
|
|
@@ -224,11 +227,22 @@ class HuggingFacePipelineHandler(
|
|
|
224
227
|
) as f:
|
|
225
228
|
cloudpickle.dump(pipeline_params, f)
|
|
226
229
|
else:
|
|
230
|
+
model_blob_file_or_dir = os.path.join(model_blob_path, cls.MODEL_BLOB_FILE_OR_DIR)
|
|
231
|
+
model_blob_pickle_file = os.path.join(model_blob_file_or_dir, cls.MODEL_PICKLE_FILE)
|
|
232
|
+
os.makedirs(model_blob_file_or_dir, exist_ok=True)
|
|
227
233
|
with open(
|
|
228
|
-
|
|
234
|
+
model_blob_pickle_file,
|
|
229
235
|
"wb",
|
|
230
236
|
) as f:
|
|
231
237
|
cloudpickle.dump(model, f)
|
|
238
|
+
if model.repo_snapshot_dir:
|
|
239
|
+
logger.info("model's repo_snapshot_dir is available, copying snapshot")
|
|
240
|
+
shutil.copytree(
|
|
241
|
+
model.repo_snapshot_dir,
|
|
242
|
+
model_blob_file_or_dir,
|
|
243
|
+
dirs_exist_ok=True,
|
|
244
|
+
)
|
|
245
|
+
is_repo_downloaded = True
|
|
232
246
|
|
|
233
247
|
base_meta = model_blob_meta.ModelBlobMeta(
|
|
234
248
|
name=name,
|
|
@@ -236,13 +250,12 @@ class HuggingFacePipelineHandler(
|
|
|
236
250
|
handler_version=cls.HANDLER_VERSION,
|
|
237
251
|
path=cls.MODEL_BLOB_FILE_OR_DIR,
|
|
238
252
|
options=model_meta_schema.HuggingFacePipelineModelBlobOptions(
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
}
|
|
253
|
+
task=task,
|
|
254
|
+
batch_size=batch_size if batch_size is not None else 1,
|
|
255
|
+
has_tokenizer=has_tokenizer,
|
|
256
|
+
has_feature_extractor=has_feature_extractor,
|
|
257
|
+
has_image_preprocessor=has_image_preprocessor,
|
|
258
|
+
is_repo_downloaded=is_repo_downloaded,
|
|
246
259
|
),
|
|
247
260
|
)
|
|
248
261
|
model_meta.models[name] = base_meta
|
|
@@ -286,6 +299,27 @@ class HuggingFacePipelineHandler(
|
|
|
286
299
|
|
|
287
300
|
return device_config
|
|
288
301
|
|
|
302
|
+
@staticmethod
|
|
303
|
+
def _load_pickle_model(
|
|
304
|
+
pickle_file: str,
|
|
305
|
+
**kwargs: Unpack[model_types.HuggingFaceLoadOptions],
|
|
306
|
+
) -> huggingface_pipeline.HuggingFacePipelineModel:
|
|
307
|
+
with open(pickle_file, "rb") as f:
|
|
308
|
+
m = cloudpickle.load(f)
|
|
309
|
+
assert isinstance(m, huggingface_pipeline.HuggingFacePipelineModel)
|
|
310
|
+
torch_dtype: Optional[str] = None
|
|
311
|
+
device_config = None
|
|
312
|
+
if getattr(m, "device", None) is None and getattr(m, "device_map", None) is None:
|
|
313
|
+
device_config = HuggingFacePipelineHandler._get_device_config(**kwargs)
|
|
314
|
+
m.__dict__.update(device_config)
|
|
315
|
+
|
|
316
|
+
if getattr(m, "torch_dtype", None) is None and kwargs.get("use_gpu", False):
|
|
317
|
+
torch_dtype = "auto"
|
|
318
|
+
m.__dict__.update(torch_dtype=torch_dtype)
|
|
319
|
+
else:
|
|
320
|
+
m.__dict__.update(torch_dtype=None)
|
|
321
|
+
return m
|
|
322
|
+
|
|
289
323
|
@classmethod
|
|
290
324
|
def load_model(
|
|
291
325
|
cls,
|
|
@@ -310,7 +344,13 @@ class HuggingFacePipelineHandler(
|
|
|
310
344
|
raise ValueError("Missing field `batch_size` in model blob metadata for type `huggingface_pipeline`")
|
|
311
345
|
|
|
312
346
|
model_blob_file_or_dir_path = os.path.join(model_blob_path, model_blob_filename)
|
|
313
|
-
|
|
347
|
+
is_repo_downloaded = model_blob_options.get("is_repo_downloaded", False)
|
|
348
|
+
|
|
349
|
+
def _create_pipeline_from_dir(
|
|
350
|
+
model_blob_file_or_dir_path: str,
|
|
351
|
+
model_blob_options: model_meta_schema.HuggingFacePipelineModelBlobOptions,
|
|
352
|
+
**kwargs: Unpack[model_types.HuggingFaceLoadOptions],
|
|
353
|
+
) -> "transformers.Pipeline":
|
|
314
354
|
import transformers
|
|
315
355
|
|
|
316
356
|
additional_pipeline_params = {}
|
|
@@ -330,7 +370,7 @@ class HuggingFacePipelineHandler(
|
|
|
330
370
|
) as f:
|
|
331
371
|
pipeline_params = cloudpickle.load(f)
|
|
332
372
|
|
|
333
|
-
device_config =
|
|
373
|
+
device_config = HuggingFacePipelineHandler._get_device_config(**kwargs)
|
|
334
374
|
|
|
335
375
|
m = transformers.pipeline(
|
|
336
376
|
model_blob_options["task"],
|
|
@@ -359,18 +399,59 @@ class HuggingFacePipelineHandler(
|
|
|
359
399
|
m.tokenizer.chat_template = DEFAULT_CHAT_TEMPLATE
|
|
360
400
|
|
|
361
401
|
m.__dict__.update(pipeline_params)
|
|
402
|
+
return m
|
|
362
403
|
|
|
404
|
+
def _create_pipeline_from_model(
|
|
405
|
+
model_blob_file_or_dir_path: str,
|
|
406
|
+
m: huggingface_pipeline.HuggingFacePipelineModel,
|
|
407
|
+
**kwargs: Unpack[model_types.HuggingFaceLoadOptions],
|
|
408
|
+
) -> "transformers.Pipeline":
|
|
409
|
+
import transformers
|
|
410
|
+
|
|
411
|
+
return transformers.pipeline(
|
|
412
|
+
m.task,
|
|
413
|
+
model=model_blob_file_or_dir_path,
|
|
414
|
+
trust_remote_code=m.trust_remote_code,
|
|
415
|
+
torch_dtype=getattr(m, "torch_dtype", None),
|
|
416
|
+
revision=m.revision,
|
|
417
|
+
# pass device or device_map when creating the pipeline
|
|
418
|
+
**HuggingFacePipelineHandler._get_device_config(**kwargs),
|
|
419
|
+
# pass other model_kwargs to transformers.pipeline.from_pretrained method
|
|
420
|
+
**m.model_kwargs,
|
|
421
|
+
)
|
|
422
|
+
|
|
423
|
+
if os.path.isdir(model_blob_file_or_dir_path) and not is_repo_downloaded:
|
|
424
|
+
# the logged model is a transformers.Pipeline object
|
|
425
|
+
# weights of the model are saved in the directory
|
|
426
|
+
return _create_pipeline_from_dir(model_blob_file_or_dir_path, model_blob_options, **kwargs)
|
|
363
427
|
else:
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
428
|
+
# case 1: LEGACY logging, repo snapshot is not logged
|
|
429
|
+
if os.path.isfile(model_blob_file_or_dir_path):
|
|
430
|
+
# LEGACY logging that had model as a pickle file in the model blob directory
|
|
431
|
+
# the logged model is a huggingface_pipeline.HuggingFacePipelineModel object
|
|
432
|
+
# the model_blob_file_or_dir_path is the pickle file that holds
|
|
433
|
+
# the huggingface_pipeline.HuggingFacePipelineModel object
|
|
434
|
+
# the snapshot of the repo is not logged
|
|
435
|
+
return cls._load_pickle_model(model_blob_file_or_dir_path)
|
|
436
|
+
else:
|
|
437
|
+
assert os.path.isdir(model_blob_file_or_dir_path)
|
|
438
|
+
# the logged model is a huggingface_pipeline.HuggingFacePipelineModel object
|
|
439
|
+
# the pickle_file holds the huggingface_pipeline.HuggingFacePipelineModel object
|
|
440
|
+
pickle_file = os.path.join(model_blob_file_or_dir_path, cls.MODEL_PICKLE_FILE)
|
|
441
|
+
m = cls._load_pickle_model(pickle_file)
|
|
442
|
+
|
|
443
|
+
# case 2: logging without the snapshot of the repo
|
|
444
|
+
if not is_repo_downloaded:
|
|
445
|
+
# we return the huggingface_pipeline.HuggingFacePipelineModel object
|
|
446
|
+
return m
|
|
447
|
+
# case 3: logging with the snapshot of the repo
|
|
448
|
+
else:
|
|
449
|
+
# the model_blob_file_or_dir_path is the directory that holds
|
|
450
|
+
# weights of the model from `huggingface_hub.snapshot_download`
|
|
451
|
+
# the huggingface_pipeline.HuggingFacePipelineModel object is logged
|
|
452
|
+
# with a snapshot of the repo, we create a transformers.Pipeline object
|
|
453
|
+
# by reading the snapshot directory
|
|
454
|
+
return _create_pipeline_from_model(model_blob_file_or_dir_path, m, **kwargs)
|
|
374
455
|
|
|
375
456
|
@classmethod
|
|
376
457
|
def convert_as_custom_model(
|
|
@@ -665,7 +746,7 @@ class HuggingFaceOpenAICompatibleModel:
|
|
|
665
746
|
prompt_text,
|
|
666
747
|
return_tensors="pt",
|
|
667
748
|
padding=True,
|
|
668
|
-
)
|
|
749
|
+
).to(self.model.device)
|
|
669
750
|
prompt_tokens = inputs.input_ids.shape[1]
|
|
670
751
|
|
|
671
752
|
from transformers import GenerationConfig
|
|
@@ -683,6 +764,7 @@ class HuggingFaceOpenAICompatibleModel:
|
|
|
683
764
|
num_return_sequences=n,
|
|
684
765
|
num_beams=max(2, n), # must be >1
|
|
685
766
|
num_beam_groups=max(2, n) if presence_penalty else 1,
|
|
767
|
+
do_sample=False,
|
|
686
768
|
)
|
|
687
769
|
|
|
688
770
|
# Generate text
|
|
@@ -229,6 +229,11 @@ class XGBModelHandler(_base.BaseModelHandler[Union["xgboost.Booster", "xgboost.X
|
|
|
229
229
|
enable_categorical = False
|
|
230
230
|
for col, d_type in X.dtypes.items():
|
|
231
231
|
if pd.api.extensions.ExtensionDtype.is_dtype(d_type):
|
|
232
|
+
if pd.CategoricalDtype.is_dtype(d_type):
|
|
233
|
+
enable_categorical = True
|
|
234
|
+
elif isinstance(d_type, pd.StringDtype):
|
|
235
|
+
X[col] = X[col].astype("category")
|
|
236
|
+
enable_categorical = True
|
|
232
237
|
continue
|
|
233
238
|
if not np.issubdtype(d_type, np.number):
|
|
234
239
|
# categorical columns are converted to numpy's str dtype
|