Fairseq框架学习(一)Fairseq 安装与使用

最近在学习与使用Fairseq框架时,发现关于Fairseq框架的资料着实比较少,且资料略微有些晦涩难懂,所以就想用源码结合实例,用最直接的方式介绍关于Fairseq的使用,希望能对刚入门的同学有一些小小的帮助😁

目前也有其他一些NLP框架,比如HuggingfaceAllennlpTexar等。在实际编码过程中,也需要简单了解其他框架实现方式,方便移植到我们自己的项目中来。

本文使用fairseq版本为0.9.0,主要以在SAMSum上进行BART fine-tune为实例。

本系列大致包含以下几篇文章:
(一)Fairseq 安装与使用
(二)Fairseq 预处理
(三)Fairseq 模型
(四)Fairseq 任务
(五)Fairseq 评价指标
(六)Fairseq 训练
(七)Fairseq 推断

Fairseq 简介

Fairseq主要用于翻译、摘要、语言建模以及其他文本生成任务,可以很方便地训练我们自己的模型。更新速度快,且使用人数多,开源代码也相对较多,方便我们学习。

Fairseq 安装

一般来说,涉及到修改模型的话,会选择进行本地安装:

git clone https://github.com/pytorch/fairseq
cd fairseq
pip install --editable ./

直接clone项目的话,会下载最新的版本。如果我们需要其他历史版本,则可以选择从release中下载相应版本。但实际上由于迭代更新较快,即使同一版本也可能会有一些差别,且在release版本中也可能出现之前版本中未出现的问题,这里就需要多去查询相关issue。
如果需要加速训练,这里需要安装apex(如果是在conda虚拟环境中安装,则需要cuda版本与cudatoolkit版本一致):

git clone https://github.com/NVIDIA/apex
cd apex
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" \
  --global-option="--deprecated_fused_adam" --global-option="--xentropy" \
  --global-option="--fast_multihead_attn" ./

但实际上,我一直没有使用上述install命令安装成功过😅,均是采用了python setup.py install --cuda_ext --cpp_ext,或回退到历史版本(适用pytorch1.7及以下版本),git checkout f3a960f80244cf9e80558ab30f7f7e8cbf03c0a0,才最终安装成功。

Fairseq 使用

本地安装之后,一般采用两种方式进行开发。一是直接在fairseq项目中修改、添加模块;二是在自定义文件夹中添加文件,并使用--user-dir引用。

下一篇文章(二)Fairseq 预处理,主要介绍fairseq对文本进行BPE分词以及生成fairseq训练时需要的文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容