Impostazione dell'analisi del modello Tensorflow

Configurazione

TFMA memorizza la sua configurazione in un protocollo serializzato su JSON. Questo protocollo consolida la configurazione richiesta per i dati di input, i dati di output, le specifiche del modello, le specifiche metriche e le specifiche di slicing.

Tutte le pipeline TFMA sono associate a un modello di base (primario) e a zero o più modelli candidati (secondari). La linea di base e il modello candidato vengono definiti dall'utente all'inizio della pipeline e ciascuno richiede un nome univoco. Di seguito sono riportati esempi di impostazioni di configurazione tipiche che un utente può utilizzare:

  • Valutazione del singolo modello:
    • N/A (ovvero senza nome)
  • Valutazione basata sulla convalida:
    • baseline
    • candidate
  • Valutazione del confronto dei modelli:
    • my_model_a
    • my_model_b

Specifiche del modello

Le specifiche del modello sono di tipo tfma.ModelSpec e vengono utilizzate per definire la posizione di un modello e altri parametri specifici del modello. Ad esempio, quelle che seguono sono le impostazioni tipiche che dovrebbero essere configurate prima di eseguire una valutazione:

  • name - nome del modello (se vengono utilizzati più modelli)
  • signature_name : nome della firma utilizzata per le previsioni (l'impostazione predefinita è serving_default ). Utilizzare eval se si utilizza un EvalSavedModel.
  • label_key - nome della funzione associata all'etichetta.
  • example_weight_key - nome della funzione associata al peso di esempio.

Specifiche metriche

Le specifiche delle metriche sono di tipo tfma.MetricsSpec e vengono utilizzate per configurare le metriche che verranno calcolate come parte della valutazione. Diversi problemi di machine learning utilizzano diversi tipi di metriche e TFMA offre molte opzioni per la configurazione e la personalizzazione delle metriche calcolate. Poiché le metriche costituiscono una parte molto importante del TFMA, vengono discusse in dettaglio separatamente nella sezione metriche .

Specifiche di affettatura

Le specifiche di suddivisione sono di tipo tfma.SlicingSpec e vengono utilizzate per configurare i criteri di suddivisione che verranno utilizzati durante la valutazione. L'affettamento può essere eseguito tramite feature_keys , feature_values ​​o entrambi. Alcuni esempi di specifiche di slicing sono i seguenti:

  • {}
    • Sezione composta dai dati complessivi.
  • { feature_keys: ["country"] }
    • Sezioni per tutti i valori nella funzione "paese". Ad esempio, potremmo ottenere porzioni "country:us", "country:jp", ecc.
  • { feature_values: [{key: "country", value: "us"}] }
    • Sezione composta da "paese:noi".
  • { feature_keys: ["country", "city"] }
    • Sezioni per tutti i valori nella caratteristica "paese" incrociate con tutti i valori nella caratteristica "città" (nota che questo potrebbe essere costoso).
  • { feature_keys: ["country"] feature_values: [{key: "age", value: "20"}] }
    • Sezioni per tutti i valori nella caratteristica "paese" incrociati con il valore "età:20"

Tieni presente che le chiavi funzione possono essere funzioni trasformate o funzioni di input non elaborate. Per ulteriori informazioni, vedere tfma.SlicingSpec .

EvalSharedModel

Oltre alle impostazioni di configurazione, TFMA richiede anche la creazione di un'istanza di tfma.EvalSharedModel per condividere un modello tra più thread nello stesso processo. L'istanza del modello condiviso include informazioni sul tipo di modello (keras, ecc.) e su come caricare e configurare il modello dalla sua posizione salvata sul disco (ad esempio tag, ecc.). L'API tfma.default_eval_shared_model può essere utilizzata per creare un'istanza predefinita in base a un percorso e a un set di tag.