snowflake-ml-python 1.12.0__tar.gz → 1.14.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.14.0}/CHANGELOG.md +26 -0
- {snowflake_ml_python-1.12.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.14.0}/PKG-INFO +27 -1
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/telemetry.py +3 -1
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/experiment_tracking.py +24 -2
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/constants.py +1 -1
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/scripts/mljob_launcher.py +16 -4
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/job.py +17 -6
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/manager.py +60 -11
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/lineage/lineage_node.py +0 -1
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/model/batch_inference_specs.py +3 -5
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/model/model_version_impl.py +6 -20
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/ops/model_ops.py +49 -9
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/ops/service_ops.py +66 -34
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/service/model_deployment_spec.py +3 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/service/model_deployment_spec_schema.py +1 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/sql/service.py +1 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py +103 -21
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/xgboost.py +5 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_meta/model_meta_schema.py +1 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/models/huggingface_pipeline.py +23 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/monitoring/_client/model_monitor_sql_client.py +47 -3
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/monitoring/_manager/model_monitor_manager.py +3 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/monitoring/entities/model_monitor_config.py +3 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/monitoring/model_monitor.py +30 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0/snowflake_ml_python.egg-info}/PKG-INFO +27 -1
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/README.md +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/pyproject.toml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/setup.cfg +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/_classify_text.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/_complete.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/_embed_text_1024.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/_embed_text_768.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/_extract_answer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/_finetune.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/_sentiment.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/_sse_client.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/_summarize.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/_translate.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/cortex/_util.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/env.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/env_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/exceptions/dataset_error_messages.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/exceptions/dataset_errors.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/exceptions/error_codes.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/exceptions/error_messages.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/exceptions/exceptions.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/exceptions/fileset_error_messages.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/exceptions/fileset_errors.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/exceptions/modeling_error_messages.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/exceptions/sql_error_codes.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/file_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/human_readable_id/adjectives.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/human_readable_id/animals.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/human_readable_id/hrid_generator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/human_readable_id/hrid_generator_base.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/init_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/lineage/lineage_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/migrator_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/platform_capabilities.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/relax_version_strategy.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/type_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/db_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/formatting.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/identifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/import_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/jwt_generator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/mixins.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/parallelize.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/pkg_version_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/query_result_checker.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/result.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/service_logger.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/snowflake_env.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/snowpark_dataframe_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/sql_identifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/table_manager.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/_internal/utils/temp_file_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/data/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/data/_internal/arrow_ingestor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/data/data_connector.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/data/data_ingestor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/data/data_source.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/data/ingestor_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/data/torch_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/dataset/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/dataset/dataset.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/dataset/dataset_factory.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/dataset/dataset_metadata.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/dataset/dataset_reader.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/_client/artifact.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/_client/experiment_tracking_sql_client.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/_entities/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/_entities/experiment.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/_entities/run.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/_entities/run_metadata.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/_experiment_info.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/callback/keras.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/callback/lightgbm.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/callback/xgboost.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/experiment/utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/access_manager.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/entity.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/airline_features/entities.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/airline_features/features/plane_features.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/airline_features/features/weather_features.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/airline_features/source.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/citibike_trip_features/entities.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.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.14.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.14.0}/snowflake/ml/feature_store/examples/citibike_trip_features/source.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/example_helper.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/entities.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.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.14.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.14.0}/snowflake/ml/feature_store/examples/new_york_taxi_features/source.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/source_data/airline.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/source_data/citibike_trips.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/source_data/fraud_transactions.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/source_data/nyc_yellow_trips.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/source_data/winequality_red.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/examples/wine_quality_features/entities.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.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.14.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.14.0}/snowflake/ml/feature_store/examples/wine_quality_features/source.yaml +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/feature_store.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/feature_store/feature_view.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/fileset/embedded_stage_fs.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/fileset/fileset.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/fileset/sfcfs.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/fileset/snowfs.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/fileset/stage_fs.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/feature_flags.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/function_payload_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/interop_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/payload_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/query_helper.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/runtime_env_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/scripts/constants.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/scripts/get_instance_ip.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/scripts/signal_workers.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/scripts/worker_shutdown_listener.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/spec_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/stage_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/types.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/decorators.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/lineage/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/model/model_impl.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/ops/metadata_ops.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/sql/_base.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/sql/model.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/sql/model_version.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/sql/stage.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_client/sql/tag.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_model_composer/model_composer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_model_composer/model_method/constants.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_model_composer/model_method/function_generator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_model_composer/model_method/infer_function.py_template +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.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.14.0}/snowflake/ml/model/_model_composer/model_method/model_method.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.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.14.0}/snowflake/ml/model/_packager/model_env/model_env.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/_base.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/catboost.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/custom.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/keras.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/lightgbm.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/mlflow.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/pytorch.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/sentence_transformers.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/sklearn.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/tensorflow.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers/torchscript.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.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.14.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.14.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.14.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.14.0}/snowflake/ml/model/_packager/model_meta/model_blob_meta.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_meta/model_meta.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_packager.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_runtime/model_runtime.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_packager/model_task/model_task_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_signatures/base_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_signatures/builtins_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_signatures/core.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_signatures/dmatrix_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_signatures/numpy_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_signatures/pandas_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_signatures/pytorch_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_signatures/snowpark_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_signatures/tensorflow_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/_signatures/utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/custom_model.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/event_handler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/inference_engine.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/model_signature.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/openai_signatures.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/target_platform.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/task.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/model/type_hints.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/estimator_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_handlers.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/local_implementations/pandas_trainer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/model_specifications.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/model_trainer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/model_trainer_builder.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/model_transformer_builder.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_hpo_trainer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/snowpark_implementations/distributed_search_udf_file.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_handlers.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/snowpark_implementations/snowpark_trainer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/snowpark_implementations/xgboost_external_memory_trainer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/_internal/transformer_protocols.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/calibration/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/calibration/calibrated_classifier_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/affinity_propagation.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/agglomerative_clustering.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/birch.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/bisecting_k_means.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/dbscan.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/feature_agglomeration.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/k_means.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/mean_shift.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/mini_batch_k_means.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/optics.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/spectral_biclustering.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/spectral_clustering.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/cluster/spectral_coclustering.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/compose/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/compose/column_transformer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/compose/transformed_target_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/covariance/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/covariance/elliptic_envelope.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/covariance/empirical_covariance.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/covariance/graphical_lasso.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/covariance/graphical_lasso_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/covariance/ledoit_wolf.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/covariance/min_cov_det.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/covariance/oas.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/covariance/shrunk_covariance.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/decomposition/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/decomposition/dictionary_learning.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/decomposition/factor_analysis.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/decomposition/fast_ica.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/decomposition/incremental_pca.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/decomposition/kernel_pca.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/decomposition/mini_batch_dictionary_learning.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/decomposition/mini_batch_sparse_pca.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/decomposition/pca.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/decomposition/sparse_pca.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/decomposition/truncated_svd.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/discriminant_analysis/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/discriminant_analysis/linear_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/discriminant_analysis/quadratic_discriminant_analysis.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/ada_boost_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/ada_boost_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/bagging_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/bagging_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/extra_trees_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/extra_trees_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/hist_gradient_boosting_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/isolation_forest.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/random_forest_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/random_forest_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/stacking_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/voting_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/ensemble/voting_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/feature_selection/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/feature_selection/generic_univariate_select.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/feature_selection/select_fdr.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/feature_selection/select_fpr.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/feature_selection/select_fwe.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/feature_selection/select_k_best.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/feature_selection/select_percentile.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/feature_selection/sequential_feature_selector.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/feature_selection/variance_threshold.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/framework/_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/framework/base.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/gaussian_process/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/gaussian_process/gaussian_process_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/impute/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/impute/iterative_imputer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/impute/knn_imputer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/impute/missing_indicator.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/impute/simple_imputer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/kernel_approximation/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/kernel_approximation/additive_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/kernel_approximation/nystroem.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/kernel_approximation/polynomial_count_sketch.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/kernel_approximation/rbf_sampler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/kernel_ridge/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/kernel_ridge/kernel_ridge.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/lightgbm/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/lightgbm/lgbm_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/lightgbm/lgbm_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/ard_regression.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/bayesian_ridge.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/elastic_net.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/gamma_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/huber_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/lars.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/lars_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/lasso.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/lasso_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/lasso_lars.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/lasso_lars_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/lasso_lars_ic.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/linear_regression.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/logistic_regression.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/logistic_regression_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/multi_task_elastic_net_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/multi_task_lasso.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/multi_task_lasso_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/orthogonal_matching_pursuit.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/passive_aggressive_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/passive_aggressive_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/perceptron.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/poisson_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/ransac_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/ridge.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/ridge_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/ridge_classifier_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/ridge_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/sgd_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/sgd_one_class_svm.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/sgd_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/theil_sen_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/linear_model/tweedie_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/manifold/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/manifold/isomap.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/manifold/mds.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/manifold/spectral_embedding.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/manifold/tsne.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/metrics/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/metrics/classification.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/metrics/correlation.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/metrics/covariance.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/metrics/metrics_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/metrics/ranking.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/metrics/regression.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/mixture/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/mixture/bayesian_gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/mixture/gaussian_mixture.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/model_selection/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/model_selection/grid_search_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/model_selection/randomized_search_cv.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/multiclass/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/multiclass/one_vs_one_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/multiclass/one_vs_rest_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/multiclass/output_code_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/naive_bayes/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/naive_bayes/bernoulli_nb.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/naive_bayes/categorical_nb.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/naive_bayes/complement_nb.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/naive_bayes/gaussian_nb.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/naive_bayes/multinomial_nb.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neighbors/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neighbors/k_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neighbors/k_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neighbors/kernel_density.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neighbors/local_outlier_factor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neighbors/nearest_centroid.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neighbors/nearest_neighbors.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neighbors/neighborhood_components_analysis.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neighbors/radius_neighbors_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neighbors/radius_neighbors_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neural_network/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neural_network/bernoulli_rbm.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neural_network/mlp_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/neural_network/mlp_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/parameters/disable_distributed_hpo.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/parameters/disable_model_tracer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/parameters/enable_anonymous_sproc.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/pipeline/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/pipeline/pipeline.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/binarizer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/k_bins_discretizer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/label_encoder.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/max_abs_scaler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/min_max_scaler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/normalizer.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/one_hot_encoder.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/ordinal_encoder.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/polynomial_features.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/robust_scaler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/preprocessing/standard_scaler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/semi_supervised/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/semi_supervised/label_propagation.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/semi_supervised/label_spreading.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/svm/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/svm/linear_svc.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/svm/linear_svr.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/svm/nu_svc.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/svm/nu_svr.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/svm/svc.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/svm/svr.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/tree/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/tree/decision_tree_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/tree/decision_tree_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/tree/extra_tree_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/tree/extra_tree_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/xgboost/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/xgboost/xgb_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/xgboost/xgb_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/xgboost/xgbrf_classifier.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/modeling/xgboost/xgbrf_regressor.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/monitoring/_client/queries/record_count.ssql +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/monitoring/_client/queries/rmse.ssql +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/monitoring/explain_visualize.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/monitoring/shap.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/registry/__init__.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/registry/_manager/model_manager.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/registry/_manager/model_parameter_reconciler.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/registry/registry.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/utils/authentication.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/utils/connection_params.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/utils/html_utils.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/utils/sparse.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/utils/sql_client.py +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake_ml_python.egg-info/SOURCES.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake_ml_python.egg-info/dependency_links.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake_ml_python.egg-info/requires.txt +0 -0
- {snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake_ml_python.egg-info/top_level.txt +0 -0
|
@@ -1,11 +1,37 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
+
## 1.14.0
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
### Behavior Changes
|
|
8
|
+
|
|
9
|
+
### New Features
|
|
10
|
+
|
|
11
|
+
* ML Job: The `additional_payloads` argument is now **deprecated** in favor of `imports`.
|
|
12
|
+
|
|
13
|
+
## 1.13.0
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
### Behavior Changes
|
|
18
|
+
|
|
19
|
+
### New Features
|
|
20
|
+
|
|
21
|
+
* Registry: Log a HuggingFace model without having to load the model in memory using
|
|
22
|
+
the `huggingface_pipeline.HuggingFacePipelineModel`. Requires `huggingface_hub` package to installed.
|
|
23
|
+
To disable downloading HuggingFace repository, provide `download_snapshot=False` while creating the
|
|
24
|
+
`huggingface_pipeline.HuggingFacePipelineModel` object.
|
|
25
|
+
* Registry: Added support for XGBoost models to use `enable_categorical=True` with pandas DataFrame
|
|
26
|
+
* Registry: Added support to display privatelink inference endpoint in ModelVersion list services.
|
|
27
|
+
|
|
3
28
|
## 1.12.0
|
|
4
29
|
|
|
5
30
|
### Bug Fixes
|
|
6
31
|
|
|
7
32
|
* Registry: Fixed an issue where the string representation of dictionary-type output columns was being incorrectly
|
|
8
33
|
created during structured output deserialization. Now, the original data type is properly preserved.
|
|
34
|
+
* Registry: Fixed the inference server performance issue for wide (500+ features) and JSON inputs.
|
|
9
35
|
|
|
10
36
|
### Behavior Changes
|
|
11
37
|
|
{snowflake_ml_python-1.12.0/snowflake_ml_python.egg-info → snowflake_ml_python-1.14.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.14.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,38 @@ 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.14.0
|
|
414
|
+
|
|
415
|
+
### Bug Fixes
|
|
416
|
+
|
|
417
|
+
### Behavior Changes
|
|
418
|
+
|
|
419
|
+
### New Features
|
|
420
|
+
|
|
421
|
+
* ML Job: The `additional_payloads` argument is now **deprecated** in favor of `imports`.
|
|
422
|
+
|
|
423
|
+
## 1.13.0
|
|
424
|
+
|
|
425
|
+
### Bug Fixes
|
|
426
|
+
|
|
427
|
+
### Behavior Changes
|
|
428
|
+
|
|
429
|
+
### New Features
|
|
430
|
+
|
|
431
|
+
* Registry: Log a HuggingFace model without having to load the model in memory using
|
|
432
|
+
the `huggingface_pipeline.HuggingFacePipelineModel`. Requires `huggingface_hub` package to installed.
|
|
433
|
+
To disable downloading HuggingFace repository, provide `download_snapshot=False` while creating the
|
|
434
|
+
`huggingface_pipeline.HuggingFacePipelineModel` object.
|
|
435
|
+
* Registry: Added support for XGBoost models to use `enable_categorical=True` with pandas DataFrame
|
|
436
|
+
* Registry: Added support to display privatelink inference endpoint in ModelVersion list services.
|
|
437
|
+
|
|
413
438
|
## 1.12.0
|
|
414
439
|
|
|
415
440
|
### Bug Fixes
|
|
416
441
|
|
|
417
442
|
* Registry: Fixed an issue where the string representation of dictionary-type output columns was being incorrectly
|
|
418
443
|
created during structured output deserialization. Now, the original data type is properly preserved.
|
|
444
|
+
* Registry: Fixed the inference server performance issue for wide (500+ features) and JSON inputs.
|
|
419
445
|
|
|
420
446
|
### Behavior Changes
|
|
421
447
|
|
{snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.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,
|
{snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/jobs/_utils/constants.py
RENAMED
|
@@ -25,7 +25,7 @@ RESULT_PATH_DEFAULT_VALUE = f"{OUTPUT_STAGE_SUBPATH}/mljob_result.pkl"
|
|
|
25
25
|
DEFAULT_IMAGE_REPO = "/snowflake/images/snowflake_images"
|
|
26
26
|
DEFAULT_IMAGE_CPU = "st_plat/runtime/x86/runtime_image/snowbooks"
|
|
27
27
|
DEFAULT_IMAGE_GPU = "st_plat/runtime/x86/generic_gpu/runtime_image/snowbooks"
|
|
28
|
-
DEFAULT_IMAGE_TAG = "1.
|
|
28
|
+
DEFAULT_IMAGE_TAG = "1.8.0"
|
|
29
29
|
DEFAULT_ENTRYPOINT_PATH = "func.py"
|
|
30
30
|
|
|
31
31
|
# Percent of container memory to allocate for /dev/shm volume
|
|
@@ -234,10 +234,6 @@ def run_script(script_path: str, *script_args: Any, main_func: Optional[str] = N
|
|
|
234
234
|
if payload_dir and payload_dir not in sys.path:
|
|
235
235
|
sys.path.insert(0, payload_dir)
|
|
236
236
|
|
|
237
|
-
# Create a Snowpark session before running the script
|
|
238
|
-
# Session can be retrieved from using snowflake.snowpark.context.get_active_session()
|
|
239
|
-
session = Session.builder.configs(SnowflakeLoginOptions()).create() # noqa: F841
|
|
240
|
-
|
|
241
237
|
try:
|
|
242
238
|
|
|
243
239
|
if main_func:
|
|
@@ -287,6 +283,19 @@ def main(script_path: str, *script_args: Any, script_main_func: Optional[str] =
|
|
|
287
283
|
output_dir = os.path.dirname(result_abs_path)
|
|
288
284
|
os.makedirs(output_dir, exist_ok=True)
|
|
289
285
|
|
|
286
|
+
try:
|
|
287
|
+
import ray
|
|
288
|
+
|
|
289
|
+
ray.init(address="auto")
|
|
290
|
+
except ModuleNotFoundError:
|
|
291
|
+
warnings.warn("Ray is not installed, skipping Ray initialization", ImportWarning, stacklevel=1)
|
|
292
|
+
|
|
293
|
+
# Create a Snowpark session before starting
|
|
294
|
+
# Session can be retrieved from using snowflake.snowpark.context.get_active_session()
|
|
295
|
+
config = SnowflakeLoginOptions()
|
|
296
|
+
config["client_session_keep_alive"] = "True"
|
|
297
|
+
session = Session.builder.configs(config).create() # noqa: F841
|
|
298
|
+
|
|
290
299
|
try:
|
|
291
300
|
# Wait for minimum required instances if specified
|
|
292
301
|
min_instances_str = os.environ.get(MIN_INSTANCES_ENV_VAR) or "1"
|
|
@@ -342,6 +351,9 @@ def main(script_path: str, *script_args: Any, script_main_func: Optional[str] =
|
|
|
342
351
|
f"Failed to serialize JSON result to {result_json_path}: {json_exc}", RuntimeWarning, stacklevel=1
|
|
343
352
|
)
|
|
344
353
|
|
|
354
|
+
# Close the session after serializing the result
|
|
355
|
+
session.close()
|
|
356
|
+
|
|
345
357
|
|
|
346
358
|
if __name__ == "__main__":
|
|
347
359
|
# Parse command line arguments
|
|
@@ -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,12 @@ 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
|
+
if len(containers) == 1:
|
|
87
|
+
return cast(dict[str, Any], containers[0])
|
|
88
|
+
try:
|
|
89
|
+
container_spec = next(c for c in containers if c["name"] == constants.DEFAULT_CONTAINER_NAME)
|
|
90
|
+
except StopIteration:
|
|
91
|
+
raise ValueError(f"Container '{constants.DEFAULT_CONTAINER_NAME}' not found in job {self.name}")
|
|
87
92
|
return cast(dict[str, Any], container_spec)
|
|
88
93
|
|
|
89
94
|
@property
|
|
@@ -160,7 +165,7 @@ class MLJob(Generic[T], SerializableSessionMixin):
|
|
|
160
165
|
Returns:
|
|
161
166
|
The job's execution logs.
|
|
162
167
|
"""
|
|
163
|
-
logs = _get_logs(self._session, self.id, limit, instance_id, verbose)
|
|
168
|
+
logs = _get_logs(self._session, self.id, limit, instance_id, self._container_spec["name"], verbose)
|
|
164
169
|
assert isinstance(logs, str) # mypy
|
|
165
170
|
if as_list:
|
|
166
171
|
return logs.splitlines()
|
|
@@ -278,7 +283,12 @@ def _get_service_spec(session: snowpark.Session, job_id: str) -> dict[str, Any]:
|
|
|
278
283
|
|
|
279
284
|
@telemetry.send_api_usage_telemetry(project=_PROJECT, func_params_to_log=["job_id", "limit", "instance_id"])
|
|
280
285
|
def _get_logs(
|
|
281
|
-
session: snowpark.Session,
|
|
286
|
+
session: snowpark.Session,
|
|
287
|
+
job_id: str,
|
|
288
|
+
limit: int = -1,
|
|
289
|
+
instance_id: Optional[int] = None,
|
|
290
|
+
container_name: str = constants.DEFAULT_CONTAINER_NAME,
|
|
291
|
+
verbose: bool = True,
|
|
282
292
|
) -> str:
|
|
283
293
|
"""
|
|
284
294
|
Retrieve the job's execution logs.
|
|
@@ -288,6 +298,7 @@ def _get_logs(
|
|
|
288
298
|
limit: The maximum number of lines to return. Negative values are treated as no limit.
|
|
289
299
|
session: The Snowpark session to use. If none specified, uses active session.
|
|
290
300
|
instance_id: Optional instance ID to get logs from a specific instance.
|
|
301
|
+
container_name: The container name to get logs from a specific container.
|
|
291
302
|
verbose: Whether to return the full log or just the portion between START and END messages.
|
|
292
303
|
|
|
293
304
|
Returns:
|
|
@@ -308,7 +319,7 @@ def _get_logs(
|
|
|
308
319
|
params: list[Any] = [
|
|
309
320
|
job_id,
|
|
310
321
|
0 if instance_id is None else instance_id,
|
|
311
|
-
|
|
322
|
+
container_name,
|
|
312
323
|
]
|
|
313
324
|
if limit > 0:
|
|
314
325
|
params.append(limit)
|
|
@@ -334,7 +345,7 @@ def _get_logs(
|
|
|
334
345
|
job_id,
|
|
335
346
|
limit=limit,
|
|
336
347
|
instance_id=instance_id if instance_id else 0,
|
|
337
|
-
container_name=
|
|
348
|
+
container_name=container_name,
|
|
338
349
|
)
|
|
339
350
|
full_log = os.linesep.join(row[0] for row in logs)
|
|
340
351
|
|
|
@@ -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()))
|
|
@@ -231,6 +232,7 @@ def submit_file(
|
|
|
231
232
|
enable_metrics (bool): Whether to enable metrics publishing for the job.
|
|
232
233
|
query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
|
|
233
234
|
spec_overrides (dict): A dictionary of overrides for the service spec.
|
|
235
|
+
imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
|
|
234
236
|
|
|
235
237
|
Returns:
|
|
236
238
|
An object representing the submitted job.
|
|
@@ -285,6 +287,7 @@ def submit_directory(
|
|
|
285
287
|
enable_metrics (bool): Whether to enable metrics publishing for the job.
|
|
286
288
|
query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
|
|
287
289
|
spec_overrides (dict): A dictionary of overrides for the service spec.
|
|
290
|
+
imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
|
|
288
291
|
|
|
289
292
|
Returns:
|
|
290
293
|
An object representing the submitted job.
|
|
@@ -340,6 +343,7 @@ def submit_from_stage(
|
|
|
340
343
|
enable_metrics (bool): Whether to enable metrics publishing for the job.
|
|
341
344
|
query_warehouse (str): The query warehouse to use. Defaults to session warehouse.
|
|
342
345
|
spec_overrides (dict): A dictionary of overrides for the service spec.
|
|
346
|
+
imports (list[Union[tuple[str, str], tuple[str]]]): A list of additional payloads used in the job.
|
|
343
347
|
|
|
344
348
|
Returns:
|
|
345
349
|
An object representing the submitted job.
|
|
@@ -403,6 +407,8 @@ def _submit_job(
|
|
|
403
407
|
"num_instances", # deprecated
|
|
404
408
|
"target_instances",
|
|
405
409
|
"min_instances",
|
|
410
|
+
"enable_metrics",
|
|
411
|
+
"query_warehouse",
|
|
406
412
|
],
|
|
407
413
|
)
|
|
408
414
|
def _submit_job(
|
|
@@ -434,8 +440,10 @@ def _submit_job(
|
|
|
434
440
|
|
|
435
441
|
Raises:
|
|
436
442
|
ValueError: If database or schema value(s) are invalid
|
|
443
|
+
RuntimeError: If schema is not specified in session context or job submission
|
|
444
|
+
snowpark.exceptions.SnowparkSQLException: if failed to upload payload
|
|
437
445
|
"""
|
|
438
|
-
session = session
|
|
446
|
+
session = _ensure_session(session)
|
|
439
447
|
|
|
440
448
|
# Check for deprecated args
|
|
441
449
|
if "num_instances" in kwargs:
|
|
@@ -444,6 +452,13 @@ def _submit_job(
|
|
|
444
452
|
)
|
|
445
453
|
target_instances = max(target_instances, kwargs.pop("num_instances"))
|
|
446
454
|
|
|
455
|
+
imports = None
|
|
456
|
+
if "additional_payloads" in kwargs:
|
|
457
|
+
logger.warning(
|
|
458
|
+
"'additional_payloads' is deprecated and will be removed in a future release. Use 'imports' instead."
|
|
459
|
+
)
|
|
460
|
+
imports = kwargs.pop("additional_payloads")
|
|
461
|
+
|
|
447
462
|
# Use kwargs for less common optional parameters
|
|
448
463
|
database = kwargs.pop("database", None)
|
|
449
464
|
schema = kwargs.pop("schema", None)
|
|
@@ -454,10 +469,7 @@ def _submit_job(
|
|
|
454
469
|
spec_overrides = kwargs.pop("spec_overrides", None)
|
|
455
470
|
enable_metrics = kwargs.pop("enable_metrics", True)
|
|
456
471
|
query_warehouse = kwargs.pop("query_warehouse", session.get_current_warehouse())
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
if additional_payloads:
|
|
460
|
-
logger.warning("'additional_payloads' is in private preview since 1.9.1. Do not use it in production.")
|
|
472
|
+
imports = kwargs.pop("imports", None) or imports
|
|
461
473
|
|
|
462
474
|
# Warn if there are unknown kwargs
|
|
463
475
|
if kwargs:
|
|
@@ -486,10 +498,33 @@ def _submit_job(
|
|
|
486
498
|
stage_name = f"@{'.'.join(filter(None, stage_path_parts[:3]))}"
|
|
487
499
|
stage_path = pathlib.PurePosixPath(f"{stage_name}{stage_path_parts[-1].rstrip('/')}/{job_name}")
|
|
488
500
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
501
|
+
try:
|
|
502
|
+
# Upload payload
|
|
503
|
+
uploaded_payload = payload_utils.JobPayload(
|
|
504
|
+
source, entrypoint=entrypoint, pip_requirements=pip_requirements, additional_payloads=imports
|
|
505
|
+
).upload(session, stage_path)
|
|
506
|
+
except snowpark.exceptions.SnowparkSQLException as e:
|
|
507
|
+
if e.sql_error_code == 90106:
|
|
508
|
+
raise RuntimeError(
|
|
509
|
+
"Please specify a schema, either in the session context or as a parameter in the job submission"
|
|
510
|
+
)
|
|
511
|
+
raise
|
|
512
|
+
|
|
513
|
+
# FIXME: Temporary patches, remove this after v1 is deprecated
|
|
514
|
+
if target_instances > 1:
|
|
515
|
+
default_spec_overrides = {
|
|
516
|
+
"spec": {
|
|
517
|
+
"endpoints": [
|
|
518
|
+
{"name": "ray-dashboard-endpoint", "port": 12003, "protocol": "TCP"},
|
|
519
|
+
]
|
|
520
|
+
},
|
|
521
|
+
}
|
|
522
|
+
if spec_overrides:
|
|
523
|
+
spec_overrides = spec_utils.merge_patch(
|
|
524
|
+
default_spec_overrides, spec_overrides, display_name="spec_overrides"
|
|
525
|
+
)
|
|
526
|
+
else:
|
|
527
|
+
spec_overrides = default_spec_overrides
|
|
493
528
|
|
|
494
529
|
if feature_flags.FeatureFlags.USE_SUBMIT_JOB_V2.is_enabled():
|
|
495
530
|
# Add default env vars (extracted from spec_utils.generate_service_spec)
|
|
@@ -651,3 +686,17 @@ def _do_submit_job_v2(
|
|
|
651
686
|
actual_job_id = query_helper.run_query(session, query_template, params=params)[0][0]
|
|
652
687
|
|
|
653
688
|
return get_job(actual_job_id, session=session)
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
def _ensure_session(session: Optional[snowpark.Session]) -> snowpark.Session:
|
|
692
|
+
try:
|
|
693
|
+
session = session or get_active_session()
|
|
694
|
+
except snowpark.exceptions.SnowparkSessionException as e:
|
|
695
|
+
if "More than one active session" in e.message:
|
|
696
|
+
raise RuntimeError(
|
|
697
|
+
"More than one active session is found. Please specify the session explicitly as a parameter"
|
|
698
|
+
) from None
|
|
699
|
+
if "No default Session is found" in e.message:
|
|
700
|
+
raise RuntimeError("No active session is found. Please create a session") from None
|
|
701
|
+
raise
|
|
702
|
+
return session
|
{snowflake_ml_python-1.12.0 → snowflake_ml_python-1.14.0}/snowflake/ml/lineage/lineage_node.py
RENAMED
|
@@ -83,7 +83,6 @@ class LineageNode(mixins.SerializableSessionMixin):
|
|
|
83
83
|
raise NotImplementedError()
|
|
84
84
|
|
|
85
85
|
@telemetry.send_api_usage_telemetry(project=_PROJECT)
|
|
86
|
-
@snowpark._internal.utils.private_preview(version="1.5.3")
|
|
87
86
|
def lineage(
|
|
88
87
|
self,
|
|
89
88
|
direction: Literal["upstream", "downstream"] = "downstream",
|
|
@@ -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
|
)
|
|
@@ -787,7 +788,7 @@ class ModelVersion(lineage_node.LineageNode):
|
|
|
787
788
|
inference_engine_args: service_ops.InferenceEngineArgs,
|
|
788
789
|
gpu_requests: Optional[Union[str, int]] = None,
|
|
789
790
|
) -> Optional[service_ops.InferenceEngineArgs]:
|
|
790
|
-
"""Enrich inference engine args with
|
|
791
|
+
"""Enrich inference engine args with tensor parallelism settings.
|
|
791
792
|
|
|
792
793
|
Args:
|
|
793
794
|
inference_engine_args: The original inference engine args
|
|
@@ -802,21 +803,6 @@ class ModelVersion(lineage_node.LineageNode):
|
|
|
802
803
|
if inference_engine_args.inference_engine_args_override is None:
|
|
803
804
|
inference_engine_args.inference_engine_args_override = []
|
|
804
805
|
|
|
805
|
-
# Get model stage path and strip off "snow://" prefix
|
|
806
|
-
model_stage_path = self._model_ops.get_model_version_stage_path(
|
|
807
|
-
database_name=None,
|
|
808
|
-
schema_name=None,
|
|
809
|
-
model_name=self._model_name,
|
|
810
|
-
version_name=self._version_name,
|
|
811
|
-
)
|
|
812
|
-
|
|
813
|
-
# Strip "snow://" prefix
|
|
814
|
-
if model_stage_path.startswith("snow://"):
|
|
815
|
-
model_stage_path = model_stage_path.replace("snow://", "", 1)
|
|
816
|
-
|
|
817
|
-
# Always overwrite the model key by appending
|
|
818
|
-
inference_engine_args.inference_engine_args_override.append(f"--model={model_stage_path}")
|
|
819
|
-
|
|
820
806
|
gpu_count = None
|
|
821
807
|
|
|
822
808
|
# Set tensor-parallelism if gpu_requests is specified
|
|
@@ -47,6 +47,8 @@ class ServiceInfo(TypedDict):
|
|
|
47
47
|
class ModelOperator:
|
|
48
48
|
INFERENCE_SERVICE_ENDPOINT_NAME = "inference"
|
|
49
49
|
INGRESS_ENDPOINT_URL_SUFFIX = "snowflakecomputing.app"
|
|
50
|
+
# app-service-privatelink might not contain "snowflakecomputing" in the url - using the minimum required substring
|
|
51
|
+
PRIVATELINK_INGRESS_ENDPOINT_URL_SUBSTRING = "privatelink.snowflake"
|
|
50
52
|
|
|
51
53
|
def __init__(
|
|
52
54
|
self,
|
|
@@ -612,6 +614,36 @@ class ModelOperator:
|
|
|
612
614
|
statement_params=statement_params,
|
|
613
615
|
)
|
|
614
616
|
|
|
617
|
+
def _is_privatelink_connection(self) -> bool:
|
|
618
|
+
"""Detect if the current session is using a privatelink connection."""
|
|
619
|
+
try:
|
|
620
|
+
host = self._session.connection.host
|
|
621
|
+
return ModelOperator.PRIVATELINK_INGRESS_ENDPOINT_URL_SUBSTRING in host
|
|
622
|
+
except AttributeError:
|
|
623
|
+
return False
|
|
624
|
+
|
|
625
|
+
def _extract_and_validate_ingress_url(self, res_row: "row.Row") -> Optional[str]:
|
|
626
|
+
"""Extract and validate ingress URL from endpoint row."""
|
|
627
|
+
url_value = res_row[self._service_client.MODEL_INFERENCE_SERVICE_ENDPOINT_INGRESS_URL_COL_NAME]
|
|
628
|
+
if url_value is None:
|
|
629
|
+
return None
|
|
630
|
+
url_str = str(url_value)
|
|
631
|
+
return url_str if url_str.endswith(ModelOperator.INGRESS_ENDPOINT_URL_SUFFIX) else None
|
|
632
|
+
|
|
633
|
+
def _extract_and_validate_privatelink_url(self, res_row: "row.Row") -> Optional[str]:
|
|
634
|
+
"""Extract and validate privatelink ingress URL from endpoint row."""
|
|
635
|
+
# Check if the privatelink_ingress_url column exists
|
|
636
|
+
col_name = self._service_client.MODEL_INFERENCE_SERVICE_ENDPOINT_PRIVATELINK_INGRESS_URL_COL_NAME
|
|
637
|
+
if col_name not in res_row:
|
|
638
|
+
# Column doesn't exist in query result for non-Business Critical accounts
|
|
639
|
+
return None
|
|
640
|
+
|
|
641
|
+
url_value = res_row[col_name]
|
|
642
|
+
if url_value is None:
|
|
643
|
+
return None
|
|
644
|
+
url_str = str(url_value)
|
|
645
|
+
return url_str if ModelOperator.PRIVATELINK_INGRESS_ENDPOINT_URL_SUBSTRING in url_str else None
|
|
646
|
+
|
|
615
647
|
def show_services(
|
|
616
648
|
self,
|
|
617
649
|
*,
|
|
@@ -644,8 +676,10 @@ class ModelOperator:
|
|
|
644
676
|
fully_qualified_service_names = [str(service) for service in json_array if "MODEL_BUILD_" not in service]
|
|
645
677
|
|
|
646
678
|
result: list[ServiceInfo] = []
|
|
679
|
+
is_privatelink_connection = self._is_privatelink_connection()
|
|
680
|
+
|
|
647
681
|
for fully_qualified_service_name in fully_qualified_service_names:
|
|
648
|
-
|
|
682
|
+
inference_endpoint: Optional[str] = None
|
|
649
683
|
db, schema, service_name = sql_identifier.parse_fully_qualified_name(fully_qualified_service_name)
|
|
650
684
|
statuses = self._service_client.get_service_container_statuses(
|
|
651
685
|
database_name=db, schema_name=schema, service_name=service_name, statement_params=statement_params
|
|
@@ -659,17 +693,23 @@ class ModelOperator:
|
|
|
659
693
|
):
|
|
660
694
|
if (
|
|
661
695
|
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
|
|
696
|
+
!= self.INFERENCE_SERVICE_ENDPOINT_NAME
|
|
664
697
|
):
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
698
|
+
continue
|
|
699
|
+
|
|
700
|
+
ingress_url = self._extract_and_validate_ingress_url(res_row)
|
|
701
|
+
privatelink_ingress_url = self._extract_and_validate_privatelink_url(res_row)
|
|
702
|
+
|
|
703
|
+
if is_privatelink_connection and privatelink_ingress_url is not None:
|
|
704
|
+
inference_endpoint = privatelink_ingress_url
|
|
705
|
+
else:
|
|
706
|
+
inference_endpoint = ingress_url
|
|
707
|
+
|
|
670
708
|
result.append(
|
|
671
709
|
ServiceInfo(
|
|
672
|
-
name=fully_qualified_service_name,
|
|
710
|
+
name=fully_qualified_service_name,
|
|
711
|
+
status=service_status.value,
|
|
712
|
+
inference_endpoint=inference_endpoint,
|
|
673
713
|
)
|
|
674
714
|
)
|
|
675
715
|
|