Join TensorFlow at Google I/O, May 11-12 Register now

مكون خط أنابيب TFX للمقيم

يقوم مكون خط أنابيب Evaluator TFX بإجراء تحليل عميق لنتائج التدريب لنماذجك ، لمساعدتك على فهم كيفية أداء نموذجك على مجموعات فرعية من بياناتك. يساعدك المقيم أيضًا في التحقق من صحة نماذجك المصدرة ، والتأكد من أنها "جيدة بما يكفي" لدفعها إلى الإنتاج.

عند تمكين التحقق من الصحة ، يقارن المقيم النماذج الجديدة مقابل خط الأساس (مثل نموذج العرض الحالي) لتحديد ما إذا كانت "جيدة بدرجة كافية" بالنسبة إلى خط الأساس. يقوم بذلك من خلال تقييم كلا النموذجين على مجموعة بيانات تقييم وحساب أدائهم على المقاييس (مثل AUC ، خسارة). إذا مقاييس النموذج الجديد لتلبية المعايير المحددة من قبل المطور النسبية للنموذج الأساسي (على سبيل المثال AUC لم يتم خفض)، والنموذج هو "المباركة" (وضع علامة جيدة)، مشيرا إلى مروج المخدرات أنه على ما يرام لدفع نموذج للإنتاج.

  • يستهلك:
    • انقسام حدة التقييم من ExampleGen
    • نموذج تدريب من المدرب
    • نموذج مبارك مسبقًا (في حالة إجراء التحقق)
  • ينبعث:
    • نتائج التحليل إلى ML الفوقية
    • نتائج التحقق من صحة ML الفوقية (إن التحقق من صحة التي يتعين القيام بها)

المقيم وتحليل نموذج TensorFlow

مقيم روافع TensorFlow تحليل نموذج مكتبة لأداء التحليل الذي في استخدام بدوره أباتشي شعاع للتجهيز للتحجيم.

استخدام مكون المقيم

عادةً ما يكون من السهل جدًا نشر مكون خط أنابيب المقيم ويتطلب القليل من التخصيص ، نظرًا لأن معظم العمل يتم بواسطة مكون TFX للمقيم.

لإعداد المقيم ، هناك حاجة إلى المعلومات التالية:

  • المقاييس المراد تكوينها (مطلوبة فقط إذا تمت إضافة مقاييس إضافية خارج تلك التي تم حفظها مع النموذج). انظر 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 مقيم .