NLP基础知识
愚昧之山绝望之谷开悟之坡
人工智能智慧城市元宇宙pf,无无明亦无无明尽
展开
-
Vision Transformer(ViT)简介理解
参考:https://gitee.com/mindspore/vision/blob/master/examples/classification/vit/vit.ipynb模型特点ViT模型是应用于图像分类领域。因此,其模型结构相较于传统的Transformer有以下几个特点:数据集的原图像被划分为多个patch后,将二维patch(不考虑channel)转换为一维向量,再加上类别向量与位置向量作为模型输入。模型主体的Block基于Transformer的Encoder部分,但是调整了norma原创 2022-05-16 16:01:37 · 1841 阅读 · 0 评论 -
tplinker plus
tplinker plushttps://blog.csdn.net/weixin_42223207/article/details/116425447?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164195568516780265422553%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164195568原创 2022-01-12 11:28:51 · 1260 阅读 · 0 评论 -
理解GloVe模型
https://blog.csdn.net/u014665013/article/details/79642083https://zhuanlan.zhihu.com/p/42073620这个算法说是很牛逼,可是看了一些材料说的很多都是应用,对于原理说得不清楚,找到两篇,说得还算不错,不过还是没有完全清楚细节,若干年后学会了再补充。概述做自然语言处理的时候很多时候会用的WordEmbedding,目前我常用的方法是word2vec算法训练词向量。不过训练词向量的方法有很多,今天介绍GloVe算法。原创 2021-12-28 15:35:16 · 337 阅读 · 0 评论 -
多标签分类
https://www.jianshu.com/p/ac3bec3dde3e多标签分类任务损失函数在二分类、多分类任务中通常使用交叉熵损失函数,即Pytorch中的CrossEntorpy,但是在多标签分类任务中使用的是BCEWithLogitsLoss函数。BCEWithLogitsLoss与CrossEntorpy的不同之处在于计算样本所属类别概率值时使用的计算函数不同:1)CrossEntorpy使用softmax函数,即将模型输出值作为softmax函数的输入,进而计算样本属于每个类别的概率原创 2021-12-15 16:14:17 · 2114 阅读 · 0 评论 -
Docker Dockerfile 指令详解 COPY
COPY复制指令,从上下文目录中复制文件或者目录到容器里指定路径。格式:COPY [--chown=<user>:<group>] <源路径1>... <目标路径>COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"][--chown=<user>:<group>]:可选参数,用户改变复制到容器内文件的拥有者和属组。原创 2021-10-08 15:36:58 · 5125 阅读 · 0 评论 -
PaddlePaddle batchify_fn
batchify_fn = lambda samples, fn=Dict({ 'input_ids': Pad(axis=0, pad_val=tokenizer.pad_token_id, dtype='int64'), # input 'token_type_ids': Pad(axis=0, pad_val=tokenizer.pad_token_type_id, dtype='int64'), # segment 'seq原创 2021-10-05 12:53:58 · 654 阅读 · 1 评论 -
python切片越界不会报错,会自动锁定在边界值
a = [1, 2, 3, 5, 7, 9, 10]print(a[6: 9])for i in range(0, len(a), 3): print(a[i: i + 3]) print(i)[10][1, 2, 3]0[5, 7, 9]3[10]6原创 2021-10-05 10:18:44 · 327 阅读 · 0 评论 -
PaddlePadde和Hugging Face转换输入文本的区别
1文本转id2构造偏函数后单独填充3paddlepaddle是通过这种方式转换成tensor,文本特征话的时候,返回的是dict,dict里面的listhuggingface通过这种方式转换,在参数里面可配置的方式,一步到位原创 2021-10-04 10:02:06 · 306 阅读 · 0 评论 -
路径中一个点与两个点的区别,通过相对路径不断的搜索上级目录
在导入js或者样式表的时候,如果我们放在文件夹下面,有时会涉及路径问题找不到我们的引入,曾经我也遇到过相应的问题。解决方法就是在路径前面加点。那么在这个路径中一个点和两个点到底有什么区别呢?1、一个点:表示当前目录。即类似使用:./juqery.min.js。2、两个点:表示当前目录的上级目录。类似: 3、如果是当前目录的上级的上级目录 …/…/xxx.js...原创 2021-10-04 09:16:02 · 1961 阅读 · 0 评论 -
Linux ln -sf 的用法 paddle推理服务
b—>a即b 指向aln -sf a bRPC服务是CS架构,用户使用客户端来访问服务端获取推理结果,客户端和服务端之间的通信使用的是百度开源的一款RPC通信库来完成的。RPC具有高并发、低延时等特点,已经支持了包括百度在内上百万在线推理实例、上千个在线推理服务,稳定可靠,其整体性能要优于HTTP,但是只能适用于Linux操作系统,而且需要编写Client端的代码。如果用户的推理业务需要数据前后处理,例如训练图片的归一化,文本的ID化等等,这部分代码也需要包含在客户端中。Web服务是BS原创 2021-10-03 20:19:01 · 544 阅读 · 0 评论 -
实体识别项目,如何快速的针对字典信息,对新闻数据进行数据标注
# -*- coding: utf-8 -*-import jsonimport osimport randomfrom tqdm import tqdmrandom.seed(2021)dict_path_ = './data_dict/company_list.txt'path_in_ = './dataset_new'path_out_train_ = './train_dataset/36Kr_ner/train.tsv'path_out_test_ = './train_da原创 2021-10-02 16:32:49 · 156 阅读 · 0 评论 -
TypeError: paddlenlp读取自定义数据集read_out() missing 1 required positional argument: ‘filename‘
特别注意参数名字一定要对应上,否则报错提示找不到原创 2021-09-29 16:38:01 · 350 阅读 · 0 评论 -
Python学习-将list列表写入文件并读取方法汇总
怎么简单怎么来,进来减少代码的冗余1.writelines()直接写入l=["A","B","C","D"] f=open("k.txt","w") f.writelines(l)f.close()2.str转化为字符串写入l=["A","B","C","D",1,2,3] f=open("k.txt","w") f.write(str(l))f.close()3.for循环写入l=["A","B","C","D"] f=open("k.txt","w") f原创 2021-09-29 15:53:07 · 1705 阅读 · 0 评论 -
关于Bert模型参数的分布 简单的数学题,另外 M代表百万个
参数分布 Bert模型的版本如下: BERT-Base, Uncased: 12-layer, 768-hidden, 12-heads, 110M parameters BERT-Large, Uncased: 24-layer, 1024-hidden, 16-heads, 340M parameters BERT-Base, Cased: 12-layer, 768-hidden, 12-heads , 110M parameters BERT-La...原创 2021-09-27 08:39:53 · 515 阅读 · 0 评论 -
点互信息和互信息 PMI
在数据挖掘或者信息检索的相关资料里,经常会用到PMI(Pointwise Mutual Information)这个指标来衡量两个事物之间的相关性。PMI的定义如下:这个定义所体现的原理其实是相当直白的。在概率论中,我们知道,如果x跟y不相关,则 P(x,y) = P(x)P(y)。二者相关性越大,则 P(x,y) 就相比于 P(x)P(y) 越大。根据条件概率公式,你还可以写成这也很好理解,在y出现的情况下x出现的条件概率 p(x|转载 2021-09-02 14:37:54 · 313 阅读 · 0 评论 -
numpy/pandas
所有的数据结构,不同的语言有不同的存在方式,但是原理本质是一样的,了解,语言的自带的数据结构和通过第三方包带有的数据结构,了解数据结构最基本的特性,和最基本的操作,算法就是用这些数据结构和相关的操作去解决特定的问题的方法而已。所以数据就够是基础也是必须掌握的本质。本文是《如何七周成为数据分析师》的第二十一篇教程,如果想要了解写作初衷,可以先行阅读七周指南。温馨提示:如果您已经熟悉Python,大可不必再看这篇文章,或只挑选部分。今天开始进入Python数据分析工具的教程。数据分析绝对绕不过的三个包是num转载 2021-09-01 14:19:28 · 236 阅读 · 0 评论 -
argparse模块中的action参数
用argparse模块让python脚本接收参数时,对于True/False类型的参数,向add_argument方法中加入参数action=‘store_true’/‘store_false’。顾名思义,store_true就代表着一旦有这个参数,做出动作“将其值标为True”,也就是没有时,默认状态下其值为False。反之亦然,store_false也就是默认为True,一旦命令中有此参数,其值则变为False。>>> parser = argparse.ArgumentParse原创 2021-08-31 17:29:06 · 485 阅读 · 0 评论 -
1神经网络和深度学习笔记
本质是函数的拟合分类模型本质上是在做拟合——模型其实就是一个函数(或者一簇函数),里边有一些待定的参数,根据已有的数据,确定损失函数(最常见的损失函数,就是误差平方和,不清楚的读者,可以回忆最小二乘法的过程。),然后优化损失函数到尽可能小,从而求出待定参数值。求出参数值之后,就可以用这个函数去进行一些预测。函数存在的两个问题1、函数的自变量是什么?2、这个函数是什么?第一个神经网络解决的是第二个问题:这个函数是什么。多项式拟合的问题是在训练数据内拟合效果很好,可是测试效果不好,也就是容易出现过拟原创 2021-08-31 10:28:08 · 138 阅读 · 0 评论 -
ERNIE-UNIMO的理解
https://gitee.com/AI-Mart/ERNIE/tree/develop/ 总体介绍https://gitee.com/AI-Mart/ERNIE/tree/repro/ 各分支介绍ERNIE 最新开源四大预训练模型:多粒度语言知识模型ERNIE-Gram 正式开源超长文本双向建模预训练模型ERNIE-Doc 正式开源融合场景图知识的跨模态预训练模型ERNIE-ViL 正式开源语言与视觉一体的预训练模型ERNIE-UNIMO 正式开源ERNIE-UNIMO 融合了单模态和原创 2021-08-30 17:06:17 · 517 阅读 · 0 评论 -
ERNIE-ViL-理解
https://gitee.com/AI-Mart/ERNIE/tree/repro/ernie-vilERNIE-ViL 是面向视觉-语言任务的知识增强预训练框架,首次在视觉-语言预训练中引入了结构化的知识。ERNIE-ViL利用场景图中的结构化知识,构建了物体预测,属性预测,关系预测三种预训练任务,精细地刻画了视觉-语言模态之间细粒度语义的对齐,从而获得了更好的视觉-语言联合表示。模型框架基于文本中解析出的场景图,ERNIE-ViL提出了三个多模态场景图预测任务:物体预测:随机选取图中的一部分物原创 2021-08-30 17:00:00 · 740 阅读 · 0 评论 -
ERNIE-Gram的理解
https://gitee.com/AI-Mart/ERNIE/tree/develop/ernie-gram就是ERNIE的升级和强化,不单单是某一类实体,N-gram的语言实体建模模型框架从 ERNIE 1.0 起,百度研究者们就在预训练中引入知识增强学习,通过掩码连续的词、phrase、named entity 等语义知识单元,实现更好的预训练学习。本次开源的通用语义理解模型 ERNIE-Gram 更进一步,提出的显式、完备的 n-gram 掩码语言模型,实现了显式的 n-gram 语义单元知识原创 2021-08-30 16:49:29 · 2354 阅读 · 0 评论 -
72_text_generation\ernie-gen 理论理解
https://zhuanlan.zhihu.com/p/141492554https://zhuanlan.zhihu.com/p/268836323https://zhuanlan.zhihu.com/p/145218928ERNIE-GEN 是面向生成任务的预训练-微调框架,首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。在预训练和微调中通过填充式生成机制和噪声感知机制来缓解曝光偏差问题。此外, ERNIE-GEN 采样多片段-多粒度目标文本采样策略原创 2021-08-30 16:23:40 · 520 阅读 · 0 评论 -
回顾BART模型 其实是BART的策略,训练标准的transformer模型
最近在生成相关论文时,经常看到使用BART(Bidirectional and Auto-Regressive Transformers,双向自回归变压器)模型作为基线比较,或在BART模型上进行修改。因此,回顾一波BART模型,做一下分享。论文地址:Paper代码地址:Github如果说BERT模型是仅使用Transformer-Encoder结构的预训练语言模型,GPT模型是仅使用Transformer-Decoder结构的预训练语言模型,那么BART模型就是使用Transformer模型整体结构的预训转载 2021-08-30 15:22:37 · 2434 阅读 · 0 评论 -
T检验T检验
t检验,亦称student t检验(Student’s t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布。 [1] t检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。它与f检验、卡方检验并列。t检验是戈斯特为了观测酿酒质量而发明的,并于1908年在Biometrika上公布 [2] 。...原创 2021-08-30 15:09:11 · 518 阅读 · 0 评论 -
MASS理解
于是MASS的作者就借鉴了Masked LM的思想,只用一句话就让encoder和decoder同时训练。具体做法是mask掉句子的一部分x,再用decoder去预测x,如下图:注意,在经典的seq2seq结构中,decoder的输入都是完整的,而这里只输入应该被预测的token,作者的解释是这样可以让decoder依赖于encoder的编码,让两者更好地共同训练。把BERT和GPT统一了起来:图a): 可能会有同学觉得decoder不是双向的,没法把encoder和decoder看成BERT,.原创 2021-08-30 15:01:31 · 298 阅读 · 0 评论 -
T5 模型:NLP Text-to-Text 预训练模型超大规模探索
相信大多 NLP 相关者,在时隔 BERT 发布近一年的现在,又被谷歌刚发布的 T5 模型震撼到了。又是一轮屠榜,压过前不久才上榜自家的ALBERT,登上 GLUE 榜首。当然,最大的冲击还是财大气粗,bigger and bigger,但翻完它长达 34 页的论文,发现其中的分析无疑是诚意满满(都是钱)。类似这样的大型实验探索论文也有一些,首先提出一个通用框架,接着进行了各种比对实验,获得一套建议参数,最后得到一个很强的 baseline。而我们之后做这方面实验就能参考它的一套参数。对于 T5 这篇论文,转载 2021-08-30 11:15:20 · 1771 阅读 · 0 评论 -
T5模型的理解
输入和输出和GPT2一样,T5把所有的NLP问题归结为了“text-to-text”的任务,下图展示了T5在翻译、分类、相似度、摘要任务上的输入输出样例:有点类似第四范式,让任务和配合预训练模型。所有的子任务转换成文本生成任务。...原创 2021-08-30 11:12:59 · 2151 阅读 · 0 评论 -
72_text_generation/vae-seq2seq 曝光偏差(exposure bias)
seq2seq中的曝光偏差(exposure bias)现象mismatch between train and testexposure bias在训练阶段,我们采用的是teacher forcing (教师指导)方式,也就是在decoder端的当前时间步的输入是上一个时间步的真实标签,而不是模型在上一个时间步的预测值然而测试阶段,当前时间步的输入是模型上一时间步的预测值,此时没有教师指导。所谓exposure bias(曝光偏差),就是因为模型在训练阶段从来没有看过自己的输出,也就是自己的输出原创 2021-08-29 15:08:35 · 436 阅读 · 0 评论 -
VAE理解
AE才是整体的框架思路,里面的神经网络或者其他的网络,只是向量的一种表示和提取手段而已自动编码器(AutoEncoder)最开始作为一种数据的压缩方法,其特点有:第一是数据去噪,第二是进行可视化降维,第三生成数据1)跟数据相关程度很高2)压缩后数据是有损的,这是因为在降维的过程中不可避免的要丢失掉信息;第一点,我们使用GAN来生成图片有个很不好的缺点就是我们生成图片使用的随机高斯噪声,这意味着我们并不能生成任意我们指定类型的图片。但是使用自动编码器我们就能够通过输出图片的编码过程得到这种类型原创 2021-08-29 12:10:55 · 295 阅读 · 0 评论 -
AutoEncoder与VAE
什么是自动编码器自动编码器(AutoEncoder)最开始作为一种数据的压缩方法,其特点有:1)跟数据相关程度很高,这意味着自动编码器只能压缩与训练数据相似的数据,这个其实比较显然,因为使用神经网络提取的特征一般是高度相关于原始的训练集,使用人脸训练出来的自动编码器在压缩自然界动物的图片是表现就会比较差,因为它只学习到了人脸的特征,而没有能够学习到自然界图片的特征;2)压缩后数据是有损的,这是因为在降维的过程中不可避免的要丢失掉信息;到了2012年,人们发现在卷积网络中使用自动编码器做逐层预训练可.原创 2021-08-28 20:33:45 · 419 阅读 · 0 评论 -
PyTorch 学习笔记(六):PyTorch的十八个损失函数
本文截取自《PyTorch 模型训练实用教程》,获取全文pdf请点击:tensor-yu/PyTorch_Tutorialgithub.com/tensor-yu/PyTorch_Tutorial版权声明:本文为博主原创文章,转载请附上博文链接!我们所说的优化,即优化网络权值使得损失函数值变小。但是,损失函数值变小是否能代表模型的分类/回归精度变高呢?那么多种损失函数,应该如何选择呢?请来了解PyTorch中给出的十七种损失函数吧。1.L1loss2.MSELoss3.CrossEntropyLoss4.转载 2021-08-28 19:40:03 · 780 阅读 · 0 评论 -
Python的namedtuple使用详解
Python的namedtuple使用详解namedtuple是继承自tuple的子类。namedtuple创建一个和tuple类似的对象,而且对象拥有可访问的属性。下面看个列子from collections import namedtuple# 定义一个namedtuple类型User,并包含name,sex和age属性。User = namedtuple('User', ['name', 'sex', 'age'])# 创建一个User对象user = User(name='kong原创 2021-08-27 18:13:12 · 158 阅读 · 0 评论 -
: Syntax error: “(“ unexpected .sh指令执行报错,改成bash执行
aistudio@jupyter-271421-2143129:~/DuEE$ sh run_duee_fin.sh data_prepare-e check and create directoryrun_duee_fin.sh: 14: run_duee_fin.sh: Syntax error: "(" unexpectedaistudio@jupyter-271421-2143129:~/DuEE$原创 2021-08-26 20:04:02 · 225 阅读 · 0 评论 -
linux 下 .sh 文件语法 shell脚本中$符号的意义
介绍:1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。当编写脚本完成时,如果要执行该脚本,还必须使其可执行。要使编写脚本可执行:编译 chmod +x filename 这样才能用./filename 来运行2 注释在进行shell编程时, 以#开头的句子表示注释,直到这一行的结束 。我们真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有原创 2021-08-26 19:13:00 · 2260 阅读 · 0 评论 -
KL距离简介
KL距离 全称: Kullback-Leibler差异(Kullback-Leibler divergence)又称: 相对熵(relative entropy)数学本质: 衡量相同事件空间里两个概率分布相对差距的测度定义: D ( p ...原创 2021-08-23 17:54:10 · 224 阅读 · 0 评论 -
Hugging Face各种任务使用简介
Hugging FaceNatural Language ProcessingBefore jumping into Transformer models, let’s do a quick overview of what natural language processing is and why we care about it.What is NLP?NLP is a field of linguistics and machine learning focused on understan原创 2021-08-21 12:27:52 · 849 阅读 · 0 评论 -
自然语言处理数据集(NLP Datasets)
收集了一些中文自然语言处理数据集地址,在此分享出来。后续会在github中不定时持续更新,欢迎Star。 任务型对话数据、文本分类、实体识别&词性标注、搜索匹配、推荐系统、百科数据、指代消歧、中文完形填空数据集、中华古诗词数据库、保险行业语料库、汉语拆字字...转载 2021-08-19 22:00:03 · 649 阅读 · 0 评论 -
除了pip手动安装相关的包文件
除了pip install之外,手动安装包的方式。直接clone下载最新的github的repo!git clone https://gitee.com/AI-Mart/PaddleNLP!cd PaddleNLP!python setup.py install这样即可安装原创 2021-08-19 12:49:05 · 298 阅读 · 0 评论 -
Byte Pair Encoding and WordPiece Model自词算法详解
昨天总结实验数据分析的时候发现一个机器翻译的其中的一个脚本,其中用到的算法就是BPE算法,刚开始感觉很高大上的,因为总是听到带上算法帽子的东西就觉得666。等自己好好研究研究,网上各种找资料才知道,其实还挺好理解的,所以真的应了那句老话,眼见为实呀。总说BPE,(byte pair encoder)字节对编码,也可以叫做digram coding双字母组合编码,主要目的是为了数据压缩,算法描述为字符串里频率最常见的一对字符被一个没有在这个字符中出现的字符代替的层层迭代过程。具体在下面描述。该算法首先原创 2021-08-18 17:32:00 · 1112 阅读 · 0 评论 -
CMU 刘鹏飞:NLP的第四范式
http://pretrain.nlpedia.ai/CMU 刘鹏飞:NLP的第四范式北京智源人工智能研究院已关注zibuyu9 等 34 人赞同了该文章近两年,基于预训练+精调的研究范式,迅速席卷了整个 NLP 领域。这种研究范式被大家普遍认同为是 NLP 研究的革命性范式,在此之前则有“专家系统”、“统计模型”和“神经网络模型”等。 而近期,随着技术的发展,NLP领域逐渐开始盛行一种新的研究范式:预训练 + 提示 + 预测(Pre-train, Prompt, Predict)。这种研究范式相比于之前转载 2021-08-18 10:46:14 · 1365 阅读 · 0 评论