最近自己在学习大模型,会从推理、部署、微调,最后实现微调后成功调用工具。
大模型 ( Large Model )是指具有大规模参数和复杂计算结构的机器学习模型。 这些模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。大模型通过训练海量数据来学习复杂的模式和特征,具有更强大的泛化能力,可以对未见过的数据做出准确的预测。
大语言模型 (Large Language Model): 通常是具有大规模参数和计算能力的自然语言处理模型,例如 OpenAI 的 GPT-3 模型。这些模型可以通过大量的数据和参数进行训练,以生成人类类似的文本或回答自然语言的问题。大型语言模型在自然语言处理、文本生成和智能对话等领域有广泛应用。
GPT ( Generative Pre-trained Transformer ): GPT 和 ChatGPT 都是基于 Transformer 架构的语言模型,但它们在设计和应用上存在区别:GPT 模型旨在生成自然语言文本并处理各种自然语言处理任务,如文本生成、翻译、摘要等。它通常在单向生成的情况下使用,即根据给定的文本生成连贯的输出。
ChatGPT : ChatGPT 则专注于对话和交互式对话。它经过特定的训练,以更好地处理多轮对话和上下文理解。ChatGPT 设计用于提供流畅、连贯和有趣的对话体验,以响应用户的输入并生成合适的回复。
本地部署大模型涉及三个方面需求:训练、微调和推理,其中
- 训练:算力最密集,消耗的算力通常是推理过程的至少三个数量级以上;
- 微调:算力需求低于训练,但高于推理;
- 推理:算力消耗最低;
国盛证券的报告《Chatgpt 需要多少算力》中估算,GPT-3训练一次的成本约为140万美元,对于一些更大的 LLM 模型,训练成本介于200万美元至1200万美元之间。
一、软硬件需求
1.硬件
-
租用在线GPU服务,通过云计算平台获取大模型所需的计算能力;
-
配置个人计算机或服务器,组建一个适合大模型使用需求的计算机系统;
-
GPU和CPU
-
**CPU** **(** **Central Processing Unit** **)** :
-
少核高频:CPU通常有较少的核心数(例如4到16个核心),但每个核心的频率较高。
-
复杂控制单元:CPU的核心具有复杂的控制单元,能够高效地处理复杂的指令和任务调度。
-
缓存层次:CPU有大容量的缓存(L1、L2、L3),用于加速数据访问和指令执行。
-
**GPU** **(** **Graphics Processing Unit** **)** :
-
多核低频:GPU有成千上万个小核心,每个核心的频率较低,但可以同时执行大量简单指令。
-
SIMD架构:GPU采用单指令多数据(SIMD)架构,适合并行处理大规模的数据。
-
专用硬件单元:GPU有专门用于纹理处理、光栅化、像素着色等图形任务的硬件单元。
-
大模型领域这种生成式人工智能,需要强大的算力来生成文本、图像、视频等内容,训练这样的模型需要的是GPU+计算架构,比如NVIDIA的GPU和CUDA计算架构。比如ChatGPT,训练过程中涉及大量的矩阵运算,本身并不难,但是量很大,需要的是强力的GPU结合CUDA(Compute Unified Device Architecture)计算平台来执行高效的AI计算。
显卡型号怎么选?
当前主要有NVIDIA和AMD两家GPU厂商,由于CUDA的存在,在大模型领域NVIDIA的显卡就是刚需。目前A系列和H系列均禁售,选择4090和3090这种消费级显卡,在深度学习领域同样出色,性价比更高
-
做大模型训练,GeForce RTX 4090不行,主要是4090的内存带宽、通信带宽和延迟在并行训练中与A100差距大
-
做大模型推理,GeForce RTX 4090性价比高于A100
-
做大模型微调,最好A100,GeForce RTX 4090也可以,但是需要多卡
匹配GPU的标准是:根据应用需求,先关注显存大小,必须满足官方的最低显存要求。超算级别显卡A100、H100、A800、H800为80G显存,消费级显卡中,4090和3090显存为24GB。
以ChatGLM-6B模型为例,官方给出的硬件配置说明如下:
量化登记 | 推理时GPU显存占用 | 微调时GPU显存占用 |
---|---|---|
单精度 | 20G | 22G |
半精度 | 13G | 14G |
INT 8 | 8G | 9G |
INT 4 | 6G | 7G |
进行少量对话时,可以采用单机单卡:
量化登记 | 推理时GPU显存占用 | 微调时GPU显存占用 | 最低显卡配置 | 显卡显存 |
---|---|---|---|---|
单精度 | 20G | 22G | 4090 | 24G |
半精度 | 13G | 14G | 3090 | 24G |
INT 8 | 8G | 9G | 2080Ti | 11G |
INT 4 | 6G | 7G | 2060s | 8G |
进行多轮对话时,可以采用单机多卡:
量化登记 | 推理时GPU显存占用 | 微调时GPU显存占用 | 最低显卡配置 | 显卡显存 |
---|---|---|---|---|
单精度 | 30G | 22G | 3090双卡 | 48G |
半精度 | 20G | 14G | 3090 | 24G |
INT 8 | 12G | 9G | 3080Ti | 12G |
INT 4 | 10G | 7G | 2080Ti | 11G |
2.软件
-
操作系统 Ubuntu>Windows
-
编程语言Python为主,如何配置编程环境?
-
推荐使用anaconda管理python环境
-
pytorch:在NLP领域,huggingface社区的开源的transformers库使用pytorch实现了市面上绝大多数开源的预训练模型