当前位置: 首页 > article >正文

大模型训练_硬件微调知识增强

目录

关键硬件

大模型类型

垂域训练技术

微调技术

领域大模型训练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 CoresNVLink第一代,双向互联带宽160GB/s,P100拥有56个SM HBM16nm 153亿晶体管P100、P6000、TTX1080
Volta沃塔2017年80个SM,每个SM包含32个FP64+64Int32+64FP32+8个Tensor CoresNVLink2.0,Tensor Cores第一代,支持AI运算12nm 211亿晶体管V100、TiTan V
Turing图灵2018年102核心92个SM,SM重新设计,每个SM包含64个Int32+64个FP32+8个Tensor CoresTensor Core2.0,RT Core第一代12nm 186亿晶体管T4、2080TI、RTX5000
Ampere安培2020年108个SM,每个SM包含64个FP32+64个Int32+32个FP64+4个Tensor CoresTensor Core3.0,RT Core2.0,NVLink3.0,结构稀疏性矩阵MIG1.07nm 283亿晶体管A100、A30系列
Hopper霍珀2022年132个SM,每个SM包含128个FP32+64个INT32+64个FP64+4个Tensor CoresTensor Core4.0,NVLink4.0,结构稀疏性矩阵MIG2.04nm 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 Tuning1. 构造一段任务相关的virtual tokens作为prefix;
2. 只更新prefix部分的参数,而transformer中的其他部分参数固定
Prompt Tuning1. 只在输入层加入prompt tokens;
2. 随着预训练模型参数量的增加,prompt tuning的方法会逼近fine-tune的结果
Adapter Tuning1. 首先是一个down-project层将高维度特征映射到低维度;
2. 然后经过一个非线性层之后,再用一个up-project结构将低维特征映射回原来的高维特征;
3. 同时也设计了skip-connection结构,确保了在最差的情况下能退化为identity
LoRA1. 在原始预训练语言模型(PLM)旁边增加一个旁路,做一个降维再升维的操作;
2. 训练的时候固定PLM的参数,只训练降维矩阵A与升维矩阵B;
3. 模型的输入输出维度不变,输出时将BA与PLM的参数叠加;
4. 用随机高斯分布初始化A,用0矩阵初始化B,保证训练的开始次旁路矩阵依然是0矩阵
P-Tuning1. 加入了prompt tokens作为输入;
2. p-tuning v2的目标就是让prompt tuning能够在不同参数规模的预训练模型、针对不同下游任务的结果上都达到匹敌fine-tuning的结果;
3. p-tuning方法在sequence tagging任务上表现都很差;
4. 在预训练模型参数规模足够大时,才能够达到和fine-tuning类似的效果,而参数规模小时效果则很差
Freeze1. 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模型),具有特定任务优化和微调的特点。

知识增强

知识增强大模型:一类结合了大规模预训练模型和领域知识库的模型。

技术实现方法有:知识图谱、检索增强等。

应用于:对话系统、智能搜索引擎等场景。


http://www.kler.cn/a/505333.html

相关文章:

  • 懒饭 3.0.2 | 谷歌版纯净无广告教做菜软件
  • Springboot和Es整合
  • python学opencv|读取图像(三十一)缩放图像的三种方法
  • Sentaurus TCAD学习笔记:transform指令
  • 国内源快速在线安装qt5.15以上版本。(10min安装好)(图文教程)
  • 我国无人机新增实名登记110.3 万架,累计完成飞行2666万小时
  • GLM: General Language Model Pretraining with Autoregressive Blank Infilling论文解读
  • 网络技术发展的演变与未来展望
  • Java List排序:Comparable与Comparator接口及Stream API应用
  • Eclipse 视图(View)
  • (蓝桥杯)使用前缀和与二分查找解决子数组和问题——不太甜的糖果
  • 【深度学习实战】kaggle 自动驾驶的假场景分类
  • Unity3D实现加载.abc动画模型
  • Postman接口自动化测试:批量参数化(参数文件)
  • 高通骁龙8 Elite 2性能综合测评
  • 【0391】Postgres内核 checkpointer process ① 启动初始化
  • 晨辉面试抽签和评分管理系统之八:随机编排考生的面试批次(以教师资格考试面试为例)
  • 人狗大战 Java新实现,更有趣,Java _Springboot_Spring AI
  • 深度解析 React 中 setState 的原理:同步与异步的交织
  • 前端实现doc文件预览的三种方式
  • TouchGFX学习笔记(一)
  • 微信小程序 实现拼图功能
  • OpenCV相机标定与3D重建(59)用于立体相机标定的函数stereoCalibrate()的使用
  • EMS专题 | 守护数据安全:数据中心和服务器机房环境温湿度监测
  • 利用 Java 爬虫获取 1688 商品评论的实践指南
  • Pytorch基础教程:从零实现手写数字分类