在keras中实现的xlnet
keras-xlnet的Python项目详细描述
凯拉斯xlnet
非正式实施XLNet。Embedding extraction和embedding extract with memory演示如何使用预先训练的检查点获取最后一个transformer层的输出。
安装
pip install keras-xlnet
用法
微调胶水
单击任务名称以查看基本型号的演示:
Task Name | Metrics | Approximate Results on Dev Set |
---|---|---|
CoLA | Matthew Corr. | 52 |
SST-2 | Accuracy | 93 |
MRPC | Accuracy/F1 | 86/89 |
STS-B | Pearson Corr. / Spearman Corr. | 86/87 |
QQP | Accuracy/F1 | 90/86 |
MNLI | Accuracy | 84/84 |
QNLI | Accuracy | 86 |
RTE | Accuracy | 64 |
WNLI | Accuracy | 56 |
(WNLI数据集中只预测0)
加载预先训练的检查点
importosfromkeras_xlnetimportTokenizer,load_trained_model_from_checkpoint,ATTENTION_TYPE_BIcheckpoint_path='.../xlnet_cased_L-24_H-1024_A-16'tokenizer=Tokenizer(os.path.join(checkpoint_path,'spiece.model'))model=load_trained_model_from_checkpoint(config_path=os.path.join(checkpoint_path,'xlnet_config.json'),checkpoint_path=os.path.join(checkpoint_path,'xlnet_model.ckpt'),batch_size=16,memory_len=512,target_len=128,in_train_phase=False,attention_type=ATTENTION_TYPE_BI,)model.summary()
参数^ {< CD1>},^ {< CD2>}和^ {CD3>}是用于初始化内存的最大大小。如果in_train_phase
是True
,则返回用于训练语言模型的模型,否则将返回用于微调的模型。
关于i/o
注意shuffle
应该是False
中的fit
或fit_generator
(如果使用内存)。
in_train_phase
是False
3个输入:
- 标记的ID,形状为
(batch_size, target_len)
。 - 段的ID,形状为
(batch_size, target_len)
。 - 记忆长度,形状为
(batch_size, 1)
。
1输出:
- 每个标记的功能,形状为
(batch_size, target_len, units)
。
in_train_phase
是True
4个输入:
- 标记的ID,形状为
(batch_size, target_len)
。 - 段的ID,形状为
(batch_size, target_len)
。 - 记忆长度,形状为
(batch_size, 1)
。 - 标记的掩码,形状为
(batch_size, target_len)
。
1输出:
- 每个位置上每个标记的概率,形状为
(batch_size, target_len, num_token)
。