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

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 hợ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 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â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 số liệu mô hình mới của đáp ứng tiêu chí phát triển chỉ định tương đối so với mô hình cơ sở (ví dụ AUC không giảm), mô hình được "may mắn" (đánh dấu là tốt), cho thấy đến Pusher rằng nó là ok để đẩy mô hình vào sản xuất.

  • Tiêu thụ:
    • Một chia eval từ ExampleGen
    • Một huấn luyện mô hình 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:
    • Kết quả phân tích cho ML Metadata
    • Validation kết quả để ML Metadata (nếu xác nhận được thực hiện)

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

Đánh giá thúc đẩy các TensorFlow Phân tích mẫu thư viện để thực hiện các phân tích, mà được sử dụng lần lượt Apache chùm để chế biến khả năng 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 bên ngoài những chỉ số được lưu cùng với mô hình). Xem Phân tích Tensorflow Mẫu Metrics để biết thêm thông tin.
  • Các lát cắt để định cấu hình (nếu không có các lát cắt được đưa ra thì một lát cắt "tổng thể" sẽ được thêm vào theo mặc định). Xem Tensorflow Phân tích mẫu cài đặt để 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á sản xuất một EvalResult (và tùy chọn một ValidationResult nếu xác nhận đã được sử dụng) có thể được nạp 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 các tài liệu tham khảo Evaluator API .