自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 T5与BART的区别

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

2024-05-21 14:31:21 483

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

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

2024-05-17 15:56:36 189

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

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

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

2024-05-15 11:33:33 337

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

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

2024-05-06 19:59:09 817

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

原创 LLama的激活函数SwiGLU 解释

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

2024-04-23 20:27:09 909

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

原创 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 1405 1

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

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

2024-04-11 10:50:16 501

原创 EfficientNet 模型总结

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

2024-03-22 16:36:23 577

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

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

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

2024-03-18 16:34:14 893

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

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

2024-03-13 11:25:58 618

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

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

2024-03-08 17:08:00 1250

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

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

2024-03-08 16:49:31 750

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

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

2024-03-07 11:35:13 452

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

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

2024-03-07 11:27:59 1251

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

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

2024-03-07 10:25:40 2820

原创 ImportError: cannot import name ‘InterpolationMode‘

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

2024-03-06 11:31:50 712

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

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

2024-03-05 20:02:01 415

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

原创 DDPM 论文总结 Denoising Diffusion Probabilistic Models

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

2024-02-23 17:09:40 1110

原创 用于图像生成的Scaling Transformers

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

2024-02-23 16:58:12 1054

原创 图像模型的扩散模型

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

2024-02-22 11:50:56 506

原创 双数组Trie树原理理解以及具体示例

双数组Trie树是Trie树的一种高效实现方式,它使用两个数组来表示Trie树的结构,通常这两个数组分别称为BASE和CHECK。双数组Trie树的优势在于它能够在保持Trie树快速检索的同时,大幅减少内存的使用,并且提高了缓存的利用率。当我们要查找一个字符串时,从根节点开始,对于字符串中的每一个字符,都会使用BASE和CHECK数组进行计算和验证,以确定下一步的跳转位置。相比于传统的Trie树,双数组Trie树在内存使用上更加紧凑,因为它避免了指针的使用,并且数组的连续性有利于CPU缓存的优化。

2024-02-22 11:42:40 960

原创 LLaMA 模型和DeepSpeed 框架联系与使用

LLaMA (Large Language Model - Meta AI) 是一个由 Meta AI 开发的大型语言模型。它设计用于理解和生成自然语言文本,支持多种语言,并且能够执行多种自然语言处理任务。LLaMA 模型因其开源特性、优异的性能和广泛的适用性而受到关注。它可以被用于构建不同的应用程序,从简单的文本生成到复杂的对话系统。DeepSpeed 是一个开源深度学习优化库,由微软推出,专为分布式训练而设计。它能够在PyTorch上提供高效的模型训练加速。

2024-02-05 10:40:43 827

原创 使用deepspeed继续训练LLAMA

定义全局批次大小 (GLOBAL_BATCH_SIZE) 和每 GPU 微批次大小 (MICRO_BATCH_SIZE)。DeepSpeed 库提供了优化的优化器算法,如 DeepSpeedCPUAdam 和 FusedAdam,提高了大规模数据和模型训练速度。利用 PyTorch 和 Transformers 库创建数据加载器,它支持单机或多机分布式训练环境下的数据加载与采样。get_eval_ds_config 函数提供简洁的验证集配置,专注于模型推理。

2024-02-05 10:27:04 1614

原创 LLaMA 模型中的Transformer架构变化

LLaMA模型中的前置层归一化是为了提高模型的训练稳定性和效率,而后置层归一化则是Transformer的传统方法。LLaMA模型采用了前置层归一化策略,这意味着在每个子层(自注意力层和前馈网络)的输入之前进行层归一化。这与传统的Transformer中的后置层归一化不同,后者在子层输出之后进行归一化。LLaMA模型使用RMSNorm作为其归一化函数,这是一种替代传统层归一化的方法,它在保持计算效率的同时,专注于规范化权重矩阵的行,以实现更快的收敛和更好的泛化。

2024-02-04 15:00:00 1041 1

原创 使用PySpark处理DataFrame以拆分数组列

问题:用pyspark 处理df1,df1 有三列,第一列是商品pid,第二列是商品name,第三列是候选标品cid_list(有多个cid),将df1中的cid_list拆开,转换成一个商品id和name对应一个cid,但是有多行在这段代码中,explode函数用于将cid_list数组中的每个元素拆分为单独的行。同时,select函数用于选择pid和name列,确保在结果DataFrame中,每个商品的ID和名称都与一个候选标品的CID相对应。

2024-02-04 14:42:59 686

原创 退火在模型训练中的意义

在深度学习中,学习率退火是比较常见的,它涉及到在训练过程中逐渐减少学习率。在模型训练中,逐渐减少学习率可以帮助模型在训练早期快速收敛,在训练后期通过更小的步长精细调整,避免过度拟合,从而找到损失函数的全局最优或较好的局部最优解。这可能是因为在退火阶段,模型的学习率较低,能够更精细地适应高质量数据的特点,而且避免了小数据集在长期预训练中的过度使用。通过在退火阶段混合使用高质量数据和通用数据,可以有效地提升模型在特定任务上的性能,同时避免了小数据集的过度使用问题。

2024-02-04 14:39:39 642

原创 系统架构设计师考试大纲2023

60 分钟, 最长作答时长 90 分钟, 2 个科目作答总时长 180 分钟, 考试结束前 60 分钟可交卷。科目最短作答时长 90 分钟, 最长作答时长 120 分钟, 2 个科目作答总时长 240 分钟, 考试。能够按照相关标准编写相应的设计文档;· 软件包的使用(开发工具、 运行管理工具、 业务处理工具、 ERP、 群件、 OA 工。· 软件开发模型(瀑布模型、 演化模型、 增量模型、 螺旋模型、 原型, 构件组装模。· 应用系统设计与开发(分析与设计方法的使用、 外部设计、 内部设计、 程序设计、

2024-02-01 11:47:02 1171

原创 模型相关.pt和.bin文件在PyTorch中的用途以及存储和加载方式

文件通常只保存模型的参数。在实际使用中,选择哪种格式取决于特定的需求和上下文。例如,如果需要将模型分享给其他人或部署到生产环境,文件通常是更好的选择。如果在模型开发过程中频繁更改模型结构,可能会选择。文件在PyTorch中的主要区别在于它们保存的内容和使用场景。文件可以保存完整的模型(结构和参数),而。文件来保存和加载参数。

2024-02-01 11:28:51 2428

原创 torchScript模型 和 torch 通过模型代码创建模型区别,torchScript模型转化方法和加载方法

TorchScript是PyTorch的一个子集,可以通过两种方式创建:跟踪(tracing)和脚本(scripting)。TorchScript提供了一种将PyTorch模型序列化的方法,允许它们在不依赖Python解释器的环境中运行,例如在C++程序中。TorchScript模型可以在Torch JIT(Just-In-Time)编译器中运行,这有助于优化模型的执行速度和内存使用。

2024-01-31 20:18:36 1162

原创 多模态大模型综述整理

论文:MM-LLMs: Recent Advances in MultiModal Large Language Models。

2024-01-30 14:38:39 1651

原创 pytorch模型里 safetensors 文件、bin文件和pth文件区别、加载和保存方式

在实际操作中,应确保保存和加载时使用相同的文件格式,以避免兼容性问题。此外,当涉及到跨平台或者长期存储时,使用safetensors格式可能更为安全可靠。作为文件扩展名是PyTorch社区中的一个约定俗成的做法。,重要的是保存的内容和加载时的兼容性。在PyTorch中,不论是保存为。

2024-01-30 10:21:35 7854

原创 解释LoRA参数

LoRA是一种参数效率的模型调整技术,它通过在预训练模型的权重矩阵上添加低秩矩阵来实现。这种方法允许模型在微调阶段保持大部分参数不变,从而节省存储空间和计算资源,同时允许模型适应新的任务。这意味着在训练过程中,将使用LoRA技术对模型进行适应,其中秩为128,学习率缩放因子为256。: LoRA代表"Low-Rank Adaptation",是一种模型参数化技术,用于在不显著增加参数数量的情况下调整预训练模型。这个参数影响了低秩矩阵的更新速度。参数指的是LoRA中的秩(rank),它决定了低秩矩阵的大小。

2024-01-24 14:45:50 3197

原创 大模型用model.generate 直接产生文本的id以及获得模型生成文本概率的方法

方法直接产生文本时,通常返回的是文本的 token ID 序列。为了获得每个 token 的生成概率,你需要使用模型的。是模型在softmax层之前的输出,表示模型对每个可能的下一个 token 的置信度。应用softmax函数,我们可以得到每个 token 的生成概率。当使用大型语言模型(如 GPT-2、GPT-3、BERT 等)的。应用softmax函数,可以得到概率分布。使得模型返回生成每个 token 时的。以下是一个简化的例子,展示如何在使用。

2024-01-23 17:44:42 2503 2

原创 程序员职业的不确定性与技术变革的影响

一对来自中国的工程师夫妻在美身亡,疑因谷歌裁员致悲剧发生。在技术变革下,裁员对于程序员的影响到底有多大?快来和我们分享一下你的看法吧~

2024-01-23 16:49:44 395

原创 Spark: 检查数据倾斜的方法以及解决方法总结

如果预先知道数据分布不均,可以使用自定义分区器来优化数据分布,从而避免数据倾斜。以上方法可以帮助检测和分析Spark作业中可能存在的数据倾斜问题。在发现数据倾斜后,可以采取相应的优化措施,比如调整并行度、使用广播变量、重新设计数据分区策略等,来减轻或解决数据倾斜的问题。

2024-01-11 17:24:02 1372

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

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

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

句向量学习笔记

句向量学习笔记

2017-06-09

py2exe各个版本

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

2017-01-05

TextRank4ZH

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

2016-11-17

空空如也

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

TA关注的人

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