Компонент конвейера Evaluator TFX выполняет глубокий анализ результатов обучения ваших моделей, чтобы помочь вам понять, как ваша модель работает с подмножествами ваших данных. Оценщик также помогает вам проверять экспортированные модели, гарантируя, что они «достаточно хороши» для запуска в производство.
Если проверка включена, оценщик сравнивает новые модели с базовым уровнем (например, с текущей моделью), чтобы определить, являются ли они «достаточно хорошими» по сравнению с базовым уровнем. Для этого он оценивает обе модели в наборе оценочных данных и рассчитывает их производительность по метрикам (например, AUC, потери). Если метрики новой модели соответствуют критериям, указанным разработчиком относительно базовой модели (например, AUC не ниже), модель считается «благословенной» (отмечается как хорошая), указывая отправителю , что можно запустить модель в производство.
- Потребляет:
- Издает:
- Результаты анализа в метаданные ML
- Результаты проверки метаданных ML (если проверка должна выполняться)
Оценщик и анализ модели TensorFlow
Evaluator использует библиотеку анализа модели TensorFlow для выполнения анализа, который, в свою очередь, использует Apache Beam для масштабируемой обработки.
Использование компонента оценщика
Компонент конвейера Evaluator обычно очень прост в развертывании и требует незначительной настройки, поскольку большая часть работы выполняется компонентом Evaluator TFX.
Для настройки оценщика необходима следующая информация:
- Метрики для настройки (требуются только в том случае, если добавляются дополнительные метрики помимо тех, которые сохранены в модели). Дополнительные сведения см. в разделе «Метрики анализа модели Tensorflow» .
- Срезы для настройки (если срезы не указаны, по умолчанию будет добавлен «общий» срез). Дополнительную информацию см. в разделе Настройка анализа модели Tensorflow .
Если проверка должна быть включена, необходима следующая дополнительная информация:
- С какой моделью сравнивать (последняя благословенная и т. д.).
- Валидации модели (пороговые значения) для проверки. Дополнительную информацию см. в разделе «Проверка модели анализа модели Tensorflow» .
Если этот параметр включен, проверка будет выполняться по всем определенным метрикам и срезам.
Типичный код выглядит так:
import tensorflow_model_analysis as tfma
...
# For TFMA evaluation
eval_config = tfma.EvalConfig(
model_specs=[
# This assumes a serving model with signature 'serving_default'. If
# using estimator based EvalSavedModel, add signature_name='eval' and
# remove the label_key. Note, if using a TFLite model, then you must set
# model_type='tf_lite'.
tfma.ModelSpec(label_key='<label_key>')
],
metrics_specs=[
tfma.MetricsSpec(
# The metrics added here are in addition to those saved with the
# model (assuming either a keras model or EvalSavedModel is used).
# Any metrics added into the saved model (for example using
# model.compile(..., metrics=[...]), etc) will be computed
# automatically.
metrics=[
tfma.MetricConfig(class_name='ExampleCount'),
tfma.MetricConfig(
class_name='BinaryAccuracy',
threshold=tfma.MetricThreshold(
value_threshold=tfma.GenericValueThreshold(
lower_bound={'value': 0.5}),
change_threshold=tfma.GenericChangeThreshold(
direction=tfma.MetricDirection.HIGHER_IS_BETTER,
absolute={'value': -1e-10})))
]
)
],
slicing_specs=[
# An empty slice spec means the overall slice, i.e. the whole dataset.
tfma.SlicingSpec(),
# Data can be sliced along a feature column. In this case, data is
# sliced along feature column trip_start_hour.
tfma.SlicingSpec(feature_keys=['trip_start_hour'])
])
# The following component is experimental and may change in the future. This is
# required to specify the latest blessed model will be used as the baseline.
model_resolver = Resolver(
strategy_class=dsl.experimental.LatestBlessedModelStrategy,
model=Channel(type=Model),
model_blessing=Channel(type=ModelBlessing)
).with_id('latest_blessed_model_resolver')
model_analyzer = Evaluator(
examples=examples_gen.outputs['examples'],
model=trainer.outputs['model'],
baseline_model=model_resolver.outputs['model'],
# Change threshold will be ignored if there is no baseline (first run).
eval_config=eval_config)
Оценщик создает EvalResult (и, возможно, ValidationResult , если использовалась проверка), который можно загрузить с помощью TFMA . Ниже приведен пример загрузки результатов в блокнот Jupyter:
import tensorflow_model_analysis as tfma
output_path = evaluator.outputs['evaluation'].get()[0].uri
# Load the evaluation results.
eval_result = tfma.load_eval_result(output_path)
# Visualize the metrics and plots using tfma.view.render_slicing_metrics,
# tfma.view.render_plot, etc.
tfma.view.render_slicing_metrics(tfma_result)
...
# Load the validation results
validation_result = tfma.load_validation_result(output_path)
if not validation_result.validation_ok:
...
Более подробную информацию можно найти в справочнике по API Evaluator .