在tensorflow 2.x(Keras)中实现的基于变换器的模型
transformers-keras的Python项目详细描述
变形金刚
在tensorflow 2.x(Keras)中实现的基于变压器的模型。在
中文文档|[英语]
目录
安装
pip install -U transformers-keras
模型
- [x] 变压器
- Attention Is All You Need。在
- 这里有一个来自tensorflow的教程:Transformer model for language understanding
- [x] 伯特 在
- [x] 艾伯特 在
变压器
培训新变压器:
^{pr2}$伯特
您可以通过两种方式使用BERT
模型:
训练新的BERT模型
用你自己的数据来预训练一个伯特模型。在
fromtransformers_kerasimportBertForPretrainingModelmodel_config={'max_positions':128,'num_layers':6,'vocab_size':21128,}model=BertForPretrainingModel(**model_config)
加载预训练的BERT模型
fromtransformers_kerasimportBertForPretrainingModel# download the pretrained model and extract it to some pathPRETRAINED_BERT_MODEL='/path/to/chinese_L-12_H-768_A-12'model=BertForPretrainingModel.from_pretrained(PRETRAINED_BERT_MODEL)
构建模型后,可以使用自己的数据训练模型。在
下面是一个例子:
fromtransformers_kerasimportBertTFRecordDatasetBuilderbuilder=BertTFRecordDatasetBuilder(max_sequence_length=128,record_option='GZIP')loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)metric=tf.keras.metrics.SparseCategoricalAccuracy(name='acc')model.compile(optimizer='adam',loss=loss,metrics=[metric])model(model.dummy_inputs())model.summary()train_files=['testdata/bert_custom_pretrain.tfrecord']train_dataset=builder.build_train_dataset(train_files,batch_size=32)model.fit(train_dataset,epochs=2)
艾伯特
您可以通过两种方式使用ALBERT
模型:
训练新的阿尔伯特模型
您应该将数据处理为tfrecord格式。根据需要修改此脚本transformers_keras/utils/bert_tfrecord_custom_generator.py
。在
fromtransformers_kerasimportAlbertForPretrainingModel# ALBERT has the same data format with BERTdataset_builder=BertTFRecordDatasetBuilder(max_sequence_length=128,record_option='GZIP',train_repeat_count=100,eos_token='T')model_config={'max_positions':128,'num_layers':6,'num_groups':1,'num_layers_each_group':1,'vocab_size':21128,}model=AlbertForPretrainingModel(**model_config)
加载预训练的ALBERT模型
fromtransformers_kerasimportAlbertForPretrainingModel# download the pretrained model and extract it to some pathPRETRAINED_BERT_MODEL='/path/to/zh_albert_large'model=AlbertForPretrainingModel.from_pretrained(PRETRAINED_BERT_MODEL)
在构建模型之后,您可以使用自己的数据训练这个模型。在
下面是一个例子:
fromtransformers_kerasimportBertTFRecordDatasetBuilderbuilder=BertTFRecordDatasetBuilder(max_sequence_length=128,record_option='GZIP')loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)metric=tf.keras.metrics.SparseCategoricalAccuracy(name='acc')model.compile(optimizer='adam',loss=loss,metrics=[metric])model(model.dummy_inputs())model.summary()train_files=['testdata/bert_custom_pretrain.tfrecord']train_dataset=builder.build_train_dataset(train_files,batch_size=32)model.fit(train_dataset,epochs=2)
- 项目
标签: