主页

Hugging Face 的 Transformers 库快速入门(二):模型与分词器

在上一篇文章《开箱即用的 pipelines》中,我们通过 Transformers 库提供的 pipeline 函数展示了 Transformers 库能够完成哪些 NLP 任务,以及这些 pipelines 背后的工作原理。 本文将深入介绍 Transformers 库中的两个重要组件:模型(Models 类)和分词器(Tokenizers 类)。 1. 模型 在之前介绍 pipeline 模型时,我们使用 AutoModel 类根据 checkpoint 名称自动加载模型。当然,我们也可以直接使用对应的 Model 类。例如加载 BERT 模型(包括采用 BERT 结构的其他模型): from transformers import BertModel model = ...

阅读更多

Hugging Face 的 Transformers 库快速入门(一):开箱即用的 pipelines

Transformers 是由 Hugging Face 开发的一个 NLP 包,支持加载目前绝大部分的预训练模型。随着 BERT、GPT 等大规模语言模型的兴起,越来越多的公司和研究者采用 Transformers 库来构建 NLP 应用,因此熟悉 Transformers 库的使用方法很有必要。 注:本系列教程只专注于处理文本模态,多模态方法请查阅相关文档。 1. 开箱即用的 pipelines Transformers 库将目前的 NLP 任务归纳为几下几类: 文本分类:例如情感分析、句子对关系判断等; 对文本中的词语进行分类:例如词性标注 (POS)、命名实体识别 (NER) 等; 文本生成:例如填充预设的模板 (prompt)、预测文本中被遮掩掉...

阅读更多

使用 Keras 实现 Transformer 模型

自从 2017 年 Google《Attention is All You Need》一文发布后,各种基于 Multi-Head Attention 的方法和模型层出不穷,文中提出的 Transformer 模型更是成为了自然语言处理 (NLP) 领域的标配。尤其是 2019 年在 NAACL 上正式发布的 BERT 模型,在一系列任务上都取得了优异的性能表现,将 Transformer 模型的热度推上了又一个高峰。 目前大部分的研究者都直接使用已有的 Python 包来进行实验(例如适用于 PyTorch 框架的 Transformers,以及适用于 Keras 框架的 bert4keras),这固然很方便,但是并不利于深入理解模型结构,尤其是对于 NLP 研究领域的入门者。 本...

阅读更多

分类任务中的类别不平衡问题(下):实践

在上一篇《分类任务中的类别不平衡问题(上):理论》中,我们介绍了几种常用的过采样法 (SMOTE、ADASYN 等)与欠采样法(EasyEnsemble、NearMiss 等)。正所谓“纸上得来终觉浅,绝知此事要躬行”,说了这么多,我们也该亲自上手编写代码来实践一下了。 下面我们使用之前介绍的 imbalanced-learn 库来进行实验。 准备阶段 为了方便地进行实验,我们首先通过 sklearn 提供的 make_classification 函数来构建随机数据集: from sklearn.datasets import make_classification def create_dataset( n_samples=1000, weights=(0...

阅读更多

分类任务中的类别不平衡问题(上):理论

什么是类别不平衡 大部分的分类模型都会假设不同类别的训练样例数目相当,但在实际运用中,经常会遇到不同类别的训练样例数目差别很大的情况(例如有 998 个负例,正例却只有 2 个),这时模型只需永远判定为数量最多的那个类别,就能达到很高的精度,这会对学习过程造成困扰。 分类任务中这种不同类别的训练样例数目差别很大的情况就被称为类别不平衡 (class imbalance)。不失一般性,下面都假定正例样本较少,负例样本较多。 再缩放 从线性分类器的角度很容易理解,在我们用 $y=\boldsymbol{w}^\top\boldsymbol{x}+b$ 对样本 $\boldsymbol{x}$ 进行分类时,实际上是在用预测出的 $y$ 与一个阈值进行比较,例如通常 $y \gt 0....

阅读更多

中国新左三十年,“国师”的三重嬗变

转载自端传媒《【重磅】中国新左三十年,“国师”的三重嬗变》,作者:韩大狗 近几个月来,一部分中国学者在网络上的论断不断吸引着人们的眼球。从表示“月收入2000人民币的中国居民,比月收入3000美元的美国居民过得好”的经济学者陈平,到发布“中国点火vs印度点火”微博嘲讽印度疫情的政治学者沈逸,都因为长期发布出格言论而成为网络红人。最近期的例子,则是中国人民大学的金灿荣,他将不久前河南省发生的暴雨和洪灾与美国的“气象武器”扯上了似是而非的联系。 在两个月前的一篇文章中,我曾经谈到过,现今知识经济的一个重要特征,是知识平台的娱乐经纪化,如观察者网、乃至微博等内容平台,纷纷转型为学者的经纪公司,以娱乐圈造星为模板,孵化学者网红,依靠不断出位吸引流量。这些学者的出位言论,看似异军突起、无根...

阅读更多

R-Drop: Regularized Dropout

转载自《又是Dropout两次!这次它做到了有监督任务的SOTA》,作者:苏剑林,部分内容有修改。 关注 NLP 新进展的读者,想必对四月份发布的 SimCSE 印象颇深,它通过简单的“Dropout两次”来构造正样本进行对比学习,达到了无监督语义相似度任务的全面 SOTA。无独有偶,最近的论文《R-Drop: Regularized Dropout for Neural Networks》提出了 R-Drop,它将“Dropout 两次”的思想用到了有监督任务中,每个实验结果几乎都取得了明显的提升。此外,笔者在自己的实验还发现,它在半监督任务上也能有不俗的表现。 小小的“Dropout 两次”,居然跑出了“五项全能”的感觉,不得不令人惊讶。本文来介绍一下 R-Drop,并分享一...

阅读更多

UniVAE:基于 Transformer 的单模型、多尺度的 VAE 模型

转载自《UniVAE:基于Transformer的单模型、多尺度的VAE模型》,作者:苏剑林,部分内容有修改。 大家都知道,Transformer 的 $\mathscr{O}(n^2)$ 复杂度是它的“硬伤”之一。不过凡事有弊亦有利,$\mathscr{O}(n^2)$ 的复杂度也为 Transformer 带来很大的折腾空间,我们可以灵活地定制不同的 attention mask,来设计出不同用途的 Transformer 模型来,比如 UniLM、K-BERT 等。 本文介绍笔者构思的一个能用于文本的 UniVAE 模型,它沿用类似 UniLM 的思路,将 VAE 做到了一个 Transformer 模型里边,并且还具备多尺度特性~ UniAE VAE (Variati...

阅读更多