Compartilhar via


Exibir a linhagem do repositório de recursos

Quando você registra um modelo usando FeatureEngineeringClient.log_model, os recursos usados no modelo são rastreados automaticamente e podem ser exibidos na guia Linhagem do Explorador do Catálogo. Além das tabelas de recursos, os UDFs do Python usados para calcular recursos sob demanda também são acompanhados.

Como capturar a linhagem de uma tabela de recursos, uma função ou um modelo

As funções e tabelas de recursos de acompanhamento de informações de linhagem usadas em modelos são capturadas automaticamente quando você chama log_model. Confira o código de exemplo a seguir.

from databricks.feature_engineering import FeatureEngineeringClient, FeatureLookup, FeatureFunction
fe = FeatureEngineeringClient()

features = [
    FeatureLookup(
        table_name = "main.on_demand_demo.restaurant_features",
        feature_names = ["latitude", "longitude"],
        rename_outputs={"latitude": "restaurant_latitude", "longitude": "restaurant_longitude"},
        lookup_key = "restaurant_id",
        timestamp_lookup_key = "ts"
    ),
    FeatureFunction(
        udf_name="main.on_demand_demo.extract_user_latitude",
        output_name="user_latitude",
        input_bindings={"blob": "json_blob"},
    ),
    FeatureFunction(
        udf_name="main.on_demand_demo.extract_user_longitude",
        output_name="user_longitude",
        input_bindings={"blob": "json_blob"},
    ),
    FeatureFunction(
        udf_name="main.on_demand_demo.haversine_distance",
        output_name="distance",
        input_bindings={"x1": "restaurant_longitude", "y1": "restaurant_latitude", "x2": "user_longitude", "y2": "user_latitude"},
    )
]

training_set = fe.create_training_set(
    label_df, feature_lookups=features, label="label", exclude_columns=["restaurant_id", "json_blob", "restaurant_latitude", "restaurant_longitude", "user_latitude", "user_longitude", "ts"]
)

class IsClose(mlflow.pyfunc.PythonModel):
    def predict(self, ctx, inp):
        return (inp['distance'] < 2.5).values

model_name = "fe_packaged_model"
mlflow.set_registry_uri("databricks-uc")

fe.log_model(
    IsClose(),
    model_name,
    flavor=mlflow.pyfunc,
    training_set=training_set,
    registered_model_name=registered_model_name
)

Exibir a linhagem de uma tabela de recursos, um modelo ou uma função

Para exibir a linhagem de uma tabela de recursos, um modelo ou uma função, siga estas etapas:

  1. Navegue até a tabela, a versão do modelo ou a página de funções no Explorador do Catálogo.

  2. Selecione a guia Linhagem. A barra lateral esquerda mostra os componentes do Catálogo do Unity que foram registrados com esta tabela, versão do modelo ou função.

    Lineage tab on model page in Catalog Explorer

  3. Clique em Ver grafo de linhagem. O grafo de linhagem é exibido. Para obter detalhes sobre como explorar o grafo de linhagem, consulte Capturar e explorar linhagem.

    lineage screen

  4. Para fechar o grafo de linhagem, clique em close button for lineage graph no canto superior direito.