心心喵
这个作者很懒,什么都没留下…
展开
-
[nlp] 下载huggingface代码的预训练数据时会自动kill
内存申请的16G太小,应该申请比数据大小大的内存空间,于是申请了80G。下载一份小语种训练数据时,大概有50G,自动kill。原创 2023-12-22 15:58:24 · 436 阅读 · 0 评论 -
[论文笔记] 大模型gpu机器推理测速踩坑 (llama/gpt类)
报错: RuntimeError('Expected all tensors to be on the same device, but found at least two devices, cuda:6 and cuda:0!坑2:不要用device_map="auto",不然变量不在一张卡上。就算model和输入都to(device)了,也会报错。坑1:要指定gpu,可以在import torch之前指定gpu。可以检查参数都在哪个卡,cpu/gpu。cpu没报错,换gpu就报错。原创 2023-12-13 20:00:02 · 1818 阅读 · 0 评论 -
[linux] git lfs install 安装lfs
如果报错,需要安装 apt-get。原创 2023-12-07 11:20:56 · 844 阅读 · 0 评论 -
[nlp] id2str的vocab.json转换为str2id
【代码】[nlp] id2str的vocab.json转换为str2id。原创 2023-11-29 21:26:15 · 532 阅读 · 0 评论 -
[nlp] 多语言大模型不同语种/语系数据的数据配比调节
然而,由于某些语言的数据可能比其他语言更容易获得(例如英语比哈萨克语),因此需要采取特定的策略来确保模型不会偏向于那些数据更丰富的语言。此外,需要注意的是,模型性能不仅受到数据比例的影响,还受到数据质量、模型架构、训练策略等多种因素的影响。:使用动态的数据采样策略,在训练过程中根据模型在某种语言上的表现调整该语言的数据比例。:将语言模型训练视为多任务学习问题,为每种语言设置不同的任务,并给不同的任务设置不同的损失权重。:在模型中为不同的语言引入特定的层或参数,这样可以让模型为每种语言学习到更专门的知识。原创 2023-11-28 15:06:12 · 397 阅读 · 0 评论 -
[nlp] tokenizer
Tokenization其实是为数值化作准备,数值化的过程必然需要映射,而映射又需要一个目标集合或者说映射表。原创 2023-11-28 11:23:50 · 291 阅读 · 0 评论 -
[nlp] RuntimeError: Llama is supposed to be a BPE model!报错解决
改成这个。原创 2023-11-22 21:08:31 · 180 阅读 · 0 评论 -
[nlp] grad norm先降后升再降
在深度学习中,梯度的范数通常被用来衡量模型参数的更新程度,也就是模型的学习进度。在训练初期,由于模型参数的初始值比较随机,梯度的范数可能会比较大,这是正常现象。随着模型的训练,梯度的范数通常会逐渐减小,直到收敛到一个较小的值。如果梯度的范数出现了不正常的变化,例如一直上升或一直下降,可能意味着模型存在问题,需要进行调整。例如,可以尝试调整模型的超参数,在某些情况下,梯度的范数可能会先下降,然后上升再下降,这也是正常现象。此外,还可以尝试使用不同的优化器或损失函数来训练模型,以寻找更好的训练效果。原创 2023-11-16 11:28:34 · 1451 阅读 · 0 评论 -
[nlp] 损失缩放(Loss Scaling)loss sacle
具体来说,在计算梯度时,将梯度除以一个称为“loss scale”的缩放因子,然后再进行反向传播和优化器更新。在深度学习中,由于浮点数的精度限制,当模型参数非常大时,会出现数值溢出的问题,这可能会导致模型训练不稳定。在实际使用中,我们可以将缩放因子设置为一个固定的值,例如 10121012,来避免自动计算带来的额外开销。在使用混合精度训练时,损失缩放技术可以更好地缓解舍入误差,提高模型的稳定性。总之,损失缩放是一种非常有用的技术,可以帮助深度学习模型更好地训练和收敛。原创 2023-11-16 11:02:23 · 1338 阅读 · 0 评论 -
[nlp] bash脚本划分训练集/验证集/测试集
【代码】[nlp] bash脚本划分训练集/验证集/测试集。原创 2023-10-23 16:24:10 · 60 阅读 · 0 评论 -
[nlp]apex安装报错cannot import name ‘UnencryptedCookieSessionFactoryConfig‘ from ‘‘pyramid.session‘ 报错
踩坑记录3,不能直接pip安装apex,会出问题。需要从英伟达的官网安装。原创 2023-10-12 15:58:32 · 234 阅读 · 0 评论 -
[论文笔记] chatgpt系列 2.3 DeepSpeed-chat SFT训练
deepspeed有的batch报错,怀疑是decode中的问题,是因为 utils/model_utils.py 中有 resize_token_embeddings,这个需要注释掉。indexSelectLargeIndex: block: [x,0,0], thread: [x,0,0] Assertion `srcIndex <报错。原创 2023-07-25 15:42:01 · 236 阅读 · 0 评论 -
[nlp] TF-IDF算法介绍
(2) IDF是逆向文件频率(Inverse Document Frequency)(1)TF是词频(Term Frequency)词条出现率越低,IDF越大。词频是文档中词出现的概率。原创 2023-07-30 11:34:15 · 1005 阅读 · 0 评论 -
[nlp] tokenizer加速:fast_tokenizer=True
快速的 tokenizer 通常使用一些技巧来减少 tokenization 过程中的计算量,以便更快地处理文本数据。这样可以避免在字符串中搜索和替换子字符串的操作,从而提高 tokenization 的速度。另外,快速的 tokenizer 还可以使用一些预处理技术,例如将单词转换为其基本形式(即去掉后缀或前缀),或者将多个连续的空格或标点符号合并为一个空格或标点符号。总之,快速的 tokenizer 通过使用一些优化技巧和预处理技术来减少计算量,从而提高 tokenization 的速度。原创 2023-07-25 15:41:59 · 2366 阅读 · 0 评论 -
[nlp] base64编码解码:字符串编码为字符流 加密解密
【代码】[nlp] 字符串编码为字符流。原创 2023-07-20 10:52:34 · 116 阅读 · 0 评论 -
[nlp] GPT
gpt预训练的一个目标函数有两个,第一个是基础的下一个词预测任务,选择一个K窗口,将窗口中的K个词的embedding作为条件去预测下一个词。原创 2023-07-18 14:36:32 · 1709 阅读 · 1 评论 -
[nlp] 数据并行 & 模型并行
把同一个 layer 切分到不同的gpu 上。把不同的layer 放到不同的 gpu。原创 2023-07-17 17:47:48 · 166 阅读 · 0 评论 -
[nlp] torch.load 和 torch.load_state_dict 有什么区别
是PyTorch中用于加载模型参数的两个函数,但它们有一些区别。模型、优化器状态、字典。原创 2023-07-14 16:55:31 · 1813 阅读 · 0 评论 -
[linux] bert预训练,检查emb是否参与训练
【代码】[linux] bert预训练,检查emb是否参与训练。原创 2023-06-14 11:30:24 · 80 阅读 · 0 评论 -
[nlp] pytorch测模型耗时 同步torch.cuda.synchronize()
像这样直接测时间是错的!在pytorch里面,程序的执行都是。原创 2023-06-12 22:12:30 · 424 阅读 · 0 评论 -
[nlp] OPT与GPT-2的差异
Meta AI 开源1750亿参数大模型- OPT,FlagAI一键调用!- 知乎简介Meta AI 开源 OPT系列模型,其中最大模型1750 亿参数(需申请访问权限)媲美 GPT-3。OPT系列模型包括了多组不同参数规模的模型权重,如图: OPT开源了一系列大模型,但是实际调用这些模型有很高的技术门槛。为…原创 2023-06-12 14:25:43 · 766 阅读 · 0 评论 -
[pytorch] pytorch lr scheduler汇总
num_training_steps:整个训练过程的总步数。num_warmup_steps:初始预热步数。optimizer: 优化器。原创 2022-12-19 22:38:17 · 383 阅读 · 0 评论 -
[nlp] 对抗学习 FGM, PGD到FreeLB
本文针对自然语言中的对抗学习,针对攻击的“一阶扰动”场景,总结了最近的工作进展,涉及到的知识包括:基本单步算法FGM,“一阶扰动”最强多步算法PGD,以及针对时耗等改进的FreeAT,YOPO和FreeLB,其中FreeLB成为了目前刷榜的SOA。对抗学习最初在生成模型中应用,比如GAN,能够生成以假乱真的图像等;其中的关键技术在于如果构造扰动,使得模型在不同的攻击样本中均能够具备较强的识别性。❤️【PGD 如何构造隐式对抗样本:增量扰动embedding,且增量规范到半径为r的圆内,累加k次扰动】原创 2022-11-13 18:39:10 · 790 阅读 · 0 评论 -
[nlp] Bert 冻结参数,打开训练emb
或者在 model.named_parameters() 中冻结一部分。调用 hugging face 的预训练模型FT时是。原创 2022-11-14 00:36:51 · 288 阅读 · 0 评论 -
[nlp] 索引:正向索引&倒排索引
倒排索引:key是关键词,value是网页正向索引。原创 2022-11-04 01:58:03 · 346 阅读 · 0 评论 -
[nlp] SimCSE 对比学习
【单塔】利用同一输入每次过dropout后生成不同embedding的特性,完美规避了传统文本增强方法伴随的语义漂移问题,同一文本dropout两次得到正样本(的embedding),batch中其他文本dropout两次为负样本样本优化样本增强。【双塔】启发于神经网络中的防过拟合技术——Dropout。我们知道,Dropout是在神经网络中随机关闭掉一些神经元的连接,那么关闭的神经元不一样,模型最终的输出也就不一样。因此,作者在这里通过,而同一个batch中的其他embedding就变为了负例。原创 2022-11-03 12:13:20 · 580 阅读 · 0 评论 -
[nlp] GPT & T5
出现在Bert之前,gpt预训练的一个目标函数有两个,第一个是基础的,选择一个K窗口,将窗口中的K个词的embedding作为条件去预测下一个词。第二个是一个,一段话给一个标签,然后去预测这标签。原创 2022-10-25 14:25:58 · 355 阅读 · 0 评论 -
[nlp] roberta
输入只有一部分(而不是两部分),输入的构造类似于FULL-SENTENCES,只是不需要跨越文档边界,其输入来自同一个文档的连续句子,token 总数不超过 512。原始静态mask:BERT中是准备训练数据时,每个样本只会进行一次随机mask(因此每个epoch都是重复),后续的每个训练步都采用相同的mask,这是原始静态mask,即单个静态mask,这是原始 BERT 的做法。动态mask:并没有在预处理的时候执行 mask,而是在每次向模型提供输入时动态生成 mask,所以是时刻变化的。原创 2022-10-25 14:07:13 · 580 阅读 · 0 评论 -
[nlp] 自回归语言模型AR 自编码语言模型AE的区别: XLNET和Bert :Permutation Language Model
总结:XLNet由于bert在pretrain和finetune之间会形成脱节(信息损失),而引入了XLnet模型,这个模型可以克服掉pretrain和finetune之间的不能有效搭配的问题,xlnet采用自回归模型(AR)和自编码模型(AE),其中自编码模型是采用tranformer-xl编码层的方法,通过对应embeding之间的id采用的方式,把输入的所有之间的信息联系起来,通过。这种方法更加预测准确。由于只能限制到的文本之间的关系,如果文本长度不固定,不能很好的表示之间的联系。原创 2022-10-24 16:47:11 · 500 阅读 · 0 评论 -
[nlp] 条件随机场CRF 以及 源码分析
总结:CRF层考虑输出序列标签之间的上下文关联,损失函数是真实路径的打分/所有路径的打分和。假设打分是指数分布,是打分函数的指数。打分函数是可加性的。打分函数是可加性的。t位置序列的分数,经过两步计算。第一步是++。得到 t 位置的(num_label * num_label)的矩阵。对应从当前 t 位置的 i_label 转移到 j_label 的 (num_label * num_label)种可能性。第二步是。作为下一次dp的分数。在训练时,self.crf 返回损失。原创 2022-10-24 13:50:02 · 333 阅读 · 0 评论 -
[linux] ValueError: Custom>TFBertMainLayer has already been registered to <class ‘transformers.model
transformers报错:原创 2022-10-07 19:41:25 · 190 阅读 · 0 评论 -
[nlp] JointBert FocalLoss
【代码】[nlp] JointBert FocalLoss。原创 2022-09-30 14:19:06 · 113 阅读 · 0 评论 -
[nlp] 自然语言理解基准 ATIS Snips
ATIS 4k 21 Intents(not include UNK) 120 SlotsSNIPS 13k 7 Intents(not include UNK) 72 SlotsATIS Benchmark (Intent Detection) | Papers With CodeSNIPS Benchmark (Intent Detection) | Papers With Code原创 2022-09-25 16:04:37 · 341 阅读 · 0 评论 -
[nlp] 负采样 & nce_loss
论文:http://demo.clab.cs.cmu.edu/cdyer/nce_notes.pdf????原创 2021-11-05 21:47:21 · 1521 阅读 · 0 评论 -
[算法导论] topK中 快排选择的时间复杂度为o(n)的证明
topK中 快排选择的时间复杂度为o(n)的证明。原创 2022-09-09 18:35:47 · 293 阅读 · 0 评论 -
[nlp] pointwise,pairwise,listwise
虽然pointwise广泛应用但是,但是不接近真实的排序。pairwise和listwise应用了基于候选句子排序的事实。Bian 证明在 TrecQA 和 WikiQA数据集中 listwise 优于 pointwise。原创 2022-08-29 16:11:40 · 418 阅读 · 0 评论 -
[nlp] 车载语音助手
拒识的作用:在智能语音开启过程中,即便有其他人插话和交谈,nomi同学能够“聪明”地识别到哪些是需要执行的指令,哪些是车内的交谈内容。,接受ASR的文本输出作为输入,并给出相应的对话结果,包括TTS文本,要车机进行的操作,车机用来屏显的内容。(功能:一段对话中,删除无效文本;,可以接受用户发起的语音对话的音频输入,并给出识别的文本输出。,要实现用户query的搜索结果展现,以及主动推送的功能。(用户query是否需要二次确认,如果需要二次确认,)给出多意图和多槽位的分类。原创 2022-08-21 13:29:21 · 1350 阅读 · 0 评论 -
[nlp] 主动学习
这可能是最简单的方法。对于每个数据点的选择概率的最大值,并将其从小到大进行排序。使用最小置信度进行优先排序的实际表达式为:原创 2022-07-04 22:59:12 · 373 阅读 · 0 评论 -
[nlp] Transformer & bert base & bert large 参数对比
bert中最大处理序列长度超过512的处理策略_lbertj的博客-CSDN博客_bert长度限制num_encoder_layers=6,num_decoder_layers=6,H(隐藏层维度)=512, A(Attention 多头个数)=8,dim_feedforward 是 d_model 的 4倍。 是512*4=2048。序列输入的最大长度:512 (其中还需要包括[CLS]和[SEP])L(网络层数)=12,H(隐藏层维度)=768,A(Attention 多头个数)=12,Total原创 2022-06-20 17:43:16 · 1178 阅读 · 0 评论 -
[nlp] 抽取式摘要&生成式摘要&抽取生成式摘要
文本摘要简述 | 机器之心传统 的抽取式摘要方法使用 图方法、聚类 等方式完成无监督摘要。基于神经网络的抽取式摘要往往将问题建模为 序列标注 和 句子排序 两类任务。一般来说,作者常常会在标题和文章开始就表明主题,因此最简单的方法就是抽取文章中的前几句作为摘要。常用的方法为 Lead-3,即抽取文章的前三句作为文章的摘要。Lead-3 方法虽然简单直接,但却是非常有效的方法。TextRank 算法仿照 PageRank,将 句子 作为节点,使用句子间相似度,构造 无向有权边。使用边上的权值迭代更新节点值,最原创 2022-06-20 09:20:05 · 1636 阅读 · 0 评论