前言
AI BOM 涵盖了从输入模型的数据到为模型提供支持的基础设施以及将 AI 从概念转化为生产的过程的一切。
但为什么我们需要人工智能物料清单?答案在于当今世界人工智能/Gen AI系统的复杂性和关键性:
- 透明度和可重复性:AI BOM 提供所有组件的详细清单,确保 AI 系统可审核、结果可重现且流程可清晰理解。
- 质量控制和风险管理:通过明确定义每个组件,AI BOM 有助于识别潜在的故障或改进点,确保更高质量、更可靠的 AI 系统。
- 合规性和道德考虑:随着人工智能法规的发展,拥有全面的 BOM 有助于组织在其人工智能开发过程中展示合规性和道德考虑。
- 资源优化:AI BOM 可以更好地跟踪和管理资源,帮助优化 AI 项目的成本和分配。
- 协作和知识共享:记录良好的 BOM 有助于团队成员之间更好地协作以及组织内的知识转移。
让我们深入探究 AI BOM 的复杂性,涵盖端到端 AI 堆栈、训练过程的细微差别、大规模推理的挑战、微调模型的策略以及在生产环境中运行 ML 基础架构的复杂性。我们还将探讨 AI 开发团队中知识共享的关键方面。
最后,您将彻底了解构建、部署和维护大规模 AI 系统所需的条件,并强调在 AI 生命周期的每个步骤中明确定义的 AI 物料清单的重要性。
端到端 AI 堆栈
AI 堆栈是一个由相互关联的各层组成的复杂生态系统,每一层在 AI 系统的开发和部署中都发挥着至关重要的作用。让我们分解每一层,探索其组成部分和重要性。
数据层
任何 AI 系统的基础都是数据。数据层负责收集、存储和预处理最终将训练和支持 AI 模型的信息。
数据收集和存储:
- 来源:这可以包括网络抓取、物联网设备、用户生成的内容或专有数据库。
- 存储解决方案:根据数据的数量和性质,存储选项可能包括传统的关系数据库、分布式文件系统(如 Hadoop)或基于云的解决方案(如 Amazon S3 或 Google Cloud Storage)。
- 数据仓库和数据湖:对于大型 AI 项目,通常采用数据仓库(如 Snowflake 或 Amazon Redshift)或数据湖(如 Azure Data Lake 或 AWS Lake Formation)来集中和管理大量结构化和非结构化数据。
数据预处理和清理:
- 数据清理工具:Python 中的 pandas 等库或 OpenRefine 等工具对于识别和纠正原始数据中的不一致、缺失值和错误至关重要。
- 特征工程:此过程涉及创建新特征或转换现有特征以提高模型性能。通常使用特征工具或自定义 Python 脚本等工具。
- 数据增强:对于某些 AI 任务,尤其是在计算机视觉领域,数据增强技术用于人为地扩展数据集。像 imgaug 或 albumentations 这样的库是流行的选择。
模型开发层
模型开发层是奇迹发生的地方——原始数据被转换成智能系统。
模型架构设计:
- 深度学习框架:TensorFlow、PyTorch 和 Keras 是设计和实现神经网络架构最广泛使用的框架。
- 传统 ML 库:对于非深度学习任务,scikit-learn 等库提供了广泛的算法和工具。
- AutoML 工具:Google Cloud AutoML 或 H2O.ai 等平台可以自动化模型选择和架构设计过程的部分内容。
训练框架和库:
- 分布式训练:Horovod 或 PyTorch Distributed 等库支持跨多个 GPU 或机器进行训练。
- 实验跟踪:MLflow 或 Weights & Biases 等工具有助于管理和跟踪多个实验和模型版本。
- 超参数优化:Optuna 或 Ray Tune 等库可自动查找最佳超参数的过程。
基础设施层
基础设施层提供训练和部署人工智能模型所需的计算资源。
硬件组件:
- CPU:仍然与许多 ML 任务和数据预处理相关。
- GPU:NVIDIA 支持 CUDA 的 GPU 是深度学习的标准,其中 A100 等模型处于领先地位。
- TPU:Google 的张量处理单元提供了一种替代方案,尤其是在 Google Cloud 生态系统中。
- FPGA 和 ASIC:对于专门的 AI 任务,现场可编程门阵列或专用集成电路可以提供卓越的性能和能源效率。
云端与本地基础设施:
- 云平台:AWS、Google Cloud Platform 和 Microsoft Azure 为 AI 开发提供可扩展、按需付费的资源。
- 内部部署解决方案:对于具有特定安全要求或现有数据中心投资的组织,内部部署基础设施仍然是一个可行的选择。
- 混合方法:许多组织选择混合方法,根据需要利用云和内部部署资源。
部署层
模型开发完成后,需要以一种易于访问和使用的方式进行部署。
模型服务框架:
- TensorFlow Serving:专为 TensorFlow 模型设计,可轻松部署和扩展模型。
- NVIDIA Triton 推理服务器:一种支持多种框架模型的多功能选项。
- KServe(以前称为 KFServing):基于 Kubernetes 的无服务器推理平台。
API 开发和管理:
- RESTful API:Python 中的 Flask 或 FastAPI 是创建 AI 模型 RESTful 接口的流行选择。
- gRPC:对于高性能、低延迟应用程序,gRPC 提供了 REST 的现代替代方案。
- API 网关:Kong 或 AWS API Gateway 等工具有助于大规模管理、保护和监控 API。
人工智能开发和部署框架
朗链:
- 价值:LangChain 提供了一个开发语言模型驱动的应用程序的框架。它简化了将多个 AI 组件链接在一起并将其与外部数据源和 API 集成的过程。
- 用例:构建聊天机器人、问答系统和其他需要复杂推理和外部数据集成的人工智能应用程序。
- 集成于AI BOM:将LangChain作为模型开发和部署层的关键组件,特别是对于涉及大型语