- 博客(51)
- 收藏
- 关注
原创 LLM-pruner源码解析
这段代码可以不用看直接看对q,k,v重新排序,这里自己写的加载类和transformers自带的没有区别,猜测应该是大佬防止模块名不一致,自己又重新写了一遍下面套的类比较多这里为了区别,运行到哪一类提前说一下是继承顺序BloomForCausallm类先继承BloomPreTrainedModel类BloomPreTrainedModel类继承PreTrainedModel类实例化BloomModel类,获取模型结构并初始化权重。
2024-11-27 23:51:33
1015
原创 LLM-Pruner: On the Structural Pruningof Large Language Models
大型语言模型(llm)在语言理解和生成方面表现出了显著的能力。然而,这种令人印象深刻的能力通常伴随着相当大的模型大小,这在部署、推理和训练阶段都提出了重大的挑战。由于LLM是一个通用任务求解器,我们以任务不可知的方式探索其压缩,旨在保留原始LLM的多任务求解和语言生成能力。实现这一目标的一个挑战是LLM的训练语料库的巨大规模,这使得数据传输和模型后训练都过于繁重。任务无关性和对原始训练数据集的依赖最小化。我们的方法被命名为LLM- pruner,采用基于梯度信息选择性去除非关键耦合结构的结构性剪枝。
2024-11-22 00:17:42
967
原创 hf_transformers
3. 默认情况下,除非在GenerationConfig文件中指定,否则generate会在每个迭代中选择最可能的token(贪婪解码)。对于您的任务,这可能是不理想的;另一方面,像音频转录或翻译这样的基于输入的任务受益于贪婪解码。因为其使用了 Rust 实现,这种分词器类型的速度要快得多,尤其是在批量分词(batch tokenization)的时候。问答头(question answering head)与序列分类头类似,不同点在于它是隐藏状态输出之上的线性层。继续训练,因此您的输入需要左填充。
2024-11-06 22:56:50
896
原创 PEFT原理及代码
训练大型预训练语言模型非常耗时且计算密集。随着模型规模的不断扩大,研究者们越来越关注更有效的训练方法,如提示(Prompt)。提示通过在输入中添加描述任务的文本提示,甚至通过提供任务示例,来为特定下游任务准备冻结的预训练模型。通过使用提示,您可以避免为每个下游任务训练一个单独的模型,而是通过同一个冻结的预训练模型来完成多个任务。这比为每个任务训练一个单独的模型要高效得多,因为您只需要训练和存储一个较小的提示参数集,而不是训练整个模型的参数。
2024-11-06 18:29:10
920
原创 hf_transformers-Quantization
是将模型量化为 8 位和 4 位的最简单选项。8 位量化将 FP16 中的异常值与 INT8 中的非异常值相乘,将非异常值转换回 FP16,然后将它们相加以返回 FP16 中的权重。这减少了离群值对模型性能的降级影响。4 位量化进一步压缩模型,通常与一起使用以微调量化的 LLM。要使用 bitsandbytes,请确保您已安装以下库8bit:4bit:bitsandbytes 正在被重构以支持 CUDA 之外的多个后端。
2024-10-28 18:05:52
883
原创 hf_transformers——chat tempates
您可能注意到,方法有一个参数。这个参数告诉模板添加指示机器人响应开始的标记。Hi there!<|im_end|><|im_end|><|im_end|>"""多了系统开始的标记"""获取指定地点的当前温度。
2024-10-25 21:13:39
863
原创 transformers不指定版本能装上,指定版本transformers==4.15.0装不上
原本3.12换成3.9就装上了。python版本不对。
2024-10-14 17:02:52
279
原创 windows安装deepspeed setup.py 207行找不到文件
去看了一下源码,需要安装git,我没有安装。一直报莫名奇妙的错误,查了半天也没查到。git命令获得信息也没啥用。
2024-10-12 16:30:06
414
原创 lit-llama代码解析
https://github.com/Lightning-AI/lit-llama/blob/main/README.md
2024-09-03 21:09:52
1036
原创 Training language models to follow instructionswith human feedback
我们在图2中展示了这一过程。这个过程。
2024-08-30 17:15:09
1860
原创 Language Models are Few-Shot Learners
最近的研究表明,通过在大量文本语料上进行预训练,然后在特定任务上进行微调,可以在许多自然语言处理任务和基准测试中取得显著进展。尽管这种方法在架构上通常是任务无关的,但它仍然需要特定任务的微调数据集,通常包含数千到数万个示例。相比之下,人类可以通常仅凭几个示例或简单的指令就能完成新的语言任务,而当前的自然语言处理系统在这方面仍然存在较大的困难。在这里,我们展示了扩大语言模型规模可以大大提升任务无关的少量示例表现,有时甚至能与之前最先进的微调方法相媲美。具体而言,我们训练了GPT-3,这是一个拥有。
2024-08-30 15:00:30
1236
原创 Language Models are Unsupervised Multitask Learners
机器学习系统现在通过结合使用大型数据集、高容量模型和监督学习(Krizhevsky et al., 2012) (Sutskever et al., 2014) (Amodei et al., 2016),在训练任务上表现出色(预期)。然而,这些系统很脆弱,对数据分布(Recht等人,2018)和任务规范(Kirkpatrick等人,2017)的微小变化很敏感。目前的系统更倾向于由狭隘的专家组成,而不是有能力的通才。
2024-08-29 17:44:42
1232
原创 Improving Language Understandingby Generative Pre-Training
在自然语言处理(NLP)中,从原始文本中有效学习的能力对于减轻对监督学习的依赖至关重要。大多数深度学习方法需要大量的人工标记数据,这限制了它们在许多缺乏注释资源的领域的适用性[61]。在这些情况下,可以利用未标记数据中的语言信息的模型为既耗时又昂贵收集更多注释提供了有价值的替代方法。此外,即使在有大量监督的情况下,以无监督的方式学习良好的表示也可以显著提高性能。到目前为止,最令人信服的证据是广泛使用预训练词嵌入[10,39,42]来提高一系列NLP任务的性能[8,11,26,45]。
2024-08-28 18:21:26
1133
原创 BERT:Pre-training of Deep Bidirectional Transformers forLanguage Understanding
语言模型预训练已被证明对改善许多自然语言处理任务是有效的(Dai and Le, 2015;其中包括句子级任务,如自然语言推理(Bowman et al., 2015;Williams等人,2018)和释义(Dolan和Brockett, 2005),其目的是通过整体分析来预测句子之间的关系,以及分词级任务,如命名实体识别和问答,其中需要模型在分词级别产生细粒度输出(Tjong Kim Sang和De Meulder, 2003;将预训练的语言表示应用于下游任务有两种现有策略:基于特征和微调。
2024-08-26 20:56:56
2268
原创 Attention Is All You Need
递归神经网络,特别是长短期记忆[12]和门控递归神经网络[7],已经被牢固地确立为序列建模和转导问题(如语言建模和机器翻译)的最新方法[29,2,5]。从那以后,大量的努力继续推动循环语言模型和编码器-解码器架构的边界[31,21,13]。循环模型通常沿输入和输出序列的符号位置进行因子计算。将位置与计算时间中的步骤对齐,根据前一个隐藏状态ht−1和位置t的输入的函数生成一个隐藏状态序列ht。这种固有的顺序性排除了训练示例中的并行化,这在较长的序列长度下变得至关重要,因为内存约束限制了跨示例的批处理。
2024-08-26 18:07:04
748
原创 Long Short-Term Memory
递归神经网络的一个重要优点是它们在映射输入和输出序列时使用上下文信息的能力。不幸的是,对于标准的RNN体系结构,实际可以访问的上下文范围非常有限。问题是,给定输入对隐藏层的影响,以及对网络输出的影响,在围绕网络的循环连接循环时,要么衰减,要么呈指数增长。这种效应在文献中通常被称为梯度消失问题(Hochreiter, 1991;梯度消失问题如图4.1所示图4.1 rnn的梯度消失问题。未展开网络中节点的阴影表示它们在时刻1时对输入的灵敏度(阴影越深,灵敏度越高)。
2024-08-25 23:16:51
887
原创 A Neural Probabilistic Language Model
使语言建模和其他学习问题变得困难的一个基本问题是维度的诅咒。当想要对许多离散随机变量(例如句子中的单词或数据挖掘任务中的离散属性)之间的联合分布进行建模时,这一点尤为明显。例如,如果想要对一种自然语言中10个连续单词的联合分布进行建模,其词汇表V的大小为100,000,则可能存在100000^10 - 1 = 10^50 - 1个自由参数。根据给定的前t−1个词,Wt是第t个单词,子序列为在构建自然语言的统计模型时,可以通过利用词序来降低难度,而事实上,在单词序列中时间上更接近的单词在统计上更依赖。
2024-08-25 20:39:52
1259
原创 LayoutLMv2:视觉丰富文档理解的多模态预训练
Zhang等人,2020)。因此,为了准确地识别感兴趣的文本字段,不可避免地要利用视觉丰富文档的跨模态特性,在单个框架中,文本、视觉和布局信息应该被端到端地联合建模和学习。为简单起见,下面的描述是针对单个自关注层中的单个头部,头部的大小为隐藏,投影矩阵为WQ, WK, WV。文本和布局的预训练由于其有效的模型架构和大规模未标记扫描/数字出生文档的优势,在各种视觉丰富的文档理解任务中被证明是有效的。在本文中,我们提出了LayoutLM的改进版本(Xu et al., 2020),即LayoutLMv2。
2024-07-12 01:08:06
740
原创 LayoutLMv1
近年来,预训练技术在各种NLP任务中得到了成功的验证。尽管NLP应用程序广泛使用预训练模型,但它们几乎只关注文本级操作,而忽略了对文档图像理解至关重要的布局和样式信息。在本文中,我们提出了LayoutLM来联合建模文本和布局信息在扫描文档图像之间的交互,这有利于大量的现实世界的文档图像理解任务,如从扫描文档中提取信息。此外,我们还利用图像特征将单词的视觉信息合并到LayoutLM中。据我们所知,这是第一次在文档级预训练的单一框架中共同学习文本和布局。它在几个下游任务中实现了新的最先进的结果,包括表单理解(从
2024-07-12 00:36:40
552
原创 Docker
(若CMD为部分命令,可以和ENTRYPOINT中的命令补充为完整命令。若CMD为完整命令,则和ENTRYPOINT中的命令相互补充,ENTRYPOINT和CMD补充后都为中都为完整命令)(每运行一层RUN,就创建一层镜像,用&&符号在一个RUN中运行多个命令如:修改为:退出:按Esc键退出,按:(冒号),w(保存文件)q(退出文件)
2024-06-06 10:42:51
1401
5
原创 美国专利短语相似度大赛
【取消了bert的80%[MASK],10%unchange, 10%random replaced的操作,bert如此做是为了缓解预训练与微调时的不匹配,而在electra中没必要,因为electra在finetuning时使用的是其discriminator部分,所以不存在不匹配的现象】generator和discriminator之间存在weight共享,但是并不是所有的参数都共享,如果是这样的话,那需要两者的size一样,所以模型只共享了generator的embedding 权重。
2024-06-04 10:17:17
364
原创 An introduction to Deep Learning in Natural Language Processing:Models, techniques, and tools
NLP综述
2024-01-06 21:44:47
515
原创 pytorch基础(七)-学习率
optimizer:关联的优化器,改动优化器内的学习率last_epoch:以epoch为周期,记录epoch数base_lrs:记录初始学习率milestones = [50, 125, 160]scheduler_lr = optim.lr_scheduler.MultiStepLR(optimizer, milesto
2024-01-03 20:27:39
647
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人