ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

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

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

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

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

يستفيد المقيم من مكتبة تحليل نموذج TensorFlow لإجراء التحليل ، والذي بدوره يستخدم Apache Beam لمعالجة قابلة للتطوير.

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

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

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

  • المقاييس المراد تكوينها (مطلوبة فقط إذا تمت إضافة مقاييس إضافية خارج تلك التي تم حفظها مع النموذج). راجع مقاييس تحليل نموذج Tensorflow لمزيد من المعلومات.
  • الشرائح المراد تكوينها (إذا لم يتم تقديم الشرائح ، فستتم إضافة شريحة "شاملة" بشكل افتراضي). راجع إعداد تحليل نموذج Tensorflow لمزيد من المعلومات.

في حالة تضمين التحقق ، يلزم توفير المعلومات الإضافية التالية:

عند التمكين ، سيتم إجراء التحقق على جميع المقاييس والشرائح التي تم تحديدها.

يبدو الرمز النموذجي كما يلي:

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)

يقوم المقيم بإنتاج EvalResult (واختياريا نتيجة التحقق من الصحة إذا تم استخدام التحقق) التي يمكن تحميلها باستخدام 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:
  ...