目录
关键硬件
大模型类型
垂域训练技术
微调技术
领域大模型训练trick
知识增强
关键硬件
GPU
GPU擅长处理图形渲染和数据并行任务,可以同时处理大量的矩阵运算,在科学计算、人工智能、游戏开发等领域应用广泛。
显卡
显卡是一种完整的硬件设备,不仅包含GPU,还包括内存(显存)、电源管理模块、散热系统等,共同支持GPU高效工作。
英伟达历代产品参数
架构名称 | 中文名 | 发布时间 | 核心参数 | 特点 & 优势 | 纳米制程 | 代表型号 |
---|---|---|---|---|---|---|
Fermi | 费米 | 2010年 | 16个SM,每个SM包含32个CUDA Cores,一共512CUDA Cores | 首个完整GPU计算架构,支持与共享存储结合的Cache层次GPU架构,支持ECC GPU架构 | 40/28nm 30亿晶体管 | Quadro7000 |
Kepler | 开普勒 | 2012年 | 15个SMX,每个SMX包含192个FP32+64个FP64CUDA Cores | 游戏性能大幅提升,首次支持GPU Direct技术 | 28nm 71亿晶体管 | K80、K40M |
Maxwell | 麦克斯韦 | 2014年 | 16个SM,每个SM包括4个处理块,每个处理块包括32个CUDA Cores+8个LD/ST Unit+8SFU | 每组SM单元从192个减少到每组128个,每个SMM单元拥有更多逻辑控制电路 | 28nm 80亿晶体管 | M5000、M4000、GTX 9XX系列 |
Pascal | 帕斯卡 | 2016年 | GP100有60个SM,每个SM包括64个CUDA Cores,32个DP Cores | NVLink第一代,双向互联带宽160GB/s,P100拥有56个SM HBM | 16nm 153亿晶体管 | P100、P6000、TTX1080 |
Volta | 沃塔 | 2017年 | 80个SM,每个SM包含32个FP64+64Int32+64FP32+8个Tensor Cores | NVLink2.0,Tensor Cores第一代,支持AI运算 | 12nm 211亿晶体管 | V100、TiTan V |
Turing | 图灵 | 2018年 | 102核心92个SM,SM重新设计,每个SM包含64个Int32+64个FP32+8个Tensor Cores | Tensor Core2.0,RT Core第一代 | 12nm 186亿晶体管 | T4、2080TI、RTX5000 |
Ampere | 安培 | 2020年 | 108个SM,每个SM包含64个FP32+64个Int32+32个FP64+4个Tensor Cores | Tensor Core3.0,RT Core2.0,NVLink3.0,结构稀疏性矩阵MIG1.0 | 7nm 283亿晶体管 | A100、A30系列 |
Hopper | 霍珀 | 2022年 | 132个SM,每个SM包含128个FP32+64个INT32+64个FP64+4个Tensor Cores | Tensor Core4.0,NVLink4.0,结构稀疏性矩阵MIG2.0 | 4nm 800亿晶体管 | H100、H800 |
(1)SM 是一般GPU架构中的基本计算单元,表示GPU中执行并行计算的模块。SMX 是在 Kepler 架构中引入的增强版 SM,具有更高的计算能力和更优化的硬件设计。
(2)NVLink 是由 NVIDIA 开发的高速互连技术,旨在提高多个 GPU 之间的数据传输速度和带宽。主要用于在数据密集型计算任务中增强多 GPU 系统的性能。NVLink 相比传统的 PCIE总线,提供了更高的数据传输速率,并改善了 GPU 间的协作能力。
(3)GPU 是显卡的核心处理单元,负责执行图形渲染和计算任务。每个GPU由多个 SM(流处理器)组成。每个 SM 内部有多个 CUDA 核心,每个核心负责执行一个线程的操作。显卡>GPU>SM>核心。
(4)纳米制程指显卡芯片的制造工艺,制程越小,能效和性能通常越高。
(5)国产昇腾910B对标A100。
大模型类型
①自然语言处理大模型:具有语言理解能力、对话生成能力、文字创作能力。广泛应用于:医疗、金融、对话、搜索、信息抽取、跨语言、代码、图网络等场景。比如:chatgpt、百度文心一言等。
②计算机视觉大模型:通过学习海量图像数据,具备强大的图像分类、分割、识别、生成能力。广泛应用于人脸识别、自动驾驶、安防监控、医疗影像分析、商品图像识别等领域。
③跨模态大模型:通过联合学习文本、图像、语音、视频等多模态的数据,实现多模态数据的综合理解和生成。应用于:基于文本生成图像(如AI绘画)、图像和视频搜索、语音-文本转换、图像字幕生成等场景。
④科学计算大模型:通过高效分析海量数据,发现潜在规律,促进各类科学研究的发展。如:生物计算大模型。
垂域训练技术
通用大模型基于通识知识进行训练,在面对:①垂直领域知识、②私有数据问答 时常常需要借助以下技术:
技术 | what | 适用场景 | 优缺点 |
---|---|---|---|
微调(Fine-Tuning) | 针对预先训练的语言模型,在特定任务的少量数据集上对其进行进一步训练 | 当任务或域定义明确,并且有足够的标记数据可供训练时,通常使用微调 | 优点:能在特定任务上取得更高的精度; 缺点:需要领域标注数据;容易过拟合领域数据,导致模型泛化能力降低。 |
Prompt工程 | 涉及设计自然语言提示或指令,可以指导语言模型执行特定的任务 | 最适合需要高精度和明确输出的任务,提示工程可用于制作引发所需输出的查询 | 优点:无需额外训练,灵活适应多种任务; 缺点:设计有效的prompt需要大量的试错和专业知识;难以适应非常专业化的领域。 |
RAG(Retrieval-Augmented Generation) | 调用外部知识,作为大模型的背景知识和问题一并输入大模型 | 外部知识较多且更新频繁,适用于各类问答 | 优点:能够利用外部知识库进行动态更新,提升模型的表现和灵活性; 缺点:需要高效的检索机制和高质量的知识库;可能依赖外部系统。 |
微调技术
PEFT(Parameter-Efficient Fine-Tuning)技术 通过只调整模型的一部分参数,而不是对整个模型进行全面的调整,降低了计算资源的消耗和内存使用,适用于参数量巨大的预训练模型。
方法 | 简介 | 图示 |
---|---|---|
Prefix Tuning | 1. 构造一段任务相关的virtual tokens作为prefix; 2. 只更新prefix部分的参数,而transformer中的其他部分参数固定 | |
Prompt Tuning | 1. 只在输入层加入prompt tokens; 2. 随着预训练模型参数量的增加,prompt tuning的方法会逼近fine-tune的结果 | |
Adapter Tuning | 1. 首先是一个down-project层将高维度特征映射到低维度; 2. 然后经过一个非线性层之后,再用一个up-project结构将低维特征映射回原来的高维特征; 3. 同时也设计了skip-connection结构,确保了在最差的情况下能退化为identity | |
LoRA | 1. 在原始预训练语言模型(PLM)旁边增加一个旁路,做一个降维再升维的操作; 2. 训练的时候固定PLM的参数,只训练降维矩阵A与升维矩阵B; 3. 模型的输入输出维度不变,输出时将BA与PLM的参数叠加; 4. 用随机高斯分布初始化A,用0矩阵初始化B,保证训练的开始次旁路矩阵依然是0矩阵 | |
P-Tuning | 1. 加入了prompt tokens作为输入; 2. p-tuning v2的目标就是让prompt tuning能够在不同参数规模的预训练模型、针对不同下游任务的结果上都达到匹敌fine-tuning的结果; 3. p-tuning方法在sequence tagging任务上表现都很差; 4. 在预训练模型参数规模足够大时,才能够达到和fine-tuning类似的效果,而参数规模小时效果则很差 | |
Freeze | 1. freeze方法,即参数冻结,对原始模型部分参数进行冻结操作,仅训练部分参数,以达到在单卡或不进行TP或PP操作,就可以对大模型进行训练; 2. 大量减少了大预言模型的微调参数,是一种参数高效的微调方法; 3. 由于只需要调高层特征,加快了模型的收敛,节约了微调的时间 |
无脑选LoRA!
LoRA微调的核心代码:
peft_config = LoraConfig(
task_type=TaskType.CAUSAL_LM,
inference_mode=False,
r=finetune_args.lora_rank,
lora_alpha=32,
lora_dropout=0.1
)
model = get_peft_model(model,peft_config)
dataset = datasets.load_from_disk(finetune_args.dataset_path)
trainer = ModifiedTrainer(
model=model,
train_dataset=dataset,
args=training_args,
callbacks=[TensorBoardCallback(writer)],
data_collator=data_collator
)
trainer.train()
writer.close()
model.save_pretrained(training_args.output_dir)
领域大模型训练trick
(1)领域数据训练后,往往通用能力会有所下降,需要混合通用数据缓解模型遗忘通用能力,领域 : 通用数据比例为1 : 5时最优;
(2)仅用SFT(Supervised Fine-Tuning)做领域模型时,资源(资源=数据+显卡)有限就用在chat模型基础上训练,资源充足就在Base模型上训练;
(3)在chat模型上进行SFT时,数据量有限请选择lora微调,不建议采用全量参数训练。
GPT 和 GLM 是基础的语言生成模型(base模型),而 ChatGPT 和 ChatGLM 是它们在对话生成上的定制化版本(chat模型),具有特定任务优化和微调的特点。
知识增强
知识增强大模型:一类结合了大规模预训练模型和领域知识库的模型。
技术实现方法有:知识图谱、检索增强等。
应用于:对话系统、智能搜索引擎等场景。