Konfiguracja
TFMA przechowuje swoją konfigurację w proto , który jest serializowany do JSON. To proto konsoliduje konfigurację wymaganą dla danych wejściowych, danych wyjściowych, specyfikacji modelu, specyfikacji metrycznych i specyfikacji krojenia.
Wszystkie rurociągi TFMA są powiązane z modelem bazowym (pierwotnym) i zerowym lub większą liczbą modeli kandydujących (wtórnych). Model bazowy i model potencjalny są definiowane przez użytkownika na początku potoku i każdy wymaga unikatowej nazwy. Poniżej znajdują się przykłady typowych ustawień konfiguracyjnych, z których może skorzystać użytkownik:
- Ocena pojedynczego modelu:
- N/A (tj. bez nazwy)
- Ocena oparta na walidacji:
-
baseline -
candidate
-
- Ocena porównania modeli:
-
my_model_a -
my_model_b
-
Specyfikacje modelu
Specyfikacje modelu są typu tfma.ModelSpec i służą do definiowania lokalizacji modelu, a także innych parametrów specyficznych dla modelu. Na przykład poniżej znajdują się typowe ustawienia, które należy skonfigurować przed uruchomieniem oceny:
-
name- nazwa modelu (jeśli używanych jest wiele modeli) -
signature_name- nazwa sygnatury używana do predykcji (domyślnie jest toserving_default). Użyjevaljeśli używasz EvalSavedModel. -
label_key- nazwa cechy powiązanej z etykietą. -
example_weight_key- nazwa cechy powiązana z przykładową wagą.
Specyfikacje metryk
Specyfikacje metryk są typu tfma.MetricsSpec i służą do konfigurowania metryk, które będą obliczane w ramach oceny. Różne problemy związane z uczeniem maszynowym wykorzystują różne typy metryk, a TFMA oferuje wiele opcji konfigurowania i dostosowywania obliczanych metryk. Ponieważ metryki stanowią bardzo dużą część TFMA, zostały szczegółowo omówione osobno w metrykach .
Specyfikacje krojenia
Specyfikacje krojenia są typu tfma.SlicingSpec i służą do konfigurowania kryteriów plasterków, które będą używane podczas oceny. Krojenie można wykonać za pomocą feature_keys , feature_values lub obu. Oto kilka przykładów specyfikacji krojenia:
-
{}- Wycinek składający się z danych ogólnych.
-
{ feature_keys: ["country"] }- Wycinki dla wszystkich wartości w funkcji „kraj”. Na przykład możemy otrzymać plasterki „kraj:nas”, „kraj:jp” itp.
-
{ feature_values: [{key: "country", value: "us"}] }- Kawałek składający się z „kraju:nas”.
-
{ feature_keys: ["country", "city"] }- Wycinki wszystkich wartości elementu „kraj” skrzyżowane ze wszystkimi wartościami elementu „miasto” (pamiętaj, że może to być kosztowne).
-
{ feature_keys: ["country"] feature_values: [{key: "age", value: "20"}] }- Wycinki wszystkich wartości w funkcji „kraj” skrzyżowane z wartością „wiek:20”
Należy pamiętać, że klucze funkcyjne mogą być funkcjami przekształconymi lub surowymi funkcjami wejściowymi. Aby uzyskać więcej informacji, zobacz tfma.SlicingSpec .
EvalSharedModel
Oprócz ustawień konfiguracyjnych TFMA wymaga również utworzenia instancji tfma.EvalSharedModel w celu współdzielenia modelu pomiędzy wieloma wątkami w tym samym procesie. Udostępniona instancja modelu zawiera informacje o typie modelu (keras itp.) oraz o tym, jak załadować i skonfigurować model z jego zapisanej lokalizacji na dysku (np. tagi itp.). Za pomocą interfejsu API tfma.default_eval_shared_model można utworzyć instancję domyślną, podając ścieżkę i zestaw tagów.