深度学习
文章平均质量分 73
choose_c
总有人要赢,那为什么不是我。
展开
-
Milvus的索引方式
查询时,查询向量分端后与聚类中心计算距离,各段相加后即为最终距离。使用对称距离(聚类中心之前的距离)不需要计算直接查表,但是误差回更大一些。先对空间的点进行聚类,查询时先比较聚类中心距离,再找到最近的N个点。SQ8:对向量做标量量化,浮点数表示转为int型表示,4字节->1字节。IVF-SQ8:量化操作,disk cpu GPU 友好。IVF-FLAT:量化操作, 准确率和速度的平衡。HNSW:基于图的索引,高效搜索场景。IVF-PQ:快速,但是准确率降低。ANNOY:基于树的索引,高召回率。原创 2022-12-01 15:31:44 · 1321 阅读 · 1 评论 -
中文NER的SOTA:RICON
规律感知模块 span表征 用于实体类型的预测。规律判断模块 span上下文表征 判断是否是实体。原创 2022-08-09 21:34:41 · 505 阅读 · 0 评论 -
OOD论文:Revisit Overconfidence for OOD Detection
重新审视OOD检测的过度自信:基于自适应类相关阈值的重分配对比学习。原创 2022-08-09 21:14:04 · 1280 阅读 · 0 评论 -
利用ONNX runtime对transformer模型进行推理加速
利用ONNX runtime对transformer模型进行推理加速原创 2022-04-28 20:42:59 · 2320 阅读 · 8 评论 -
预训练模型语义相似性计算(九)--向量表示相关论文
对话文本中的向量表示以及对比学习相关的向量表示方法。原创 2022-04-28 20:29:12 · 482 阅读 · 0 评论 -
[译文]Faster and smaller quantized NLP with Hugging Face and ONNX Runtime
量化和蒸馏是处理这些尺寸和性能挑战的两种常用技术。这些技术是互补的,可以一起使用。在之前的一篇HuggingFace的博文中讲到了蒸馏。这里我们讨论量化,它可以很容易地应用于您的模型,而无需再训练。这项工作建立在我们之前分享的ONNX Runtime优化推理的基础上,可以为您提供额外的性能提升,以及在客户端设备上解除阻塞推理。翻译 2022-04-28 20:07:07 · 615 阅读 · 0 评论 -
[译文]Accelerate your NLP pipelines using Hugging Face Transformers and ONNX Runtime
我们将分享ONNX Runtime团队和HuggingFace如何合作,以解决和减少Transformer模型训练和部署中的这些挑战。这是一个简化训练并降低推断成本的解决方案。翻译 2022-04-28 19:45:21 · 1010 阅读 · 0 评论 -
预训练模型语义相似性计算(六)--cross-encoder
前面讲的各个语义相似性计算的模型,基本都是双塔的结构。双塔结构主要优点是相似性计算快速,这里指的快速不是模型单个数据的推理速度,而是在大量问句场景下的计算,比如相似问句的召回场景。因为双塔模型得到的其实是单个问句的表示,相似性的计算只是在最后做了简单的计算,最耗时的问句表示操作可以离线完成。而cross-encoder是在模型输入时进行了拼接输入,这样两个问句进行更深层的交互,相似句任务直接在模型中完成,而不单单是问句的语义表示模型。所以cross-encoder的相似计算效果也要明显优于双...原创 2022-04-22 16:43:03 · 5188 阅读 · 0 评论 -
预训练模型语义相似性计算(八)--AWS文本表示三连击
PariSupConTrans-EncoderVaSCL原创 2022-04-21 21:17:11 · 293 阅读 · 0 评论 -
Unified Named Entity Recognition as Word-Word Relation Classification
论文链接:Unified Named Entity Recognition as Word-Word Relation Classification code链接:https://github.com/ljynlp/W2NER.gitNER任务根据实体的情况可以分为扁平实体(flat ner)、嵌套实体(nested ner)、不连续实体(discontinuous ner)。如果实际的实体抽取场景中同时包含了上述三种实体,那...原创 2022-03-09 22:09:26 · 1816 阅读 · 4 评论 -
data2vec: A General Framework for Self-supervised Learning in Speech,Vision and Language
abstract 不同模态下的自监督学习的总体思想一致,但是在实际过程中的算法和目标却有很大的不同。 data2vec是一个语音、nlp、cv不同领域下通用的自监督学习框架。 其主要的思想是:在标准的Transformer结构下,对数据进行 mask 后,使用 自蒸馏 方法,预测 隐性表示。 该方法预测了整个输入的上下文隐性表示,而不同于在单模态下的预测某个单元(word、visual token、speech unit)的局部信息。 ps:首先目前来说transf...原创 2022-03-07 21:01:42 · 3456 阅读 · 0 评论 -
ner新的打开方式
ner目前主流的打开方式就是抽取器(lstm,cnn,transformer)+crf。今天介绍几种新的ner打开方式-prompt learning。prompt learning主要运用低资源场景下的ner,依靠预训练模型中通用的语言知识,能够应对数据少的ner场景。还有一个好处是可以做到持续学习,在新增实体label时,以前的模型需要重新训练,而prompt learning的方式可以通过构建相应template数据做到继续训练学习。1.LightNER 论文链接:...原创 2021-12-02 21:33:57 · 1015 阅读 · 0 评论 -
TENER: Adapting Transformer Encoder for Named Entity Recognition
Transformer编码器用于命名实体识别。原创 2021-12-02 20:56:36 · 799 阅读 · 0 评论 -
句法分析与语义依存分析
nlp中有很多基础的任务,如常用的中文自然语言处理工具LTP中支持了分词、词性、命名实体识别、 句法分析、语义角色标注、语义依存分析六种自然语言处理工具。其中,分词、词性、命名实体比较常见,这里不过多介绍。语义角色标注是一种浅层语义分析技术,以句子为单位,分析句子的谓词-论元结构。该任务输入通常是句子和该句子的谓语(目前end-to-end的方法不需要给出),找出谓语和它对应的论元结构。语义角色标注的相关论文介绍可以看这里。 句法分析...原创 2021-11-30 21:36:52 · 904 阅读 · 1 评论 -
keybert:基于bert模型的关键词抽取工具
github:https://github.com/MaartenGr/KeyBERTguides:https://maartengr.github.io/KeyBERT/guides/quickstart.html使用向量计算抽取关键词,只需要预训练模型,不需要额外模型训练。流程:1.没有提供分词功能,英文是空格分词,中文输入需要分完词输入。2.选择候选词:默认使用CountVectorizer进行候选词选择。3. model:默认方式,候选词向量和句向量的距离排序。 mmr:...原创 2021-08-07 12:24:54 · 3467 阅读 · 0 评论 -
Tokenizer总结
Introduciton transformer类型的预训练模型层出不穷,其中的tokenizer方法作为一个非常重要的模块也出现了一些方法。本文对tokenizer方法做一些总结。参考来自hunggingface。 tokenizer在中文中叫做分词器,就是将句子分成一个个小的词块(token),生成一个词表,并通过模型学习到更好的表示。其中词表的大小和token的长短是很关键的因素,两者需要进行权衡,token太长,则它的表示也能更容易学习到,相应的词表也会变小;to...原创 2021-08-02 22:25:00 · 11053 阅读 · 0 评论 -
论文阅读 CLINE:Contrastive Learning with Semantic Negative Examples for Natural Language Understanding
文章来自清华大学和腾讯AI实验室,中文题目为自然语言理解的语义负样本对比学习。首先还是最近比较热的对比学习,重点关注在语义负样本的构建上。预训练模型虽然有很强的语义表征的能力,但是还是容易受到简单扰动的影响。最近的工作提高预训练模型鲁棒性的方法主要是对抗训练(使用经过扰动后的相近语义样本,而忽略了不同或者是相反样本)。nlp领域 文本的不连续性,使得局部个别字符变化可能造成语义的重大改变。文章经过实验发现,对抗学习对于语义变化情况无效甚至更差。 所以文...原创 2021-07-29 21:43:03 · 842 阅读 · 0 评论 -
使用huggingface 领域数据适配预训练
如果自己有一批数据,想要使用预训练模型再进行领域数据的适配,可以使用huggingface中的run_mlm.py进行训练。 最近在训练的时候遇到一个问题:训练的时候GPU占用上升导致out of memory。 详细问题描述:pytorch 使用 transoformers(version=4.8.2)中 run_mlm.py 进行垂直领域数据适配预训练的时候;GPU显存占用量慢慢上升,但是并不是一直在升,隔几百个step之后会有一个量(1G)的上升并稳...原创 2021-07-22 23:43:48 · 1106 阅读 · 1 评论 -
学习一下对比学习
由于在做一些语义相似的工作,其中看了陈丹奇组的SimCSE使用了对比学习刷新了有监督和无监督的SOTA,自己也在做一些相关的下游任务的实验,其中就使用了图像和nlp都非常火的对比学习的方法,看了一下张俊林大神知乎对于对比学习的研究进展精要,讲的还是一如既往的清晰易懂。还是做一下搬运工,做一下自己的提炼记录。对比学习分类 对比学习是无监督学习中自监督学习中的一种,其中NLP中的预训练模型MLM就是自监督学习(使用辅助任务挖掘无监督语料自身的监督信息)。图像中的自监督分为两...原创 2021-07-20 09:07:30 · 1697 阅读 · 1 评论 -
预训练模型语义相似性计算(五)--poly-encoder
bi-encoder(SBERT)和cross-encoder两种模型架构都有各自的优缺点,FAIR在ICLR2020上提出的这个poly-encoder的架构集成了两者的优点,并且避免了缺点。poly-encoder的架构图如下: poly-encoder的架构其实很简单,对contexr-query向量进行再一次编码生成m个向量表示,再与candidate-query进行attention计算得到最后的相似表示。bi-encoder在表示的缺点是两个query在经...原创 2021-06-27 12:27:22 · 955 阅读 · 0 评论 -
预训练模型语义相似性计算(四)--SimCSE
接着之前的句向量表示模型进行相似句计算的方法,这篇接着介绍一种新的方法-SimCSE。文章来自普林斯顿陈丹琦,引入了对比学习的原创 2021-06-15 23:03:26 · 2544 阅读 · 0 评论 -
NLP中数据增强综述
目录摘要介绍背景 什么是数据增强 目标和权衡 DA的解释技术和方法 基于规则 基于插值 基于模型应用 小资源语言 性别偏见 类别不平衡 少样本学习 对抗样本任务 摘要 问答 序列标注 解析任务 语法纠错 机器翻译 数据-文本生成 开放域和有条件生成 对话 多模态任务挑...原创 2021-05-23 16:02:17 · 1558 阅读 · 0 评论 -
RuntimeError: Already borrowed
问题:之前写的SBERT模型接口部署上线后最近报了RuntimeError: Already borrowed的错误,在这里记录下。现象:具体的报错如下: File "/home/XXXX/XXX/src/sentence_proc.py", line 77, in compute_sentence_vectors sentences = self.tokenizer(sentences, padding='max_length', truncation=True, max_length=...原创 2021-05-11 21:02:34 · 1936 阅读 · 2 评论 -
会话语义角色标注:Conversational Semantic Role Labeling
摘要: SRL任务是捕捉句子中每个谓词的论元。传统的SRL不能分析对话,因为它只能分析单个句子,而省略和回指经常发生在会话中。目前的SRL都是句子级别的,文章提出会话SRL任务,论元可以是会话参与者,出现在当前句子或者会话历史中。介绍: 省略和回指是对话理解中的一个大问题。省略是前文的简略,回指则是避免重复前文的替代。SRL是很多自然语言理解工具包中的语义分析工具。但是传统的SRL只能处理单个句子,不能捕捉多轮会话任务中信息。解决上面问题的方法一般是在SRL前重...原创 2021-04-19 18:58:09 · 545 阅读 · 0 评论 -
通用的预训练模型:All NLP Tasks Are Generation Tasks: A General Pre-training Framework
最近在arxiv上又看到了一篇论文,出自清华大学。题目为:All NLP Tasks Are Generation Tasks: A General Pretraining Framework。0.摘要NLP任务分为分类或者说是阅读理解任务(NLU)、无条件生成任务、有条件生成任务;预训练模型分为自编码、自回归、编码解码。三种训练模型分别在前面三种任务中表现良好。本文中提出一个通用的预训练模型,在三种任务中都能做到良好表现。 ...原创 2021-03-26 19:44:44 · 1741 阅读 · 0 评论 -
生成又快又好的对话回复:An Emotion-controlled Dialog Response Generation Model with Dynamic Vocabulary
昨天在arXiv上看到更新的一篇论文,关于对话的生成,出自阿里巴巴团队。文章目的是通过情绪控制和动态词汇表生成又快又好的对话恢复。 直接上模型结构图: 文章由一下几个部分组成: 1,情绪匹配;通过对问题和回复之间的情绪映射信息对回复进行控制,用到的模型是2018年ACL的一篇分类模型(LEAM)的思想,在之前的博客中也有提到,是将标签信息融入文本分类中,将标签和输入词表映射到同一分布空间,之前也记录了一些利用标签信息...原创 2021-03-06 11:20:50 · 243 阅读 · 0 评论 -
预训练模型语义相似性计算(三)--simbert
最近有在做一个相似句的任务,使用的SetenceBERT模型,对模型进行了一些参数的调优和BERT-flow方向的实验测试。今天介绍的simbert是结合了检索和文本生成的模型,这个是在看文本增强时看到的方法,但是又是可以进行相似句计算的,所以想记录一下。 使用BERT模型进行文本增强的思路有两种:1.对输入进行MASK后,输入BERT后进行补全;2.生成方式。 MASK补全的方法在中文中有一个问题就是BERT是字符级别的,所以MASK的单位也是字符单位的...原创 2021-02-28 14:50:19 · 3611 阅读 · 0 评论 -
文本分类中标签的应用trick总结
最近看到一篇博文是讲AAAI2021的论文:Label Confusion Learning to Enhance Text Classification Models 利用标签之间的混淆关系,提升文本分类效果。文中讲到文本分类的主流方法是使用复杂的模型进行文本表示,而使用简单的分类层预测类别分布。更多的研究工作集中于第一步,这其中会有一些问题: 1. one-hot 的 label 表示假设标签之间是独立的,假设太强,忽略了标签之间的相互...原创 2021-02-23 22:11:42 · 517 阅读 · 0 评论 -
预训练模型语义相似性计算(二)--BERT-flow
SBERT的缺点和留下的疑问: 1.需要监督语料。 微调时间不久,但是对语料质量还是有要求的。 2.为什么bert句向量cosine不能用做相似性计算? i.没有学到语义相似性信息? ii.cosine无法刻画相似度?BERT-flow: 训练到的句向量应该是包含了语义相似性信息。因为训练目标和相似性计算目标是一致的。 所以原因应该是 ii.cosine不能很好刻画相似性。 ...原创 2021-02-22 22:18:46 · 1317 阅读 · 0 评论 -
预训练模型语义相似性计算(一)--SBERT
将预训练BERT迁移到文本语义相似性思路: 1.交互编码(cross-encoder)。文本拼接后进行微调。 缺点非常耗时; 2.向量空间模型 进行无监督训练,使用BERT模型的输出的cls向量,最后一层或几层的hidden state(avg),一般后者效果好。 效果不如glove 3.SBERT 使用孪生网络,加快推理。SBERT: 时间消耗:每个句子生成句向量+cosine的计算; 预训练模型的选择:BERT...原创 2021-02-22 21:20:39 · 2829 阅读 · 3 评论 -
SBERT实验详情
1.模型介绍a.预训练模型: Electra-small 在180G中文数据下pre-trainning模型; 使用Transformers加载"hfl/chinese-electra-180g-small-generator"语言模型。b.模型结构:A、B两个句子,分别过同一个Electra-small模型。 分别得到句向量表示,Seq_A_vector、Seq_B_vector。 两个向量进行拼接,[Seq_A_vector, Seq_B_vector],拼接成一个向...原创 2021-02-22 21:18:57 · 2605 阅读 · 1 评论 -
花书中深度模型的优化
1.随机梯度下降随机梯度下降(SGD)很可能是一般机器学习中应用最多的优化算法。学习率是SGD中的一个重要的参数,在实践中,有必要随着训练时间的推移逐渐降低;但是在批量梯度下降时,由于整个代价函数会降到0,所以批量梯度下降可以使用固定的学习率。SGD中学习率的选择是与其说是科学不如说是一门艺术。优化效果和收敛率是优化算法两个重要的指标。2.动量3.自适应算法4.参数初始化5.。。。。...原创 2020-11-15 13:56:56 · 105 阅读 · 0 评论 -
花书中dropout的介绍
Dropout dropout可以被认为是继承大量深层神经网络的使用bagging方法。bagging需要训练多个模型,如果每个模型都是很大的神经网络的话是不切实际的。dropout的目标是在指数级数量的神经网络上近似bagging过程。bagging和dropout的差异 训练不太一样,bagging的训练,所有的模型都是独立的;在dropout中所有模型共享参数,每个模型继承大神经网络参数的不同子集(共享参数也使得每个子模型都有很好的参数设定)。其他两者之间没有太多区别,训练中遇...原创 2020-11-07 10:35:33 · 311 阅读 · 0 评论