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

目录

关键硬件

大模型类型

垂域训练技术

微调技术

领域大模型训练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模型),具有特定任务优化和微调的特点。

知识增强

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/954530.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux分配磁盘空间命令

使用命令lsblk查询linux磁盘空间时,发现空间并没有被分配完 如图,600G,但实际分配了一共199G,剩余500G,我们需要通过命令进行剩余存储的分配。 思路:创建新的分区->更新内核分区表->初始化新分区作…

【运维自动化-作业平台】魔法变量到底如何使用之主机列表类型

蓝鲸作业平台,以下简称作业平台或JOB平台 魔法变量:JOB平台执行引擎提供的特有的变量能力用法 脚本中使用,并且需要事先声明:job_import {{变量名}} 声明后,同样是使用 dollar 符 大括号:${变量名}来取值…

Windows重装后NI板卡LabVIEW恢复正常

在重新安装Windows系统后,NI(National Instruments)板卡能够恢复正常工作,通常是由于操作系统的重新配置解决了之前存在的硬件驱动、兼容性或配置问题。操作系统重装后,系统重新加载驱动程序、清理了潜在的冲突或损坏的…

Docker启动达梦 rman恢复

目录标题 1. 主库备份2. Docker启动备库3. 备库修改属组4. 开始恢复5. 连接数据库配置归档 & Open6. 检查数据 关于达梦数据库(DMDBMS)的主库备份、Docker启动备库、恢复备份以及配置归档和打开数据库的详细步骤。 1. 主库备份 # 使用达梦数据库备…

【C语言】_字符串拷贝函数strcpy

目录 1. 函数声明及功能 2. 使用示例 3. 注意事项 4. 模拟实现 4.1 第一版:基本功能判空const修饰 4.2 第二版:优化对于\0的单独拷贝 4.3 第三版:仿strcpy的char*返回值 1. 函数声明及功能 char * strcpy ( char * destination, cons…

XML序列化和反序列化的学习

1、基本介绍 在工作中,经常为了调通上游接口,从而对请求第三方的参数进行XML序列化,这里常使用的方式就是使用JAVA扩展包中的相关注解和类来实现xml的序列化和反序列化。 2、自定义工具类 import javax.xml.bind.JAXBContext; import javax.x…

js使用qrcode与canvas生成带logo的二维码

qrcode库 文档 https://www.npmjs.com/package/qrcode 安装 npm i qrcode 使用 errorCorrectionLevel: H // 容错率(H是最高,其它看文档) width: 200 // 大小 margin: 2 // 边距 import QRCode from qrcodeconst testFn async () > {c…

【计算机网络】lab5 ARP协议

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀计算机网络_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2.…

【React】脚手架进阶

目录 暴露webpack配置package.json的变化修改webpack.config.js配置less修改域名、端口号浏览器兼容处理处理跨域 暴露webpack配置 react-scripts对脚手架中的打包命令进行封装,如何暴露这些打包配置呢?上篇写到在package.json中的scripts配置项中有eje…

java项目之现代企业人力资源管理系统设计与实现(源码+文档)

大家好我是风歌,今天要和大家聊的是一款基于ssm的现代企业人力资源管理系统设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 现代企业人力资源管理系统设计与实现的主要使用者分为管理员、经理和普通员工三个角…

2025.1.15——三、报错注入

一、基本操作:整理已知信息,本题为报错注入,需进一步确认回显方式 二、用updatexml()解题步骤 step 1:依据回显方式判断题目类型 键入:1、1 and 11 、id2-1 得到:查询正确的回显 键入:1’、…

【IDEA 2024】学习笔记--文件选项卡

在我们项目的开发过程中,由于项目涉及的类过多,以至于我们会打开很多的窗口。使用IDEA默认的配置,个人觉得十分不便。 目录 一、设置多个文件选项卡按照文件字母顺序排列 二、设置多个文件选项卡分行显示 一、设置多个文件选项卡按照文件字…

自己动手搭建“接入 AI Agent 的数字人”

前言 本文的实战案例来自于开源项目:https://github.com/wan-h/awesome-digital-human-live2d。该项目可以运用Dify编排框架和Live2D驱动模型搭建智能数字人,实现智能对话并动态交互,大家可以自行部署尝试,项目效果如下。 开源&a…

Flink链接Kafka

一、基于 Flink 的 Kafka 消息生产者 Kafka 生产者的创建与配置: 代码通过 FlinkKafkaProducer 创建 Kafka 生产者,用于向 Kafka 主题发送消息。Flink 执行环境的配置: 配置了 Flink 的检查点机制,确保消息的可靠性,支…

电脑有两张网卡,如何实现同时访问外网和内网?

要是想让一台电脑用两张网卡,既能访问外网又能访问内网,那可以通过设置网络路由还有网卡的 IP 地址来达成。 检查一下网卡的连接 得保证电脑的两张网卡分别连到外网和内网的网络设备上,像路由器或者交换机啥的。 给网卡配上不一样的 IP 地…

dockerfile2.0

dockerfile实现lnmp nginx centos7 mysql centos7 php centos7 自定义镜像来实现整个架构 cd /opt mkdir nginx mysql php cd nginx 拖入nginx和wordpress vim Dockerfile vim nginx.conf ↓ worker_processes 1; events {worker_connections 1024; } http {include …

mysql-5.7.18保姆级详细安装教程

本文主要讲解如何安装mysql-5.7.18数据库: 将绿色版安装包mysql-5.7.18-winx64解压后目录中内容如下图,该例是安装在D盘根目录。 在mysql安装目录中新建my.ini文件,文件内容及各配置项内容如下图,需要先将配置项【skip-grant-tab…

【深度学习实战】kaggle 自动驾驶的假场景分类

本次分享我在kaggle中参与竞赛的历程,这个版本是我的第一版,使用的是vgg。欢迎大家进行建议和交流。 概述 判断自动驾驶场景是真是假,训练神经网络或使用任何算法来分类驾驶场景的图像是真实的还是虚假的。 图像采用 RGB 格式并以 JPEG 格式…

在Linux上如何让ollama在GPU上运行模型

之前一直在 Mac 上使用 ollama 所以没注意,最近在 Ubuntu 上运行发现一直在 CPU 上跑。我一开始以为是超显存了,因为 Mac 上如果超内存的话,那么就只用 CPU,但是我发现 Llama3.2 3B 只占用 3GB,这远没有超。看了一下命…

学习 Git 的工作原理,而不仅仅是命令

Git 是常用的去中心化源代码存储库。它是由 Linux 创建者 Linus Torvalds 创建的,用于管理 Linux 内核源代码。像 GitHub 这样的整个服务都是基于它的。因此,如果您想在 Linux 世界中进行编程或将 IBM 的 DevOps Services 与 Git 结合使用,那…