大模型相关概念

文章目录

  • 部署相关
    • 数据并行
    • 模型并行
      • 张量并行
      • 管道并行(流水线并行)
    • 混合并行(数据并行+模型并行)
    • 显存优化技术
    • InfiniBand
    • 去中心化的All-Reduce操作
    • 软件
  • 大模型命名
    • **1. 模型架构相关**
    • **2. 模型用途相关**
    • **3. 训练方法相关**
    • **4. 多模态相关**
    • **5. 规模相关**
    • **6. 其他常见关键词**
  • 模型参数
    • 单位
      • FP16和BF16对比
  • 常见存储格式
    • ONNX
    • GGUF
    • safetensor
    • 主要区别

部署相关

数据并行

每个GPU保存完整模型副本,处理不同数据批次,通过All-Reduce同步梯度(需结合显存优化)

模型并行

张量并行

在单节点内使用Megatron-LM拆分Transformer层的矩阵运算

管道并行(流水线并行)

将模型层拆分到不同节点(如Layer 0-10在Node 1,Layer 11-20在Node 2)

混合并行(数据并行+模型并行)

使用PyTorch的torch.distributed和RPC框架将模型分割。然后,在每个模型并行组内部,可能还可以使用数据并行,复制多个这样的模型并行组,每个组处理不同的数据子集。这样既分散了模型参数,又增加了数据处理量。

尽可能减少数据传输量,或者使用梯度累积、异步更新等技术来缓解通信压力。

用FP16或BF16来减少内存占用

优化库如DeepSpeed的ZeRO

显存优化技术

激活检查点(梯度检查点)、混合精度训练(FP16/BP16)、卸载参数到CPU(如ZeRO-Offload)等。

InfiniBand

去中心化的All-Reduce操作

软件

框架/库功能
PyTorch支持分布式训练(DistributedDataParallel、RPC)、模型并行API
DeepSpeed提供ZeRO优化(显存分级分区)、3D并行、梯度累积等
Megatron-LMNVIDIA开发的 Transformer 模型并行库,支持高效张量拆分
NCCLNVIDIA 集体通信库,优化多 GPU 通信效率
组件说明
通信库NCCL(单机多卡)、MPI(跨节点通信)、AWS Elastic Fabric Adapter(EFA)等
分布式训练框架Horovod(基于MPI)、PyTorch Elastic、DeepSpeed(支持跨节点3D并行)
监控与日志Prometheus+Grafana监控GPU利用率、通信延迟;日志集中存储(如ELK)

大模型命名

1. 模型架构相关

关键词说明
Transformer基于Transformer架构的模型(如GPT、BERT)。
GPTGenerative Pre-trained Transformer,生成式预训练模型(如GPT-3、GPT-4)。
BERTBidirectional Encoder Representations from Transformers,双向编码模型。
T5Text-To-Text Transfer Transformer,文本到文本的统一框架。
LLaMALarge Language Model Meta AI,Meta开源的轻量级大模型。
PaLMPathways Language Model,Google开发的大规模语言模型。
MoEMixture of Experts,专家混合模型(如Switch Transformer)。

2. 模型用途相关

关键词说明
Instruct经过指令微调的模型,适合任务型对话或指令执行(如InstructGPT)。
Chat面向对话场景优化的模型(如ChatGPT、ChatGLM)。
Code面向代码生成或理解的模型(如Codex、CodeLlama)。
Math面向数学问题求解的模型(如Minerva、MathGPT)。
Medical面向医疗领域的模型(如Med-PaLM、BioGPT)。
Legal面向法律领域的模型(如LawGPT)。
Finance面向金融领域的模型(如FinGPT)。

3. 训练方法相关

关键词说明
Pre-trained预训练模型,通常需要进一步微调(如Pre-trained BERT)。
Fine-tuned经过微调的模型(如Fine-tuned GPT-3)。
Distill通过知识蒸馏得到的轻量级模型(如DistilBERT、DistilGPT)。
SFTSupervised Fine-Tuning,监督微调模型。
RLHFReinforcement Learning from Human Feedback,基于人类反馈的强化学习(如ChatGPT)。
LoRALow-Rank Adaptation,低秩适配微调方法。
Adapter使用适配器模块微调的模型。

4. 多模态相关

关键词说明
VLVision-Language,视觉-语言多模态模型(如VL-BERT、VL-T5)。
CLIPContrastive Language–Image Pretraining,图文对比预训练模型。
Flamingo多模态对话模型(如DeepMind Flamingo)。
DALL·E文本生成图像的模型(如DALL·E 2)。
Stable Diffusion文本生成图像的扩散模型。

5. 规模相关

关键词说明
Large强调模型规模较大(如Large Language Model, LLM)。
Small强调模型规模较小(如Small GPT)。
Mini更小规模的模型(如MiniGPT)。
Tiny极小型模型(如TinyBERT)。
7B/13B/70B模型参数量(如LLaMA-7B、DeepSeek-70B)。

6. 其他常见关键词

关键词说明
Embedding嵌入模型,用于生成向量表示(如Sentence-BERT)。
Zero-shot零样本学习能力(如GPT-3 Zero-shot)。
Few-shot少样本学习能力(如GPT-3 Few-shot)。
Multilingual多语言支持的模型(如mBERT、XLM-R)。
Open开源模型(如OpenLLaMA)。
Ultra强调性能或规模的极致(如UltraGPT)。
Neo新一代模型(如GPT-Neo)。
X强调扩展性或通用性(如T5-XL、GPT-X)。

模型参数

单位

单位说明
FP32(单精度浮点数)这是最常见的浮点数格式之一,每个数值占用32位(4字节)。它提供了一个较好的平衡,既能保证数值的精确度又能保持计算效率。在深度学习领域,FP32通常用于确保训练过程中的数值稳定性和模型的准确性。
FP16(半精度浮点数)每个数值占用16位(2字节),相比FP32,它可以减少一半的显存使用量,并且由于数据量减小,可以加快计算速度和提升硬件利用率。尽管它的数值范围和精度都比FP32低,但在很多情况下,特别是在深度学习推理阶段,使用FP16可以在几乎不损失模型准确性的前提下显著提高性能。
BF16(Brain Floating - Point 16)是Google提出的一种16位浮点数格式,旨在加速机器学习模型的训练和推理过程。BF16保留了与FP32相同的指数位宽,但减少了尾数的位宽,从而将数值表示压缩到16位。这使得BF16比FP32占用更少的存储空间和带宽,同时在许多情况下仍能保持相近的数值稳定性和准确性。
F8_E4M3(8位浮点数的一种)这是一个较为新颖的浮点数表示形式,其中“F8”代表8位浮点数,“E4M3”指的是这种格式的具体分配方式——指数部分占4位,尾数(也称作有效数字)部分占3位。相比于传统的FP32或FP16,F8_E4M3提供了更低的精度和更小的数值范围,但它极大地减少了存储需求和内存带宽消耗,这使得它在特定应用场景中非常有用,如在边缘设备上部署轻量级的神经网络模型或者进行大规模数据处理时优化性能和效率。不过,使用这种低精度格式可能会导致数值稳定性问题和精度下降,因此它的应用需要根据具体情况仔细评估。

FP16和BF16对比

在深度学习和机器学习领域,FP16(Half-precision floating-point format)和BF16(Brain Floating Point 16-bit)是两种常用的16位浮点数格式,它们各自有着不同的特性和应用场景。以下是对这两种数据类型的详细对比:

数值表示

单位说明
FP16这种格式使用5位表示指数,10位表示尾数(加上隐含的前导1位),因此它可以提供更高的精度,尤其是在表示较小数值时。然而,由于其指数部分较少,数值范围相对有限。
BF16相比之下,BF16保留了与FP32相同的8位指数宽度,但只有7位用于尾数(不包括隐含的前导1)。这意味着它能够表示更大范围的数值,但在精度上有所牺牲,特别是在小数值方面。

精度和数值范围

单位说明
FP16提供了较高的精度,特别是对于较小的数值。它的最小正数大约为
6.1×10−5 ,最大正数约为65,5049。
BF16虽然在小数值上的精度不如FP16,但它能表示比FP16更广范围的数值。BF16的动态范围与FP32相同,这使得它非常适合处理需要大范围数值的任务,例如神经网络中的梯度更新。

应用场景

单位说明
FP16适用于对精度要求较高的任务,尤其是那些涉及较小数值的操作。例如,在图像处理、科学计算以及某些深度学习模型中,FP16可以用来提高效率同时保持必要的精度。
BF16因其较大的数值范围,特别适合于大规模神经网络的训练,特别是在Google TPU和其他支持BF16的硬件上。BF16在这些环境下不仅能节省存储空间,还能提高计算速度。

硬件支持
|FP16|广泛支持,并已在大多数现代GPU上得到优化,特别是NVIDIA的Volta、Turing、Ampere系列GPU。|
|BF16|主要由Google的TPU提出并优化,并且在NVIDIA的A100 GPU中也提供了对BF16的支持。许多深度学习框架如TensorFlow和PyTorch也开始支持BF16格式。|

性能

单位说明
FP16通过混合精度训练可以在显存较小的GPU上训练更大的模型或在同一显存的GPU上运行更多的模型,同时提升训练速度。
BF16因为其较大的指数范围,BF16更适合深度学习中的大范围梯度计算,尤其在训练大规模神经网络时,性能可能优于FP16,特别是在使用专门优化BF16的硬件时。

综上所述,尽管FP16和BF16都是16位浮点数格式,它们在精度、数值范围和应用场景上有所不同。选择哪种格式取决于具体的应用需求、硬件支持以及对精度和数值范围的要求。对于大多数深度学习训练任务,尤其是大规模神经网络的训练,BF16由于其更大的数值范围和对硬件优化的优势,越来越成为主流选择8。而对于需要较高精度的小范围数值计算的任务,FP16可能是更好的选择。

常见存储格式

ONNX

Open Neural Network Exchange (ONNX) 是一种开放式的文件格式,用于表示机器学习模型。通过ONNX,模型可以在不同的框架之间进行转换和共享,提高了模型的可移植性和灵活性。

是一种中间表示格式,它的设计目的是为了促进不同框架之间的互操作性,允许开发者在不同的工具链之间共享和部署模型。

GGUF

是一种专为大规模语言模型设计的二进制格式,旨在提高加载效率和降低资源消耗,特别适合于边缘计算环境下的模型部署。

safetensor

SafeTensors 是由Hugging Face推出的一种安全、可靠且高效的机器学习模型存储格式。它的设计旨在简化和精简大型复杂张量的存储和加载过程,同时确保安全性。与传统的模型存储格式相比,SafeTensors不包含执行代码,因此在加载模型时无需进行反序列化操作,减少了潜在的安全风险

主要区别

用途: 虽然两者都可以用来存储模型参数,但GGUF更多地关注于大规模语言模型的优化存储和高效加载,而SafeTensors则更侧重于提供一个安全且高效的通用模型存储解决方案。

安全性: SafeTensors强调的是防止恶意代码执行的安全性,而GGUF虽然也考虑到了一些安全性问题,但其重点在于优化性能和易用性。

适用场景: GGUF更适合需要频繁加载不同模型的场景,特别是在边缘计算环境中;SafeTensors则适用于任何需要高性能和高安全性的深度学习模型部署场合。

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

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

相关文章

AI绘画社区:解锁艺术共创的无限可能(9/10)

AI 绘画:不只是技术,更是社交新潮流 在科技飞速发展的今天,AI 绘画早已不再仅仅是一项孤立的技术,它正以惊人的速度融入我们的社交生活,成为艺术爱好者们交流互动的全新方式,构建起一个充满活力与创意的社…

让office集成deepseek,支持office和WPS办公软件!(体验感受)

导读 AIGC:AIGC是一种新的人工智能技术,它的全称是Artificial Intelligence Generative Content,即人工智能生成内容。 它是一种基于机器学习和自然语言处理的技术,能够自动产生文本、图像、音频等多种类型的内容。这些内容可以是新闻文章、…

c++ template-3

第 7 章 按值传递还是按引用传递 从一开始,C就提供了按值传递(call-by-value)和按引用传递(call-by-reference)两种参数传递方式,但是具体该怎么选择,有时并不容易确定:通常对复杂类…

使用springAI实现图片相识度搜索

类似的功能:淘宝拍照识别商品。图片相识度匹配 实现方式:其实很简单,用springai 将图片转换为向量数据,然后搜索就是先把需要搜索的图片转位向量再用向量数据去向量数据库搜索 但是springai现在不支持多模态嵌入数据库。做了一些…

私有化部署DeepSeek并SpringBoot集成使用(附UI界面使用教程-支持语音、图片)

私有化部署DeepSeek并SpringBoot集成使用(附UI界面使用教程-支持语音、图片) windows部署ollama Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计 下载ollama 下载地址(…

半导体制造工艺讲解

目录 一、半导体制造工艺的概述 二、单晶硅片的制造 1.单晶硅的制造 2.晶棒的切割、研磨 3.晶棒的切片、倒角和打磨 4.晶圆的检测和清洗 三、晶圆制造 1.氧化与涂胶 2.光刻与显影 3.刻蚀与脱胶 4.掺杂与退火 5.薄膜沉积、金属化和晶圆减薄 6.MOSFET在晶圆表面的形…

正则表达式的简单介绍 + regex_match使用

正则表达式 正则表达式(Regular Expression,简称 regex)是一种用于匹配字符串的模式。它由一系列字符和特殊符号组成,用于描述、匹配一系列符合某个句法规则的字符串。正则表达式广泛应用于文本搜索、替换、验证等场景。 它的主…

AnythingLLM开发者接口API测试

《Win10OllamaAnythingLLMDeepSeek构建本地多人访问知识库》见上一篇文章,本文在上篇基础上进行。 1.生成本地API 密钥 2.打开API测试页面(http://localhost:3001/api/docs/) 就可以在页面测试API了 2.测试获取用户接口(/v1/admin/users) 3…

TypeScript 中的类:面向对象编程的基础

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

二级C语言题解:矩阵主、反对角线元素之和,二分法求方程根,处理字符串中 * 号

目录 一、程序填空📝 --- 矩阵主、反对角线元素之和 题目📃 分析🧐 二、程序修改🛠️ --- 二分法求方程根 题目📃 分析🧐 三、程序设计💻 --- 处理字符串中 * 号 题目&#x1f…

Qt 支持的动画格式对比,Lottie/APNG/GIF/WEBP

Qt版本:6.7.2 , QML 一,Lottie 在qml中使用LottieAnimation即可,但有三个问题: 1.动画加载中报错: 如果图片(.json)本身存在不支持的effect 或shape type等,效果并不好&#xff1a…

SpringCloud - Nacos注册/配置中心

前言 该博客为Nacos学习笔记,主要目的是为了帮助后期快速复习使用 学习视频:7小快速通关SpringCloud 辅助文档:SpringCloud快速通关 一、简介 Nacos官网:https://nacos.io/docs/next/quickstart/quick-start/ Nacos /nɑ:kəʊ…

老游戏回顾:TL2

TL2是一部ARPG游戏,是TL的续作游戏,由位于美国西雅图的Runic Games开发,游戏于2012年9月20日上市,简体中文版于2013年4月10日在国内上市。 2有非常独特的艺术风格,这些在1中就已经形成,经过升级将使这款游…

DeepSeek-R1 云环境搭建部署流程

DeepSeek横空出世,在国际AI圈备受关注,作为个人开发者,AI的应用可以有效地提高个人开发效率。除此之外,DeepSeek的思考过程、思考能力是开放的,这对我们对结果调优有很好的帮助效果。 DeepSeek是一个基于人工智能技术…

利用ETL工具进行数据挖掘

ETL的基本概念 数据抽取(Extraction):从不同源头系统中获取所需数据的步骤。比如从mysql中拿取数据就是一种简单的抽取动作,从API接口拿取数据也是。 数据转换(Transformation):清洗、整合和转…

k8s网络插件及基础命令

一、k8s的cni网络插件 1.k8s的内部网络模式 pod内的容器与容器之间的通信。一个节点上的pod之间的通信,docker0网桥直接通信。不同节点上的pod之间的通信:通过物理网卡的ip地址和其他节点上的物理网卡的设备进行通信,然后把流量转发到指定的…

保姆级教程Docker部署KRaft模式的Kafka官方镜像

目录 一、安装Docker及可视化工具 二、单节点部署 1、创建挂载目录 2、运行Kafka容器 3、Compose运行Kafka容器 4、查看Kafka运行状态 三、集群部署 四、部署可视化工具 1、创建挂载目录 2、运行Kafka-ui容器 3、Compose运行Kafka-ui容器 4、查看Kafka-ui运行状态 …

【C语言】传值调用与传址调用详解

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 💯前言💯传值调用1. 什么是传值调用?2. 示例代码:传值调用失败的情况执行结果: 3. 为什么传值调用无法修改外部变量? &#x1f4…

HarmonyOS 5.0应用开发——ContentSlot的使用

【高心星出品】 文章目录 ContentSlot的使用使用方法案例运行结果 完整代码 ContentSlot的使用 用于渲染并管理Native层使用C-API创建的组件同时也支持ArkTS创建的NodeContent对象。 支持混合模式开发,当容器是ArkTS组件,子组件在Native侧创建时&#…

Golang:Go 1.23 版本新特性介绍

流行的编程语言Go已经发布了1.23版本,带来了许多改进、优化和新特性。在Go 1.22发布六个月后,这次更新增强了工具链、运行时和库,同时保持了向后兼容性。 Go 1.23 的新增特性主要包括语言特性、工具链改进、标准库更新等方面,以下…