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

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Thành phần đường dẫn của Trình đánh giá TFX thực hiện phân tích 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 của bạn hoạt động như thế nào trên các tập con dữ liệu của bạn. Trình đánh giá cũng giúp bạn xác nhận 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 kích hoạt xác thực, 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ân phối) để xác định xem chúng có "đủ tốt" so với đường cơ sở hay không. Nó làm như vậ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 trên các chỉ số (ví dụ: AUC, tổn thất). Nếu các chỉ số 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 thấy Pusher rằng có thể đẩy mô hình vào sản xuất.

  • Tiêu thụ:
    • Một phần tách eval từ ExampleGen
    • Một mô hình được đào tạo từ Trainer
    • Một mô hình đã được ban phước trước đó (nếu 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á sử 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 Trình đánh giá

Thành phần đường ống của Trình đá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 Trình đánh giá TFX.

Để thiết lập trình đánh giá, thông tin sau là cần thiết:

  • Các chỉ số để định cấu hình (chỉ yêu cầu nếu các chỉ số bổ sung đang được thêm vào bên ngoài những chỉ số được lưu cùng với mô hình). Xem Chỉ số phân tích mô hình Tensorflow để biết thêm thông tin.
  • Các lát cắt để 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 vào 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 bao gồm xác thực, thông tin bổ sung sau là cần thiết:

Khi được bật, xác thực sẽ được thực hiện dựa trên tất cả các chỉ số và phần đã đượ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 sử dụng xác thực) có thể được tải bằng TFMA . Sau đây là một số 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 có sẵn trong tài liệu tham khảo API Trình đánh giá .