并非所有 AI 模型格式都生而平等。本文将介绍它们的含义、重要性以及如何通过正确的选择最大限度地提高效率、安全性和成果。
人工智能模型是当今最激动人心的技术的核心。从支持聊天机器人的大型语言模型 (LLM),到医学影像中使用的视觉模型,再到电商平台上的推荐引擎,它们将原始数据转化为有用的洞察和经验。简而言之,人工智能模型是经过训练的系统,能够从海量数据集中学习模式,从而生成预测、分类或输出。
但训练模型只是故事的一半。模型一旦建立,就需要保存、共享和部署,而这正是模型格式发挥作用的地方。格式不仅决定了模型的存储方式,还决定了模型在实际中的运行方式。性能、效率、兼容性甚至安全性都取决于这种选择。
挑战在于,并非只有一种“AI 模型格式”。相反,一个不断发展的生态系统正在不断壮大,每种格式都针对不同的用例进行定制。在强大的云服务器上运行良好的格式,在移动设备上可能失效。适合快速实验的格式,在企业部署中可能难以扩展。面对如此众多的选择,难怪开发人员、研究人员和企业领导者都难以确定哪种格式最适合他们的项目。
在本指南中,我们将分解最常见的 AI 模型格式,解释它们的优点(以及缺点),并帮助您做出更明智的选择,从而节省时间、降低成本并使您的 AI 项目在现实世界中发挥作用 - 而不仅仅是在理论上。
GGML 和 GGUF,用于轻量级推理的量化模型
GGML 和 GGUF 是紧密相关的格式,其设计主要目标是:缩小 AI 模型的尺寸,使其更易于在中等硬件上运行。它们通过一个称为量化的过程来实现这一目标——降低模型中使用的数字的精度(例如,将 16 位或 32 位权重转换为 4 位或 8 位版本)。如果操作得当,量化可以显著减小模型尺寸,降低硬件要求,同时仅对精度造成轻微损失。
这使得 GGML 和 GGUF 对于希望在没有高端 GPU 的设备上本地运行 AI 模型的用户尤其具有吸引力。事实上,这两种格式都可以直接在 CPU 上进行推理,由 RAM 而不是专门的图形硬件来处理工作负载。这意味着即使是轻量级的笔记本电脑或台式机,也可以在没有专门的加速卡的情况下运行相当复杂的模型。
另一个优势是部署简便。以 GGML 或 GGUF 格式存储的模型通常打包为单个文件,这使得它们易于在不同平台之间移动、共享和设置。GGUF 尤其在 GGML 的基础上进行了改进,在文件中添加了更丰富的元数据,例如更详细的架构信息,以帮助避免配置难题。它还扩展了对基于 LLaMA 模型以外的模型的支持,从而拓展了这些格式的实用性。
然而,这些优势也伴随着一些代价。由于这些格式是为推理(运行已训练的模型)而构建的,因此它们不支持训练或微调。任何想要继续训练模型的人都必须先将其转换为其他格式,然后在完成后可能再转换回来。此外,虽然量化功能强大,但它不可避免地会带来一定程度的质量损失——输出可能不如全精度模型生成的输出那么精确。
实际上,GGML 和 GGUF 最适合那些希望在有限的硬件上运行现有模型,并且愿意为了速度和效率而接受较小的准确性牺牲的用户。
主要优点:
-
-
- 针对 CPU 使用进行了优化,不需要 GPU
- 支持更小、更快模型的量化
- 采用简单的单文件格式打包
- 只需极少的设置即可跨不同平台运行
-
主要缺点:
-
-
- 无法直接训练或微调
- 在某些情况下,量化可能会降低准确度
-
PyTorch 格式为实验提供了灵活性
PyTorch 由 Meta 提供支持,已成为人工智能研发领域使用最广泛的框架之一。它的流行源于其“运行时定义”方法,这意味着 PyTorch 并非在执行前构建整个模型架构,而是在代码运行时动态构建。这种灵活性使研究人员和开发者能够轻松地尝试新的模型设计,更高效地进行调试,并动态调整架构。
在 PyTorch 中保存模型时,主要有两种文件格式:
-
-
- .pt 文件包含部署模型所需的一切,因此当您想要将模型从训练转移到生产时,它们成为首选。
- .pth 文件通常用于保存模型权重和参数,通常用作训练期间的检查点。这允许开发人员暂停、调整和恢复训练,而无需重新开始。
-
PyTorch 最大的优势之一是其易用性。该框架采用数据科学和机器学习领域最广泛使用的编程语言 Python 编写并与其紧密集成。它的语法极具“Python 风格”,这意味着它遵循 Python 代码的惯例和可读性标准——简洁、清晰、直观。这降低了新手的学习难度,因为许多开发人员、研究人员和学生已经在工作中使用 Python。PyTorch 不会强迫人们学习陌生的编程范式,而是允许他们运用可能已经掌握的技能,从而更轻松地构建原型并快速上手。
PyTorch 拥有庞大的开发者社区,并与 Hugging Face 等代码库深度集成,提供了丰富的工具、教程和预训练模型生态系统。这些支持加速了实验进程,并使其能够轻松地在他人成果的基础上进行构建。
然而,正是 PyTorch 的灵活性使其成为研究领域的宠儿,但也使其在大规模生产部署中效率低下。以 PyTorch 格式保存的模型通常默认占用更多空间,这会在资源受限的环境中降低性能。此外,PyTorch 最擅长于 Python,因此虽然可以在其他环境中使用模型,但 Python 以外的支持可能会比较有限。
另一个重要的警告:PyTorch 格式使用 pickle 进行序列化,这是一种 Python 特有的数据保存方法。虽然方便,但 pickle 也可能存在安全风险,因为文件可能包含可执行代码。打开来自未经验证来源的 .pt 或 .pth 文件可能会引入漏洞。开发人员需要注意其模型的来源,并在共享模型时采取安全措施。
简而言之,当灵活性和实验性是优先事项时,PyTorch 格式会大放异彩,但对于企业级大规模部署而言,它们可能不是最有效的选择。
主要优点:
-
-
- 直观的 Python 语法,易于学习
- 支持执行期间的动态模型更改
- 拥有庞大社区和 Hugging Face 生态系统的支持
-
主要缺点:
-
-
- 对于大规模生产工作负载效率较低
- 与其他方案相比,默认模型尺寸更大
- 主要针对 Python 环境设计
- 如果文件来自不受信任的来源,pickle 序列化将带来安全风险
-
专为生产环境打造的 TensorFlow 格式
谷歌开发的 TensorFlow 已成为最广泛采用的 AI 框架之一,尤其是在规模、可靠性和跨平台部署至关重要的生产环境中。与通常用于研究和实验的 PyTorch 不同,TensorFlow 在设计时就充分考虑了生产就绪性,使其非常适合企业采用。为了支持这一点,TensorFlow 提供了多种模型格式,每种格式都针对不同类型的部署进行了优化。
TensorFlow SavedModel:企业级部署
SavedModel 格式是 TensorFlow 默认且最全面的选项。它并非保存单个文件,而是存储包含参数、权重、计算图和元数据的整个文件目录。这种结构允许模型无需原始代码即可进行推理,这对于可重复性和可移植性至关重要的企业部署而言是一个巨大的优势。
SavedModel 能够封装一切,因此非常适合大规模生产,但它也有一些缺点:与简单的格式相比,文件更大、管理更复杂、学习曲线更陡峭。
主要优点:
-
-
- 全面,包括权重、参数和图表的存储
- 针对生产和可重复性进行了优化
- 跨平台和环境工作
-
主要缺点:
-
-
- 更大、多文件格式,更难管理
- 对于初学者来说学习起来比较困难
- 需要针对某些设备目标进行转换
-
TensorFlow Lite:适用于移动和边缘设备的 AI
TensorFlow Lite (TFLite) 针对计算资源稀缺的环境(例如智能手机、物联网设备或嵌入式系统)进行了优化。它使用量化、图形简化和提前 (AOT) 编译等技术来缩减模型大小,从而使模型轻量且高效,足以在低功耗硬件上运行。
这使得 TFLite 对于手机上的实时图像识别或物联网设备中的嵌入式面部识别等应用尤为重要。然而,其缺点是量化和其他优化可能会导致一定的准确率损失,而且 TFLite 仅用于推理,无法用于训练。由于其简化的特性,调试也可能更加复杂。
主要优点:
-
-
- 在移动设备和低功耗硬件上有效运行
- 生成更小的单文件模型
- 支持跨平台部署
-
主要缺点:
-
-
- 量化导致的精度损失
- 不适用于训练或微调
- 调试和错误追踪可能具有挑战性
-
TensorFlow.js LayersModel:浏览器中的 AI
LayersModel 格式使 TensorFlow 模型能够通过 TensorFlow.js 直接在浏览器中运行。该格式由一个 .json 文件(包含层定义、架构和权重清单)和一个或多个 .bin 文件(存储权重值)组合而成,允许 AI 完全在客户端执行。
这种方法使得在浏览器中训练和运行模型成为可能,无需任何后端基础设施。这在隐私方面(因为数据永远不会离开设备)和易于部署方面具有重大优势。例如,开发者可以将图像分类器嵌入到直接在用户浏览器中运行的 Web 应用程序中。其局限性在于模型大小受限,并且性能在很大程度上取决于所使用的浏览器和设备。
主要优点:
-
-
- 无需后端基础设施
- 本地执行提供强大的隐私
- 易于与网络应用程序集成
-
主要缺点:
-
-
- 模型大小和复杂性有限
- 依赖于浏览器/设备功能
- 可能需要从其他 TensorFlow 格式转换
-
整合起来
TensorFlow 的优势在于其跨环境的灵活性。SavedModel 是企业和生产部署的主力,TFLite 将 AI 扩展到移动和边缘领域,而 LayersModel 则无需服务器即可实现基于浏览器的智能。这些格式共同赋予了 TensorFlow 无与伦比的影响力,尽管每种格式在复杂性、准确性和可扩展性方面各有优劣。
Keras 为初学者提供简单易用性
虽然 TensorFlow 提供了大规模生产级 AI 所需的强大功能和灵活性,但其复杂性可能会让初学者望而却步。这正是 Keras 的用武之地。Keras 最初是作为一个独立项目开发的,后来被集成为 TensorFlow 的官方高级 API,其设计初衷是让神经网络的构建和实验变得更简单、更便捷。
Keras 的核心理念是易用性。它抽象了 TensorFlow 的大量底层细节,为开发者提供了更直观的界面来定义、训练和评估模型。这使得 Keras 对于那些深度学习新手,或者想要快速构建原型而无需编写大量样板代码的人来说尤其具有吸引力。
Keras 模型以 .keras 格式保存,该格式将所有关键信息(架构、训练配置和权重)整合到一个文件中。这使得它们具有高度的可移植性,并且易于与协作者共享。开发者可以在一台机器上构建并保存模型,然后以最小的负担将其加载到其他地方。
代价是,这种简单性是以牺牲精细控制和性能优化为代价的。进行大规模生产部署的高级用户可能会发现,与“原始” TensorFlow 相比,Keras 的限制更多。由于 Keras 是一个更高级的 API,它可能会隐藏高级开发者有时需要微调的重要细节。此外,由于该框架抽象出了许多底层逻辑,调试复杂错误也变得更加困难。
简而言之,对于 AI 新手或重视快速原型设计和可读性的团队来说,Keras 是一个绝佳的切入点。但对于运行关键任务、性能敏感型工作负载的企业来说,可能需要从 Keras 转向 TensorFlow 或其他框架,以实现最大程度的控制。
主要优点:
-
-
- 适合初学者且易于学习
- 将所有信息存储在一个可移植的文件中
- 提供清晰、可读的格式来定义模型
-
主要缺点:
-
-
- 对低级细节的控制较少
- 与直接使用 TensorFlow 相比,性能较低
- 由于抽象,调试可能很困难
-
ONNX,通用翻译器
由于 AI 框架种类繁多(PyTorch、TensorFlow、Keras 等等),互操作性很快就会成为一项挑战。在一个框架中训练的模型可能无法在另一个框架中顺利运行(甚至根本无法运行),这使得团队难以在平台之间共享工作成果或迁移项目。开放神经网络交换 (ONNX) 正是为解决这一问题而创建的。
ONNX 本质上是一种用于表示机器学习模型的标准化格式。可以将其视为 AI 的通用转换器。通过将模型存储为由标准化运算符(类似于层)组成的计算图,ONNX 使得在框架之间移动模型而不会丢失关键信息成为可能。例如,您可以在 PyTorch 中训练模型,将其导出到 ONNX,然后在 TensorFlow 中部署,反之亦然。
如果框架使用独特的操作符,该格式还允许自定义操作符。在这种情况下,ONNX 可以将操作符映射到通用的等效操作符,或将其保留为自定义扩展,从而有助于跨环境保留功能。这种灵活性使 ONNX 成为不想被单一框架束缚的企业的热门选择。
ONNX 还针对推理进行了优化,这意味着它特别适合将经过训练的模型部署到生产环境中。这些模型保存在单个文件中,从而简化了跨不同环境的共享和部署。NVIDIA、AMD 和 Intel 等硬件供应商都支持 ONNX 运行时,从而更容易从专用硬件中获得性能提升。
有什么缺点吗?ONNX 对初学者的友好程度不如某些格式。它通常需要更多的技术专业知识来管理,并且可能比框架原生格式生成更大的文件。对于复杂或实验性的模型,转换也会变得棘手,因此,在导出尖端设计时,适用于标准架构的方法可能并不总是能完美地转换。
尽管如此,ONNX 在 AI 生态系统中发挥着至关重要的作用,它让开发人员和组织可以自由选择适合工作的工具,而不被锁定在单一格式中。
主要优点:
-
-
- 框架互操作性,可以轻松地在 PyTorch、TensorFlow 和其他框架之间转换
- 针对推理和部署进行了优化
- 单文件格式简化了共享和可移植性
- 硬件供应商对性能优化的广泛支持
-
主要缺点:
-
-
- 新手的学习曲线更陡峭
- 与某些格式相比,文件较大
- 复杂或自定义模型可能无法始终无缝转换
-
其他值得了解的 AI 模型格式
虽然我们介绍的格式(PyTorch、TensorFlow、Keras、GGUF/GGML 和 ONNX)代表了当今 AI 开发中最常用的选项,但对于特定的生态系统或用例,还有一些值得一提的格式:
- Torch脚本 一种 PyTorch 导出格式,可将模型转换为静态计算图。这使得它们更容易在无法使用 Python 的环境中部署。虽然 ONNX 现在是跨框架部署的更常见选择,但 TorchScript 对于与 PyTorch 紧密相关的生产场景仍然很有用。
- 核心机器学习(.mlmodel) – Apple 专用于在 iOS 和 macOS 设备上运行 AI 模型的格式。它针对 Apple 生态系统进行了高度优化,对于以 iPhone、iPad 和 Mac 上的应用或功能为目标的开发者来说至关重要。
- PMML 和 PFA 预测模型标记语言 (PMML) 和可移植分析格式 (PFA) 是早期以可移植方式表示机器学习模型的标准。它们在现代深度学习工作流程中不太常见,但在传统的数据科学项目中仍可能遇到。
- MXNet 格式 Apache MXNet 曾经一度因为 AWS 支持而广受欢迎,但它使用自己的模型格式。虽然采用率已下降,转而青睐 PyTorch 和 TensorFlow,但一些遗留系统可能仍然依赖 MXNet。
这些格式并不像前面介绍的主要格式那样广泛使用,但了解它们的存在可以帮助您应对特殊情况或特定平台要求。
将格式与任务相匹配
正如我们所见,AI 模型格式的选择多种多样。从用于轻量级推理的 GGUF 和 GGML,到用于研究和生产的 PyTorch 和 TensorFlow,再到用于互操作性的 ONNX,每种格式都应运而生,因为不同的项目需要不同的权衡。即使是 TorchScript、Core ML、PMML 和 MXNet 等不太常见的格式,也在小众生态系统中扮演着重要的角色。
关键在于记住,没有通用的“最佳”格式。正确的选择取决于您的用例。请考虑您将部署到的设备、可用的资源、您正在使用的框架,以及您需要在灵活性、性能和可扩展性之间取得的平衡。尽早做出正确的决定可以节省时间、降低成本,并确保您的 AI 项目在现实世界中而非仅仅停留在理论上。
当然,模型格式只是其中一部分。训练和微调这些模型通常需要比大多数组织所能承受的更多的 GPU 算力——而且使用云服务可能会增加成本并引发数据安全问题。这就是 Phison 的 aiDAPTIV+ 解决方案 通过使用专用 SSD 扩展 GPU VRAM,aiDAPTIV+ 使企业能够在本地训练大型 AI 模型,在保护敏感数据隐私的同时,与仅限云的替代方案相比降低成本。
归根结底,选择正确的格式就是将工具与任务相匹配。将其与合适的训练基础设施相结合,您的组织不仅可以构建更智能的 AI 模型,还能以真正创造价值的方式部署它们。
想要了解如何在本地经济高效地使用企业数据训练您首选的 AI 模型吗?立即注册我们的免费网络研讨会“借助群联电子和 ABS,大数据,小型机器” 由 Newegg Business 于 2025 年 9 月 17 日推出。