মূল্যায়নকারী TFX পাইপলাইন উপাদান

মূল্যায়নকারী TFX পাইপলাইন উপাদান আপনার মডেলের প্রশিক্ষণের ফলাফলের উপর গভীর বিশ্লেষণ করে, আপনার মডেল আপনার ডেটার উপসেটগুলিতে কীভাবে পারফর্ম করে তা বুঝতে সাহায্য করার জন্য। মূল্যায়নকারী আপনাকে আপনার রপ্তানিকৃত মডেলগুলিকে যাচাই করতেও সাহায্য করে, নিশ্চিত করে যে সেগুলি উত্পাদনে ঠেলে দেওয়ার জন্য "যথেষ্ট ভাল"।

যখন বৈধতা সক্ষম করা হয়, তখন মূল্যায়নকারী একটি বেসলাইনের সাথে নতুন মডেলের তুলনা করে (যেমন বর্তমানে পরিবেশন করা মডেল) বেসলাইনের তুলনায় "যথেষ্ট ভাল" কিনা তা নির্ধারণ করতে। এটি একটি ইভাল ডেটাসেটে উভয় মডেলের মূল্যায়ন করে এবং মেট্রিক্সে তাদের কর্মক্ষমতা গণনা করে (যেমন AUC, ক্ষতি)। যদি নতুন মডেলের মেট্রিক্স বেসলাইন মডেলের সাথে সম্পর্কিত ডেভেলপার-নির্দিষ্ট মানদণ্ড পূরণ করে (যেমন AUC কম নয়), মডেলটি "আশীর্বাদপ্রাপ্ত" (ভাল হিসাবে চিহ্নিত), পুশারকে নির্দেশ করে যে মডেলটিকে উৎপাদনে ঠেলে দেওয়া ঠিক।

  • গ্রাস করে:
    • উদাহরণ থেকে একটি eval বিভক্ত
    • প্রশিক্ষক থেকে একটি প্রশিক্ষিত মডেল
    • একটি পূর্বে আশীর্বাদকৃত মডেল (যদি বৈধকরণ করা হয়)
  • নির্গত:

মূল্যায়নকারী এবং টেনসরফ্লো মডেল বিশ্লেষণ

মূল্যায়নকারী বিশ্লেষণ সম্পাদনের জন্য টেনসরফ্লো মডেল বিশ্লেষণ লাইব্রেরি ব্যবহার করে, যা পরিবর্তিত প্রক্রিয়াকরণের জন্য Apache Beam ব্যবহার করে।

মূল্যায়নকারী উপাদান ব্যবহার করে

একটি ইভালুয়েটর পাইপলাইন উপাদান সাধারণত স্থাপন করা খুব সহজ এবং এর জন্য সামান্য কাস্টমাইজেশন প্রয়োজন, যেহেতু বেশিরভাগ কাজ ইভালুয়েটর 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 রেফারেন্সে আরও বিশদ পাওয়া যায়।