Safetensors、CKPT、ONNX、GGUF 及其他关键 AI 模型格式 [2025]

分类:AI/ML开源 标签:
Save and Share:

人工智能和机器学习的飞速发展,使得我们迫切需要高效、安全且兼容不同系统的模型存储与分发方法。随着模型日益复杂、应用场景愈发多样,序列化格式的选择成为一项关键决策。这一选择会影响人工智能系统的性能、资源消耗和安全性。

本报告将深入探讨几种主流的模型序列化格式,包括 Safetensors、CKPT、ONNX 和 GGUF,重点分析它们的独特功能、常见用途以及彼此之间的差异。

1. AI/ML 模型序列化简介

模型序列化是指将训练好的机器学习模型保存到文件的过程。这个文件可以被存储、共享或重新加载,以便后续使用,例如进行预测、继续训练或执行分析。这一功能对从研发到大规模部署的整个 AI/ML 生命周期都至关重要。

模型格式在 AI/ML 生命周期中的关键作用

将模型保存为标准格式至关重要,原因如下:

  • 可复现性: 确保研究实验能够被精确复制和验证。
  • 协作性: 标准格式使团队能够轻松共享模型,从而协同工作并将模型集成到更大的系统中。
  • 部署: 序列化将训练好的模型转化为一个可移植的文件,可以在从云服务器到边缘设备的各种环境中加载和运行。
  • 迁移学习: 允许使用预训练模型作为新任务的基础,从而显著节省训练时间和数据。

现代格式所应对的挑战概述

随着机器学习的进步,现代序列化格式已演进以解决几个关键挑战:

  • 安全性: 一个主要担忧是传统方法(尤其是使用 Python 的 pickle 模块的方法)存在的安全风险。这些方法可能允许在加载模型时执行恶意代码,如果模型来自不受信任的来源,这将构成严重的安全威胁。
  • 性能: 当今庞大而复杂的模型要求极快的加载速度和高效的内存管理。这对于资源有限的设备(如手机)和需要即时响应的应用尤为重要。
  • 可移植性与互操作性: 机器学习领域使用了许多不同的框架(如 PyTorch、TensorFlow 和 JAX)。需要有一种格式,能够让模型在这些框架之间轻松迁移,并在不同的硬件(GPU、TPU)上运行,而无需进行重大修改。

近年来,AI 社区已转向 GGUF 和 Safetensors 等更高效、更安全的格式,这反映了解决这些问题的集体努力。

早期保存机器学习模型的方法,例如 PyTorch 使用 Python pickle 模块处理其 .pt.pth 文件,因其易用性而被采纳。它们可以轻松保存复杂的 Python 对象,包括模型的设计和训练状态(如优化器)。虽然这在 Python 环境中进行研究很方便,但却带来了严重的安全漏洞。pickle 模块的设计使其能够在加载过程中执行嵌入在文件中的任何代码。这意味着从不受信任的来源加载一个看似无害的模型可能会危及整个系统。

Safetensors 等格式的诞生,以及 ONNX 和 GGUF 的日益普及,正是对这种安全风险以及对更高性能和可移植性需求的直接回应。例如,Safetensors 的设计初衷就是为了防止恶意代码执行。这表明,随着机器学习领域日趋成熟,AI 从研究走向实际应用,安全性和效率不再是事后考虑的因素,而是设计新格式的核心原则。这一变化代表了从以研究为中心的灵活性向生产级安全性和稳健性的必要转变,修复了旧有、更宽松方法的“技术债”。

框架原生格式,如 PyTorch 的 .pt/.pth 和 TensorFlow/Keras 的 .ckpt/.h5,与其特定框架紧密集成。虽然这使得它们在单一生态系统内效率很高,但也导致了严重的互操作性问题。在一个框架中训练的模型无法在另一个框架中轻松使用,除非进行复杂的转换或为每个框架维护独立的系统。这导致了开发和部署工作流程的脱节。

开放神经网络交换(ONNX)格式的创建就是为了打破这些壁垒。它为模型提供了一个“跨平台”和“厂商中立”的标准。它通过以一种独立于任何单一框架的抽象方式来定义模型的结构(其计算图)来实现这一点。同样,GGUF 虽然最初是为 llama.cpp 项目创建的,但也专注于提高大型语言模型(LLM)在不同平台上的兼容性。

当今格式的多样性反映了机器学习行业的一个核心矛盾:开发阶段对框架特定功能的需求(例如 PyTorch 的动态图以实现研究灵活性)与对通用、高效和安全部署的需求。这种矛盾意味着多种格式将继续共存,使得转换工具和先进的 MLOps 管道在连接模型开发与部署方面变得日益重要。不同的格式将根据其独特优势,继续用于机器学习生命周期的特定阶段。

2. 了解 Safetensors

Safetensors 是模型序列化领域的一大进步,专为解决传统模型存储方法中的安全和效率问题而设计。

定义与核心设计原则

Safetensors 是由 Hugging Face 创建的一种现代、安全且快速的深度学习模型序列化格式。其主要目标是为存储和共享张量(构成机器学习基础数据单元的多维数组)提供一种安全的方式。该格式的设计比 pickle 等旧格式更安全、更快速。

Safetensors 的一个核心原则是严格区分模型权重(张量)和任何可执行代码。这种设计直接解决了旧序列化方法中存在的安全漏洞。

主要特性

  • 零拷贝与延迟加载: Safetensors 性能的关键在于其“零拷贝”能力。这使得模型数据可以直接从磁盘映射到内存,无需创建额外副本,从而节省内存并加快加载速度。它还支持“延迟加载”,即在需要时才将大型模型的必要部分加载到内存中。这对于超大型模型或内存有限的系统非常有用。
  • 结构化元数据处理: 每个 Safetensors 文件都包含一个独立的 JSON 格式的元数据部分。该部分列出了模型中的所有张量及其详细信息,如形状、数据类型和名称。元数据指向文件中张量实际数据的存储位置,这提高了可读性和安全性。
  • 仅存储张量数据: Safetensors 最重要的安全特性是它被设计为“只包含原始张量数据和相关元数据”。其架构本身就“不允许序列化任意 Python 代码”。这一根本性的设计选择消除了加载模型时执行恶意代码的风险。
  • 量化支持: Safetensors 可以处理量化张量,这有助于缩小模型体积并减少内存使用。然而,其量化支持“不如 GGUF 灵活”,因为它依赖于 PyTorch 框架提供的功能。

主要优势

  • 增强的安全性(缓解任意代码执行): 这是 Safetensors 的最大优势。从设计上,它完全阻止了 Python 代码被保存在文件中。这消除了基于 pickle 的格式中最严重的安全风险:加载模型时执行恶意代码。这使得 Safetensors 成为从公共或不受信任来源共享和使用模型的最佳选择。该格式还包括其他安全功能,如“先进的加密技术”和访问控制,以防止数据篡改。
  • 性能优化: 零拷贝和延迟加载的使用带来了“更快的加载时间和更低的内存使用”。基准测试显示,它比 pickle 快得多,并且“在 CPU 上比传统 PyTorch 保存方法快 76.6 倍,在 GPU 上快 2 倍”。
  • 可移植性: 该格式被设计为可移植的,这意味着它可以在不同的编程语言中使用。这使得在各种软件系统中共享和使用模型变得更加容易。
  • 无缝集成: Safetensors “与现有的机器学习框架和库无缝集成”。这使开发人员可以轻松采用这种更安全的格式,而无需对当前工作流程进行重大更改。

与传统序列化方法(如 Pickle)的比较

Python 的 pickle 模块被用于 PyTorch 的 .pt.pth 文件,其本质上是不安全的。它允许任何代码隐藏在序列化文件中,并在加载文件时自动运行。这是一个众所周知的严重漏洞,尤其是在使用从公共网站下载的模型时。虽然像 picklescan 这样的工具可以检测到一些恶意模式,但它们并非万无一失,不能保证绝对安全。

Safetensors 的创建正是为了解决这个安全问题。通过只允许文件中包含原始张量数据和结构化元数据,它消除了执行恶意代码的可能性。除了安全性,Safetensors 还提供了更优越的性能。其为内存映射和延迟加载而设计的架构,与通常一次性将整个模型加载到内存中的 pickle 相比,带来了显著更快的加载速度和更高效的内存使用。

Python 的 pickle 存在的安全漏洞意味着,从不受信任的来源下载一个 .pt.pth 文件不仅仅是下载数据,更像是运行一个潜在的有害程序。众所周知,“在不执行的情况下,没有 100% 万无一失的方法来验证 pickle 文件的安全性”。这将检查文件安全性的责任推给了用户,而这既困难又不可靠。

Safetensors 通过重新设计格式本身来 从根本上防止 有害代码被包含进来,从而改变了这一局面。它将安全责任从用户困难的验证过程转移到了格式的内置安全性上。这标志着开源 AI 社区从“先验证,后信任”的方法向“设计即信任”模型的重大转变。这一转变承认,几乎不可能扫描出复杂文件中所有潜在的威胁。通过阻断攻击途径(任意代码执行),Safetensors 使模型的广泛共享变得更加安全,鼓励了协作,并让更多人能够更容易地使用预训练模型。这种“设计即信任”的原则对于整个 AI 生态系统的发展和安全至关重要。

虽然 Safetensors 的创建主要是出于安全原因(修复 pickle 的漏洞),但它也带来了显著的性能提升,如更快的加载速度、更低的内存占用和零拷贝操作。这些性能提升不仅仅是副作用,它们是 Safetensors 优化设计的直接结果,该设计利用内存映射和延迟加载来高效处理数据。这使其天然地对大型模型更为高效。

这种增强的安全性 显著的性能改进相结合,是其被广泛采用的关键驱动力。如果 Safetensors 仅仅提供了更好的安全性,其采用速度可能会慢一些,尤其是在那些不立即关注安全性的用户中。然而,清晰可测的性能优势为所有人提供了切换的充分理由,加速了其融入 Hugging Face 等主流平台。这表明,在 AI 工程中,一项技术通常需要同时提供安全和性能优势,才能被行业迅速而广泛地接受。

3. 关键模型格式概述

除了 Safetensors,机器学习领域还有其他几种重要的格式,每种都有其独特的特性和用例。

3.1. CKPT(检查点)

AI 检查点不是单一的文件类型,而是在训练过程中特定时间点保存的模型状态快照。在长时间的训练任务中,检查点对于保存进度至关重要。

特性与典型用例

一个检查点通常包含模型的学习参数,如权重和偏置。它还可以存储恢复训练所需的其他重要信息,如优化器的状态、当前的轮次数和学习率计划。检查点的文件扩展名因框架而异。对于 PyTorch,它们通常是 .pt.pth,而对于 TensorFlow/Keras,则是 .ckpt.h5

CKPT 文件的主要优点包括:

  • 可复现性: 它们确保模型在重新加载时行为一致,这对于验证研究和保持可靠性能至关重要。
  • 协作性: 它们易于共享,使开发人员能够复制结果或在现有工作的基础上继续构建。
  • 灵活性: PyTorch 的 .pt/.pth 格式尤其灵活,使得为研究目的保存和加载模型变得简单。

CKPT 文件的常见用例包括:

  • 恢复训练: 继续一个被中断的训练会话,这能节省大量时间和计算资源。
  • 微调: 使用预训练模型作为起点,在新的、更特定的数据集上进行训练。
  • 模型评估: 在训练的不同阶段测试模型性能,而无需重新训练。
  • 推理: 将完全训练好的模型加载到生产系统中进行预测。
  • 研究与实验: 分析模型随时间演变的过程,并系统地调整其参数。
  • 迁移学习: 作为相关任务的强大起点,减少了训练时间和数据需求。
  • 灾难恢复: 作为备份,在长时间训练过程中发生故障后恢复工作。

安全考量

CKPT 文件的最大安全风险,尤其是 PyTorch 的 .pt.pth 格式,来自于它们对 Python 的 pickle 模块的依赖。这意味着这些文件可以被设计为在加载时(如果使用 torch.load 函数时没有设置 weights_only=True)包含并运行恶意 Python 代码。这个漏洞(CWE-502:反序列化不受信任的数据)可能导致严重后果,例如数据盗窃、模型行为被篡改,甚至整个系统被接管。

业界已经认识到这一风险,Safetensors 已成为一个更安全的选择。正如所指出的,“大多数 Stable Diffusion AI 检查点都以 .ckpt 或 .safetensors 等格式保存…… .safetensors 是一个更安全的选择,旨在防止恶意代码执行。” 这表明了模型共享领域向更安全格式发展的明确趋势。

CKPT,特别是 PyTorch 的 .pt/.pth 格式,以其“高度灵活性”而闻名。这种灵活性使它们不仅可以保存模型权重,还可以保存优化器状态甚至自定义的 Python 类,这对于精确恢复训练非常有用。

然而,正是这种灵活性造成了安全漏洞。因为该格式可以保存任何 Python 对象,攻击者可以将恶意代码隐藏在模型文件中。当文件在没有适当预防措施的情况下被加载时,该代码就会运行。这揭示了系统设计中的一个基本权衡:更高的灵活性往往导致更大的攻击面和更高的安全风险。

业界的解决方案是采用像 Safetensors 这样的格式来分发模型,即使在受控环境中使用更灵活的 .pt/.pth 格式进行训练。这表明人们越来越认识到,机器学习生命周期的不同阶段需要不同级别的安全性。保存完整训练状态的强大功能最好保留在受信任的开发环境中,而共享和部署则需要具有内置安全保障的格式。

3.2. ONNX(开放神经网络交换)

ONNX,即开放神经网络交换(Open Neural Network Exchange),是一种用于机器学习模型的开放标准格式。它旨在使模型能够在不同的深度学习框架之间工作。

特性与主要用例

一个 ONNX 文件包含模型的完整结构,包括其操作序列(计算图)、学习到的权重以及其他元数据。ONNX 的一个主要优势是它充当通用转换器。在 PyTorch、TensorFlow 或 scikit-learn 等框架中训练的模型可以转换为 ONNX 格式,从而实现“一次训练,随处部署”的方法。

与只存储模型权重(如 Safetensors 或 GGUF)的格式不同,ONNX 包含了模型的计算图。这种基于图的结构在“在不同框架之间转换模型时提供了更大的灵活性”。ONNX 在许多平台、设备和硬件加速器(CPU、GPU、AI 芯片)上提供了出色的可移植性。模型以 Protobuf 格式存储,这是一种高效、平台中立的结构化数据保存方式。

ONNX 的主要用例包括:

  • 跨框架部署: 在与其训练框架或环境不同的地方运行模型。
  • 高性能推理: ONNX Runtime 是一个推理引擎,可以自动为特定硬件优化模型,通常能带来更快的性能。
  • 边缘和移动部署: 其小巧的体积和优化的运行时使 ONNX 成为在资源有限的设备上运行模型的理想选择。
  • 生产系统: 其稳健性和可移植性使其在要求苛刻的生产环境中部署模型时广受欢迎。

安全考量

ONNX 模型一个不易察觉但严重的安全风险是潜在的架构后门。攻击者可以修改模型的计算图,包含一个只有特定输入才能触发的隐藏路径。一旦激活,这个后门可能导致模型产生恶意或意外的输出,而在标准输入下表现正常,使其难以检测。其他风险包括模型反转攻击(提取敏感的训练数据)和对抗性攻击(使用恶意输入欺骗模型)。

为减少这些威胁,建议采取以下几种做法:

  • 对 ONNX 模型进行数字签名,以确保它们未被篡改。
  • 在隔离的环境(如 Docker 容器)中部署模型,并加强网络安全。
  • 使用监控工具跟踪模型行为并检测异常。
  • 遵循通用的安全最佳实践,如输入清理和保持软件更新。

ONNX 通常比基于 pickle 的格式更安全,因为它在加载时不会执行任意代码。但是,如果一个 ONNX 模型使用了外部实现的自定义层,那么如果管理不当,这些层 可能 包含恶意 Python 代码。

缺点

尽管 ONNX 支持量化模型,但它“并不像 GGUF 那样无缝地原生支持量化张量”。它会将量化张量分解为独立的整数张量和缩放因子张量,这“可能导致质量下降”。转换具有非标准于 ONNX 的复杂或自定义层的模型也可能很困难,并且可能需要可能拖慢性能的自定义工作。

基于 Python 的 pickle 的传统格式(如 .pt 文件)保存的是 Python 对象,其中可以包含可执行代码。这将模型视为一个程序。相比之下,ONNX 专注于保存模型的“计算图”——一种对其操作和数据流的更抽象的表示,而不是特定的代码实现。

这种以图为中心的方法正是 ONNX 具有出色跨框架可移植性并能为不同硬件优化的原因。通过在更高层次上定义模型的逻辑,它变得独立于其训练框架。这是一个重大的概念转变,从框架特定的实现转向了可移植的计算表示。虽然这极大地提高了部署的灵活性,但也带来了新的安全问题,如架构后门,这需要与用于基于 pickle 的格式不同的安全策略。

3.3. GGUF(GPT 生成统一格式)

GGUF(GPT-Generated Unified Format)是一种专门为高效存储和运行大型语言模型(LLM)而设计的文件格式。它是其前身 GGML 的改进版本,旨在让 LLM 更易于使用,尤其是在个人计算机上。

特性与主要用例

GGUF 旨在使 LLM 体积更小、加载速度更快。这对于在本地运行模型至关重要,因为本地存储空间和内存通常有限。该格式使用“先进的压缩技术”来实现这一目标。它还提供了一种标准化的方式来打包模型的权重、架构和元数据,确保其在不同软件中(尤其是在基于 llama.cpp 的推理引擎中)能一致工作。

GGUF 的一个关键特性是对量化的出色支持。量化降低了模型权重的数值精度(例如,从 16 位降到 4 位数字),这极大地减少了文件大小和运行模型所需的计算量。GGUF 模型提供多种量化级别(从 Q2 到 Q8),在模型大小和质量之间提供了一系列权衡。

  • 较低的量化级别(如 Q2 或 Q3)会产生非常小的文件,可以在内存较少的硬件上运行,但模型质量可能会有轻微下降。
  • 较高的量化级别(如 Q6 或 Q8)能保持更好的质量,但需要更多的存储空间和内存。

GGUF 的主要用例包括:

  • 本地 LLM 部署: 像 Ollama 这样的工具使用 GGUF,让用户可以轻松地在自己的电脑上运行强大的 LLM。
  • 离线 AI 助手: 许多应用程序使用 GGUF 模型来提供本地、私密的云端 AI 工具替代方案。
  • 代码辅助: IDE 和代码编辑器开始使用 GGUF 模型进行智能代码补全。
  • 本地聊天机器人: GGUF 模型常用于私密且响应迅速的对话式 AI 系统。
  • AI 研究: 其灵活性和量化支持使其在研究人员中很受欢迎,用于在可及的硬件上实验 LLM。

安全考量

与普遍看法相反,底层的 GGML 库(GGUF 基于此库)曾有记录在案的与“对输入文件验证不足”相关的漏洞。这些缺陷可能导致“在解析过程中出现可被利用的内存损坏漏洞”。已发现的特定安全问题显示,未经检查的用户输入可能导致堆溢出,从而可能让攻击者执行恶意代码。

有一种普遍的误解,认为 GGUF 文件“不能包含代码”,并且“仅仅是一个模型文件”。然而,Databricks 的一份安全报告显示,虽然 GGUF 文件本身不包含可执行的 Python 代码,但一个特制的文件可以利用 解析器(读取文件的软件)中的缺陷,导致内存损坏并实现代码执行。

为减少这些风险,最好:

  • 使用来自知名、信誉良好来源(如 Koboldcpp)的模型和工具。
  • 在隔离的环境(如 Docker 容器)中运行 LLM。
  • 对于高度敏感的任务,考虑使用没有互联网连接的专用机器。

缺点

GGUF 的一个主要缺点是,大多数模型首先在其他框架(如 PyTorch)中开发,并且必须转换为 GGUF 格式。这个转换过程并不总是那么容易,而且一些模型可能不被 GGUF 兼容的工具完全支持。此外,在模型转换成 GGUF 格式后对其进行修改或微调通常“不直接”。

虽然 GGUF 是为快速 加载 和高效的 显存使用 而设计的,但实际的 推理速度(模型生成响应的速度)有时可能比未量化的模型慢。这可能发生在较低的量化级别,因为在推理过程中需要额外的功耗来反量化权重。GGUF 的主要性能优势在于它通过节省显存,使得 大型模型能够在消费级硬件上运行,而不一定使它们运行得更快。

GGUF 的决定性特征是其与量化的深度集成,这使得强大的 LLM 能够在显存有限的“消费级硬件”上运行。这有助于实现 AI 的民主化。然而,这种效率也伴随着权衡。虽然量化使模型更小,但较低的量化级别可能会轻微降低模型质量。此外,推理速度有时可能比未量化的模型慢,特别是如果未量化的版本可以完全装入显存时。

GGUF 的“速度”优势通常指的是更快的 加载速度 和在有限硬件上 运行 更大模型的 能力,而不是原始性能。GGUF 完美地抓住了“AI 民主化”的趋势,让更多人能够接触到先进的模型。这要求用户在模型质量和硬件限制之间找到平衡。多种量化级别的可用性允许用户根据自己的具体需求调整模型,这是该格式在本地 AI 社区中受欢迎的关键。

4. 格式比较分析

选择合适的模型序列化格式是一项战略性决策,取决于对安全性、性能、资源效率、互操作性和具体应用场景等多种因素的权衡。下表对 Safetensors、CKPT、ONNX 和 GGUF 在这些关键维度上进行了比较概述。

特性 / 格式 Safetensors CKPT (.pt/.pth) ONNX GGUF
主要目的 安全、快速地存储深度学习模型的张量 训练检查点、模型参数、状态保存 跨框架互操作性、在不同硬件上部署 高效的 LLM 存储、在消费级硬件上进行优化的本地推理
安全状况 高(设计上无法执行任意代码) 低(通过 Pickle 反序列化可能执行任意代码) 中等(无任意代码执行,但可能存在架构后门) 中等(底层库存在漏洞,但文件本身非可执行 Python 代码)
加载速度 非常快(零拷贝、延迟加载) 不定(因需完整加载,可能比 Safetensors 慢) 快(优化的运行时、图优化) 快(mmap,对 LLM 高效)
内存使用 高效(延迟加载、部分加载) 可能很高(加载整个对象图) 高效(运行时优化) 非常高效(量化、节省显存)
磁盘空间 高效(压缩、仅张量) 不定(可能很大,包含完整状态) 高效(Protobuf 格式) 非常高效(量化、高级压缩)
量化支持 支持,但比 GGUF 灵活性差(依赖 PyTorch) 支持(依赖框架) 原生支持有限(分解张量) 强大(多级别,Q2-Q8,专用变体)
可移植性 高(跨不同编程语言) 低(与特定框架紧密耦合) 非常高(跨框架、跨平台、支持多种硬件) 高(尤其是在 llama.cpp 生态系统中)
主要应用 安全的模型共享、Hugging Face 默认格式 训练、微调、研究、模型保存 生产部署、移动/边缘设备、互操作性 本地 LLM 推理、消费级硬件、聊天应用
核心优势 设计即安全、快速加载、低内存占用 保存训练状态、详细的可复现性 通用部署、运行时优化、框架无关性 LLM 在消费级硬件上的高效率、灵活的量化
核心劣势 在 C++ 中需要 JSON 解析器处理元数据 任意代码执行风险、文件体积大 自定义层处理复杂、原生量化支持有限 通常需要转换、低量化级别可能导致推理变慢

5. 结论

机器学习模型格式的世界在不断演变,其驱动力是对更高安全性、性能和互操作性的追求。传统格式,如基于 pickle 的 CKPT 文件,虽然在研究中很灵活,但因允许任意代码执行而引入了严重的安全风险。这促使了更新、更安全格式的开发和采用。

Safetensors 是这一转变的典型代表。通过将数据与代码分离并采用高效的加载技术,它为共享深度学习模型提供了一种安全且高性能的替代方案,尤其是在 Hugging Face 生态系统中。其安全与速度的双重优势使其成为现代 AI 工作流程中的热门选择。

ONNX 解决了框架不兼容这一重大问题。通过将模型表示为抽象的计算图,它使得模型能够在不同的硬件和软件上部署。虽然 ONNX 防止了 pickle 中的任意代码执行,但它也有其自身的安全问题,如架构后门,需要采取不同的保护措施。

GGUF 是一个专门用于在消费级硬件上运行大型语言模型的解决方案。其强大的量化功能极大地减小了模型大小和内存占用,让更多人能够接触到强大的 LLM。然而,这种效率有时可能导致推理速度变慢,并且其底层库已暴露出需要用户保持警惕的漏洞。

最终,最佳格式取决于具体的应用场景。

  • Safetensors 是安全高效地共享深度学习模型的首选。
  • ONNX 是在不同框架和硬件上部署模型的理想选择。
  • GGUF 在本地、资源有限的设备上运行大型语言模型时,提供了无与伦比的效率。

虽然传统的 CKPT 格式在受控环境中保存训练进度仍然有用,但在公共分发方面,它们正被更安全的替代方案所取代。随着 AI 领域的成熟,这些专业化格式的持续发展对于提升机器学习的力量和影响力至关重要。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注