6.2 大模型基础(框架、架构)
本小节主要介绍大模型领域下,主要技术框架相关的基础概念,以及的框架之间的区别是什么,帮助我们后续的进行更加深入的学习。
在我们进行AIGC 的学习的过程之中我们经常会遇到一些高频出现的名词的,比如:Pytorch,TensorFlow,TransFormers,CheckPoint 他们之间相互交叉,因为出现的很高频所以我们需要的这里普及下这些概念,这样在后续可以加快我们对该领域的知识的理解。
1.0总结概述
TensorFlow 是由 Google Brain 团队开发的开源深度学习框架。自 2015 年发布以来,它已经成为机器学习和深度学习社区中广泛使用的工具之一。TensorFlow 适用于从研究到生产的广泛应用场景,并支持多种编程语言。
PyTorch 是由 Facebook 的人工智能研究团队开发的开源深度学习框架。自 2016 年发布以来,PyTorch 迅速获得了学术界和工业界的广泛认可和使用。PyTorch 以其易用性、灵活性和动态计算图的特性而著称。
Transformers 是一种深度学习模型架构,最初由 Vaswani 等人在 2017 年的论文《Attention is All You Need》中提出。这种架构在自然语言处理(NLP)领域取得了显著的成功,并被广泛应用于各种任务,如机器翻译、文本生成、文本分类和问答系统。Transformers 的关键特性在于它使用了一种称为自注意力(self-attention)的机制,能够有效地捕捉序列数据中的长期依赖关系。
checkpoint 在大模型(如深度学习模型)中,checkpoint 是指在训练过程中保存模型当前状态的快照。它通常包含模型的权重、优化器的状态以及其他训练相关的参数。
2.0 概念介绍
一、TensorFlow
多语言支持:虽然主要使用 Python,但 TensorFlow 还支持 C++、Java、JavaScript、Go 等多种语言,特别是 TensorFlow.js 和 TensorFlow Lite,分别支持在浏览器和移动设备上运行模型。
广泛的社区和支持:TensorFlow 拥有庞大的用户社区和丰富的文档、教程和资源,提供了强大的社区支持。
二、PyTorch
简洁的 API:PyTorch 的 API 非常直观和易用,符合 Python 的编程风格,降低了学习门槛。
三、TransFormers
以下是 Transformers 的一些核心概念和组件:
自注意力机制:自注意力机制允许模型在处理序列的每个位置时关注序列中的其他所有位置,从而捕捉到远距离的依赖关系。它计算每个位置与其他位置之间的相关性,并根据相关性加权平均这些位置的表示。
多头注意力:通过将自注意力机制扩展为多个并行的注意力头,模型可以在不同的子空间中捕捉不同类型的依赖关系。每个头独立地执行自注意力,然后将结果连接起来。
位置编码:因为自注意力机制不包含位置信息,Transformers 通过添加位置编码来表示序列中每个位置的顺序。这些位置编码通常是固定的正弦和余弦函数。
编码器-解码器结构:最初的 Transformers 模型采用编码器-解码器结构,其中编码器将输入序列转换为一组表示,解码器使用这些表示生成输出序列。每个编码器和解码器层都由多头注意力和前馈神经网络组成。
无状态处理:与循环神经网络(RNN)不同,Transformers 不依赖于先前时间步的状态,这使得它们更容易并行化,并且在处理长序列时更高效。
四、CheckPoint
checkpoint 的主要作用如下:
保存中间结果:在长时间训练模型时,定期保存 checkpoint 以防止由于中断(如停电、计算机崩溃等)而丢失训练进度。这样可以从最近一次保存的 checkpoint 继续训练,而不必从头开始。
模型评估:在训练过程中,可能会定期对模型进行评估,使用 checkpoint 可以方便地在不同的时间点加载模型,并进行验证或测试。
实验管理:在进行模型调优和实验时,可以保存多个 checkpoint,以便回顾和比较不同实验条件下的模型性能。
部署:训练完成后,最终的 checkpoint 通常会被用来部署模型。在生产环境中,使用保存的 checkpoint 来进行推理和预测
下载并使用一个预训练的大模型时,你通常会得到以下几种文件:
模型权重文件:这个文件保存了模型的参数(如神经网络的权重和偏置)。在 TensorFlow 中,这通常是 .ckpt 文件;在 PyTorch 中,这通常是 .pt 或 .pth 文件。
模型配置文件:这个文件描述了模型的架构(如每一层的类型、层数、激活函数等)。在一些框架中,模型配置可能包含在 checkpoint 文件中,或者作为一个单独的 JSON 或 YAML 文件。
其他相关文件:一些模型可能还包含额外的信息,如训练过程中使用的词汇表(对于自然语言处理模型)、模型的超参数设置等。
3.0层级关系
TensorFlow和PyTorch区别
TensorFlow:更适合于从研究到生产环境的广泛应用,具有强大的工具和生态系统支持,适合需要多语言支持和大规模分布式训练的应用场景。
PyTorch:以其动态计算图、简洁的 API 和强大的社区支持而著称,适合快速原型开发、实验和学术研究,近年来在工业界的应用也越来越广泛。
Transformers通过配置或自动检测来决定使用 PyTorch 或 TensorFlow
Hugging Face 的 Transformers 库设计得非常灵活,可以通过配置或自动检测来决定使用 PyTorch 或 TensorFlow。这使得开发者可以轻松地在这两大深度学习框架之间切换。以下是一些关键点和方法来控制 Transformers 库使用的框架:自动检测 Hugging Face Transformers 库会自动检测你的环境中安装了哪些框架,并根据需要选择适当的框架。如果你同时安装了 PyTorch 和 TensorFlow,它会优先使用 PyTorch,但你可以通过一些简单的设置来强制使用其中一个框架。
Transformers、PyTorch、Checkpoint层级关系梳理
Transformers、PyTorch、Checkpoint调用的层级关系可以表示为:
Transformers:提供高层次的 API 来加载、微调和使用预训练模型。 PyTorch:作为底层框架,提供深度学习模型的构建、训练和推理功能。 Checkpoint:保存和加载模型的状态,确保模型的持久化和可重复使用。 这种层级关系确保了用户可以在高层次 API 的帮助下方便地使用强大的深度学习模型,同时底层依赖 PyTorch 的灵活性和性能,以及 checkpoint 的可靠性来管理模型的状态。
4.0 ComfyUI 下应用
参考文档:
Last updated