quick-nlp:基于FastAI的Pytorch NLP库
Song • 557 次浏览 • 0 个回复 • 2018年11月11日

一、Quick NLP简介
Quick NLP
是一个深受学习的nlp
库,受到fast.ai库的启发。他所有的api
与fastai
相同并且可以快速运行nlp
模型。
二、特征
Python 3.6
-
与
Fast.ai
库紧密结合:Fast.ai
风格的DataLoader
对象用于句子到句子的算法Fast.ai
风格的DataLoader
对象用于对话算法Fast.ai
风格的DataModel
对象用于训练nlp
模型
- 可以使用类似于现有
fast.ai
示例的几行代码运行seq2seq
模型 - 易于扩展/训练和尝试不同的模型或使用不同的数据
- 试用的现成算法
安装
需要安装fast.ai
库。请使用此处的说明进行安装。注意是使用最新版本的fast.ai
而不是最新版本的pip
版本。
根据fasta.ai
说明设置环境后,克隆quick-nlp repo
并使用pip install
安装软件包,如下所示:
git clone https://github.com/outcastofmusic/quick-nlp
cd quick-nlp
pip install .
1、Docker镜像
使用docker
镜像安装最新版本:
docker run --runtime nvidia -it -p 8888:8888 --mount type=bind,source="$(pwd)",target=/workspace agispof/quicknlp:latest
这会将您当前的目录挂载到/workspace
并在该目录中启动一个jupyter
会话
用法示例
quick-nlp
的主要目标是为seq2seq
模型提供fast.ai
库的简单界面。
例如,假设我们有一个dataset_path
,其中包含用于培训,验证文件的文件夹。每个文件都是一个tsv
文件,其中每行是由选项卡分隔的两个句子。例如,train
文件夹中的文件可以是eng_to_fr.tsv
文件,其中包含以下前几行:
Go. Va !
Run! Cours !
Run! Courez !
Wow! Ça alors !
Fire! Au feu !
Help! À l'aide !
Jump. Saute.
Stop! Ça suffit !
Stop! Stop !
Stop! Arrête-toi !
Wait! Attends !
Wait! Attendez !
I see. Je comprends.
从目录中加载数据非常简单:
from fastai.plots import *
from torchtext.data import Field
from fastai.core import SGD_Momentum
from fastai.lm_rnn import seq2seq_reg
from quicknlp import SpacyTokenizer, print_batch, S2SModelData
INIT_TOKEN = "<sos>"
EOS_TOKEN = "<eos>"
DATAPATH = "dataset_path"
fields = [
("english", Field(init_token=INIT_TOKEN, eos_token=EOS_TOKEN, tokenize=SpacyTokenizer('en'), lower=True)),
("french", Field(init_token=INIT_TOKEN, eos_token=EOS_TOKEN, tokenize=SpacyTokenizer('fr'), lower=True))
]
batch_size = 64
data = S2SModelData.from_text_files(path=DATAPATH, fields=fields,
train="train",
validation="validation",
source_names=["english", "french"],
target_names=["french"],
bs= batch_size
)
最后,使用使用如下方法执行训练seq2seq
模型:
emb_size = 300
nh = 1024
nl = 3
learner = data.get_model(opt_fn=SGD_Momentum(0.7), emb_sz=emb_size,
nhid=nh,
nlayers=nl,
bidir=True,
)
clip = 0.3
learner.reg_fn = reg_fn
learner.clip = clip
learner.fit(2.0, wds=1e-6)
原创文章,转载请注明 :quick-nlp:基于FastAI的Pytorch NLP库 - pytorch中文网
原文出处: https://ptorch.com/news/216.html
问题交流群 :168117787
- 没有评论
公告
全站搜索
- QQ群:168117787
- 问答社区