自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 【DIN-SQL】Decomposed In-Context Learning of Text-to-SQL with Self-Correction 论文阅读

DIN-SQL to solve text-to-SQL

2024-05-12 16:27:10 952

原创 在lmkj的这一年

To-B,永远都绕不过去的是私有化,因为数据不能出域,并且不能使用闭源的模型,所以尝试了私有化模型对GPT的平替,即私有化模型+DIN-SQL,结果是惨淡的,试过的所有的开源模型,都败下阵来,平替效果都是10%都不到,所以就只有选用开源模型的微调。这个时候就进入到了驻场阶段了,在xj的一期,总体是忙碌并且是成长的阶段,我负责的微调,其它同学负责的数据生成,最终在1个半月之后,总算经受住考验,完成了验收,当然或多或少还是有些遗憾,有很多想做的尝试,并没有完成。在选项中,我选择了个人感觉,相对较难的。

2024-05-03 18:11:57 243

原创 应用深度学习(三)

语言模型1,RNN,梯度消失与爆炸,?BPTT?

2022-09-13 23:44:59 295

原创 应用深度学习(二)

搞懂反向传播计算公式与推导

2022-09-12 23:09:28 358

原创 应用深度学习(一)

应用深度学习一

2022-09-11 23:13:31 278

原创 TODO 和 感想

TODO List、感想

2022-09-09 22:08:35 156

原创 动态学习函数和优化器保存方式

保存类或者模型时,个人比较懒,不太喜欢那种save model.state_dict, load_state_dict 的方式,尤其对于后续不太会修改的类和模型时,就喜欢野蛮粗暴的torch.save(model or class, fw), torch.load(model or class),现在需要在保存模型的时候,把step,优化器状态和学习率的状态都保存下来,代码如下: if args.local_rank == args.calc_rank: ### 测试是否可以保存

2022-04-26 20:29:31 256

原创 模型之T5,UniLM,MASS,GPT

公司项目上有个文本生成的任务,难度比较大,花了相对不短的时间去熟悉这些模型,当然也没话太久,大概也就是读了下论文,以及网友们的一些介绍,现在记录总结下,后续应该会去阅读以及改写相关源码,便于做预训练以及fine-tune。T5(text-to-text transfer transformer)论文地址万物皆可text的感觉,先看一下下面的图:在上图中,包含了四个人物,机器翻译、文本分类、相似度得分、文本生成。个人感觉T5主要是作者依托公司强大的计算能力,进行各种各样的对比实验,得出一系列的结论。

2022-01-17 15:49:35 1886 1

原创 etree获取html中相关数据

这段时间做了一些通过网络搜索获取相关信息的事情,实质就是通过搜索词语、短语,获得包含这些词语短语的句子,将句子用于模型的增量学习;目前使用的搜索网页是bing(因为百度搜索结果很多是百家号,然后程序访问百家号网页会要求人工验证),搜索出来的网页使用etree进行构建,并搜索;目前获取到的用法有:1. 构建etreefrom lxml import etreepage = etree.HTML(text)text: 也可以为其中的某个元素对应的str,并不一定完整需要html2. 查找数据#

2022-01-11 19:41:30 2712

原创 深度学习的优化器学习(一)---梯度下降算法

之前的状态是只对优化器有个大概的了解,但是深入的细节原理不是太清楚,目前项目中也因此遇到了一定瓶颈,遂决定过一遍优化器的原理,以确保后续能选取更好的优化器算法和优化器参数来提高算法的性能。梯度下降算法:批梯度下降BGD(batch gradient descent)随机梯度下降SGD(stochastic gradient descent)小批梯度下降MBGD(Mini-batch gradient descent)1. BGD每次用全部的数据样本计算loss,在进行梯度下降,公式为:θ=

2021-07-05 14:41:34 210

原创 bert源码家族系列之bert源码解读

没啥解释的,之前写过的一篇,再次回顾之后,发现之前在似懂非懂的情况下写的,貌似还行,那就之前贴过来了,后续有其它的感悟,再来补充:bert详解(一)----预训练源码

2021-04-25 11:02:02 128

原创 bert家族系列之bert

接着公司项目相对没有那么忙的空档,梳理一下相关的文档,便于后续的回顾与学习。BERT: Bidirectional Encoder Representation from Transformers有一种说法,NLP任务分成两部分,预训练产生词(字)向量和对词向量进行操作;体现在的bert中就是预训练网络作为产生词向量的网络,然后fine-tune就是对词向量操作(NLP的下游任务)一、预训练网络1. 词向量模型:词向量的进化史,是从word2vec—> ELMo ----> BERT

2021-04-23 11:42:19 234

原创 菜鸟面试官

2021年4月12日朴素贝叶斯的朴素在哪?为什么要引入?朴素在于假设计算条件概率分布P,在Y确定的时候,X的各个分量之间相互独立,但是这个假设在现实生活中往往不成立;那为什么引入呢,这个在于前置的特征选择,需要选取特征间相关性较低的;如果满足这个前置特征,就可以引入计算,计算的优势是速度比较快,可解释性强;P(X|Y)=0的时候怎么办?采用贝叶斯估计,拉普拉斯平滑介绍一下SVM?SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。当训练数据线性可分时,通过

2021-04-12 16:39:42 107

原创 python 多线程,真没啥用---那就多进程吧

文章:Python辣鸡,Python多线程不能并行?结论:多线程并没有什么用处文章:Python3多进程共享变量实现方法python并发编程之多进程(实践篇)结论: 多进程还是有用的;注意共享变量(变量会改变)加锁的方式采用传入参数,变量不会改变(只读)可采用global的方式关于协程:next(g) : StopIteration异常,可采用try: a = next(g) ######## todo##########except StopIteration: pass

2021-01-18 14:47:24 110

原创 tricks

记录一下tricks:20200106 添加为了避免出现unreachable类似的错误,最好不要使用a= 算式中有a的运算,尤其是直接更改赋值的,尽量使用mask来变化a,a = a * mask,而不是a = a[~(mask!=0)]model.to(device),对于model中嵌套的模型model_2,在初始化的时候,或者其它的时候,需要执行model_2.to(device),不然会出现two devices的错误。np.append消耗内存又耗时,最好...

2021-01-06 20:02:47 78

原创 知识图谱摘录

选自:知识图谱研究进展漆老师博客知识图谱构建a. 知识获取实体识别的两种方法(知识库和ner),别名和简称使用同义词表。nlp技术可能会用到分词,词性标注以及分布式表达(词向量),同时为了得到不同粒度的知识还可能需要使用提取文中的关键词,来得到文章的潜在主题;也会用句法结构、依存分析和语义解析来获取实体间的关系;在处理半结构化数据方面,主要的工作是通过包装器学习半结构化数据的抽取规则。由于半结构化数据具有大量的重复性的结构,因此对数据进行少量的标注,可以让机器学出一定的规则进而在整个站点下使

2020-12-29 12:04:16 111

原创 albert笔记

学习的目的是跟tinybert类似,是为了模型的压缩和加速;论文:ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONSalbert与bert对比:词嵌入矩阵压缩加速;在bert中word_embeding为了适配encoder操作,使用的[vocab_size, hidden_size]作为的转化矩阵,每当隐层的大小扩大时,词嵌入模型的转化矩阵跟着扩大,且vocab_size是一个较大的数字,所以那

2020-12-15 15:10:49 160

原创 tinybert个人笔记

论文TinyBERT: Distilling BERT for Natural Language Understanding基于transformer模型的两段式学习框架general distillationteacher model: 原始的bert模型(没有进行fine-tuning)student model: 常规的tinybert 在常规领域的语料task-specific distillation首先做数据增强(data augmentation)teacher model:

2020-12-07 12:02:46 802

转载 bert模型加速

加速 BERT 模型有多少种方法?从架构优化、模型压缩到模型蒸馏,最新进展详解! - AI研习社的文章 - 知乎方法:架构改进:将原有的架构改进为更快的架构,例如,将 RNN 替换为 Transformer或CNN;使用需要较少计算的层等。当然也可以采用其他优化,例如从学习率和策略、预热步数,较大的批处理大小等;模型压缩:通常使用量化和修剪来完成,从而能够在架构不变(或者大部分架构不变)的情况下减少计算总量;模型蒸馏:训练一个较小的模型,该模型能够复制原始模型的行为。...

2020-12-01 11:40:14 514 1

原创 NER----ysinfoext(一)

确定下来的模型是bert + bi-lstm + crf使用bi-lstm的原因是跟位置信息有关,bert的Positional Encoding只能表达绝对位置信息,不能完全表达相对位置,根据二者的计算公式只能得到相对距离,但是无法表示方向性。对应的文章链接: 浅谈 Transformer-based 模型中的位置表示关于crf层,损失函数的定义与转化,从而得到相对应的递推公式:递推公式:对应链接为: crf层介绍–CRF Layer on the Top of BiLSTM...

2020-11-26 16:30:15 78

原创 pytorch踩坑记录

链接一:inplace的操作的坑解决方式: .data出现inplace后,叶子节点变为非叶子节点

2020-11-18 15:22:55 140

转载 非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)

普通用户不使用sudo安装多个版本CUDA和cuDNN 确定安装的软件版本下载CUDA Toolkit下载cuDNN安装CUDA配置cuDNN配置用户环境变量安装多个版本的CUDA参考链接: 注:本文中服务器目录结构解释如下: 用户名为zb, 目录 /home/zb/cuda/用于存放不同的cuda版本,每安装一个版本的CUDA就在该目录下新建一个文件夹,如cuda-8.0,并安装在相应的目录下, 安装包下载到 /home/zb/cuda/ 目录下,安装完成后就删除安装包, 目录 /...

2020-11-12 10:08:27 652 1

原创 bert实践2---NER

数据集:2014人民日报.zip源码:https://github.com/circlePi/Bert_Chinese_Ner_pytorch# B_PER代表人名的开头,B_T代表时间的开头,B_ORG代表组织的开头,B_LOC代表位置的开头# I_*代表不是开头的中间词语,O是标签,无意义labels = ["B_PER", "I_PER", "B_T", "I_T", "B_ORG", "I_ORG", "B_LOC", "I_LOC", "O"]使用BERT得到len(label)的输出

2020-09-22 12:37:46 883

原创 bert实践1---情感分析

数据来源: 微博,网上下载的格式:前面的是label,后面的是内容数据预处理:没有做预处理,应该去掉转述别人的内容,只保留自己的。构建平行语料def get_data(): pd_all = pd.read_csv("weibo_senti_100k.csv") print('评论数目(总体):%d' % pd_all.shape[0]) print('评论数目(正向):%d' % pd_all[pd_all.label==1].shape[0]) print('评论数目(负向):

2020-09-20 18:12:10 936

原创 bert详解(一)----预训练源码

参考论文:Attention Is All You Need参考论文:BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding源码地址:BERT-pytorch介绍,源码主要完成了bert预训练的两个TASKMasked LM(Masked Language Model)一个句子中每个词有15%的概率会被选中进行设置,设置的规则有三种:80%的概率设置为[MASK]用于学习10%的概率设

2020-09-17 16:05:50 3014 1

转载 【转载】一文读懂BERT(原理篇)

一文读懂BERT(原理篇)2018年的10月11日,Google发布的论文《Pre-training of Deep Bidirectional Transformers for Language Understanding》,成功在 11 项 NLP 任务中取得 state of the art 的结果,赢得自然语言处理学界的一片赞誉之声。本文是对近期关于BERT论文、相关文章、代码进行学习后的知识梳理,仅为自己学习交...

2020-09-14 16:56:17 683

原创 word2vec

重新整理一下word2vec,也回顾一下,为面试做准备,不过也有些新的收获。1 CBOW设置window_size,根据前后[-windown_size, window_size]大小的单词去推测中心词。结构大概是:2.skip_gram可以理解为CBOW的逆操作,根据中心词去预测它周围的词。结构大致为:训练方法为:层次softmax与负例采样CBOW用于数据集相对较少的,数据集较多的一般使用skip_gram,关于数学公式的理论推导见cs224n的课程:cs224n 第二讲cs224

2020-09-12 00:39:02 191

原创 摘要,Pointer-Generator Networks

参考论文:Get To The Point: Summarization with Pointer-Generator Networks参考代码:atulkum/pointer_summarizer使用的模型是seq2seq + attention,也就是前面有提到的做翻译的模型,之前写的有些问题,也是由于自己不太理解吧;现在结合这个代码,再来重新梳理一遍。baseline model(不加attention 和 Pointer-Generator Networks)介绍:encoder是双向

2020-07-01 00:12:31 204

原创 Seq2Seq + Attention

Seq2Seq原理Seq2Seq指输入是一个序列,输出也是一个序列;输入的序列是将不同的长度的数据转化为等长的向量表示,然后输出也是将不同长度的序列用等长的向量表示,又叫做encoder-decoder,encoder和decoder都是RNN模型,首先利用输入序列,使用最后的隐状态作为decoder的初始隐状态和输入相关的状态带入,然后再decoder中得到最终的输出。为什么要加入Attention时间过长,即序列的长度较长的时候,会引起梯度消散的结果,此时引入注意力模型为了记住更好的效果。S.

2020-06-14 00:44:50 294 2

原创 基于统计的机器翻译(SMT)

1 中文数据预处理a. 中文分词预处理b. 用正则表达式,对特殊类型进行泛化,比如:数字,时间,日期,网址等等c. 组织机构的名词不捆绑,为了信息抽取更方便,比如同济大学土木工程学院拆分成"同济大学"和"土木工程学院"更合理2 英语数据预处理a. 将所有的大写字母改为小写b. 将符号与单词用空格隔开c. 与1中b处理一样Note:还有全角字符转化成半角字符,同一类型泛化名字最好一致等等Ext 1: 中文分词结巴分词(直接分析源码吧):jieba.cut(sel.

2020-06-03 16:28:24 2416

原创 cs224n-第十课 机器翻译(SMT,NMT)

机器翻译模型1 Statistical Machine Translation(SMT)SMT是基于统计的机器翻译:假设模型是中文—> 英语,给定中文句子x,为了找到最匹配的英语句子y,定义目标函数:argmaxyP(y∣x)argmax_yP(y|x)argmaxy​P(y∣x)根据Bayes规则,将目标函数转化为如下函数:argmaxyP(x∣y)P(y)argmax_yP(x|y)P(y)argmaxy​P(x∣y)P(y)对齐的规则(一对多,或者,多对一),计算太复杂,y的

2020-05-31 18:59:09 1853

原创 cs224n-第9课(GRU-LSTM)

1 GRU (Gated Recurrent Unit)更新门(update gate):zt=δ(W(z)xt+U(z)ht−1)z_t=\delta(W^{(z)}x_t+U^{(z)}h_{t-1})zt​=δ(W(z)xt​+U(z)ht−1​)重置门(reset gate):rz=δ(W(r)xt+U(r)ht−1)r_z=\delta(W^{(r)}x_t+U^{(r)}h_{t-1})rz​=δ(W(r)xt​+U(r)ht−1​)记忆门(new memory state):..

2020-05-31 15:21:35 217

原创 cs224n-第8课(RNN与语言模型)(附简单代码)

RNN的优缺点:优点:可以处理任意长度的输入步骤t的计算(理论上)可以利用到之前的信息模型大小不会随着输入的增加而增加在每个时间步上应用相同的权重,处理输入时有对称性缺点:递归计算速度慢在实践中,很难从许多步骤前返回信息RNN模型介绍:ht=δ(W(hh)ht−1+Whxxt)h_t=\delta(W^{(hh)}h_{t-1}+W^{hx}x_t)ht​=δ(W(hh)ht−1​+Whxxt​)y^t=softmax(W(s)ht)\hat{y}_t=softmax

2020-05-30 14:32:33 480

原创 cs224n-第六课 依存分析(Dependency Parsing)

标记一下吧,只了解一个大概,后续用到了或者需要更深的理解,再来补!

2020-05-24 17:05:30 235

原创 cs224n-第4课 window classification, Nerual network

1. 交叉熵损失(Cross-Entroy loss)信息论中的概念,衡量两个概率分布间的差异性信息。我们假设真实概率为p,程序模型计算的概率为q,类别总数为C,那么交叉熵为:H(p,q)=−∑c=1Cp(c)log⁡q(c)H(p,q)=-\sum_{c=1}^{C}p(c)\log q(c)H(p,q)=−c=1∑C​p(c)logq(c)当p是groud truth的概率分布时,此时p=[0,…,0,1,0,…0],即为one-hot向量,因为其它的p©=0,所以只需要计算p©=1的即可。

2020-05-20 16:14:07 183

原创 cs224n-第二课-word2vec

1.one-hot编码为了机器更加方便的计算,将字或者词转化为向量进行计算更加方便,机器也能更好的识别。使用one-hot编码,one-hot的编码的意思是:字典库中有n个词,每个词都有一个对应的向量,向量的维度为1*n,第2个词的向量为[0,1,0,……,0]T[0,1,0,……,0]^T[0,1,0,……,0]T,同理第三个词的向量为[0,0,1,……,0]T[0,0,1,……,0]^T[0...

2020-03-25 21:58:35 264 2

原创 决策树

1.信息熵含义:代表不纯度,信息熵越大不纯度越高;表达式:Ent(D)=−∑k=1mPklog⁡2PkEnt(D)=-\sum_{k=1}^{m}P_k \log _2P_k Ent(D)=−k=1∑m​Pk​log2​Pk​PkP_kPk​表示类别的概率2. 信息增益ID3决策树使用信息增益,在选取最具代表性的属性时使用;信息增益表达式:info(Dv)=Ent(D)−∑i=1v∣D...

2020-03-02 00:15:13 112

原创 回归

1.线性回归代价函数:J(θ)=12m∑i=1m(hθ(xi)−yi)2J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^i)-y^i)^2J(θ)=2m1​i=1∑m​(hθ​(xi)−yi)2正则化后为:J(θ)=12m∑i=1m(hθ(xi)−yi)2+λ2n∑j=1nθj2J(\theta)=\frac{1}{2m}\sum_{i=1}^m(...

2020-03-01 18:35:35 95

空空如也

空空如也

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

TA关注的人

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