Configuração
TFMA armazena sua configuração em um proto que é serializado para JSON. Este proto consolida a configuração necessária para dados de entrada, dados de saída, especificações de modelo, especificações métricas e especificações de fracionamento.
Todos os pipelines TFMA estão associados a um modelo de linha de base (primário) e zero ou mais modelos candidatos (secundários). A linha de base e o modelo candidato são definidos pelo usuário no início do pipeline e cada um requer um nome exclusivo. A seguir estão exemplos de configurações típicas que um usuário pode usar:
- Avaliação de modelo único:
- N / A (ou seja, sem nome)
- Avaliação baseada em validação:
-
baseline
-
candidate
-
- Avaliação de comparação de modelo:
-
my_model_a
-
my_model_b
-
Especificações do modelo
Ficha do modelo são do tipo tfma.ModelSpec
e são usados para definir a localização de um modelo, bem como outros parâmetros modelo específicos. Por exemplo, a seguir estão as configurações típicas que precisam ser definidas antes de executar uma avaliação:
-
name
- nome do modelo (se vários modelos utilizados) -
signature_name
- nome da assinatura utilizada para previsões (o padrão éserving_default
). Useeval
se estiver usando um EvalSavedModel. -
label_key
- nome do recurso associado ao rótulo. -
example_weight_key
- nome do recurso assocated com o exemplo de peso.
Especificações de métricas
Especificações métricas são do tipo tfma.MetricsSpec
e são utilizados para configurar as métricas que serão calculados como parte da avaliação. Diferentes problemas de aprendizado de máquina usam diferentes tipos de métricas e o TFMA oferece muitas opções para configurar e personalizar as métricas que são calculadas. Desde métricas são uma parte muito grande de TFMA, eles são discutidos em detalhe separadamente em métricas .
Especificações de corte
Especificações de corte são do tipo tfma.SlicingSpec
e são usados para configurar os critérios de fatias que serão utilizados durante a avaliação. Corte pode ser feito tanto por feature_keys
, feature_values
, ou ambos. Alguns exemplos de especificações de fatiamento são os seguintes:
-
{}
- Fatia que consiste em dados gerais.
-
{ feature_keys: ["country"] }
- Fatias para todos os valores no recurso "país". Por exemplo, podemos obter as fatias "country: us", "country: jp", etc.
-
{ feature_values: [{key: "country", value: "us"}] }
- Fatia que consiste em "país: nós".
-
{ feature_keys: ["country", "city"] }
- Fatias para todos os valores no recurso "país" cruzadas com todos os valores no recurso "cidade" (observe que isso pode ser caro).
-
{ feature_keys: ["country"] feature_values: [{key: "age", value: "20"}] }
- Fatias para todos os valores no recurso "país" cruzadas com o valor "idade: 20"
Observe que as teclas de recurso podem ser recursos transformados ou recursos de entrada brutos. Veja tfma.SlicingSpec
para mais informações.
EvalSharedModel
Além das definições de configuração, TFMA também exige que uma instância de um tfma.EvalSharedModel
ser criados para a partilha de um modelo entre os vários segmentos no mesmo processo. A instância do modelo compartilhado inclui informações sobre o tipo de modelo (keras, etc) e como carregar e configurar o modelo de seu local salvo no disco (por exemplo, tags, etc). O tfma.default_eval_shared_model
API pode ser usado para criar uma instância padrão dado um caminho e um conjunto de tags.