机器学习工程概述

最后更新: 2024-06-10 16:36:47 +0800 +0800
原文以英文撰写。您正在阅读AI翻译版本。

机器学习工程将实验与可靠的系统连接起来。它包括数据契约、可复现训练、评估、打包、部署、监控和迭代,而不仅仅是选择模型架构。

科学计算 Python 基础 #

NumPy 提供核心的多维数组类型和数值运算。SciPy 构建于 NumPy 之上,提供用于优化、统计、信号处理和科学计算的算法。scikit-learn 提供经典机器学习模型、预处理、模型选择和评估工具的易用实现。

sh
python -m pip install numpy scipy scikit-learn

请使用虚拟环境并锁定依赖版本,以实现可重复的工作流程。NumPy、SciPy 和 scikit-learn 是作用域互补的独立项目。

深度学习与模型库 #

PyTorch 提供张量、自动微分、神经网络模块和分布式训练原语:

sh
python -m pip install torch torchvision

Hugging Face Transformers 提供许多预训练架构的实现和加载工具。它通常与 PyTorch 搭配使用,但这并不意味着可以忽略对模型分词器、配置或许可条款的理解。

vLLM、TensorRT-LLM 和 Text Generation Inference 等推理引擎专注于高效服务。DeepSpeed、FSDP 和 PyTorch Lightning 等训练框架则处理不同的问题。应根据工作负载选择组件,而不是将它们视为可以相互替换的模型库。

模型工件与安全性 #

常见的工件格式包括 NumPy 的 .npy 数组、PyTorch 检查点和 safetensors 文件。基于 Python pickle 的格式在加载期间可能执行任意代码,因此绝不要反序列化来自不可信来源的工件。safetensors 的设计目标是在不具备这种代码执行行为的情况下存储张量。

工程工作流 #

从可度量的产品目标和具有代表性的评估集开始。对数据、代码、配置和模型工件进行统一版本管理。在部署前,测试延迟、内存使用、故障模式,以及应用所关注的人群切片上的行为。部署后,监控数据漂移、质量信号、成本和回归问题,并保留安全的回滚路径。

评论

在 GitHub 上阅读或评论(发表评论需要登录)