- 博客(317)
- 资源 (14)
- 收藏
- 关注
原创 多模态大模型Qwen 和 Qwen2 的模型结构、训练方式与数据处理对比分析
Qwen2 在 Qwen 的基础上,通过动态分辨率、视频支持、多模态位置编码和高效并行训练策略,实现了从单一图像处理到复杂多模态任务的全面升级,尤其在视频理解和交互能力上表现突出。
2025-03-20 15:57:21
824
原创 多模态模型 BLIP 和BLIP-2在模型结构、训练方式、数据组成的异同分析
BLIP 和 BLIP2 在数据处理上有许多共同点,如使用大规模图像-文本对数据集、数据增强和噪声过滤。BLIP 和 BLIP2 是两种用于视觉语言任务的预训练模型,它们在模型结构和训练方式上有显著的区别和联系。BLIP2 在 BLIP 的基础上进行了显著改进,通过模块化设计和两阶段训练,提升了模型的灵活性和效率,同时支持更大规模的语言模型。BLIP 和 BLIP2 在数据处理方面有一些共同点,但也存在显著差异。
2025-03-20 15:25:18
1125
原创 deepseek里使用的多头潜在注意力MLA技术浅解
多头潜在注意力(Multi-head Latent Attention, MLA)是一种改进的注意力机制,旨在解决传统多头注意力(Multi-head Attention)在计算效率和内存占用上的瓶颈。,具体的需要看技术报告了。为了降低训练过程中的激活内存activation memory,还对queries进行低秩压缩(虽然这并不能降低KV Cache),其对Q的压缩方式和K、V一致,依然是先降维再升维。MLA通过引入潜在变量压缩技术,在保持模型性能的同时,显著降低了注意力机制的计算和内存开销。
2025-02-07 16:50:00
1560
原创 DeepSeek-VL2论文解读:用于高级多模态理解的专家混合视觉语言模型
paper:大型视觉语言模型(VLMs)已经成为人工智能领域的变革性力量,将大型语言模型(LLMs)的卓越能力扩展到能够无缝处理视觉和文本信息。这一进步极大地拓展了人工智能系统在需要多模态理解的复杂现实应用中的潜力。在这份技术报告中,我们介绍了DeepSeek-VL2,这是一系列新的开源视觉语言模型,利用专家混合(MoE)架构,在性能和效率上相较其前身DeepSeek-VL取得了显著提升。我们的进步主要集中在三个关键方面:(1)动态的高分辨率视觉编码策略,增强了视觉理解能力;
2025-02-06 16:09:45
1697
原创 由学习率跟batch size 关系 引起的海塞矩阵和梯度计算在训练过程中的应用思考
对于一个损失函数 ( L(\theta) ),梯度是一个向量,包含了损失函数对每个参数的偏导数。∇Lθ∂L∂θ1∂L∂θ2∂L∂θn∇Lθ∂θ1∂L∂θ2∂L∂θn∂L通过海塞矩阵和梯度计算,可以更精确地分析和优化训练过程。特别是在调整学习率和使用二阶优化方法时,海塞矩阵提供了关键的曲率信息,使得优化过程更高效和稳定。
2024-12-18 11:47:22
843
原创 LLM 面试- python 和pytorch手动实现 self attention的计算过程
Self-Attention机制的核心思想是通过计算输入序列中每个元素与其他元素的相关性来生成一个加权和。Self-Attention机制的核心思想是通过计算输入序列中每个元素与其他元素的相关性来生成一个加权和。### Self-Attention机制的原理。个元素,通常是一个向量。个元素,通常是一个向量。是可训练的权重矩阵。是可训练的权重矩阵。
2024-10-31 15:18:11
1076
原创 Ovis原理解读: 多模态大语言模型的结构嵌入对齐
它提出了一种新颖的多模态大语言模型 (MLLM) 架构,称为 “Ovis”。该架构吸收了大语言模型 (LLMs) 的洞见,从而建立视觉输入的结构化嵌入。如图1所示,Ovis 引入了一个额外的可学习视觉嵌入查找表,用以转换连续的视觉tokens,从而与文本嵌入的结构完整性相呼应。图2展示了在各种基准测试中,Ovis 在相同参数范围内优于开源 MLLMs,而 Ovis-14B 在整体表现上也超越了高资源的专有模型 Qwen-VL-Plus。
2024-10-24 10:10:54
1169
原创 LLM大模型预测耗时的粗略估计以及sft和continue pre-train的区别
通过预训练和微调的结合,LLM能够在广泛的语言理解和生成任务中表现出色,同时也能在特定任务中达到高水平的性能。
2024-10-10 10:26:38
713
原创 蒸馏(Distillation)和量化(Quantization)的比较以及使用场景讨论
模型蒸馏是一种通过训练一个较小的学生模型(Student Model)来模仿一个较大且性能更好的教师模型(Teacher Model)的技术。学生模型通过学习教师模型的输出(软标签)来获得知识。模型量化是一种通过减少模型参数和计算的表示精度来压缩模型的技术。常见的量化方法包括将浮点数表示转换为定点数表示(如将32位浮点数转换为8位整数)。
2024-09-26 14:44:29
1741
原创 Qwen2-VL架构解读:Qwen2-VL: Enhancing Vision-Language Model’s Perceptionof the World at Any Resolution
此外,为了减少每个图像的视觉标记,在ViT之后使用了一个简单的MLP层,将相邻的2×2标记压缩成一个标记,并在压缩后的视觉标记的开头和结尾放置特殊的和标记。此外,我们引入了深度为二的3D卷积(Carreira和Zisserman,2017)来处理视频输入,使模型能够处理3D管而不是2D补丁,从而在不增加序列长度的情况下处理更多的视频帧(Arnab等,2021)。在语言处理方面,我们选择了更强大的Qwen2(Yang等,2024)系列语言模型。
2024-09-26 11:39:07
1196
原创 调整兰德系数-评估聚类效果的指标
调整兰德系数(Adjusted Rand Index, ARI)是一种用于评估聚类结果与真实标签之间相似度的指标。它在传统兰德系数(Rand Index, RI)的基础上进行了调整,考虑了随机聚类的期望值,因此能够更公平地评估聚类结果。
2024-09-12 17:33:24
2262
1
原创 对于llama3.1 8B模型,FP32和BF16混合精度训练,用的是AdamW优化器,模型训练时占用显存分析
在模型训练中,显存占用主要包括模型参数、梯度参数和优化器状态。
2024-08-22 11:28:36
1709
1
原创 多模态大模型intern-vl 1.5 里的PixelShuffle 上采样原理
设输入张量为 𝑋,其形状为 (𝑁,𝐶×𝑟2,𝐻,𝑊)。PixelShuffle操作可以表示为: 𝑌𝑛,𝑐,ℎ×𝑟+𝑖,𝑤×𝑟+𝑗=𝑋𝑛,𝑐×𝑟2+𝑖×𝑟+𝑗,ℎ,𝑤 其中 0≤𝑖,𝑗
2024-08-13 10:28:09
1153
3
原创 多模态大模型intern-vl 1.5 论文解读:How Far Are We to GPT-4V?
大语言模型(LLMs)在推动通用人工智能(AGI)系统方面发挥了重要作用,展现了在处理开放世界语言任务中的非凡能力。借助LLMs的进步,多模态大语言模型(MLLMs)[5, 18, 23, 62, 63, 84, 92, 116, 142]取得了显著进展,促进了复杂的视觉语言对话和交互,弥合了文本信息和视觉信息之间的差距。尽管取得了这些成就,开源模型与专有商业模型之间仍然存在明显的能力差距,例如GPT-4V [87]、Gemini系列[92, 107]和Qwen-VL-Max [5]。参数规模。
2024-08-06 16:26:34
1367
1
原创 多模态大模型 intern_vl 2.0版本解读
(还是internvl1.5)我们介绍了InternVL2,这是目前最强大的开源多模态大语言模型(MLLM)。InternVL2家族包括从适合边缘设备的1B模型到显著更强大的108B模型。通过更大规模的语言模型,InternVL2-Pro展示了出色的多模态理解能力,在各种基准测试中表现与商业闭源模型相当。
2024-08-06 16:05:45
4382
原创 deepseek-vl 论文阅读笔记
我们的语言模型基于DeepSeek LLM(DeepSeek-AI,2024),其微设计大体遵循LLaMA(Touvron等,2023a,b)的设计,采用带有RMSNorm(Zhang和Sennrich,2019)函数的Pre-Norm结构,并使用SwiGLU(Shazeer,2020)作为前馈网络(FFN)的激活函数,中间层维度为8/3模型维度。此外,我们引入了一种新的“模态预热”策略。为了促进创新并支持广泛的应用需求,我们公开了两个版本的模型,分别为1.3B和7B,以满足不同计算能力的需求。
2024-07-22 16:24:23
5224
1
原创 spark任务,使用 repartition 对数据进行了重新分区,但任务输入数据大小仍存在不均衡
如果数据存在显著的倾斜,可以使用自定义分区器来更好地平衡数据。例如,可以使用hash# 添加一个分区键# 按分区键进行重新分区。
2024-07-08 15:11:38
730
原创 SAMBA(简单混合状态空间模型用于高效的无限上下文语言建模)及其对长文本模型的改进
SAMBA(Simple Hybrid State Space Models for Efficient Unlimited Context Language Modeling)是一种新型的基于Transformer的语言模型,旨在解决传统大语言模型在处理长文本时遇到的限制。下面详细解析SAMBA的核心特点以及它是如何改善长文本处理的。
2024-06-20 14:21:41
821
原创 多模态vlm综述:An Introduction to Vision-Language Modeling 论文解读
论文:这里主要整理了多模态的技术发展历程,没有一些实验对比的数据。VLM家族:1)对比训练是一种广泛应用的策略,它采用正面例子和负面例子的配对方式。视觉语言模型(VLM)通过这种方式被训练,以针对正面配对预测出相似的表示,同时对于负面配对则预测出不同的表示。2)掩码技术是另一种训练VLM的策略,它通过重构给定的未掩码文本字幕中缺失的部分来实现。类似地,通过在字幕中掩码词语,也可以训练VLM来重构给定未掩码图像中的这些词语。
2024-06-06 16:56:55
4908
原创 SimPO:一个不需要reward model 的对齐优化方法:有跟DPO 进行对比
直接偏好优化(Direct Preference Optimization,DPO)是一种广泛使用的离线偏好优化算法,它将强化学习中基于人类反馈(RLHF)的奖励函数重新参数化,以增强简单性和训练稳定性。在这项工作中,我们提出了一种更简单但更有效的方法,称为SimPO。SimPO的有效性归因于一个关键设计:将序列的平均对数概率作为隐含奖励。这种奖励形式更符合模型生成,并消除了对参考模型的需求,使其在计算和内存效率上更高。
2024-06-03 17:17:19
2670
原创 T5与BART的区别
BART也采用了encoder-decoder结构,但与T5不同的是,BART在预训练阶段使用了类似于BERT的双向Transformer作为encoder,使用了类似于GPT的单向Transformer作为decoder。扰动的方式包括了词序打乱、词缺失、词替换等。总的来说,T5和BART在模型结构、预训练任务和生成方式上都有所不同,但都是将NLP任务视为序列到序列的转换问题,都采用了自回归的生成方式。T5在生成时,采用了自回归的方式,即每次生成一个词,然后将生成的词作为新的输入,进行下一个词的生成。
2024-05-21 14:31:21
1748
原创 神经网络参数初始化问题:可以初始化成0或者其他同一值么
答案:不可以问题:可以初始化成0或者其他同一值么?之前想着虽然原始值一样,但是导数应该不一样啊,还是会正常更新梯度的,但细想想还是错误的。
2024-05-17 15:56:36
660
原创 QLora 里的双重量化Block-wise Quantization内存占用解释
双重量化我们引入了双重量化(Double Quantization,DQ),这是一种为了额外的内存节省而量化量化常数的过程。虽然需要较小的块大小来进行精确的4位量化[13],但它也带来了相当大的内存开销。例如,使用32位常数和64的块大小对W进行量化,平均每个参数的量化常数增加32/64 = 0.5位。。更具体地说,双重量化将第一次量化的量化常数cFP322作为第二次量化的输入。这个第二步产生了量化的量化常数cFP82和第二级的量化常数cFP321。
2024-05-16 18:57:42
1173
原创 在mac时配置vscode运行c++ 代码,解决一些报错信息
这表明,你正在试图将你的C++代码编译的输出写入一个目录(文件夹),而不是一个文件。同时,你的代码中出现了“non-aggregate type 'vector' cannot be initialized with an initializer list”错误,这是因为你的编译器可能不支持C++11或更高版本的特性,即使用初始化列表初始化vector。你需要更改你的任务配置,以便编译器能够将输出写入一个文件,而不是一个目录。文件中,找到你的编译任务,然后在。
2024-05-15 11:33:33
1296
原创 QLora 里的4-bit NormalFloat Quantization中的分位数量化
正态分布,也被称为高斯分布,是连续概率的一种。它的概率密度函数呈钟形,可以完全由两个参数(均值和标准差)确定。在正态分布中,均值、中位数和众数是相等的。分位数函数,又称为逆累积分布函数,是累积分布函数的逆函数。对于正态分布,其分位数函数可以给出对应于预先指定的累积概率的观测值。例如,如果我们知道某个变量服从标准正态分布,我们可以使用分位数函数来找出对应于累积概率0.975的观测值。
2024-05-06 19:59:09
2739
原创 各种优化器及其优缺点(SGD,RMSProp,Adam及其变种)
其中,θ_t是第t步的参数,α是学习率,∇f(θ_{t-1})是损失函数在第t-1步的梯度,r_t是第t步的平方梯度的移动平均值,β是衰减系数,ε是防止除0错误的小常数。其中,m_t和v_t分别是一阶矩和二阶矩的指数移动平均值,β1和β2是衰减系数,α是学习率,λ是权重衰减系数,ε是防止除0错误的小常数。其中,θ_t是第t步的参数,α是学习率,∇f(θ_{t-1})是损失函数在第t-1步的梯度,v_t是第t步的速度,γ是动量参数。动量优化的另一个缺点是可能会导致优化过程在某些方向上过快,从而跳过最优解。
2024-04-29 11:18:46
5505
原创 LLama的激活函数SwiGLU 解释
3.3 自适应性:GLU是一种类似于长短期记忆网络(LSTM)带有门机制的网络结构,通过门机制控制信息通过的比例,来让模型自适应地选择哪些单词和特征对预测下一个词有帮助。Swish函数结合了线性函数和非线性函数的特点,能够自适应地调整激活函数的形状,因此在某些深度学习模型中,Swish函数的表现优于常见的ReLU函数。其中,Swish_β(x) = x σ(β x),σ为sigmoid函数,⊗为逐元素乘。在LLaMA模型中,使用的激活函数是SwiGLU。它取代了ReLU非线性函数,以提高模型的性能。
2024-04-23 20:27:09
5644
原创 大模型中的位置编码ALiBi,RoPE的总结和实现
return m这个函数计算了每个头部的斜率。首先,它计算了n,这是最接近n_heads的2的幂。然后,它计算了一个基础斜率m_0,并使用这个基础斜率生成了一个斜率数组m。如果n小于n_heads,则生成另一个斜率数组m_hat并将其添加到m中。结果是一个长度为n_heads的斜率数组。return m这个函数计算了ALiBi的偏置。首先,它获取了斜率数组m,然后计算了一个距离矩阵distance,这个矩阵表示每个位置与其他位置的相对距离。
2024-04-23 17:35:58
5205
原创 Group Query Attention (GQA) 机制详解以及手动实现计算
Grouped-Query Attention (GQA) 是对 Multi-Head Attention (MHA) 和 Multi-Query Attention (MQA) 的扩展。通过提供计算效率和模型表达能力之间的灵活权衡,实现了查询头的分组。GQA将查询头分成了G个组,每个组共享一个公共的键(K)和值(V)投影。
2024-04-19 16:12:22
15620
5
原创 大模型推理常见采样策略总结:贪心解码, Beam Search, Top-k, Top-p, Temperature等
较低的温度值会使得模型倾向于选择概率较高的词,而较高的温度值会增加低概率词被选中的机会,从而增加生成文本的多样性。Top-p Sampling,也称为Nucleus Sampling,是一种更加精细的采样策略,它选择累计概率超过某个阈值p的最小集合,然后从这个集合中随机采样。Top-k Sampling 是一种随机采样策略,它从模型预测的词汇分布中选择概率最高的k个词,然后基于这些词的概率分布随机选择下一个词。贪心解码是一种简单直接的解码策略,它在每一步都选择概率最高的下一个词。
2024-04-11 10:50:16
3507
原创 EfficientNet 模型总结
EfficientNet是一种卷积神经网络架构和缩放方法,由Google Research在2019年提出。它基于一个基础模型 EfficientNet-B0,通过一种复合系数(compound coefficient)来统一缩放网络的宽度、深度和分辨率。
2024-03-22 16:36:23
1410
原创 Deepspeed的机制学习以及ZeRO-1、ZeRO-2和ZeRO-3的区别
ZeRO(Zero Redundancy Optimizer)是一种为了解决大规模分布式训练中的内存瓶颈问题而设计的优化器。它通过减少冗余数据来优化模型的内存使用,允许训练更大的模型。ZeRO分为三个优化级别:ZeRO-1、ZeRO-2和ZeRO-3,每个级别都在前一个级别的基础上进一步减少内存占用。ZeRO-1、ZeRO-2和ZeRO-3是递进的优化级别,每个级别都在前一个级别的基础上减少更多的内存冗余。
2024-03-18 20:13:28
20701
4
原创 LayerNormalization 和 RMSNormalization的计算方法和区别
Layer Normalization(层归一化)和RMSNormalization(均方根归一化)都是神经网络中用于稳定训练过程的归一化技术。在ChatGLM或其他神经网络模型中替换归一化技术时,需要仔细考虑模型的特定需求和归一化技术的特性,以及可能对训练动态和最终性能产生的影响。RMS值是激活的平方的均值的平方根。: Layer Normalization通过计算一个层内所有激活的均值和标准差,并用这些统计量对激活进行归一化,使得输出的均值为0,方差为1。
2024-03-18 16:34:14
2655
原创 leetcode:反转链表II 和k个一组反转链表的C++实现
此代码通过迭代的方式,反转了单链表的一部分。它首先使用一个哑节点简化操作,然后通过两个循环移动节点,逐步实现链表的局部反转。最终返回新链表的头节点。此代码通过迭代的方式,每次反转链表中的k个节点。它首先使用一个哑节点简化操作,然后通过两个循环,一是计算链表长度,二是进行分组反转。最终返回新链表的头节点。
2024-03-08 17:08:00
1358
1
原创 leetcode:二叉树的左右子树反转的递归和迭代的C++实现
在迭代方法中,我们使用一个队列来存储那些需要交换子节点的树节点。在队列不为空的情况下,我们不断地从队列中取出节点,交换它们的左右子节点,然后将它们的子节点(如果存在的话)加入队列中继续处理。这个过程会持续到队列为空,即所有节点都被处理过为止。上述解决方案使用了递归方法,它是简洁且易于理解的。然而,也可以使用迭代方法来反转二叉树,通常使用队列或栈来实现。给定一个二叉树,将其每个节点的左右子树进行反转。// 交换当前节点的左右子树。// 将子节点加入队列。// 交换当前节点的左右子树。// 递归反转左右子树。
2024-03-08 16:49:31
841
原创 beam search原理与常见实现,与直接sample的区别
Beam Search 是一种启发式图搜索算法,常用于自然语言处理中的序列生成任务,如机器翻译、文本摘要、语音识别等。它是一种在广度优先搜索的基础上进行优化的算法,通过限制每一步扩展的节点数量(称为"beam width"或"beam size"),来减少搜索空间的大小,从而在合理的时间内找到接近最优的解。总结来说,Beam Search 通过限制每一步的候选状态数量来有效地搜索近似最优解,而直接采样则依赖于随机性来探索更广泛的可能性,两者在实际应用中可以根据具体需求和场景选择使用。
2024-03-07 11:27:59
2917
原创 bf16 和fp16 ,fp32的区别以及相互转换逻辑
总结来说,FP32、FP16和BF16各有其优势和适用场景,选择使用哪种精度格式通常取决于应用对计算速度、精度和数值范围的具体要求。在深度学习领域,FP16和BF16因其在性能和效率上的优势而越来越受到关注。
2024-03-07 10:25:40
25460
3
原创 ImportError: cannot import name ‘InterpolationMode‘
这是一种比较高级的插值方法,它可以在放大图像时提供较平滑的边缘和细节。双三次插值通过考虑周围16个像素(4x4邻域)的值来计算新像素的值,比最近邻和双线性插值(分别考虑1个和4个像素)提供了更好的结果。这在计算机视觉任务中很常见,因为需要将不同大小的图像统一到相同的尺寸,以便它们可以被模型处理。如果在尝试上述步骤后仍然遇到问题,你可能需要检查你的代码库是否依赖特定版本的。,或者在代码库的文档、issue跟踪器中寻找相关的兼容性说明。的使用位置,并替换为等效的、在你当前版本的。类,或者你的环境中安装的。
2024-03-06 11:31:50
1438
IMDB电影评分正负数据集(3个版本的imdb_full.pkl,imdb.pkl以及imdb.npz)
2018-01-19
tensorFlow-GPU版本 安装时用到的cuDNN5.1版本
2017-11-10
国际学术会议poster模板(5个)
2017-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人