【Github】项目名:xmxoxo/BERT-train2deploy:BERT模型从训练到部署全流程整理
一、项目简介
该项目围绕BERT模型展开,作者在看到许多朋友使用BERT模型,但网上多数文章仅提及训练方法而未涉及生产部署及调用的情况下,将自己使用BERT模型从数据准备到生产部署的全流程进行整理。以手机评论的情感分类为例,详细阐述了从训练到部署的各个环节,包括数据准备、模型训练、模型格式转化、服务端部署与启动、API服务编写与部署以及客户端(网页端)的编写与部署,最终可实现通过网页交互对输入的评论语句进行实时分类判断。
二、项目目的
为使用BERT模型的人员提供从训练到部署的完整流程参考,解决只知训练不知后续部署与调用的问题。
三、核心技术
1. 模型训练方面
-使用BERT的分类方法,将run_classifier.py复制修改为run_mobile.py进行训练。针对手机评论情感分类任务,自定义数据处理器SetimentProcessor,定义获取训练、验证、测试数据的方法以及获取标签的方法等。
-在训练时通过增加代码保存label2id的字典,以便后续部署使用。
2. 模型格式转化方面
-使用提供的freeze_graph.py工具将训练得到的.ckpt格式的模型文件转换为.pb格式,该转换可缩小模型文件大小,从约1.17G减小到约390M。
3. 服务端方面
-采用来自项目BERT-BiLSTM-CRF-NER的bert-base构建服务端,支持三种运行模式(NER、CLASS、BERT),本项目使用CLASS模式进行分类任务。
-通过指定监听端口、使用GPU等相关配置启动服务端,并建立shell脚本方便管理与启动。
4. API服务编写方面
-使用flask创建API服务端,定义接口/api/v0.1/query,采用POST方法接收参数’text’,通过创建BertClient与BERT-Serving通讯,将预测结果以JSON格式返回。
5. 客户端方面
-使用HTML页面模拟客户端,通过AJAX与API服务端通讯,实现与API的交互并展示结果。
四、项目总结
该项目详细地展示了BERT模型从训练到部署的完整流程,对于想要深入了解BERT模型在实际应用中如何从训练数据转化为可交互应用的开发者具有很高的参考价值。如果你对这个项目有任何想法或者疑问,欢迎在下方留言讨论。
项目地址
数据统计
数据评估
本站链氪巴士提供的xmxoxo/BERT-train2deploy:BERT模型从训练到部署全流程都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。