趋近智
即使潜在的模型候选已经通过 Trainer 组件进行了训练,仅仅在静态测试集上取得良好性能不足以将其部署到生产环境。生产系统要求全面的验证,以确保模型不仅整体表现良好,而且在不同数据分段中表现可预测且公平,更重要的是,与当前服务的模型相比没有性能下降。因此,TFX 管道中的模型验证和分析步骤变得非常必要。
负责这种细致性能分析的主要 TFX 组件是 Evaluator。它远不止计算一个单一的准确率分数。Evaluator 借助 Apache Beam 的能力进行可扩展分析,并与 TensorFlow Model Analysis (TFMA) 库紧密集成,以提供关于模型行为的详细信息。
Evaluator 组件通常接收:
Transform 图处理,以确保一致性。Trainer 组件导出的新训练的候选模型。其核心功能是计算多种评估指标,不仅整体上,而且跨数据不同切片。切片分析可以帮助您查看模型是否在特定用户群、时间段、特征值或其他重要数据分段中表现不同。例如,您可能希望验证模型在不同地理区域的用户或不同产品类别上的表现是否同样良好。
# 示例:在 TFX 管道定义中配置 Evaluator
from tfx.components import Evaluator
from tfx.proto import evaluator_pb2
# 假设 'trainer'、'examples_gen' 和 'schema_gen' 已在上游定义
eval_config = evaluator_pb2.EvalConfig(
model_specs=[
# 指定候选模型
evaluator_pb2.ModelSpec(label_key='loan_status_binary')
],
slicing_specs=[
# 定义切片:整体数据集
evaluator_pb2.SlicingSpec(),
# 按特定特征 'employment_length' 进行切片
evaluator_pb2.SlicingSpec(
feature_keys=['employment_length']
),
# 按两个特征的交叉进行切片
evaluator_pb2.SlicingSpec(
feature_keys=['home_ownership', 'verification_status']
)
],
metrics_specs=[
# 定义使用 TFMA 指标定义来计算的指标
evaluator_pb2.MetricsSpec(
metrics=[
evaluator_pb2.MetricConfig(class_name='AUC'),
evaluator_pb2.MetricConfig(class_name='Precision'),
evaluator_pb2.MetricConfig(class_name='Recall'),
evaluator_pb2.MetricConfig(
class_name='ExampleCount' # 总是很有用
),
evaluator_pb2.MetricConfig(
# 阈值设置示例:候选模型 AUC 必须比基准模型高 1%
class_name='AUC',
threshold=evaluator_pb2.MetricThreshold(
value_threshold=evaluator_pb2.GenericValueThreshold(
lower_bound={'value': 0.01}),
# 相对于基准模型的 AUC 进行比较
change_threshold=evaluator_pb2.GenericChangeThreshold(
direction=evaluator_pb2.MetricDirection.HIGHER_IS_BETTER,
absolute={'value': 0.01})
)
)
]
)
]
)
evaluator = Evaluator(
examples=examples_gen.outputs['examples'],
model=trainer.outputs['model'],
# baseline_model=model_resolver.outputs['model'], # 如果与基准模型进行比较
eval_config=eval_config,
schema=schema_gen.outputs['schema'] # 模式有助于 TFMA 解释特征
)
# 此 'evaluator' 组件随后将添加到管道的组件列表中
TFMA 支持的 Evaluator 的重要方面包括:
Evaluator 的输出包括详细的分析结果,通常使用 TensorBoard 的 TFMA 插件进行可视化,以及一个重要的验证结果(通常称为“祝福”)。此结果表明模型是否通过了预定义的质量阈值。
此比较显示了跨不同数据切片的性能。虽然候选模型显示出整体 AUC 提高,并在区域 B 表现良好,但在区域 A 和新用户方面与基准模型相比略有退步。这种由
Evaluator的切片分析提供的信息,对于做出明智的部署决策非常重要。
Evaluator 侧重于预测性能,而另一个组件 ModelValidator 则处理模型工件本身的技术有效性和一致性。它有助于发现仅凭性能指标可能不明显的问题,但可能在服务期间引发问题或表明底层数据漂移。
ModelValidator 通常检查:
SchemaGen 的模式信息和来自 StatisticsGen 的统计数据进行这些比较。Evaluator 询问“这个模型更好吗?”,而 ModelValidator 询问“这个模型健全且一致吗?”。两者都是部署前的重要检查。
Evaluator(有时也包括 ModelValidator)生成的验证结果充当关键的关卡。下游的 Pusher 组件负责将模型部署到服务环境或模型注册表,它通常会使用验证结果。如果 Evaluator 未“祝福”模型(即,它未达到性能阈值或显示性能下降),Pusher 将不会部署它。这种自动化质量检查可以防止次优或性能下降的模型进入生产环境,维护机器学习 (machine learning)系统的可靠性和可信赖性。
总之,模型验证和分析阶段主要由使用 TFMA 的 Evaluator 组件驱动,它提供生产环境所需的细致、多方面的性能信息。通过跨数据切片评估模型、与基准模型比较以及执行质量阈值,TFX 确保只有经过充分验证且性能稳定的模型才会被考虑部署。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造