Configuração
O TFMA armazena sua configuração em um proto serializado em 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 fatiamento.
Todos os pipelines do TFMA estão associados a um modelo de linha de base (primário) e a 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 exige 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 modelos:
-
my_model_a
-
my_model_b
-
Especificações do modelo
As especificações do modelo são do tipo tfma.ModelSpec
e são usadas para definir a localização de um modelo, bem como outros parâmetros específicos do modelo. Por exemplo, a seguir estão configurações típicas que precisariam ser definidas antes de executar uma avaliação:
-
name
- nome do modelo (se vários modelos forem usados) -
signature_name
– nome da assinatura usada 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 associado ao peso de exemplo.
Especificações de métricas
As especificações de métricas são do tipo tfma.MetricsSpec
e são usadas para configurar as métricas que serão calculadas 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. Como as métricas são uma grande parte do TFMA, elas são discutidas em detalhes separadamente em métricas .
Especificações de corte
As especificações de fatiamento são do tipo tfma.SlicingSpec
e são usadas para configurar os critérios de fatias que serão usados durante a avaliação. O fatiamento pode ser feito por feature_keys
, feature_values
ou ambos. Alguns exemplos de especificações de fatiamento são os seguintes:
-
{}
- Fatia composta por dados gerais.
-
{ feature_keys: ["country"] }
- Fatias para todos os valores no recurso "país". Por exemplo, podemos obter fatias “country:us”, “country:jp”, etc.
-
{ feature_values: [{key: "country", value: "us"}] }
- Fatia composta por "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" cruzados com o valor "idade:20"
Observe que as chaves de recursos podem ser recursos transformados ou recursos de entrada brutos. Consulte tfma.SlicingSpec
para obter mais informações.
EvalSharedModel
Além das definições de configuração, o TFMA também exige que uma instância de tfma.EvalSharedModel
seja criada para compartilhar um modelo entre vários threads 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 a partir de seu local salvo no disco (por exemplo, tags, etc.). A API tfma.default_eval_shared_model
pode ser usada para criar uma instância padrão com um caminho e um conjunto de tags.