Evaluator TFX işlem hattı bileşeni, modelinizin verilerinizin alt kümelerinde nasıl performans gösterdiğini anlamanıza yardımcı olmak için modelleriniz için eğitim sonuçları üzerinde derin bir analiz gerçekleştirir. Değerlendirici ayrıca, dışa aktarılan modellerinizi doğrulamanıza yardımcı olarak üretime aktarılabilecek "yeterince iyi" olmalarını sağlar.
Doğrulama etkinleştirildiğinde, Değerlendirici yeni modelleri temele göre "yeterince iyi" olup olmadıklarını belirlemek için temele göre (şu anda hizmet veren model gibi) karşılaştırır. Bunu, her iki modeli de bir değerlendirme veri setinde değerlendirerek ve performanslarını metrikler (örneğin AUC, kayıp) üzerinde hesaplayarak yapar. Yeni modelin ölçütleri, temel modele göre geliştiricinin belirlediği kriterleri karşılıyorsa (örneğin, AUC daha düşük değilse), model "kutsanmıştır" (iyi olarak işaretlenmiştir) ve İtici'ye modeli üretime itmenin uygun olduğunu belirtir.
- Tüketim:
- ExampleGen'den bir eval ayrımı
- Trainer'dan eğitimli bir model
- Önceden kutsanmış bir model (doğrulama yapılacaksa)
- Emits:
- ML Meta Verilerine yönelik analiz sonuçları
- ML Meta Verilerine yönelik doğrulama sonuçları (doğrulama yapılacaksa)
Değerlendirici ve TensorFlow Model Analizi
Değerlendirici, analizi gerçekleştirmek için TensorFlow Model Analizi kitaplığından yararlanır ve bu da ölçeklenebilir işleme için Apache Beam'i kullanır.
Değerlendirici Bileşenini Kullanma
Bir Evaluator işlem hattı bileşeninin dağıtımı çok kolaydır ve işin çoğu Evaluator TFX bileşeni tarafından yapıldığından çok az özelleştirme gerektirir.
Değerlendiriciyi kurmak için aşağıdaki bilgiler gereklidir:
- Yapılandırılacak metrikler (yalnızca modelle kaydedilenlerin dışında ek metrikler ekleniyorsa gereklidir). Daha fazla bilgi için Tensorflow Model Analizi Metriklerine bakın.
- Yapılandırılacak dilimler (dilimler verilmezse, varsayılan olarak "genel" bir dilim eklenir). Daha fazla bilgi için Tensorflow Model Analiz Kurulumu'na bakın.
Doğrulama dahil edilecekse, aşağıdaki ek bilgiler gereklidir:
- Karşılaştırılacak model (en son kutsanmış vb.).
- Doğrulamak için model doğrulamaları (eşikler). Daha fazla bilgi için Tensorflow Model Analiz Modeli Doğrulamalarına bakın.
Etkinleştirildiğinde, tanımlanmış tüm metrikler ve dilimlere karşı doğrulama gerçekleştirilir.
Tipik kod şuna benzer:
from tfx import components
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 = ResolverNode(
instance_name='latest_blessed_model_resolver',
resolver_class=latest_blessed_model_resolver.LatestBlessedModelResolver,
model=Channel(type=Model),
model_blessing=Channel(type=ModelBlessing))
model_analyzer = components.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)
Değerlendirici, TFMA kullanılarak yüklenebilen bir EvalResult (ve isteğe bağlı olarak doğrulama kullanılmışsa bir ValidationResult ) üretir . Aşağıda, sonuçların bir Jupyter not defterine nasıl yükleneceğinin bir örneği:
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:
...