Exemple #1
0
def test_mlflow_model_from_model_version(spark: SparkSession, mlflow_client):
    # peg to a particular version of a model
    spark.sql("CREATE MODEL resnet_m_fizz USING 'mlflow://rikai-test/1'")
    check_ml_predict(spark, "resnet_m_fizz")

    # use the latest version in a given stage (omitted means none)
    spark.sql("CREATE MODEL resnet_m_buzz USING 'mlflow://rikai-test/'")
    check_ml_predict(spark, "resnet_m_buzz")
Exemple #2
0
def test_mlflow_model_from_runid(
    spark: SparkSession, mlflow_client: MlflowClient
):
    run_id = mlflow_client.search_model_versions("name='rikai-test'")[0].run_id

    spark.sql(
        "CREATE MODEL resnet_m_foo USING 'mlflow://{}/model'".format(run_id)
    )
    check_ml_predict(spark, "resnet_m_foo")

    # if no path is given but only one artifact exists then use it by default
    spark.sql("CREATE MODEL resnet_m_bar USING 'mlflow://{}'".format(run_id))
    check_ml_predict(spark, "resnet_m_bar")
Exemple #3
0
def test_mlflow_model_without_custom_logger(spark: SparkSession,
                                            mlflow_client: MlflowClient):
    spark.sql("CREATE MODEL vanilla_ice USING 'mlflow:/vanilla-mlflow/1'")
    check_ml_predict(spark, "vanilla_ice")

    schema = ("STRUCT<boxes:ARRAY<ARRAY<float>>,"
              "scores:ARRAY<float>,labels:ARRAY<int>>")
    pre_processing = ("rikai.contrib.torch.transforms."
                      "fasterrcnn_resnet50_fpn.pre_processing")
    post_processing = ("rikai.contrib.torch.transforms."
                       "fasterrcnn_resnet50_fpn.post_processing")
    spark.sql(("CREATE MODEL vanilla_fire "
               "FLAVOR pytorch "
               "PREPROCESSOR '{}' "
               "POSTPROCESSOR '{}' "
               "RETURNS {} "
               "USING 'mlflow:/vanilla-mlflow-no-tags/1'").format(
                   pre_processing, post_processing, schema))
    check_ml_predict(spark, "vanilla_fire")
Exemple #4
0
def test_yaml_model(spark: SparkSession, resnet_spec: str):
    spark.sql("CREATE MODEL resnet_m USING 'file://{}'".format(resnet_spec))
    check_ml_predict(spark, "resnet_m")