自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lisen’s blog

NLP菜鸟之路

  • 博客(79)
  • 资源 (45)
  • 收藏
  • 关注

原创 论文笔记 - 《Implementing block-sparse matrix multiplication kernels using Triton》

本文提出利用Triton DSL重构MegaBlocks系统中块稀疏矩阵乘法内核的方法,解决了原有CUDA实现存在的通用性不足和维护困难问题。研究者通过设计混合CSR-COO稀疏格式存储方案,结合Triton的高层抽象编程模型,实现了与手工优化CUDA内核相当的运算性能(吞吐量0.96-1.1倍),同时代码量减少10倍至298行。该方法突破了原始实现固定128x128块大小和fp16数据类型的限制,支持多种硬件架构和参数配置,为混合专家模型的研究和部署提供了更灵活高效的实现方案。实验表明,Triton在保持

2025-06-11 13:46:34 907 1

原创 论文笔记 -《MegaBlocks- Efficient Sparse Training with Mixture-of-Experts》

摘要:MegaBlocks提出了一种高效的稀疏MoE训练框架,解决了传统方法因动态路由和负载不均衡带来的硬件适配问题。通过将专家计算重塑为块稀疏矩阵运算,并设计混合CSR-COO编码与转置索引机制,实现了既不丢弃Token又高效计算的突破。实验表明,相比现有方案(Tutel),MegaBlocks在8张A100上达到相同模型质量时,训练速度提升1.18-4.35倍,主要归功于优化的显存利用率和更大的batch size支持。该研究为稀疏模型的高效训练提供了新的技术路径。

2025-06-11 13:39:02 1002 1

原创 重新安装解决mac vscode点击不能跳转问题

本文介绍了彻底卸载并重新安装VSCode的方法:先删除程序及其缓存文件夹(位于/Users/xxx/Library/Application Support/Code),重新安装后项目内文件跳转功能即可恢复。针对Python环境问题,建议先安装Python,通过Ctrl+Shift+P调出命令面板执行"Python: Restart Language Server"并选择Python路径,即可实现第三方包的跳转功能,未安装的包会被标记出来。

2025-05-27 13:46:01 1639

原创 论文笔记 -《Adaptive Layer-skipping in Pre-trained LLMs》

文章摘要: 本研究提出FlexiDepth,一种针对预训练LLM的动态层跳过方法,旨在提升计算效率。通过分析发现不同token生成的计算需求存在显著差异,如重复token所需计算较少。FlexiDepth采用即插即用架构,在保持原始参数冻结的情况下,通过轻量级路由器和适配器动态决定是否跳过各层。关键创新包括:(1) 保留KV缓存以维护自回归完整性;(2) 适配器缓解FFN跳过的表征不匹配;(3) 平衡生成质量和计算效率的损失函数。实验表明,在Llama-3-8B上可跳过25%层数(8/32层)而不损失性能,

2025-04-17 14:30:21 994 1

原创 论文笔记 -《ULTRA-SPARSE MEMORY NETWORK》

本文提出Ultra-Mem架构,解决当前MOE模型内存访问成本高、推理速度慢的问题。与同参数MOE模型相比,Ultra-Mem验证损失更低,推理速度提升1.7-6倍;与4倍激活参数的密集模型相比,验证损失更低且速度仅稍慢。核心改进包括:采用共享查询机制、引入Tucker分解优化检索(TDQKR)、value维度减半数量加倍并分块、动态调整学习率等技巧。实验表明,该方法显著降低内存访问瓶颈,在151M至1.6B参数规模下均保持优异性能。消融实验显示,维度减半+投影和value学习率衰减对效果提升贡献最大。该架

2025-03-12 17:00:01 963 1

原创 (真实有效)NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

2024-07-19 15:30:33 362

原创 conda多个环境下,怎么让jupyter在某个环境下运行?

我现在遇到一个问题,我在linux上装了2个环境,分别为pax和max,然后我在max上启动jupyter notebook,但是呢,我发现访问的orbax包还是pax上的版本。确保在启动 Jupyter Notebook 时,使用的 Python 环境是你在 max 环境中安装的 Python。在 max 环境中安装 Jupyter Notebook 的内核,然后在启动的 Notebook 中选择对应的内核。你可以在激活 max 环境后,直接使用该环境的 Jupyter Notebook。

2024-07-03 11:00:18 517

原创 矩阵混乱度(熵值)代码计算

极端混乱度,熵值最大。最大值为log_2(dim),实例的dim为4,索引log_2(4) = 2。极端混乱度,熵值最小,最小值跟矩阵的维度无关,基本都为0。增加混乱度,熵值减小。

2024-04-19 14:13:59 1090

原创 将tmux窗口中的内容导出至文件中

【代码】将tmux窗口中的内容导出至文件中。

2024-01-09 14:32:05 2657

原创 vim批量多行缩进调整

vim多行缩进调整

2023-11-14 13:30:24 3602 1

转载 np.memmap的用法

内存映像文件是一种将磁盘上的非常大的二进制数据文件当做内存中的数组进行处理的方式。NumPy实现了一个类似于ndarray的memmap对象,它允许将大文件分成小段进行读写,而不是一次性将整个数组读入内存。memmap也拥有跟普通数组一样的方法,因此,基本上只要是能用于ndarray的算法就也能用于memmap。使用此子类的另一种方法是自己创建mmap 对象,然后直接使用ndarray .__ new__创建一个ndarray,传递在其’buffer ='参数中创建的对象。磁盘上的文件是只读的。

2023-10-31 17:15:49 991

转载 解决jupyter notebook启动需要密码问题终极办法

在终端中输入“jupyter notebook --generate-config”,会生成一个新的py文件用于config,可以看到输入命令以后会有一个路径指示新生成的py文件,我们根据这个路径找到这个文件。对于这种情况,只需要打开另一个终端(cmd),然后按照图中的输入“jupyter notebook list” ,然后就会看到所需要的token,使用token替代密码登录进去即可。这种情况需要换一个命令,同样开启一个新的终端,并输入“jupyter notebook password”来修改密码。

2023-10-09 11:38:27 5393 5

原创 在本地仓库新增远程已有分支并同步远程分支的代码

本地新增远程分支

2023-02-16 16:39:22 589

原创 Facebook的ZeRO算法原理及简单代码实验(小显卡训大模型)

ZeRO算法将显存优化到底

2022-08-09 15:20:06 3749 2

原创 git创建远程仓库并将本地和远程仓库关联

1、在github创建新项目假设地址为:git@github.com:zhangsan/AI.git2、初始化本地仓库并和远程仓库进行关联在本地需要上传的文件夹下执行git config --global init.defaultBranch mastergit initgit remote add origin git@github.com:zhangsan/AI.git3、提交本地文件至远程ps: 这里需要注意,如果在1创建项目时,建了readme或者.gitignore文件,那么需要

2022-04-29 14:38:30 1960

原创 git在已有分支上创建新分支

1、基于已有分支在本地创建新分支git checkout -b yourbranchname origin/oldbranchname2、将新分支推送至远程仓库git push origin yourbranchname

2022-04-07 16:18:00 3349

原创 论文笔记 -《Relation Memory Argument Language Model》

本文提出了一种基于关系三元组增强的语言模型RelationLM,通过动态检索实体关系来提升生成效果。模型采用OpenIE方法提取实体关系,建立记忆模块存储关系三元组,并通过门控机制融合上下文和关系信息。实验表明,RelationLM在WikiText-103等数据集上显著降低了实体词的困惑度,同时提高了生成文本的逻辑性和知识性。分析显示,合理设置记忆长度和采用动态检索策略可优化性能,尽管会带来1.5-2倍的推理速度下降。该模型特别适用于需要丰富实体知识的文本生成任务。

2022-03-21 10:43:21 1220 1

原创 论文笔记 -《GNN-LM: LANGUAGE MODELING BASED ON GLOBAL CONTEXTS VIA GNN》

Openreview:三位评委得分分别为6, 8, 10,单项满分8分:方法独特,对语言模型有很大的改进,取得sofa。但有些实验做的不够,比如选择的token数量;10分:非常好,ppl显著降低,利用外部知识促进语言模型,方法独特;6分:只比较WikiText-103数据,其他两个数据集没比较,实验很多细节没有公布,复现性差。先看个例子:GNN构造:首先对训练集所有token的隐层向量进行缓存节点:2种类型节点,当前上下文的token和从外部检索得到的token边:2种类型

2022-03-11 18:00:34 1797 1

原创 pytorch分布式训练,支持单机多卡,多机多卡

参考:https://zhuanlan.zhihu.com/p/373395654本人手撸简单的GitHub项目地址:https://github.com/Lisennlp/distributed_train_pytorch

2021-07-01 16:19:24 727

原创 apex和pytorch autocast混合精度训练速度和时间对比

众所周知,自从pytorch更新1.6版本之后,就引入了自家的混合精度训练模式(下面统称autocast),这种方法简单,只需要添加几行代码即可实现,可以说是pytorch爱好者的福音。autocast在面对主流的apex时,是完爆还是被吊打呢,请看下面分析:模型架构:Transformer-xl环境:python3.6.9 、torch1.7.1、cuda==10.11、即不用apex,也不用autocastbatch size = 1占用内存:7561M,每个batch的时间为285

2021-06-23 19:04:12 1892 8

原创 linux shell 遍历某个文件所有行或文件夹所有文件

遍历文件所有行#!/usr/bin/env bash# IFS指定换行符号,不然遇到空白符就会换行,是个坑IFS=$'\n'. for line in `cat file_list/train_file_list.txt`;do echo 处理文件: $line python main.py $linedone遍历文件所有行#!/usr/bin/env bashIFS=$'\n'. for file in `ls file_list/`;do echo 处理文件: $

2021-05-21 14:21:18 1103

原创 论文笔记 -《All NLP Tasks Are Generation Tasks: A General Pre-training Framework》

1、摘要  随着NLP技术的发展,越来越多的新的预训练架构不断刷榜,包括自回归模型(例如GPT)、自动编码模型(例如 BERT)和编码器-解码器模型(例如 T5)。自然语言处理任务在本质可以分为分类、无条件生成和条件生成。但是,目前没有一个预训练框架能够很好地完成所有任务。而在本文中,提出了一种通用语言模型(General Language Model,GLM)来解决这个问题。GLM模型结构有三个主要优点: (1)用一个模型就能在它分类、无条件生成和条件生成任务上表现良好; (2)改进了预训练-微调一致性

2021-04-18 16:57:02 1066

原创 论文笔记 -《ERNIE-DOC: The Retrospective Long-Document Modeling Transformer》

1、摘要Transformer不适合处理长文件输入,因为,随着文本长度的增加,消耗的内存和时间是N2的指数级增加。也有很多学者,通过截断一个长文档或应用稀疏注意机制,在一定程度上可以解决上下文碎片问题,但起到的作用有限。在这篇文章中,作者提出了一个预训练语言模型 ERNIE-DOC,是一个基于Recurrence Transformers(Dai et al., 2019) 的文档级语言预训练模型。本模型用了两种技术:回溯式feed机制和增强的循环机制,使模型 具有更长的有效上下文长度,以获取整个文档的

2021-03-14 12:03:23 4552 1

原创 论文笔记 -《Segatron: Segment-Aware Transformer for Language Modeling and Understanding》

1、摘要Transformer对于序列建模是非常强大的。几乎所有最先进的语言模型和预先训练的语言模型都基于 Transformer 体系结构。然而,它仅仅使用标记位置索引区分顺序标记。论文中作者提出一个假设:更好的上下文表示是不是可以从Transformer中产生更丰富的位置信息?为了验证这一点,作者提出了一种分段感知(Segatron)Transformer,将原来的Token位置编码替换为对应段落、句子和Token的联合位置编码。本文首先在 Transformer-XL 中引入了Segatron-aw

2021-03-09 17:31:03 416

原创 linux下删除含有非法名字的文件

有时候莫名其妙的在linux系统上写入了某个含有非法字符的文件,以至于使用mv,rm等命令都无效,甚是烦扰解决首先利用 ls -i 查找IDfind ./ -inum ID号 -exec rm ‘{}’ ;

2020-12-24 15:20:34 860

原创 pandas赋值失败问题解决

pandas对整列赋值这个比较正常,一般直接赋值就可以:x = pd.DataFrame({'A': ['1', '2', '3', None, None], 'B': ['4', '5', '6', '7', None]})x['A'] = ['10', '11', '12', '13', '14']pandas对非整列赋值1、用单个值赋值x = pd.DataFrame({'A': ['1', '2', '3', None, None],

2020-11-27 11:48:51 6373 4

原创 git强制pull远程仓库代码,覆盖本地代码

git fetch --allgit reset --hard origin/mastergit pull

2020-11-16 14:53:34 2190

原创 mac忘记mysql密码怎么办

1、关闭mysql服务老版本: sudo /usr/local/mysql/support-files/mysql.server stopmac新版本:sudo /usr/local/bin/mysql.server stop或者系统偏好里有个 MySQL 里关闭2、进入mysql各种执行文件的 目录新版本: cd /usr/local/mysql/bin老版本: cd /usr/local/bin3、获取权限sudo su4、重启服务器./mysqld_safe -

2020-11-09 10:16:34 9182 2

转载 Git项目迁移

Git项目迁移目的: 需要将gitlab.xxx.com地址的项目库迁移到gitlab.xxxx.cn地址库里面;实现方式 (都在一个文件夹中操作)1.将代码从之前的仓库中拉下来git clone http://xxxx.git (http://xxxx.git为要转移的代码库地址)拉取分支信息git branch -aimage.png3.拉目标分支git checkout -b dev origin/dev (dev是分支名称)4.更改本地gitlab地址为新的gitlab地址gi

2020-11-02 16:45:25 438

原创 使用frp配置内网访问(穿透)教程(超详细,简单)

1 Frp介绍frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。frp 项目官网是 https://github.com/fatedier/frp,frp工作原理服务端运行,监听一个主端口,等待客户端的连接;客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;服务端fork新的进程监听客户端指定的端口;外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;客户端进程再将数据转发到本地服务,

2020-10-24 18:15:58 249752 85

原创 python多线程、多进程处理单个(大,超大)文件

1 多进程import osfrom multiprocessing import Pooldef safe_readline(f): pos = f.tell() while True: try: return f.readline() except UnicodeDecodeError: pos -= 1 f.seek(pos)

2020-10-14 14:12:16 5555 5

原创 手动分开计算交叉熵每个位置的loss值

交叉熵loss函数交叉熵损失函数最后得到的是所有位置的平均loss,如果我们想要知道每个位置的loss多少,可以分开计算,如下例子所示:import torchfn = torch.nn.CrossEntropyLoss()logits = torch.tensor([[0.7595, 0.3526, 0.0479, 0.6684], [0.5149, 0.4248, 0.5377, 0.9349], [0.0801, 0.2237, 0.2990, 0.3178]

2020-10-13 17:52:01 718

原创 python操作Excel和Docx并控制文字的颜色及其他样式(通俗易懂)

1、Excelfrom xlsxwriter.workbook import Workbookworkbook = Workbook(r'test.xlsx') # 创建xlsxworksheet = workbook.add_worksheet('A') # 添加sheetred = workbook.add_format({'color':'red'}) # 颜色对象worksheet.write(0, 0, 'sentences') # 0,0表示row,column,sen

2020-09-29 18:38:19 2281 2

原创 论文笔记 -《Revisiting Few-sample BERT Fine-tuning》

1、摘要  这篇论文主要研究了数据集上如何有效地使用 BERT finetune问题,首先,论文提到在BERTADAM 优化器中遗漏了梯度偏差校正,不利于模型的finetune,尤其是在小数据集上,训练初期,模型会持续震荡,进而会降低整个训练过程的效率,减慢收敛的速度,导致微调不稳定性。其次,BERT 网络的某些部分为微调提供了一个不利的训练起点,并且通过简单地重新初始化这些层可以加速学习并提高性能。最后,提到了训练时间的影响,并观察到常用的方法往往没有分配足够的时间进行训练,就是没有训练完全,需要增大训

2020-09-27 15:55:42 1383

原创 git本地创建新分支与远程仓库关联以及拉取新的远程分支

一、查看分支a、git branch 查看本地所有分支b、git branch -a 查看远程所有分支二、创建本地创建分支并切换到该分支git checkout -b 新分支名创建分支,但不切换git branch 新分支名三、将二中创建的分支关联远程仓库git push --set-upstream origin 分支名四、从远程仓库拉取本地不存在的分支git checkout -b 本地分支名 origin/远程分支名如果出现报错,则先执行git fetch,在执行

2020-09-21 17:09:38 2689

原创 论文笔记 -《Self-Attention Attribution: Interpreting Information Interactions Inside Transformer》

1、摘要  基于 transformer 的模型的巨大成功得益于强大的多头自我注意机制,该机制从输入中学习token依赖并编码语境信息。先前的工作主要致力于针对具有不同显著性度量的单个输入特性的贡献模型决策,但是他们没有解释这些输入特性如何相互作用以达到预测。这篇论文就提出了一种用于解释Transformer内部信息交互的自注意属性算法ATTATTR。文章以 BERT 模型为例进行了以下实验:  (1)提取各层最显著的依赖关系,构造属性图,揭示Transformer内部的层次交互;  (2)用自我注意

2020-08-27 16:07:19 2204 3

原创 git提交中文名文件的终端显示乱码问题

git config --global core.quotepath false

2020-08-17 14:28:11 797

原创 论文笔记 -《Dense Passage Retrieval for Open-Domain Question Answering》

1、摘要  开放域问题回答依赖于高效的文本检索来选择候选段落,传统的稀疏向量空间模型用的较多的有TF-IDF 或 BM25算法,但这些算法仅仅是在词的匹配上进行检索,并未考虑语义的相关性,有很大的局限性。因此,论文提出了一种新的算法来检索候选段落,称之为:DPR算法。DPR算法在 top-20段落文本检索准确率方面比 Lucene-BM25系统高出9%-19% ,这非常有利于后续的QA任务的性能表现。2、解决问题  提高QA领域中问题段落检索准确性3、Dense Passage Retriever

2020-07-19 19:44:05 8658

原创 numpy, tensor cpu和tensor gpu运算时间比较

import timeimport torchfrom functools import wrapsdef timethis(func): @wraps(func) def wrapper(*args, **kwargs): start = time.perf_counter() r = func(*args, **kwargs) end = time.perf_counter() print('{}.{} : {}'

2020-07-07 18:28:02 2568

原创 论文笔记 -《A Mixture of h-1 Heads is Better than h Heads》

摘要  多头注意神经结构已经在各种自然语言处理任务上取得了最先进的结果。 事实证明,它们是过度参数化的,注意力头可以被修剪而不会造成显著的性能损失。 论文提出:根据输入的不同,选择不同的header,提出了专注其中几个header的专家混合模型(MAE)。 MAE使用block coordinate descent (BCD:块协同下降算法)进行训练,该算法交替更新(1)选择header的参数和(2)header的参数。 机器翻译和语言建模实验表明,MAE 在这两个任务上都优于基线模型。 特别是在 WMT

2020-06-15 01:08:56 848

常见的损失函数.docx

常见的损失函数

2021-09-16

如何理解Git.docx

如何理解Git

2021-09-16

adamw和adam 优化器相关讲解.docx

adamw和adam 优化器相关讲解

2021-09-16

权重衰减(weight decay)与学习率衰减(learning rate decay).docx

权重衰减(weight decay)与学习率衰减(learning rate decay)

2021-09-16

模型训练loss异常原因.docx

模型训练loss异常原因

2021-09-16

凝思80离线安装docker.md

凝思80离线安装docker

2021-09-16

利用ascii码判断中英文字符.docx

利用ascii码判断中英文字符

2021-09-16

解决macOS 10.15 软件提示损坏:无法验证开发者等问题.docx

解决macOS 10.15 软件提示损坏:无法验证开发者等问题

2021-09-16

梯度裁剪clip_grad_norm和clip_gradient.docx

梯度裁剪clip_grad_norm和clip_gradient

2021-09-16

使用GPU程序,找不到cuda.doc

使用GPU程序,找不到cuda

2021-09-16

预训练模型介绍.docx

预训练模型介绍

2021-09-16

BaseicTokenizer和FullTokenzier的区别.docx

BaseicTokenizer和FullTokenzier的区别

2021-09-16

conda配置规范.doc

conda配置规范.doc

2021-09-16

使用私有pypi源.doc

使用私有pypi源

2021-09-16

在程序中指定GPU的方法.doc

在程序中指定GPU的方法

2021-09-16

修改pip源.doc

修改pip源

2021-09-16

如何彻底移除你的 Boot Camp 分区.docx

如何彻底移除你的 Boot Camp 分区

2021-09-16

conda安装及常用命令.doc

conda安装及常用命令

2021-09-16

bert的uncased和cased的区别.docx

bert的uncased和cased的区别

2021-09-16

Axiomatic Attribution for Deep Networks 论文解析.docx

Axiomatic Attribution for Deep Networks 论文解析

2021-09-16

Transformer的位置编码解释.docx

Transformer的位置编码解释

2021-09-16

python的ConfigParser模块.docx

python的ConfigParser模块

2021-09-16

pytroch谷歌tpu使用教程.md

pytroch谷歌tpu使用教程

2021-09-16

torch.cuda.amp- 自动混合精度详解.docx

torch.cuda.amp- 自动混合精度详解

2021-09-16

torch安装.docx

torch安装

2021-09-16

tensorflow_keras+GPU显存按需分配.doc

tensorflow_keras+GPU显存按需分配

2021-09-16

Weight Decay超参的理解.docx

Weight Decay超参的理解

2021-09-16

centos7下安装python3.doc

centos7下安装python3

2021-09-16

Python依赖包迁移(用于离线安装).doc

Python依赖包迁移(用于离线安装)

2021-09-16

Ubuntu设置swap交换内存.docx

Ubuntu设置swap交换内存

2021-09-16

torch.nn.LayrerNorm.docx

torch.nn.LayrerNorm

2021-09-16

self modue和 self childre的区别.docx

self modue和 self childre的区别

2021-09-16

tmux配置规范.doc

tmux配置规范

2021-09-16

tmux配置示例.doc

tmux配置示例

2021-09-16

python+csv读写错误及写入乱码问题.doc

python+csv读写错误及写入乱码问题

2021-09-16

python常见问题.doc

python常见问题

2021-09-16

Ubuntu系统中文显示异常,终端无法输入中文.doc

Ubuntu系统中文显示异常,终端无法输入中文

2021-09-16

torch.einsum.docx

torch.einsum

2021-09-16

viterbi算法通俗讲解.docx

viterbi算法通俗讲解

2021-09-16

python日志规范.doc

python日志规范

2021-09-16

空空如也

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

TA关注的人

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