Partilhar via


Governança e linhagem de funcionalidades

Esta página descreve as capacidades de governança e linhagem da engenharia de características no Unity Catalog.

Para obter informações sobre como monitorar o desempenho de um modelo servido e alterações nos dados da tabela de recursos, consulte Criação de perfil de dados.

Controlar o acesso a tabelas de recursos

O controle de acesso para tabelas de recursos no Unity Catalog é gerenciado pelo Unity Catalog. Veja os privilégios do Unity Catalog.

Exibir tabela de recursos, função e linhagem de modelo

Quando se regista um modelo usando FeatureEngineeringClient.log_model, as características utilizadas no modelo são rastreadas automaticamente e podem ser exibidas no separador Linhagem do Catalog Explorer. Além das tabelas de funcionalidades, as Funções Definidas pelo Usuário (UDFs) em Python, que são usadas para calcular funcionalidades sob demanda, também são monitorizadas.

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

A captura automática das tabelas de características e funções usadas em modelos para o rastreamento de informações de linhagem ocorre quando se chama log_model. Consulte 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, modelo ou função

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

  1. Navegue até a tabela, a versão do modelo ou a página da função no Gerenciador de Catálogos.

  2. Selecione o separador Linhagem . A barra lateral esquerda mostra os componentes do Catálogo Unity associados a esta tabela, a versão do modelo ou a função.

    guia Linhagem na página do modelo no Catalog Explorer

  3. Clique Ver gráfico de linhagem. O gráfico de linhagem é exibido. Para obter detalhes sobre como explorar o gráfico de linhagem, consulte Exibir linhagem de dados usando o Catálogo Unity.

    ecrã de linhagem

  4. Para fechar o gráfico de linhagem, clique no botão fechar para o gráfico de linhagem no canto superior direito.