Thành phần quy trình TFX của người đánh giá

Thành phần quy trình Evaluator TFX thực hiện phân tích chuyên sâu về kết quả đào tạo cho các mô hình của bạn, để giúp bạn hiểu mô hình hoạt động như thế nào trên các tập hợp con dữ liệu của bạn. Người đánh giá cũng giúp bạn xác thực các mô hình đã xuất của mình, đảm bảo rằng chúng "đủ tốt" để được đưa vào sản xuất.

Khi xác thực được bật, Người đánh giá sẽ so sánh các mô hình mới với đường cơ sở (chẳng hạn như mô hình hiện đang phục vụ) để xác định xem chúng có "đủ tốt" so với đường cơ sở hay không. Nó thực hiện điều này bằng cách đánh giá cả hai mô hình trên tập dữ liệu eval và tính toán hiệu suất của chúng dựa trên các số liệu (ví dụ: AUC, tổn thất). Nếu số liệu của mô hình mới đáp ứng các tiêu chí do nhà phát triển chỉ định so với mô hình cơ sở (ví dụ: AUC không thấp hơn), thì mô hình đó là "may mắn" (được đánh dấu là tốt), cho Người đẩy biết rằng có thể đẩy mô hình vào sản xuất.

  • Tiêu thụ:
    • Một sự phân chia đánh giá từ các ví dụ
    • Một mô hình được đào tạo từ Trainer
    • Một mô hình đã được ban phước trước đó (nếu việc xác thực được thực hiện)
  • Phát ra:

Công cụ đánh giá và phân tích mô hình TensorFlow

Người đánh giá tận dụng thư viện Phân tích mô hình TensorFlow để thực hiện phân tích, từ đó sử dụng Apache Beam để xử lý có thể mở rộng.

Sử dụng Thành phần Người đánh giá

Thành phần quy trình của Người đánh giá thường rất dễ triển khai và yêu cầu ít tùy chỉnh vì hầu hết công việc được thực hiện bởi thành phần TFX của Người đánh giá.

Để thiết lập bộ đánh giá, cần có thông tin sau:

  • Các chỉ số cần định cấu hình (chỉ bắt buộc nếu các chỉ số bổ sung đang được thêm vào bên ngoài các chỉ số được lưu cùng mô hình). Xem Số liệu phân tích mô hình Tensorflow để biết thêm thông tin.
  • Các lát cắt để định cấu hình (nếu không có lát cắt nào được đưa ra thì một lát cắt "tổng thể" sẽ được thêm theo mặc định). Xem Thiết lập phân tích mô hình Tensorflow để biết thêm thông tin.

Nếu cần đưa vào xác nhận thì cần có thông tin bổ sung sau:

Khi được bật, quá trình xác thực sẽ được thực hiện dựa trên tất cả các số liệu và lát cắt đã được xác định.

Mã điển hình trông như thế này:

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)

Người đánh giá tạo ra một EvalResult (và tùy chọn một ValidationResult nếu xác thực được sử dụng) có thể được tải bằng cách sử dụng TFMA . Sau đây là ví dụ về cách tải kết quả vào sổ ghi chép 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:
  ...

Thông tin chi tiết hơn có sẵn trong tài liệu tham khảo API của người đánh giá .