Configuração de análise de modelo Tensorflow

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 ). Use eval 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.