自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(312)
  • 资源 (14)
  • 收藏
  • 关注

原创 LLM 面试- python 和pytorch手动实现 self attention的计算过程

Self-Attention机制的核心思想是通过计算输入序列中每个元素与其他元素的相关性来生成一个加权和。Self-Attention机制的核心思想是通过计算输入序列中每个元素与其他元素的相关性来生成一个加权和。​### Self-Attention机制的原理。个元素,通常是一个向量。个元素,通常是一个向量。是可训练的权重矩阵。是可训练的权重矩阵。

2024-10-31 15:18:11 871

原创 Ovis原理解读: 多模态大语言模型的结构嵌入对齐

它提出了一种新颖的多模态大语言模型 (MLLM) 架构,称为 “Ovis”。该架构吸收了大语言模型 (LLMs) 的洞见,从而建立视觉输入的结构化嵌入。如图1所示,Ovis 引入了一个额外的可学习视觉嵌入查找表,用以转换连续的视觉tokens,从而与文本嵌入的结构完整性相呼应。图2展示了在各种基准测试中,Ovis 在相同参数范围内优于开源 MLLMs,而 Ovis-14B 在整体表现上也超越了高资源的专有模型 Qwen-VL-Plus。

2024-10-24 10:10:54 893

原创 LLM大模型预测耗时的粗略估计以及sft和continue pre-train的区别

通过预训练和微调的结合,LLM能够在广泛的语言理解和生成任务中表现出色,同时也能在特定任务中达到高水平的性能。

2024-10-10 10:26:38 376

原创 蒸馏(Distillation)和量化(Quantization)的比较以及使用场景讨论

模型蒸馏是一种通过训练一个较小的学生模型(Student Model)来模仿一个较大且性能更好的教师模型(Teacher Model)的技术。学生模型通过学习教师模型的输出(软标签)来获得知识。模型量化是一种通过减少模型参数和计算的表示精度来压缩模型的技术。常见的量化方法包括将浮点数表示转换为定点数表示(如将32位浮点数转换为8位整数)。

2024-09-26 14:44:29 899

原创 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 980

原创 调整兰德系数-评估聚类效果的指标

调整兰德系数(Adjusted Rand Index, ARI)是一种用于评估聚类结果与真实标签之间相似度的指标。它在传统兰德系数(Rand Index, RI)的基础上进行了调整,考虑了随机聚类的期望值,因此能够更公平地评估聚类结果。

2024-09-12 17:33:24 1242

原创 对于llama3.1 8B模型,FP32和BF16混合精度训练,用的是AdamW优化器,模型训练时占用显存分析

在模型训练中,显存占用主要包括模型参数、梯度参数和优化器状态。

2024-08-22 11:28:36 879

原创 多模态大模型intern-vl 1.5 里的PixelShuffle 上采样原理

设输入张量为 𝑋,其形状为 (𝑁,𝐶×𝑟2,𝐻,𝑊)。PixelShuffle操作可以表示为: 𝑌𝑛,𝑐,ℎ×𝑟+𝑖,𝑤×𝑟+𝑗=𝑋𝑛,𝑐×𝑟2+𝑖×𝑟+𝑗,ℎ,𝑤 其中 0≤𝑖,𝑗

2024-08-13 10:28:09 670 1

原创 多模态大模型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 1035 1

原创 多模态大模型 intern_vl 2.0版本解读

(还是internvl1.5)我们介绍了InternVL2,这是目前最强大的开源多模态大语言模型(MLLM)。InternVL2家族包括从适合边缘设备的1B模型到显著更强大的108B模型。通过更大规模的语言模型,InternVL2-Pro展示了出色的多模态理解能力,在各种基准测试中表现与商业闭源模型相当。

2024-08-06 16:05:45 2470

原创 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 1481

原创 spark任务,使用 repartition 对数据进行了重新分区,但任务输入数据大小仍存在不均衡

如果数据存在显著的倾斜,可以使用自定义分区器来更好地平衡数据。例如,可以使用hash# 添加一个分区键# 按分区键进行重新分区。

2024-07-08 15:11:38 601

原创 SAMBA(简单混合状态空间模型用于高效的无限上下文语言建模)及其对长文本模型的改进

SAMBA(Simple Hybrid State Space Models for Efficient Unlimited Context Language Modeling)是一种新型的基于Transformer的语言模型,旨在解决传统大语言模型在处理长文本时遇到的限制。下面详细解析SAMBA的核心特点以及它是如何改善长文本处理的。

2024-06-20 14:21:41 657

原创 多模态vlm综述:An Introduction to Vision-Language Modeling 论文解读

论文:这里主要整理了多模态的技术发展历程,没有一些实验对比的数据。VLM家族:1)对比训练是一种广泛应用的策略,它采用正面例子和负面例子的配对方式。视觉语言模型(VLM)通过这种方式被训练,以针对正面配对预测出相似的表示,同时对于负面配对则预测出不同的表示。2)掩码技术是另一种训练VLM的策略,它通过重构给定的未掩码文本字幕中缺失的部分来实现。类似地,通过在字幕中掩码词语,也可以训练VLM来重构给定未掩码图像中的这些词语。

2024-06-06 16:56:55 2435

原创 SimPO:一个不需要reward model 的对齐优化方法:有跟DPO 进行对比

直接偏好优化(Direct Preference Optimization,DPO)是一种广泛使用的离线偏好优化算法,它将强化学习中基于人类反馈(RLHF)的奖励函数重新参数化,以增强简单性和训练稳定性。在这项工作中,我们提出了一种更简单但更有效的方法,称为SimPO。SimPO的有效性归因于一个关键设计:将序列的平均对数概率作为隐含奖励。这种奖励形式更符合模型生成,并消除了对参考模型的需求,使其在计算和内存效率上更高。

2024-06-03 17:17:19 1637

原创 T5与BART的区别

BART也采用了encoder-decoder结构,但与T5不同的是,BART在预训练阶段使用了类似于BERT的双向Transformer作为encoder,使用了类似于GPT的单向Transformer作为decoder。扰动的方式包括了词序打乱、词缺失、词替换等。总的来说,T5和BART在模型结构、预训练任务和生成方式上都有所不同,但都是将NLP任务视为序列到序列的转换问题,都采用了自回归的生成方式。T5在生成时,采用了自回归的方式,即每次生成一个词,然后将生成的词作为新的输入,进行下一个词的生成。

2024-05-21 14:31:21 1299

原创 神经网络参数初始化问题:可以初始化成0或者其他同一值么

答案:不可以问题:可以初始化成0或者其他同一值么?之前想着虽然原始值一样,但是导数应该不一样啊,还是会正常更新梯度的,但细想想还是错误的。

2024-05-17 15:56:36 510

原创 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 944

原创 在mac时配置vscode运行c++ 代码,解决一些报错信息

这表明,你正在试图将你的C++代码编译的输出写入一个目录(文件夹),而不是一个文件。同时,你的代码中出现了“non-aggregate type 'vector' cannot be initialized with an initializer list”错误,这是因为你的编译器可能不支持C++11或更高版本的特性,即使用初始化列表初始化vector。你需要更改你的任务配置,以便编译器能够将输出写入一个文件,而不是一个目录。文件中,找到你的编译任务,然后在。

2024-05-15 11:33:33 972

原创 QLora 里的4-bit NormalFloat Quantization中的分位数量化

正态分布,也被称为高斯分布,是连续概率的一种。它的概率密度函数呈钟形,可以完全由两个参数(均值和标准差)确定。在正态分布中,均值、中位数和众数是相等的。分位数函数,又称为逆累积分布函数,是累积分布函数的逆函数。对于正态分布,其分位数函数可以给出对应于预先指定的累积概率的观测值。例如,如果我们知道某个变量服从标准正态分布,我们可以使用分位数函数来找出对应于累积概率0.975的观测值。

2024-05-06 19:59:09 1920

原创 各种优化器及其优缺点(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 3606

原创 LLama的激活函数SwiGLU 解释

3.3 自适应性:GLU是一种类似于长短期记忆网络(LSTM)带有门机制的网络结构,通过门机制控制信息通过的比例,来让模型自适应地选择哪些单词和特征对预测下一个词有帮助。Swish函数结合了线性函数和非线性函数的特点,能够自适应地调整激活函数的形状,因此在某些深度学习模型中,Swish函数的表现优于常见的ReLU函数。其中,Swish_β(x) = x σ(β x),σ为sigmoid函数,⊗为逐元素乘。在LLaMA模型中,使用的激活函数是SwiGLU。它取代了ReLU非线性函数,以提高模型的性能。

2024-04-23 20:27:09 3743

原创 大模型中的位置编码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 3866

原创 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 9035 4

原创 大模型推理常见采样策略总结:贪心解码, Beam Search, Top-k, Top-p, Temperature等

较低的温度值会使得模型倾向于选择概率较高的词,而较高的温度值会增加低概率词被选中的机会,从而增加生成文本的多样性。Top-p Sampling,也称为Nucleus Sampling,是一种更加精细的采样策略,它选择累计概率超过某个阈值p的最小集合,然后从这个集合中随机采样。Top-k Sampling 是一种随机采样策略,它从模型预测的词汇分布中选择概率最高的k个词,然后基于这些词的概率分布随机选择下一个词。贪心解码是一种简单直接的解码策略,它在每一步都选择概率最高的下一个词。

2024-04-11 10:50:16 2277

原创 EfficientNet 模型总结

EfficientNet是一种卷积神经网络架构和缩放方法,由Google Research在2019年提出。它基于一个基础模型 EfficientNet-B0,通过一种复合系数(compound coefficient)来统一缩放网络的宽度、深度和分辨率。

2024-03-22 16:36:23 1060

原创 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 11690 2

原创 LayerNormalization 和 RMSNormalization的计算方法和区别

Layer Normalization(层归一化)和RMSNormalization(均方根归一化)都是神经网络中用于稳定训练过程的归一化技术。在ChatGLM或其他神经网络模型中替换归一化技术时,需要仔细考虑模型的特定需求和归一化技术的特性,以及可能对训练动态和最终性能产生的影响。RMS值是激活的平方的均值的平方根。: Layer Normalization通过计算一个层内所有激活的均值和标准差,并用这些统计量对激活进行归一化,使得输出的均值为0,方差为1。

2024-03-18 16:34:14 2150

原创 加速 PyTorch 模型预测常见方法梳理

在使用 PyTorch 进行模型预测时,可以通过多种方法来加快推理速度。

2024-03-13 11:25:58 1136

原创 leetcode:反转链表II 和k个一组反转链表的C++实现

此代码通过迭代的方式,反转了单链表的一部分。它首先使用一个哑节点简化操作,然后通过两个循环移动节点,逐步实现链表的局部反转。最终返回新链表的头节点。此代码通过迭代的方式,每次反转链表中的k个节点。它首先使用一个哑节点简化操作,然后通过两个循环,一是计算链表长度,二是进行分组反转。最终返回新链表的头节点。

2024-03-08 17:08:00 1328

原创 leetcode:二叉树的左右子树反转的递归和迭代的C++实现

在迭代方法中,我们使用一个队列来存储那些需要交换子节点的树节点。在队列不为空的情况下,我们不断地从队列中取出节点,交换它们的左右子节点,然后将它们的子节点(如果存在的话)加入队列中继续处理。这个过程会持续到队列为空,即所有节点都被处理过为止。上述解决方案使用了递归方法,它是简洁且易于理解的。然而,也可以使用迭代方法来反转二叉树,通常使用队列或栈来实现。给定一个二叉树,将其每个节点的左右子树进行反转。// 交换当前节点的左右子树。// 将子节点加入队列。// 交换当前节点的左右子树。// 递归反转左右子树。

2024-03-08 16:49:31 810

原创 leetcode:反转链表II,用C++ 实现

的链表节点,返回反转后的链表。

2024-03-07 11:35:13 509

原创 beam search原理与常见实现,与直接sample的区别

Beam Search 是一种启发式图搜索算法,常用于自然语言处理中的序列生成任务,如机器翻译、文本摘要、语音识别等。它是一种在广度优先搜索的基础上进行优化的算法,通过限制每一步扩展的节点数量(称为"beam width"或"beam size"),来减少搜索空间的大小,从而在合理的时间内找到接近最优的解。总结来说,Beam Search 通过限制每一步的候选状态数量来有效地搜索近似最优解,而直接采样则依赖于随机性来探索更广泛的可能性,两者在实际应用中可以根据具体需求和场景选择使用。

2024-03-07 11:27:59 2481

原创 bf16 和fp16 ,fp32的区别以及相互转换逻辑

总结来说,FP32、FP16和BF16各有其优势和适用场景,选择使用哪种精度格式通常取决于应用对计算速度、精度和数值范围的具体要求。在深度学习领域,FP16和BF16因其在性能和效率上的优势而越来越受到关注。

2024-03-07 10:25:40 15072 2

原创 ImportError: cannot import name ‘InterpolationMode‘

这是一种比较高级的插值方法,它可以在放大图像时提供较平滑的边缘和细节。双三次插值通过考虑周围16个像素(4x4邻域)的值来计算新像素的值,比最近邻和双线性插值(分别考虑1个和4个像素)提供了更好的结果。这在计算机视觉任务中很常见,因为需要将不同大小的图像统一到相同的尺寸,以便它们可以被模型处理。如果在尝试上述步骤后仍然遇到问题,你可能需要检查你的代码库是否依赖特定版本的。,或者在代码库的文档、issue跟踪器中寻找相关的兼容性说明。的使用位置,并替换为等效的、在你当前版本的。类,或者你的环境中安装的。

2024-03-06 11:31:50 1050

原创 面试季节指南:如何在“金三银四”求职季中脱颖而出以及常见的NLP面试题

随着春天的气息愈发浓厚,对于广大程序员而言,一年中最关键的求职季节——“金三银四”,也悄然来临。在这个黄金招聘时段,无数的IT企业开启了他们的大门,寻找新的、有潜力的技术人才。而对于求职者来说,这也是一个展示自我、实现职业跳跃的绝佳机会。但在激烈的竞争中,如何突出重围,成为人人瞩目的焦点呢?以下是几点建议,帮助你在面试季节中脱颖而出。

2024-03-05 20:02:01 461

原创 LeetCode: 数组中的第K个最大元素以及寻找最小/最大的K个数

在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。快速选择的平均时间复杂度为O(N),最坏情况下的时间复杂度为O(N^2),空间复杂度为O(1)。这种方法的时间复杂度为O(NlogN),空间复杂度为O(1)(如果使用的是原地排序算法)。这种方法的时间复杂度为O(NlogK),空间复杂度为O(K)。

2024-03-01 14:54:36 1000

原创 DDPM 论文总结 Denoising Diffusion Probabilistic Models

这些论文为深度学习领域的生成模型研究提供了新的视角和方法,尤其在高质量图像合成方面展示出了强大的能力。DDPM的研究不仅推动了生成模型的发展,也为后续的研究者提供了丰富的启发和可能的改进方向。1. 预测噪声而非像素转换。2. 仅预测正态分布的均值。

2024-02-23 17:09:40 1432

原创 用于图像生成的Scaling Transformers

Scaling Transformers 是一种用于图像生成的神经网络架构,它通过扩展传统的 Transformer 模型来处理大规模数据集和高分辨率图像。这种模型通过改进注意力机制和网络结构,提高了处理大型图像的效率和生成质量。

2024-02-23 16:58:12 1116

原创 图像模型的扩散模型

最近sora 模型大火,据说也用到了扩散模型,简单的查了一些资料。

2024-02-22 11:50:56 651

软考高级软件架构设计师资料

软考高级软件架构设计师资料,历年题以及教程

2021-09-30

知识图谱-BIM规范审查相关论文.zip

基于知识图谱的国内外BIM领域研究对比论文等

2021-08-05

软考高级-系统架构设计教程

软考高级-系统架构设计教程

2021-08-05

nlp资源网址.7z

nlp学习资源

2021-01-28

AI测试题资料包汇总.zip

常见python面试题,机器学习面试题,深度学习面试题 ,算法工程师可以学习使用。有几百道,有答案可以看。欢迎下载

2020-11-06

IMDB电影评分正负数据集(3个版本的imdb_full.pkl,imdb.pkl以及imdb.npz)

IMDB电影评分正负数据集(3个版本的imdb_full.pkl,imdb.pkl以及imdb.npz),用于跑tensorflow的文本分类例程

2018-01-19

TensorFlow实战对应的代码压缩包

TensorFlow实战对应的代码压缩包,代码可运行。专业学习好资料

2017-11-14

Google的tensorflow相关学习书籍

Google的tensorflow框架学习指导书籍,包含例程,详细解释。

2017-11-14

tensorFlow-GPU版本 安装时用到的cuDNN5.1版本

tensorFlow-GPU版本 安装时用到的cuDNN5.1版本 Linux安装TensorFlow1.2.0版本以及cuda 8.0 以及CUDNN 5.1版本 这样可以安装成功

2017-11-10

国际学术会议poster模板(5个)

国际学术会议poster模板(5个),选择适合自己模板。 国际学术会议poster模板(5个),选择适合自己模板。 国际学术会议poster模板(5个),选择适合自己模板。

2017-11-10

py2exe各个版本

包括py2exe各个版本,Win32 win64 python2.7 python 3.5

2017-01-05

TextRank4ZH

TextRank;关键词提取;摘要提取

2016-11-17

空空如也

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

TA关注的人

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