NLP
文章平均质量分 77
经典热门论文讲解,经典网络实战,后续会持续更新,包括一些竞赛常用tricks。有任何疑问,私信或评论区下留言,48小时内必回。
#苦行僧
这是我随心所欲记录笔记的地方,喜欢的方向:| NLP | CV | ML | 搜广推 | SE+AI |。
展开
-
玄学调参实践篇 | 深度学习模型 + 预训练模型 + 大模型LLM
玄学调参实践篇 | 深度学习模型 + 预训练模型 + 大模型LLM原创 2023-11-29 16:34:59 · 1322 阅读 · 0 评论 -
激活函数之ReLU, GeLU, SwiGLU
激活函数之ReLU, GeLU, SwiGLU原创 2023-09-18 22:20:57 · 2800 阅读 · 0 评论 -
DL优化器精简总结 | SGD, Momentum, AdaGrad, Rmsprop, Adam, AdamW
DL优化器精简总结 | SGD, Momentum, AdaGrad, Rmsprop, Adam, AdamW原创 2023-07-27 15:06:16 · 331 阅读 · 2 评论 -
生成模型的常用解码策略 | greedy search & beam search & sample-topk & sample-topp
生成模型的常用解码策略 | greedy search & beam search & sample-topk & sample-topp原创 2023-07-18 21:01:03 · 614 阅读 · 0 评论 -
T5模型: Transfer Text-to-Text Transformer(谷歌)
T5模型: Transfer Text-to-Text Transformer(谷歌)原创 2023-07-18 20:54:56 · 2208 阅读 · 0 评论 -
NLP | 生成任务指标: BLEU, ROUGE
NLP | 生成任务指标: BLEU, ROUGE原创 2023-07-18 20:43:01 · 1673 阅读 · 0 评论 -
ChatGLM基座 |《GLM: General Language Model Pretraining with Autoregressive Blank Infilling》
ChatGLM基座 |《GLM: General Language Model Pretraining with Autoregressive Blank Infilling》原创 2023-05-30 17:59:11 · 1811 阅读 · 0 评论 -
Rotary Position Embedding (RoPE, 旋转式位置编码) | 原理讲解+torch代码实现
Rotary Position Embedding (RoPE, 旋转式位置编码) | 原理讲解+torch代码实现原创 2023-05-29 17:25:10 · 18950 阅读 · 21 评论 -
pytorch nn.Module中的self.register_buffer()操作
pytorch nn.Module中的self.register_buffer()操作原创 2023-02-11 22:42:42 · 419 阅读 · 0 评论 -
pytorch中的矩阵乘法操作:torch.mm(), torch.bmm(), torch.mul()和*, torch.dot(), torch.mv(), @, torch.matmul()
pytorch中的矩阵乘法操作:torch.mm(), torch.bmm(), torch.mul()和*, torch.dot(), torch.mv(), @, torch.matmul()原创 2023-02-11 18:50:50 · 2884 阅读 · 0 评论 -
NLP One-hot与TF-IDF原理+面试必考知识点
NLP One-hot与TF-IDF原理+面试必考知识点原创 2023-01-27 22:54:19 · 238 阅读 · 0 评论 -
预训练模型之ELMO -《Deep contextualized word representations》论文笔记 + 高频面试题
预训练模型之ELMO -《Deep contextualized word representations》论文笔记 + 高频面试题原创 2022-12-06 17:46:55 · 388 阅读 · 0 评论 -
Trm变体之Trm-XL《Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context》论文笔记
Transformer变体之Transformer-XL《Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context》论文笔记原创 2022-12-02 16:24:06 · 398 阅读 · 3 评论 -
相对位置编码之RPR式:《Self-Attention with Relative Position Representations》论文笔记
transformer-XL, XLNet的基础。相对位置编码之RPR式:《Self-Attention with Relative Position Representations》论文笔记原创 2022-11-30 17:34:49 · 2171 阅读 · 3 评论 -
NLP 图神经网络之GNN、GCN、GAT原理理解+面试必考知识点
NLP 图神经网络之GNN、GCN、GAT原理理解+面试必考知识点原创 2022-11-27 22:13:24 · 1608 阅读 · 0 评论 -
《CodeBERT: A Pre-Trained Model for Programming and Natural Languages》论文笔记
论文来源:EMNLP-2020 论文链接:https://arxiv.org/abs/2002.08155 ⭐相关预训练模型在huggingface官网可以搜到,论文也公布了相应github链接。 ????主要内容: 传统的bert是面向自然语言的预训练模型,而codebert则是一个双模态的新型预训练模型,也是基于transformer的网络架构,它是面向自然语言和编程语言(包含6种编程语言)。预训练则是通过一个混合目标函数进行优化,结合了MLM任务和RTD任务(replaced token原创 2021-08-09 22:54:32 · 1983 阅读 · 8 评论 -
NER系列之《HMM中为何引入维特比算法作为预测算法?》
首先因为HMM用到了2个假设:一:齐次马尔可夫性假设。t时刻的隐状态只和t-1时刻的隐状态相关,与其他时刻状态无关。二:观测独立性假设。任意时刻的观测值依赖于该时刻的马尔可夫链的隐状态,与其他观测及隐状态无关。假设通过学习(如极大似然估计)我们已经求得HMM的3大参数:π:初始隐状态概率向量A:状态转移概率矩阵B:发射概率(观测)矩阵在每一t时刻,其实我们要做的就是如下实体标注估计:【注:q为实体标记即隐状态,o为观测】 也就是说在t时刻,根据t-1时刻的隐状态和t时刻的观测,来求出原创 2022-02-17 15:21:48 · 251 阅读 · 0 评论 -
NER系列之 《各类NER经典模型: HMM, Bi-LSTM, CRF, BERT, NEZHA, GlobalPointer》代码实现
NER系列之 《各类NER经典模型: HMM, Bi-LSTM, CRF, BERT, NEZHA, GlobalPointer》代码实现原创 2022-10-19 17:46:55 · 688 阅读 · 2 评论 -
【2022中国高校计算机大赛 微信大数据挑战赛】Top 1-6 方案总结
【2022中国高校计算机大赛 微信大数据挑战赛】Top 1-6 方案总结原创 2022-09-17 16:42:28 · 4078 阅读 · 3 评论 -
即时缺陷预测与定位任务 (JIT-DP & JIT-DL) - 评估指标
即时缺陷预测与定位任务 (JIT-DP & JIT-DL) - 评估指标,包含commit-level与line-level指标的整理。原创 2022-08-31 22:19:05 · 900 阅读 · 2 评论 -
《DeepJIT: An End-To-End Deep Learning Framework for Just-In-Time Defect Prediction》论文笔记
软件工程任务:即时缺陷预测(涉及SE+AI知识)原创 2022-07-29 16:17:59 · 381 阅读 · 0 评论 -
《COOBA: Cross-project Bug Localization via Adversarial Transfer Learning》论文笔记
论文发表在AI顶会(CCF-A):IJCAI-2020。论文链接:https://www.ijcai.org/proceedings/2020/493 主要任务是做一个cross project的bug location,这里所说的bug定位和我了解的不太一样,他是根据bug report来识别定位出跟这个bug report相关的code file。那么为什么要做cross project的呢?因为在项目新建立的初期,within project内并没有足够的bug-fix data拿来做有监督训练,原创 2022-06-02 16:53:22 · 338 阅读 · 1 评论 -
huggingface的transformers库的常用操作记录
更具体的内容请参看huggingface模型官方文档链接:https://huggingface.co/docs/transformers/model_doc/bert#bertforsequenceclassification考虑到经常用到这个库,这里简单记录下bert模型的输出方便整活各种tricks:from transformers import BertModel, BertConfigbert_dir = 'hfl/chinese-macbert-base'config = BertCo原创 2022-05-26 13:04:45 · 1182 阅读 · 0 评论 -
NER系列之《如何在pytorch搭建的模型中引入CRF(条件随机场)》(pytorch-crf库)
NER任务小能手:CRF条件随机场原创 2022-03-16 18:10:00 · 5911 阅读 · 9 评论 -
《TEXTBUGGER: Generating Adversarial Text Against Real-world Applications》论文笔记
论文来源:NDSS-2019主要内容:近年来,基于深度学习的文本理解(DLTU)技术已经被应用到了很多场景,如机器翻译、问答系统、文本分类等。尽管这些DLTU技术的应用场景很广,效果很好,但是它背后的安全性却是未知的。且这类技术越来越多地应用到一些security-sensitive的场景,如情感分析,有害内容检测等,这是令人担忧的一件事。论文提出了一个用于生成对抗文本的通用对抗框架(TEXTBUGGER),实验验证了DLTU易于受到对抗文本攻击而预测错误的结果。相比之前的工作,TEXTBUGGER的原创 2021-11-07 21:57:03 · 2502 阅读 · 4 评论 -
Huggingface---NLP笔记系列
⭐⭐⭐以下为Huggingface的Transformers系列的初级入门教程,算是官方教程的精简+注解版(From: SimpleAI 公众号)。1️⃣Huggingface????NLP笔记1:直接使用pipeline,是个人就能玩NLP2️⃣Huggingface????NLP笔记2:一文看清Transformer大家族的三股势力3️⃣Huggingface????NLP笔记3:Pipeline端到端的背后发生了什么4️⃣Huggingface????NLP笔记4:Models,Tokeniz转载 2021-10-17 18:20:02 · 388 阅读 · 0 评论 -
BERT的3个嵌入层的作用以及实现
下面链接会介绍BERT的3个嵌入层的作用以及实现:链接:https://www.cnblogs.com/d0main/p/10447853.html转载 2021-09-13 21:03:48 · 385 阅读 · 0 评论 -
torch.nn.Parameter()使用方法
????torch.nn.Parameter可以将tensor变成可训练的,如在transformer的self-attention等一些attention机制中,会用到一些可训练的权重矩阵,这时用torch.nn.Parameter在模型中创建这些矩阵即可随着模型的训练不断更新最优化。 使用方法:self.w = torch.nn.Parameter(torch.FloatTensor(hidden_size)) 含义是将一个固定不可训练的tensor转换成可以训练的类型parameter,并将原创 2021-08-27 11:54:11 · 7637 阅读 · 0 评论 -
LIME-AI可解释模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》论文笔记
尽管一些机器学习模型的性能很好,被得到广泛使用,但其仍然是个黑盒子,至于为啥模型做出这样的决定我们是不知道的,对于某些领域(如医学领域)来说,即使模型的准确率很高,但可能也不敢过度相信其做出的决定。所以我们需要一个解释器来告诉我们为啥模型做出这样的预测等细节。论文的主要贡献:1.提出了一种称为 LIME 的算法模型,它以一个能够让人信服的方式为任何分类模型或回归模型解释其做出的预测。通过一个局部的可解释模型来近似原模型来解释。2.同时,提出了一个叫SP-LIME的方法,该算法能够挑选尽量少的样本覆盖尽原创 2021-08-22 16:17:47 · 2245 阅读 · 0 评论 -
Pytorch的损失函数BCELoss(), BCEWithLogitsLoss(), nn.CrossEntropyLoss()区别
????(BCELoss)BCEWithLogitsLoss用于单标签二分类或者多标签二分类,输出和目标的维度是(batch,C),batch是样本数量,C是类别数量,对于每一个batch的C个值,对每个值求sigmoid到0-1之间,所以每个batch的C个值之间是没有关系的,相互独立的,所以之和不一定为1。每个C值代表属于一类标签的概率。如果是单标签二分类,那输出和目标的维度是(batch,1)即可。 BCELoss是CrossEntropyLoss的一个特例,只用于二分类问题,而CrossEntr原创 2021-08-21 21:24:02 · 1645 阅读 · 0 评论 -
《DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter》论文笔记
论文来源:NIPS-2019(hugging face发布)论文链接:https://arxiv.org/abs/1910.01108⭐背景结束: 近年来NLP领域,在大型预训练模型上进行迁移学习非常成功。同时,一些关于预训练模型的研究也指明训练更大的模型将更有利于下游任务。但是这些大模型,训练成本高,在资源受限的情况下模型推理速度达不到要求,难以部署到实际应用场景。 ????主要内容: 而论文则提出了一个更小的通用语言表示预训练模型,称为DistileBERT。它是在预训练阶段利用了知识蒸馏原创 2021-08-16 18:55:44 · 532 阅读 · 0 评论 -
《RoBERTa: A Robustly Optimized BERT Pretraining Approach》论文笔记
论文来源: 2019 发在arXiv上 论文链接:https://arxiv.org/abs/1907.11692v1 ????主要内容 现有的一些预训练模型在NLP领域取得了不错的成绩,但是要确定哪些方面对模型性能的提升贡献最大是困难的。毕竟这些模型训练成本比较高,调优麻烦。且我们在训练的时候通常是在不同大小的私有数据集上进行的,限制了对模型效果的评测。 所以该篇论文主要就是重新对BERT模型进行了研究及调整,提出了一种改价方法来训练BERT模型,称为RoBERTa。细致地评估了其中的关键超参原创 2021-08-15 22:40:15 · 501 阅读 · 0 评论 -
《GraphCodeBERT: Pre-Training Code Representation With Data Flow》论文笔记
论文来源:ICLR-2021论文链接:https://arxiv.org/abs/2009.08366(看时间,应该是2020发在了arxiv上,2021被ICLR录用) ⭐主要贡献: 可以说是在CodeBERT的基础上引入了结构信息和两个新的预训练任务。 1.提出了GraphCodeBERT,是第一个利用了代码语义结构信息来学习代码特征表示的预训练模型。(通过data flow来获得语义结构信息而不是AST) 2.除了MLM预训练任务,还引入了2个新的能够从source code和data f原创 2021-08-11 23:08:24 · 1645 阅读 · 0 评论 -
pytorch如何精确冻结某一层的参数?
【这段跟你没关系的话,直接跳到后面简单举例看】 ????有时候,我们加载一些预训练模型可能不想更新其中的某些参数,如在bert预训练模型中,我加载了 ‘bert-base-uncased’ 预训练模型(其是为下游任务提供特征提取的模型),但是这里用的是BertForSequenceClassification类去加载的话,它会在’bert-base-uncased’ 模型基础上加个分类层。假若我们不想fine-tune这个bert层,只想更新分类层,那就需要冻结bert层。model = Bert原创 2021-08-09 14:32:33 · 1565 阅读 · 0 评论 -
hugging face的预训练模型下载慢的问题(使用BertModel.from_pretrained()等下载慢)
????下面步骤以手动下载代替代码自动下载预训练模型。 在代码中用如下 from_pretrained() 函数下载bert等预训练模型时下载巨慢:from transformers import BertTokenizer,BertModel,BertConfigtokenizer = BertTokenizer.from_pretrained('bert-base-uncased')config = BertConfig.from_pretrained('bert-base-uncased')原创 2021-08-08 21:30:02 · 22882 阅读 · 14 评论 -
基于BERT模型实现文本分类任务(transformers+torch)
????BERT的原理分析可以看这:《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》论文笔记 ????代码实现主要用到huggingface的transformers库(4.9.1)和torch库(1.6.0)pip install transformerspip install torch????先说下我的做法: 取了最后4层,按768那个维度进行拼接,拼完就是4*768。然原创 2021-08-04 19:25:39 · 8978 阅读 · 29 评论 -
《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》论文笔记
该论文提出了一个新的语言表示模型:BERT。其设计的目的是通过联合调节所有层的左右上下文,来预训练未标记文本的深度双向表示(使用transformer作为算法的主要框架)。可以通过在预训练的BERT模型后加上额外的层来微调,以实现不同任务的需要(如文本分类,NER等)。BERT在11项nlp任务中达到了SOTA。【注:Bert使用了Mask Language Model(MLM) 和 Next Sentence Prediction(NSP) 的多任务来预训练,这些数据都是不用人工标注的,如MLM中随机挖原创 2021-08-03 19:12:47 · 973 阅读 · 0 评论 -
《Attention Is All You Need》论文笔记 - 【transformer模型】
论文来源:NeurIPS 2017论文链接:点击进入 ????该篇论文提出了一个新颖的网络结构:Transformer。其没有使用循环递归结构和卷积结构,仅基于注意力机制。在两个机器任务上表明了模型能够更好的并行化计算,可以显著地减少训练时间,性能达到了SOTA的效果。 【注:transformer的并行化主要体现在self-attention模块上,在encoder端其可以并行处理整个序列,而不像rnn、lstm那样要一个token一个token的从前往后计算。】⭐整体结构概述: 大多数神经序列原创 2021-08-02 22:34:41 · 671 阅读 · 1 评论 -
torchtext使用教程(文本预处理、数据集封装)
????torchtext是一个用于文本预处理的库,使用起来也十分简便。 这是torchtext的github链接:https://github.com/pytorch/text它主要包含了以下3大组件:⭐Field对象: 指定要如何处理某个字段,比如指定分词方法,是否转成小写,起始字符,结束字符,补全字符以及词典等。⭐Dataset类: 用于加载数据,torchtext的Dataset是继承自pytorch的Dataset,提供了一个可以下载压缩数据并解压的方法(支持.zip, .gz, .原创 2021-08-01 23:32:16 · 2978 阅读 · 1 评论 -
基于Pytorch实现Seq2Seq模型进行机器翻译(实现了Attention机制、编码器&解码器的多层双向结构)
Seq2Seq原理学习(包含attention机制的讲解)参考这篇: 点击进入RNN模型输出序列的长度只能和输入序列长度相等,Seq2Seq框架可以解决。Seq2Seq原理也十分简单,就是由两个LSTM组成:一个作为encoder,一个作为Decoder。比如在机器翻译任务中:训练阶段:将一个英文句子的每个token向量依次传入(即整个句子的矩阵表示,传进去他会依次进行)LSTM Encoder,然后得到最后时刻的 h,c ,将他们作为LSTM Decoder的初始 h,c。decoder的输入原创 2021-07-31 15:36:09 · 2463 阅读 · 6 评论