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żyjeval
jeś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.