概述
Without it, the question 'which version was best and how did we get it?' becomes nearly impossible to answer.
深入探讨
训练模型很少是一次性的过程。团队进行数百或数千次实验,调整学习率、批量大小、架构和数据集。实验跟踪捕获每次运行的完整指纹:代码的 Git 提交、数据集的哈希值、每个超参数、随时间变化的指标(损失、准确性、F1)、GPU 类型等系统信息以及保存的模型权重和绘图等工件。 MLflow、Weights & Biases、Neptune 和 Comet 等工具通过几行 API 调用自动记录此信息。回报是可重复性(您可以重新运行准确的获胜配置)、可比性(排序和过滤器并排运行)和协作(队友可以看到已经尝试过的内容)。它将临时实验转变为可审计、可搜索的历史记录。
现实世界的实施
计算机视觉团队使用权重和偏差来比较 200 次超参数扫描,并确定可最大限度提高验证准确性的学习率计划。
初创公司会记录每次 MLflow 运行的准确 Git 提交和数据集哈希值,以便监管机构稍后可以重现做出信用决策的模型。
研究实验室将每个时期的损失曲线传输到共享仪表板,以便不同时区的合作者可以监控长时间的训练运行。
NLP 团队在 LLM 微调实验中跟踪提示版本和评估分数,以便在部署之前选择性能最佳的配置。
实验跟踪的未来
实验跟踪正在合并到更广泛的 MLOps 和 LLMOps 平台中。随着基础模型占主导地位,跟踪正在从数字指标扩展到提示版本、评估跟踪和定性输出。自动沿袭——将实验链接到精确的数据集、代码和下游部署的模型——正在成为治理和审计要求的标准。预计与特征存储、模型注册表和 CI/CD 进行更紧密的集成,以及对分布式和多次运行扫描的更丰富支持,其中数千个试验将自动启动和比较。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
What is Experiment Tracking?
实验跟踪是系统记录每次机器学习运行(其代码、数据、超参数、指标和输出)的实践,因此结果是可重复和可比较的。如果没有它,就会出现“哪个版本最好以及我们如何获得它?”的问题。变得几乎不可能回答。
机器学习中实验跟踪的主要目的是什么?
实验跟踪记录代码、数据、超参数和指标,以便可以重现运行并相互比较。
哪种组合对于使单次训练真正可重复至关重要?
可重复性需要精确的代码(例如 Git 提交)、相同的数据和相同的配置——它们共同决定结果。
以下哪一个是流行的实验跟踪工具?
MLflow 与 Weights & Biases、Neptune 和 Comet 一起是广泛使用的实验跟踪平台。
大多数实验跟踪器通常如何在训练期间捕获指标?
跟踪器公开您在训练循环内调用的 API,以记录一次参数并重复记录指标,并将它们流式传输到存储后端。
跟踪系统通常将大型工件(例如保存的模型权重)存储在哪里?
大文件进入对象或工件存储,而元数据存储保留轻量级引用以及数字指标和参数。