MetaICL:Learning to Learn In Context

论文:[2110.15943] MetaICL: Learning to Learn In Context

Code:facebookresearch/MetaICL: An original implementation of “MetaICL Learning to Learn In Context” by Sewon Min, Mike Lewis, Luke Zettlemoyer and Hannaneh Hajishirzi

一句话概述:任务的数量和多样性+Instruction是元学习的最佳实践。

摘要:MetaICL 是一种新的元训练框架,用于小样本学习,其中预训练模型被微调以在大量训练任务上进行上下文学习。这种元训练使模型在测试时能够更有效地学习上下文中的新任务,方法是在不更新参数或不需要任务特定模板的情况下简单地调整几个训练示例。本文对 142 个 NLP 数据集组成的任务集合进行实验,包括 CLS、QA、NLI、释义检测等,跨越 7 个不同的元训练/目标拆分。结果比已有的 Baseline(如没有 Meta 训练的 In-Context 学习,多任务学习,零样本转移)要好。而且,对于具有从元训练任务进行域转移的目标任务,收益尤其显着,并且使用不同的元训练任务集是改进的关键。另外,MetaICL 接近(有时甚至超过)在目标任务训练数据上完全微调的模型的性能,并且优于具有近 8 倍参数的更大模型。

More

浅析文本分类——情感分析与自然语言处理

文本分类是自然语言处理(以下使用 NLP 简称)最基础核心的任务,或者换句话说,几乎所有的任务都是「分类」任务,或者涉及到「分类」这个概念。比如分词、词性标注、命名实体识别等序列标注任务其实就是 Token 粒度的分类;再比如文本生成其实也可以理解为 Token 粒度在整个词表上的分类任务。为何会如此?这篇分类与AI可能会给您带来一点启示。

本文篇幅较长,主要分为以下几个部分:

  • 背景介绍:主要简单介绍情感分析相关的概念、类型,并和文本分类任务对应。
  • 基本流程:主要介绍文本分类(或常见的 NLP 任务)基本处理流程。
  • 模型简史:主要介绍 NLP 处理任务中模型变迁的简单历史。
  • 情感未来:主要探讨未来情感分析可能的发展方向。

本文侧重于从宏观角度(历史演变和基本流程)对文本情感分类任务进行介绍,目的是给读者提供一个整体视角,从高远处审视情感分析、文本分类、甚至 NLP,期望能抛砖引玉,引发读者更多的思考。如果您想了解工业界的具体方案和进展,最后的《文献资料》部分有两篇来自淘系和美团的文章值得仔细研究。

本文同样适合对机器学习和深度学习稍微有一些了解的非算法岗位的工程师,或其他无技术背景但对 NLP 感兴趣的非工程师。

More

TensorBay 指南

Introduction

本篇文章主要介绍如何使用 Tensorbay 和 Tensorflow 进行简单的文本分类。

我们首先介绍 Tensorbay 相关使用,然后简单介绍 NLP 领域常用的分类模型:TextCNN,最后将所有的串起来完成一个简单的文本分类任务。

More

R-Drop

论文:[2106.14448] R-Drop: Regularized Dropout for Neural Networks

Code:dropreg/R-Drop

一句话概述:用 KL 散度作为损失的 SimCSE。

摘要:Dropout 是深度学习训练时广泛使用的正则化工具,本文提出 R-Drop,强迫不同 Dropout 模型(就是带 Dropout 的模型跑两次数据)的输出分布彼此保持一致。具体通过最小化两个输出的双向 KL 散度,R-Drop 降低了模型参数的自由度并补充了 Dropout,从而降低了模型的空间复杂度,增强了泛化能力。效果那自然也是非常不错的。

More

高性能数据处理

最近在写深度学习开源库时,遇到了读取语料并预处理的 API,于是趁此机会整理一下之前积累的关于高性能的内容。全文包括两个部分:第一部分主要聚焦在常用工具 Pandas 处理数据时不同操作方法的性能;第二部分主要介绍一些加速数值计算的工具;第三部分主要介绍一些能够辅助增加性能的工具。

如果懒得看过程,可以直接看结论:

  • 数值计算任务:numbaCython 加速;使用 .values 计算
  • 遍历的非数值计算任务:df.itertuplesdf.apply 方法
  • 数据太大 Pandas 处理不了的可以使用 Arrow 和 Polars,再不行了使用 Spark

所有测试代码在:Note_DS/Performance.ipynb

More

UniLM

论文:[1905.03197] Unified Language Model Pre-training for Natural Language Understanding and Generation

Code:microsoft/unilm: UniLM AI - Unified “Language” Model Pre-training across Tasks, Languages, and Modalities

一句话概述:一个通过参数共享训练多种语言模型以同时适应下游 NLU 和 NLG 微调的统一框架。

摘要:UniLM,统一的预训练语言模型,可以同时微调 NLU 和 NLG 任务。做法是使用三个不同类型的语言模型任务:单向、双向、Seq2Seq 预测。具体是使用一个共享的 Transformer 网络,并利用不同的 Self-Attention Mask 来控制预测基于哪些上下文。结果自然是很好(不,极好)的。

More

通过最优转移进行词表学习:VOLT

论文:[2012.15671] Vocabulary Learning via Optimal Transport for Machine Translation

Code:Jingjing-NLP/VOLT: Code for paper “Vocabulary Learning via Optimal Transport for Neural Machine Translation”

一句话概述:借鉴边际效用通过最优转移学习词表。

摘要:机器翻译词表影响性能,本文旨在弄清楚什么是好的词表,以及是否可以在不尝试训练的情况下找到最佳词表。为此,作者首先从信息论的视角提供对词表作用的另一种理解。受此启发,将词汇化的探索 —— 找到具有适当大小的最佳词表—— 作为最优转移问题。提出了 VOLT,一个简单有效的无须尝试训练的解决方案。实验结果表明,VOLT 在各种场景中优于广泛使用的词表。此外,与 BPE-search 相比,VOLT 将搜索时间从 384 GPU 小时减少到 30 GPU 小时。

More