bert4torch: 优雅的PyTorch版transformers实现
bert4torch是一个基于PyTorch的transformers库,旨在提供简洁优雅的API接口,支持加载各种预训练模型进行微调,并提供丰富的示例和实用功能。该项目由Tongjilibo开发维护,目前在GitHub上已获得1.2k stars。
主要特性
- 支持加载多种预训练模型
bert4torch支持加载BERT、RoBERTa、ALBERT、ELECTRA、GPT、T5等多种主流预训练模型,包括中文预训练模型如BERT-wwm、MacBERT、NEZHA等。用户可以方便地加载这些模型进行下游任务的微调。
- 简洁优雅的API设计
bert4torch提供了类似Keras风格的简洁API,使用起来非常方便。例如加载预训练模型只需一行代码:
model = build_transformer_model(config_path, checkpoint_path)
- 丰富的示例
项目提供了丰富的示例代码,涵盖了文本分类、序列标注、关系抽取、文本生成等多种NLP任务。用户可以参考这些示例快速上手使用bert4torch。
- 实用的训练功能
bert4torch集成了对抗训练、梯度累积等常用的训练技巧,可以即插即用。同时还提供了训练进度条、TensorBoard可视化等便捷功能。
- 支持大语言模型
最新版本已支持加载ChatGLM、LLaMA、Baichuan等开源大语言模型,可用于推理和微调。
- 一键部署服务
提供命令行工具可一键部署大语言模型服务,支持命令行交互、网页demo和OpenAI API格式。
快速上手
- 安装
pip install bert4torch
- 加载预训练模型
from bert4torch.models import build_transformer_model
model = build_transformer_model(
config_path='bert_config.json',
checkpoint_path='bert_model.ckpt',
model='bert',
)
- 微调
model.fit(
train_generator,
steps_per_epoch=1000,
epochs=10,
callbacks=[evaluator]
)
总结
bert4torch为用户提供了一个简单易用的PyTorch版transformers实现,支持加载各种预训练模型进行下游任务的微调。其简洁的API设计、丰富的示例和实用功能,可以帮助用户快速上手使用预训练模型,提高NLP任务的开发效率。未来bert4torch还将继续完善功能,支持更多的模型和应用场景。