自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(425)
  • 收藏
  • 关注

原创 Sora结构猜测

方案:VAE Encoder(视频压缩) -> Transform Diffusion (从视频数据中学习分布,并根据条件生成新视频) -> VAE Decoder (视频解压缩)从博客出发,经过学术Survey,可以推断出全貌。一句话结论:Sora是采用了Meta的 DiT (2022.12) 框架,融合了Google的 MAGViT (2022.12) 的Video Tokenize方案,借用Google DeepMind的NaViT (2023.07) 支持了原始比例和分辨率,

2025-04-03 17:38:57 143

原创 OPT-175B是如何炼成的

修正代码后,有一次试验,模型效果很好,预测下一个词的准确率很高,正准备庆祝,却发现原来是当初清洗处理数据集时,有人加入了大量的反斜杠转义符却忘记删除,模型准确无误地精确预测了这些反斜杠……以Prompt为例,改一下Prompt的标准格式,比如大小写,模型的效果都大不一样,你很难分辨究竟是因为Prompt的格式问题影响性能,还是模型本身的性能改善了。训练模型就是找出合适的超参,然而这在大模型上是非常困难的事情,适用于小模型的超参未必适用于大模型,所以很难使用先从小模型着手做试验、再扩展到大模型的方法。

2025-04-03 16:38:34 475

原创 BF16训练LLM

用 FP16 训练巨型 LLM 模型是一个禁忌。FP16 经常溢出!FP16 的最大数值范围为 64k,您只能进行较小数的乘法。例如你可以做 250250=62500,但如果你尝试 255255=65025,你就会溢出,这是导致训练出现问题的主要原因。这意味着你的权重必须保持很小。一种称为损失缩放 (loss scaling) 的技术有助于缓解这个问题,但是当模型变得非常大时,FP16 较小的数值范围仍然是一个问题。

2025-04-03 15:36:14 348

原创 高性能 LLM 推理框架的设计与实现

高性能 LLM 推理框架的设计与实现与传统的 CNN 模型推理不同,大语言模型的推理通常会分成 prefill 和 decoding 两个阶段。每一个请求发起后产生的推理过程都会先经历一个 Prefill过程,prefill 过程会计算用户所有的输入,并生成对应的 KV 缓存,再经历若干个 decoding 过程,每一个 decoding 过程,服务器都会生成一个字符,并将其放入到 KV 缓存当中,之后依次迭代。由于 decoding 过程是逐个字符生成的,每一段答案的生成都需要很长时间,会生成很多字符,所

2025-04-03 15:04:18 342

原创 大模型参数高效微调方法

本文针对讲述了参数高效微调方法LoRA、AdaLoRA、QLoRA。

2025-04-03 14:50:16 338

原创 在显卡上训练大模型

本文讲述了在昇腾910上面使用 LLaMA-13B 进行多机多卡模型训练;但目前在昇腾910上面,无论是基于MindSpore还是基于Pytorch进行大模型训练,总体都还不是很完善,就当前时间节点而言,经常会有一些奇奇怪怪的坑;虽然,从硬件层面上来说昇腾910具备训练大模型的能力,但是软件层面(无论是生态还是AI框架的易用性,对于业界最新大模型的支持和适配等)上还有很长的路要走。

2025-04-02 16:54:32 553

原创 大模型推理框架

vLLM是一个开源的大模型推理加速框架,通过PagedAttention高效地管理attention中缓存的张量,实现了比HuggingFace Transformers高14-24倍的吞吐量。PagedAttention 是 vLLM 的核心技术,它解决了LLM服务中内存的瓶颈问题。传统的注意力算法在自回归解码过程中,需要将所有输入Token的注意力键和值张量存储在GPU内存中,以生成下一个Token。这些缓存的键和值张量通常被称为KV缓存。

2025-04-02 16:49:14 758

原创 transformer结构原理

这个步骤的目的是引入残差连接,使得模型可以学习到输入和输出之间的差异,有助于减缓梯度消失问题,同时也使得模型更容易学习到恒等映射。Attention(注意力机制): Attention机制允许模型为输入序列中的每个位置分配不同的权重,用以关注输入序列中不同位置的信息。它通过计算每个位置与其他所有位置之间的相似度(通过点积、缩放点积等方法),然后将这些相似度转换成权重,最后将输入序列中的所有位置按照这些权重进行加权求和。FFN用于捕捉每个位置的非线性特征,从而增加模型的表示能力和拟合复杂模式的能力,

2025-04-02 16:38:05 194

原创 大模型显卡网络

NVMe (non-volatile memory express)是一种高性能、NUMA(非统一内存访问)优化的、高度可扩展的存储协议,用于连接主机和内存子系统。NVMe是专门为NAND、闪存等非易失性存储设计的,NVMe协议建立在高速PCIe通道上。它可以使我们能够充分利用SSD和存储类内存(SCM)的速度。GPUDirect 是 NVIDIA 开发的一项技术,可实现 GPU 与其他设备(例如网络接口卡 (NIC) 和存储设备)之间的直接通信和数据传输,而不涉及 CPU。

2025-04-02 15:36:12 705

原创 大模型算力

80G 的显存是一个高带宽的内存,L2 Cache 大小为 40M,所有 SM 共享同一个 L2 Cache,L1 Cache 大小为 192kB,每个 SM 拥有自己独立的 Cache,同样每个 SM 拥有自己独立的 Register,每个寄存器大小为 256 kB,因为总共有 108 个 SM 流处理器,因此寄存器总共的大小是 27MB,L1 Cache 总共的大小是 20 MB。在真正计算的时候,希望缓存的数据能够尽快的去用完,然后读取下一批数据,此时时候就会遇到时延(Lentency)的问题。

2025-04-02 14:54:50 744

原创 AI硬件知识

缓存芯片:固态硬盘缓存虽然不是主要的参数,但是还是有存在的意义的,特别是常用文件的随机性读写上,主要品牌有南亚,现在市场反而是无外置缓存卖的都特别好,所以很多厂商也都取消了缓存芯片,毕竟更省成本啊,实际缓存带来的提升普通用户体验不出来。在考虑端到端应用程序性能时,快速的 GPU 通过缓慢的 I/O 将显著降低GPU的利用率。白片:就是正片中的一些多次检测中有小瑕疵,实际的使用中可能好,也可能一般般,但好在基本问题不大,这种的话不建议当主盘,这种固态硬盘价格会便宜一些,可当游戏副盘使用。

2025-04-02 10:42:53 626

原创 探索多种方案下 LLM 的预训练性能

如下图左边所示,当 GPU 内存不足以满足其相应的模型数据要求时,即使当时CPU上仍有可用内存,系统也会崩溃。在像 GPT-2 这样的预训练语言模型上,Sophia 与 Adam 相比,在减少了 50% step 数量的情况下实现了相同的验证预训练损失,这相当于总计算量减少了 50%,wall-clock 时间减少了 50%。Gemini 还利用了深度学习网络训练过程的迭代特性,将迭代分为warmup和non-warmup两个阶段,开始时的一个或若干迭代步属于预热阶段,其余的迭代步属于正式阶段。

2025-04-01 14:33:34 911

原创 GGUF二进制格式

GGUF由Georgi Gerganov开发,是一种用于分发llm的独特二进制格式。llama.cpp库也是由Georgi Gerganov开发的,是一个流行的C/ c++ LLM推理框架,可以在cpu上进行有效的模型推理,最近的进展允许将某些层卸载到gpu上。最初在PyTorch等框架中创建的模型可以转换为GGUF格式,以便与这些引擎一起使用。

2025-03-31 16:20:52 90

原创 DeepSpeed模型训练

之前需要使用 torch.distributed 调用,我们为你提供了额外的 DeepSpeed API 调用以支持相同的 MPI。要使用 mpirun + DeepSpeed (使用 mpirun 作为启动器后端)启动你的训练作业,您只需要安装 mpi4py Python 包。如果您想传播其它变量,可以在名为 .deepspeed_env 的文件中指定它们,该文件包含一个行分隔的 VAR=VAL 条目列表。以一个具体的例子来说明,有些集群需要在训练之前设置特殊的 NCCL 变量。

2025-03-31 11:18:06 556

原创 deepspeed参数设置

train_batch_size 必须等于 train_micro_batch_size_per_gpu * gradient_accumulation * gpu数量。当执行 model_engine.step() 时,DeepSpeed 在每个训练步骤调用 scheduler 的 step() 方法。此功能有时对于提高可扩展性很有用,因为它会降低step之间梯度通信的频率。此功能的另一个影响是能够在每个 GPU 上使用更大的批量大小进行训练。在平均和应用梯度之前进行累积梯度的训练step数。

2025-03-31 10:11:44 242

原创 基于树模型的模型加速工具Treelite

后端优化作为AI编译器跟硬件之间的相连接的模块,更多的是算子或者Kernel进行优化,而优化之前需要把计算图转换称为调度树等IR格式,然后针对每一个算子/Kernel进行循环优化、指令优化和内存优化等技术。树模型算法预测的时候太慢怎么办,我这里介绍一种基于树模型的模型加速工具,叫做Treelite。前端优化作为AI编译器的整体架构主要模块,主要优化的对象是计算图,而计算图是通过AI框架产生的,值得注意的是并不是所有的AI框架都会生成计算图,有了计算图就可以结合深度学习的原理知识进行图的优化。

2025-03-31 09:59:59 161

原创 RAG效果评估

ARES 使用合成数据(由 AI 模型生成的数据,而不是从现实世界的交互中收集的数据)来构建可用于测试和完善 RAG 系统的数据集。如果创建自己的评估系统让人感到不知所措,请不要担心 - 有一些很棒的现有框架已经为完成了很多繁重的工作。这些框架带有专门为评估 RAG 系统而设计的内置指标,可以更轻松地评估检索和生成性能。它包括评估检索和生成的指标,提供了一种全面的方法来衡量系统在每个步骤的表现。即使没有真实数据,这些策略也可以帮助有效评估 RAG 系统,每种方法都为提供了一种衡量性能和改进模型结果的方法。

2025-03-28 16:14:59 217

原创 大模型 API 调用中的流式输出与非流式输出全面对比:原理、场景与最佳实践

流式输出与非流式输出应用场景流式输出的理想应用场景非流式输出的理想应用场景流式输出与非流式输出性能对比性能指标 流式输出 非流式输出首字节延迟 极低(通常 100ms 内) 较高(需等待全部生成)总完成时间 与非流式相近或略长 与流式相近或略短服务器负载 连接维护成本高 单次处理负载高但短暂网络流量 略高(协议开销) 略低(单次传输)客户端复杂度 较高(需处理流式数据) 较低(简单的请求-响应)容错能力 较弱(中断风险高) 较强(完整性保证)

2025-03-28 16:01:07 906

原创 大模型中的召回次数是什么意思

在大语言模型(LLM)和检索增强生成(RAG)系统中,召回次数(Recall Count)是一个重要的参数,它决定了在检索阶段从知识库中提取多少候选文档或片段。这个参数直接影响检索的范围和效率,同时也会对最终生成的回答质量产生影响。召回次数是检索阶段的一个关键参数,它决定了从知识库中提取的候选文档数量。合理设置召回次数可以平衡检索效率和回答质量,是优化检索增强生成系统的重要环节。大模型中的召回次数是什么意思。

2025-03-28 15:54:22 206

原创 大模型 RAG:文档分块方案与 RAG 全流程

大模型在预训练阶段获取的知识是有限的,一般需要数据增强模块引入外部知识库,通过知识检索的方式搜索于用户提问相关的知识,这也是 RAG 相关应用架构出现的原因。但这又引申出另一个问题,外部知识文档往往比较长,可能是包含几十页甚至数百页的内容,如果直接使用会存在以下问题所以我们需要根据一定策略将文本切分为小块,以便适应大模型的上下文窗口,同时提高知识检索的精度。分块的目标RAG分块策略:主流方法(递归、jina-seg)+前沿推荐(Meta-chunking、Late chunking、SLM-SFT)

2025-03-28 15:49:43 936

原创 AMD MI300X与NVIDIA H200对比

以下是AMD MI300X与NVIDIA H200在推理和微调阶段的对比表格:

2025-03-06 09:44:07 2253

原创 DeepSeek-R1:使用KTransformers实现高效部署指南

而由于国内的一些网络问题,可能会导致直接下载模型失败。子模组 ‘third_party/llama.cpp’(https://github.com/ggerganov/llama.cpp.git)已对路径 ‘third_party/llama.cpp’ 注册。子模组 ‘third_party/pybind11’(https://github.com/pybind/pybind11.git)已对路径 ‘third_party/pybind11’ 注册。以及需要手动安装libstdc。检查配置文件是否完整。

2025-03-05 17:10:21 1176

原创 Ubuntu20.04配置显卡驱动

到nvidia官网下载对应的cuda工具包。记得cuda toolkit版本号。

2025-03-05 16:47:24 120

原创 重启环境linux

【代码】重启环境linux。

2025-03-05 16:36:16 94

原创 anaconda创建

【代码】anaconda创建。

2025-03-05 10:50:51 84

原创 conda与pip下载的国内镜像源

【代码】conda与pip下载的国内镜像源。

2025-03-05 10:44:37 572

原创 第二章 马尔可夫决策过程(MDP)

如果某一个过程未来的状态与过去的状态无关,只由现在的状态决定,那么其具有马尔可夫性质。换句话说,一个状态的下一个状态只取决于它的当前状态,而与它当前状态之前的状态都没有关系。: 概率论和数理统计中具有马尔可夫性质且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)。:状态转移矩阵类似于条件概率(conditional probability),其表示当智能体到达某状态后,到达其他所有状态的概率。

2025-03-02 20:31:04 576

原创 第一章 强化学习基础

我认为两者的区别主要在于是否需要对真实的环境进行建模,免模型方法不需要对环境进行建模,直接与真实环境进行交互即可,所以其通常需要较多的数据或者采样工作来优化策略,这也使其对于真实环境具有更好的泛化性能;另外,策略决定了智能体的行为,策略就是给一个外界的输入,然后它会输出现在应该要执行的动作。(2)基于价值迭代的方法只能应用在离散的环境下,例如围棋或某些游戏领域,对于行为集合规模庞大或是动作连续的场景,如机器人控制领域,其很难学习到较好的结果(此时基于策略迭代的方法能够根据设定的策略来选择连续的动作)。

2025-03-02 20:26:46 909

原创 用 FP16 训练巨型 LLM 模型是一个禁忌

由于 BF16 和 FP16 的大小相同,均为 2 个字节,因此,没有免费的午餐,当使用 BF16 时,代价就是它的精度非常差。然而,你应该还记得我们在训练时采用的随机梯度下降法及其变体,该方法有点像蹒跚而行,如果你这步没有找到完美的方向其实没关系,你会在接下来的步骤中纠正自己。255=65025,你就会溢出,这是导致训练出现问题的主要原因。一种称为损失缩放 (loss scaling) 的技术有助于缓解这个问题,但是当模型变得非常大时,FP16 较小的数值范围仍然是一个问题。例如你可以做 250。

2025-02-28 15:49:28 216

原创 大模型并行技术

近年来,随着Transformer、MOE架构的提出,使得深度学习模型轻松突破上万亿规模参数,传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此,我们需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。而利用AI集群,使深度学习算法更好地从大量数据中高效地训练出性能优良的大模型是分布式机器学习的首要目标。为了实现该目标,一般需要根据硬件资源与数据/模型规模的匹配情况,考虑对计算任务、训练数据和模型进行划分,从而进行分布式存储和分布式训练。

2025-02-28 15:04:40 676

原创 LOC PIX PXB PHB SYS

GPU间的通讯速度:

2025-02-28 14:58:17 221

原创 Spine-Leaf和InfiniBand

总之,Spine-Leaf和InfiniBand是不同的网络架构和技术,应根据实际应用场景和需求选择适合的网络方案。Spine-Leaf和InfiniBand是两种不同的网络架构和技术,它们在设计和应用上有一些区别。

2025-02-28 14:46:20 415

原创 GPU进阶

因此,一些 GPU 厂商(不是只有 NVIDIA 一家这么做)将将多个 DDR 芯片堆叠之后与 GPU 芯片封装到一起 (后文讲到 H100 时有图),这样每片 GPU 和它自己的显存交互时,就不用再去 PCIe 交换芯片绕一圈,速度最高可以提升一个量级。传统上,GPU 显存和普通内存(DDR)一样插在主板上,通过 PCIe 连接到处理器(CPU、GPU), 因此速度瓶颈在 PCIe,Gen4 是 64GB/s,Gen5 是 128GB/s。组网经济点的话用 RoCE,追求最好的性能用 IB。

2025-02-28 14:35:34 929

原创 【无标题】

Volta 架构取消 CUDA core,变为单独的 FP32 FPU 和 INT32 ALU,因为 FP32:INT32 是 1:1 的关系,因此还是可以将它们合并起来一起称为原来的 CUDA Core,这样做的好处是每个 SM 现在支持 FP32 和 INT32 的并发执行,同时新增了光线追踪 RT Core。SP(Streaming Processor)流处理器是最基本的处理单元,最后线程具体的指令和任务都是在 SP 上进行处理的,GPU 在进行并行计算时就是很多个 SP 同时处理。

2025-02-28 14:00:11 696

原创 GPU 工作原理解析

如果将 L1 缓存的延迟作为基本单位,L2 缓存的延迟是 L1 的 5 倍,HBM 的延迟将是 L1 的 15 倍,因此 GPU 需要有单独的显存。为例讲解了并发和并行的区别以及和串行的区别,在串行计算时内存利用率很低,当把程序用并发的方式展开,并发操作的多流水线会受到 CPU 架构的限制,当程序用并行的方式循环展开时,程序的执行则只受到线程数量和内存请求的约束,因此 CPU 跟 GPU 的本质区别是并行的问题而不是并发的问题,GPU 通过大量的线程提供并行的能力。它的本质是以序列化的方式处理任务。

2025-02-28 13:44:08 703

原创 主流 AI 芯片配置

FPGA 相比同等面积和工艺 ASIC 的算力差着数量级大多数大模型 16-bit 权重真的可以量化到 8-bit 而不太损失精度。但要压缩到 4-bit,精度一般就会有比较大的损失了。NVIDIA 的 Tensor Core 也可以很高效地执行 16-bit 和 8-bit 的计算,8-bit 的算力基本上是 16-bit 的两倍。FPGA 还是适合用来做智能网卡,也适合做存储编码、压缩、加密等特定算法的加速。AI 大模型还是 ASIC 更在行。

2025-02-28 11:49:53 845

原创 了解大模型LLM:部署、优化与框架

如今,最受欢迎的大型语言模型(LLM)规模可达数十亿至数百亿参数,并且根据用例的不同,可能需要处理长输入(或上下文),这也会增加成本。考虑我们的聊天机器人场景,一个用户可能用一个句子提出问题,而另一个用户可能向我们的应用程序发送一段文字,我们无法假设输入(和输出)序列的长度。但不幸的是,它在人群中迷路了,找不到回到主人身边的路。作为对SDPA的增强,多头注意力通过对查询(Q)、键(K)和值(V)矩阵进行不同的、可学习的投影,并行地多次执行注意力层,使模型能够同时关注来自不同表示子空间不同位置的信息。

2025-02-24 09:22:08 1125

原创 AI芯片学习

首先我们了解一下芯片是什么?芯片的本质就是在半导体衬底上制作能实现一系列特定功能的集成电路。在发现半导体之前,人类只能用机械控制电,而半导体却能直接“用电来控制电”。计算机是我们日常生活中常见的工具,可以通过数字形式存储古往今外的人类文明信息,计算机里任何复杂功能,还原到最底层都能用 0 和 1 解决,进而可以通过半导体开关的通断,绕过机械维度,直接去操控微观的电子来处理信息。通过芯片这个物理接口,创造了我们今天的数字世界,让人类进入到一半物质世界一半数字世界的新时代。

2025-02-18 20:56:00 793

原创 Failed to connect to huggingface.co port 443 after 75018 ms: Operation timed out

完美解决:Failed to connect to huggingface.co port 443 after 75018 ms: Operation timed out。原文链接:https://blog.youkuaiyun.com/T752462536/article/details/133382427。推荐:pycrawlers这个python包,使用这个包可以轻松实现批量下载,以及进度显示。选择python依赖包,用代码程序解决。

2025-02-17 14:31:52 150

原创 大模型配置API密钥到环境变量

【代码】大模型配置API密钥到环境变量。

2025-02-13 09:43:30 347

时间序列异常检测相关代码

时间序列异常检测代码

2024-10-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除