- 博客(465)
- 收藏
- 关注

原创 Transformer Encoder-Decoer 结构回顾
有关于Transformer、BERT及其各种变体的详细介绍请参照笔者另一篇博客:最火的几个全网络预训练模型梳理整合(BERT、ALBERT、XLNet详解)。本文基于对T5一文的理解,再重新回顾一下有关于auto-encoder、auto-regressive等常见概念,以及Transformer-based model的decoder结构。
2022-12-02 12:12:12
1046
2

原创 overleaf使用指南以及最基本LaTeX语法回顾
本篇接上一篇,"LaTeX新手半小时速成手册(不速成你打我 "算是latex使用的一些拓展,连带介绍一下overleafoverleaf是一个非常方便的在线LaTeX编辑器:https://www.overleaf.com/begin新建账户绑定邮箱之后我们就可以进去新建一个project:如果你是为了写论文之类的那么可以upload一些会议的template如果是想要写笔记之类的,那么可以选择Blank或者example template一个非常重要的根本性概念需要告诉大家:LaTeX
2021-03-04 21:48:38
31694
11

原创 LaTeX新手半小时速成手册(不速成你打我
期末大作业LaTeX排版,一个学期没听课,学了b站半小时完成大作业。写此速成手册以作备忘。b站链接:小风寒呐1. primary一篇论文最主要的构成,以中文为例1.1 整体框架1.1.1 声明类相当于在说:“我想写一篇文章”\documentclass[UTF8]{ctexart}文章编码:UF8文章类型:中文1.1.2 导入包相当于在说:“我要开始写文章”\usepackage{mathtools,wallpaper}\usepackage{t1enc}\usepackag
2020-05-26 22:24:32
30212
7

原创 最火的几个全网络预训练模型梳理整合(BERT、ALBERT、XLNet详解)
过去两年可谓是NLP领域的高光年,自从18年BERT提出,狂刷了11项下游任务的记录之后,全网络预训练模型开启了NLP嵌入表示的新时代,真正意义上实现了自然语言处理的迁移学习。作为一个刚入坑没多久的白中白,真心感叹自己接触太晚,但是又愁于感天动地的英文阅读能力,再加上原论文有些语句的描述实在是晦涩难懂,在翻阅大量博客和视屏之后,总算花了一整天时间,把过去几年最火的几个模型原理大致梳理明白了。借此写一篇博客,虽然许多内容参考了其他blog,但也是经过自己消化理解,按照自己的思路罗列的。...
2020-03-15 20:11:49
7867
8
原创 tmux清除所有session
当前在某个session内,用于kill 除当前session外,其他所有sessions。:需要sudo权限,会连带清除所有其他users的sessions,:kill某个特定的session(可以用。查看当前所有sessions)。
2023-01-27 07:48:48
64
转载 latex 在列宽固定的表格中换行
使用而非参考:How to insert manual line breaks inside LaTeX tables?
2023-01-18 16:12:45
74
原创 pytorch复制模型
很多时候,我们需要把模型copy一份,两份模型用于不同的用途(e.g., 分别训练、teacher / student model)。虽然torch并没有提供类似于。不仅可以把原先的模型的所有参数,原模原样复制一份,连device也照样能够复制。并且各自优化,互不干扰。这种接口,但是这个功能可以简单通过。
2023-01-07 07:30:26
144
原创 macos 打开chrome的developer-console 命令台
【代码】macos 打开chrome的developer-console 命令台。
2023-01-07 04:07:06
76
原创 有关于huggingface tokenizer的text_pair
由于常规的BERT预训练时使用NSP任务,所以,如果用BERT的tokenizer去做sentence pair classification,它会返回。这个list长度为batch_size,里面的每一个样本就是一个sentence pair,用list存储,而且只用传这一个参数,不用。的参数,这个参数在做NLI任务的时候很有用,因为输入不是一个single sentence,而是。但是这个参数的类型让人非常confused,而且同时还有一个。也就是说,如果只是单个sentence pair,直接传入。
2023-01-04 10:19:29
237
4
原创 有关于Transformer 的max_seq_length (max_source_length)
Transformer 的最大输入长度,即/是一个非常值得注意的参数。Transformer的encoder大多是Auto-encoder的结构,不同于Auto-regressive encode,由于auto-encoder缺乏时序序列的位置信息,因此其需要对输入的每个token的position进行编码。而position的编码方式大致为两种:1).基于Embedding 2).非Embedding。
2023-01-03 13:43:24
292
3
原创 有关于huggingface evaluate的使用
直接loadmetric,然后compute,就能获得一个字典。如果要同时计算多个metric,而且这些metric的接口一致,则利用combine;如果这些metrics的接口不一致(例如,f1相较于acc,会额外需要average参数),则只能分别load和compute。注意,以上结论只针对于这个版本,可能不同版本结论不一样。
2023-01-01 02:46:46
498
原创 anaconda新建虚拟环境于指定路径
会直接把XXX这个包安装在home路径下,会占用默认系统分区很多存储空间。如果需要指定新建的虚拟环境的安装路径,需要加上。这样就会把anaconda装到另一个mount上去的磁盘分区。
2022-12-31 05:30:51
419
原创 有关于decoder中的past_key_values参数
(因为需要auto-regressively生成tokens),这个时候encoding_output 和上述的 k、v在整个decoding过程中,数值都不会变化(输入没变,模型参数也没变),因此它们就可以直接重用。我们都知道,encoder-decoder模型在进行generate的时候,会重复地调用decoder (i.e., auto-regressive)。,我们就可以直接使用上一个step已经计算好的K、V,而不用再进行重复的encoder_output ==> k_v_states的计算。
2022-12-22 14:35:02
338
原创 有关于pytorch 计算mutual information
torch并没有提供MI的计算接口,笔者大规模搜罗了网上现有的资料,只找到这些:总结就是没有那种直接能够计算torch两个dense tensor之间MI的开源实现,看来只能用两个向量之间的点积来代替互信息,具体参考:How to calculate mutual information in PyTorch
2022-12-17 14:16:17
169
原创 【报错】CUDA error: device-side assert triggered
如torch.select等;或者输入的input_ids超出了模型embedding的词表范围。,比方说padding tokens、ending tokens。在某些情况下会比较实用。这种类型的报错,绝大多数情况下,都是因为tensor index的错误。,上述操作的一个好处就是可以把超出词表范围的那些ids。
2022-12-09 13:35:31
280
原创 有关于torch multinomial采样
这个概率分布,只有10和3两个样本能够被采样到。所以当采样数量设置为4的时候,就会报错。,从中采样两个样本。由于10最大,3其次,所以采样出来的结果是1,2。,可以看到第一个采样到的是3,随后采样到的一直都是10,因为10最大。多项式采样,核心思想就是从一个概率分布中,采样n个样本的index,,可以重复采样到同一个样本。如上述,对于一个概率分布。这个时候需要设置参数。
2022-12-08 14:24:28
354
原创 有关于Bellman-Ford单源最短路径,Floyd-Warshall点对最短路径
直到遍历完所有的5个节点,得到D5,就为最终pairs最短距离的结果。以此类推,用节点2作为中间节点,去尝试更新D1矩阵,获得D2。如图右下角,圈出1所在行列,
2022-12-08 14:09:29
128
原创 【报错】AttributeError: module ‘transformers.utils.logging‘ has no attribute ‘getLogger‘
这种类型的报错,多半是因为import了多个重名的包,导致运行的时候,后面导入的包,把前面正确的包覆盖了。由于transformers.trainer下也有一个logging,所以覆盖了第一行的import。
2022-12-08 11:33:30
158
原创 有关于torch.autograd.grad
模块给用户提供了一个自定义求导的接口。可以手动地将loss对某部分参数进行梯度求导,特别适用于debug和观测。笔者经常使用这个接口用于观测模型优化出现问题时,梯度值是否出现异常;以及用于代替tensorboard等可视化工具,快速理解复杂的计算图。比方说下面这段代码:用于观测,最终的loss是否由self.dis(model)、self.gen(model)、target(tensor)计算,进而用于判断哪些模型参与这个loss的优化。这个功能就类似于使用tensorboard可视化loss的计算过程,
2022-12-07 09:28:36
315
原创 【报错】HuggingFace Transformers connection issue
笔者得出结论:主要是因为报错信息太抽象了,导致这个connection error的原因有很多,上述提到的每一种都有可能,建议每一种都去尝试一下…笔者曾不止一次遇到过该问题,每次遇到这个问题,都是试了上述各种方法,一开始不奏效,最后莫名其妙地就解决了(我什么也没做)…也有人说是http proxy的问题;还有人说重启机器就能解决…有人说,删除cache文件就行;
2022-11-28 15:22:11
168
原创 【shell运行python报错】line 16 --XXX: command not found
而且同样的这段命令,terminal里面运行是可以的,但是粘贴到shell里不行了。后跟回车的话,要确保没有多余空格,不然就转移空格去了。删去多余的空格即可。在vscode里面打开shell文件,可以看到换行转移符。一开始百思不得其解,明明指定了。因为shell是空格敏感的…后面的话,它看起来会有点。
2022-11-27 11:16:24
233
原创 torch 1.13.0 对应的torchvision版本
奈何官网也没有说对应的torchvision版本是啥,如果想要。torch最新的stable版本是。
2022-11-27 06:25:34
2002
原创 有关于pytorch单精度bfloat16位
BF16是brain float的简称(来源于google brain)。不同于普通的单精度浮点数FP16(i.e., torch.float16),BF16是介于FP16和FP32之间的一种浮点数格式。BF16的指数位比FP16多,跟FP32一样,不过小数位比较少。即,BF16尝试采用牺牲精度的方法,来换取更大的数值空间。
2022-10-15 11:05:22
1275
原创 有关于learning rate和batch_size
在以往的机器学习、深度学习的时间中,这两个之间会有一些互相影响。例如,batch_size减小之后,模型优化更有可能局部最优(SGD随机梯度下降),这时候就需要适当减小lr;反之,batch_size若是能够比较大,最好增大lr来提升优化效果。而至于如何增大、减小,不同人会有不同看法 (比方说,lr随着batch_size线性缩放,或者根方)但是大多数情况下,尤其是现在机遇大模型的训练方法,用Adam,AdamW之类的optimizer,的变动而变动 (例如,transformer, 学习率一般都是。
2022-10-15 03:23:20
178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人