什么是推理training
在人工智能领域,推理是指经过训练的机器学习模型从全新的数据(输入)中得出结论(输出)的过程。通俗地讲,推理是模型的实际运行。
什么是训练 inference
在人工智能领域,训练是指让机器学习模型做出准确推理的过程。训练可能涉及反复试错的过程,或者向模型展示期望输入和输出的示例,或者两者兼而有之。
推理和训练的算力对比
就算力而言,训练人工智能模型可能非常昂贵。不过,这通常是一次性的开支。一旦模型训练得当,理论上就无需再进行训练。
然而,推理是持续性的。如果一个模型正在使用中,它就会持续将其训练结果应用到新数据中,并做出更多推理。这需要相当大的算力,并且可能非常昂贵。
分布式训练
分布式训练是一种通过在多个计算设备或节点上共同进行模型训练的方法,克服单节点的限制。
常见的分布式训练技术包括数据并行,流水线模型并行,张量模型并行,混合并行。
数据并行
数据并行的核心思想是每个计算节点都有一份完整的模型,在不同的计算节点上使用不同的数据子集进行梯度计算,然后对每个计算节点的梯度进行累加,再将聚合后的结果广播到所有计算节点。
在计算过程中,服务器节点需要处理大量数据传输。随着计算节点数量增加,通信逐渐成为数据并行中的新瓶颈。
为了解决数据并行中的通信负载不均衡的问题,分布式数据并行DDP出现了。DDP的核心思想是将服务器节点上的通讯压力均衡转到各个计算节点上,即去服务器节点,留计算节点。
在传统的数据并行中, 通信瓶颈通常出现在服务器节点,因为服务器节点需要与其他计算节点进行通信以进行梯度聚合和权重更新。而分布式数据并行则直接去掉了服务器节点,使得各个计算节点之间可以直接进行通信和梯度聚合。这样,每个节点都会收到来自其他节点的梯度,从而能够独立进行反向传播和参数更新,有效解决了通信负载不均衡的问题。
虽然分布式数据并行使用起来非常简单和方便,但是其要求整个模型加载到单个计算节点上,为了缓解显存的压力,出现了一种新兴的数据并行方式,即完全分片数据并行FSDP。它的核心思想是在对数据进行切片的同时,将模型的参数也切分为多份,每个节点只存储部分参数信息。
流水线模型并行
流水线并行的核心思想是对模型进行切分,将模型的不同层放置到不同的计算节点上,从而降低单个计算节点的显存消耗,使得能够容纳更大规模的模型进行训练。
流水线并行又分为朴素流水线和微批次流水线。
朴素流水线并行的核心思想是将模型的不同层切分成多个部分 (Stage),并将每个部分(Stage)分配给一个 GPU,然后使用小批量(mini-batch)数据进行常规的训练,并在 GPU 之间进行点对点的通信。
微批次流水线并行方案Gpipe的核心思想是:将传入的小批次(mini-batch) 数据再进行切分为更小的微批次(micro-batch)数据,然后进行前向传播和反向传播。通过在同一时刻训练不同的微批次数据来减小节点的空闲时间,以及提升 GPU 的利用率。
(有一种模型向指令集靠近的感觉。。。)
张量模型并行
同样是将模型分解放置到不同的GPU上,但和流水线并行不同的是,张量并行是针对模型中的参数进行分片。最常见的张量并行方案是1D 张量并行,即将参数按照某一个维度进行划分(横着切或者竖着切)。它的核心思想是模型的参数被划分成多个张量,并分别分配到不同的节点上进行计算。训练过程中,每个节点独立计算分配给自己的参数。然后,通过通信和同步操作,确保所有节点上的模型参数得到更新。
大模型和机器学习模型的区别
大模型和机器学习模型各有其优势和适用场景。大模型在处理复杂、开放性的自然语言任务时表现出色,但需要大量资源。传统机器学习模型则更适合特定任务,资源需求较少,且在某些领域仍然是首选方案。在实际应用中,选择哪种模型取决于具体的任务需求、可用资源和性能要求。
- 规模和复杂度:
● 大模型:通常包含数十亿到数万亿个参数,如GPT-3有1750亿个参数。
● 机器学习模型:参数数量通常较少,从几百到几百万不等。 - 训练数据:
● 大模型:需要海量的训练数据,通常是互联网规模的文本数据。
● 机器学习模型:可以在相对较小的数据集上训练,数据量可能从几千到几百万条不等。 - 通用性vs专用性:
● 大模型:通常是通用模型,可以应用于多种自然语言处理任务。
● 机器学习模型:往往针对特定任务进行优化,如图像分类、垃圾邮件检测等。 - 训练方法:
● 大模型:通常使用自监督学习方法,如预测下一个词。
● 机器学习模型:可能使用监督学习、无监督学习或强化学习等多种方法。 - 计算资源需求:
● 大模型:需要大量的计算资源进行训练,通常需要多个GPU或TPU集群。
● 机器学习模型:可以在普通PC或单个GPU上训练。 - 推理时间:
● 大模型:由于规模庞大,推理时间可能较长。
● 机器学习模型:通常推理速度较快,适合实时应用。 - 可解释性:
● 大模型:由于复杂度高,通常被视为"黑盒",可解释性较差。
● 机器学习模型:某些模型(如决策树)具有较好的可解释性。 - 迁移学习能力:
● 大模型:具有强大的迁移学习能力,可以快速适应新任务。
● 机器学习模型:迁移学习能力相对有限,通常需要针对新任务重新训练。 - 更新和维护:
● 大模型:更新成本高,通常需要重新训练整个模型。
● 机器学习模型:可以进行增量更新,维护相对简单。 - 应用场景:
● 大模型:适用于复杂的自然语言处理任务,如文本生成、问答系统、语言翻译等。
● 机器学习模型:广泛应用于各种领域,包括计算机视觉、推荐系统、异常检测等。