加入收藏 | 设为首页 |

雷火电竞官网app下载-中文预练习ALBERT模型来了:小模型登顶GLUE,Base版模型小10倍、速度快1倍

海外新闻 时间: 浏览:162 次

作者 | 徐亮(真实智能算法专家)

来历 | AINLP(ID:nlpjob)

老婆照片

谷歌ALBERT论文刚刚出炉一周,中文预练习ALBERT模型来了,感兴趣的同学能够直接尝鲜试用。

项目链接:

https://github.com/brightmart/albert_zh

An Implementation of A Lite Bert For Self-Supervised Learning Language Representations with TensorFlow.

ALBert is based on Bert, but with some improvements. It achieves state of the art performance on main benchmarks with 30% parameters less.

For albert_base_zh it only has ten percentage parameters compare of original bert model, and main accuracy is retained.

Chinese version of ALBERT pre-trained model, including checkpoints both for TensorFlow and PyTorch, will be available.

海量中文语料上预练习ALBERT模型:参数更少,作用更好。预练习小模型也能拿下13项NLP使命,ALBERT三大改造登顶GLUE基准。

***** 2019-10-02: albert_large_zh *****

Relased albert_large_zh with only 16% parameters of bert_base(64M)

***** 2019-10-01: albert_base_zh *****

Relesed albert_base_zh with only 10% parameters of bert_base, a small model(40M) & training can be very fast.

***** 2019-09-28: codes and test functions *****

Add codes and test functions for three main changes of albert from bert

模型下载 Download Pre-trained Models of Chinese

1、albert_large_zh,参数量,层数24,巨细为64M

参数量和模型巨细为bert_base的六分之一;在口语化描绘类似性数据集LCQMC的测验集上比较bert_base上升0.2个点

2、albert_base_zh(小模型体验版), 参数量12M,层数12,巨细为40M

参数量为bert_base的十分之一,模型巨细也十分之一;在口语化描绘类似性数据集LCQMC的测验集上比较bert_base下降约1个点;

比较未预练习,albert_base提高14个点

3、albert_xlarge、 albert_xxlarge will coming recently.

if you want usea albert modelwithbest performanceamong all pre-trained models, just waita few days.

ALBERT模型介绍 Introduction of ALBERT

ALBERT模型是BERT的改善版,与最近其他State of the art的模型不同的是,这次是预练习小模型,作用更好、参数更少。

它对BERT进行了三个改造 Three main changes of ALBert from Bert:

1)词嵌入向量参数的因式分解 Factorized embedding parameterization

O(V * H) to O(V *E + E * H)

如以ALBert_xxlarge为例,V=30000, H=4096, E=128

那么原先参数为V * H= 30000 *4096 = 1.23亿个参数,现在则为V * E + E *H = 30000*128+128*4096 = 384万 + 52万 = 436万,

词嵌入相关的参数改变前是改换后的28倍。

2)跨层参数同享 Cross-Layer Parameter Sharing

参数同享能明显削减参数。同享能够分为全衔接层、注意力层的参数同享;注意力层的参数对作用的削弱影响小一点。

3)阶段接连性使命 Inter-sentence coherence loss.

运用阶段接连性使命。正例,运用从一个文档中接连的两个文本阶段;负例,运用从一个文档中接连的两个文本阶段,但方位调换了。

避免运用原有的NSP使命,原有的使命包括隐含了猜测主题这类过于简略的使命。

We maintain that inter-sentence modeling is an important aspect of language understanding, but we propose a loss

based primarily on coherence. That is, for ALBERT, we usea sentence-orderprediction(SOP) loss, which avoids topic

predictionandinstead focuses onmodeling inter-sentence coherence. The SOP loss uses aspositive examples the

same technique asBERT (two consecutive segments fromthe same document), andasnegative examples the same two

consecutive segments but withtheir orderswapped. This forces the modeltolearn finer-grained distinctions about

discourse-levelcoherence properties.

其他改变,还有 Other changes:

1)去掉了dropout Remvoe dropout to enlarge capacity of model.

最大的模型,练习了1百万步后,仍是没有过拟合练习数据。阐明模型的容量还能够更大,就移除了dropout

(d雷火电竞官网app下载-中文预练习ALBERT模型来了:小模型登顶GLUE,Base版模型小10倍、速度快1倍ropout能够认为是随机的去掉网络中的一部分,一起使网络变小一些)

We also note that, even after training for 1M steps, our largest models still donotoverfit totheir training data.

Asa result, we decide toremove dropout tofurther increase our modelcapacity.

其他类型的模型,在咱们的完成中咱们仍是会保存原始的dropout的份额,避免模型对练习数据的过拟合。

2)为加速练习速度,运用LAMB做为优化器 UselAMB asoptimizer, totrain withbigbatch size

运用了大的batch_size来练习(4096)。LAMB优化器使得咱们能够练习,特别大的批次batch_size,如高达6万。

3)运用n-gram(uni-gram,bi-gram, tri-gram)来做遮盖言语模型 Usen-gram asmake languagemodel

即以不同的概率运用n-gram,uni-gram的概率最大,bi-gram其次,tri-gram概率最小。

本项目中现在运用的是在中文上做whole word mask,稍后会更新一下与n-gram mask的作用比照。n-gram从spanBERT中来。

发布方案 Release Plan

1、albert_base,参数量12M, 层数12,10月7号

2、albert_large,参数量18M, 层数24,10月13号

3、albert_xlarge,参数量59M, 层数24,10月6号

4、albert_xxlarge,参数量233M, 层数12,10月7号(作用最佳的模型)

练习语料/练习装备 Training Data & Configuration

30g中文语料,超越100亿汉字,包括多个百科、新闻、互动社区。

预练习序列长度sequence_le雷火电竞官网app下载-中文预练习ALBERT模型来了:小模型登顶GLUE,Base版模型小10倍、速度快1倍ngth设置为512,批次batch_size为4096,练习产生了3.5亿个练习数据(instance);每一个模型默许会练习125k步,albert_xxlarge将练习更久。

作为比较,roberta_zh预练习产生了2.5亿个练习数据、序列长度为256。因为albert_zh预练习生成的练习数据更多、运用的序列长度更长,

咱们估计albert_zh会有比roberta_zh更好的功能体现,并且能更好处理较长的文本。

练习运用TPU v3 Pod,咱们运用的是v3-256,它包括32个v3-8。每个v3-8机器,含有128G的显存。

模型功能与比照(英文) Performance and Comparision

中文使命集上作用比照测验 Performance on Chinese datasets

  • 自然言语揣度:XNLI of Chinese Version

注:BERT-wwm-ext来自于这儿;XLNet来自于这儿; RoBERTa-zh-base,指12层RoBERTa中文模型

  • 问题匹配语使命:LCQMC(Sentence Pair Matching)

  • 言语模型、文本段猜测准确性、练习时刻 Mask Language Model Accuarcy & Training Time

注:? 将很快替换

模型参数和装备 Configuration of Models

代码完成和测验 Implementation and Code Testing

经过运转以下指令测验首要的改善点,包括但不限于词嵌入向量参数的因式分解、跨层参数同享、阶段接连性使命等。

pythontest_changes.py

预练习 Pre-training

  • 生成特定格局的文件(tfrecords) Generate tfrecords Files

运转以下指令即可。项目自动了一个示例的文本文件(data/news_zh_1.txt)

bashcreate_pretrain_data.sh

假如你有许多文本文件,能够经过传入参数的方法,生成多个特定格局的文件(tfrecords)

履行预练习 pr雷火电竞官网app下载-中文预练习ALBERT模型来了:小模型登顶GLUE,Base版模型小10倍、速度快1倍e-training on GPU/TPU

GPU:

export BERT_BASE_DIR=albert_config

nohup python3 run_pretraining.py --input_file=./data/tf*.tfrecord

--output_dir=my_new_model_path --do_train=True--do_eval=True--bert_config_file=$BERT_BASE_DIR/albert_config_xxlarge.json

--train_batch_size=4096--max_seq_length=512--max_predictions_per_seq=76

--num_train_steps=12500雷火电竞官网app下载-中文预练习ALBERT模型来了:小模型登顶GLUE,Base版模型小10倍、速度快1倍0--num_warmup_steps=12500--learning_rate=0.00176

--save_checkpoints_steps=2000--init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt &

TPU, add following information:

--use_tpu=True--tpu_name=grpc://10.240.1.66:8470 --tpu_zone=us-central1-a

注:假如你从头开始练习,能够不指定init_checkpoint;

假如你从现有的模型基础上练习,指定一下BERT_BASE_DIR的途径,并保证bert_config_file和init_checkpoint两个参数的值能对应到相应的文件上;

范畴上的预练习,依据数据的巨细,能够不必练习特别久。

下流使命 Fine-tuning

以运用albert_base做LCQMC使命为例。LCQMC使命是在口语化描绘的数据集上做文本的类似性猜测。

下载LCQMC数据集,包括练习、验证和测验集,练习集包括24万口语化描绘的中文语句对,标签为1或0。1为语句语义类似,0为语义不类似。

经过运转下列指令做LCQMC数据集上的fine-tuning:

1.Clonethis project:

git clonehttps: //github.com/brightmart/albert_zh.git

2.Fine-tuning by running the following command:

export BERT_BASE_DIR=./albert_large_zh

export TEXT_DIR=./lcqmc

nohup python3 run_classifier.py --task_name=lcqmc_pair --do_train= False--do_eval= true--data_dir=$TEXT_DIR --vocab_file=./albert_config/vocab.txt

--bert_config_file=./albert_config/albert_config_large.json --max_seq_length= 128--train_batch_size= 64--learning_rate= 2e-5--num_train_epochs= 3

--output_dir=albert_large_lcqmc_checkpoints --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt &

Notice/注:

you need to download pre-trained chinese albert model, andalso download LCQMC dataset

你需求下载预练习的模型,并放入到项目当时项目,假定目录名称为albert_large_zh; 需求下载LCQMC数据集,并放入到当时项目,

假定数据集目录名称为lcqmc

Reference

1、ALBERT: A Lite BERT For Self-Supervised Learning Of Language Representations

2、BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

3、SpanBERT: Improving Pre-training by Representing and Predicting Spans

4、RoBERTa: A Robustly Optimized BERT Pretraining Approach

5、L雷火电竞官网app下载-中文预练习ALBERT模型来了:小模型登顶GLUE,Base版模型小10倍、速度快1倍arge Batch Optimization for Deep Learning: Training BERT in 76 minutes(LAMB)

6、LAMB Optimizer,TensorFlow version

(*本文为 AI科技大本营转载文章,转 载请联络原作者)