NLP 训练及推理一体化工具(TurboNLPExp)

作者:TurboNLP,腾讯 TEG 后台工程师

导语

NLP 任务(序列标注、分类、句子关系判断、生成式)训练时,通常使用机器学习框架 Pytorch 或 Tensorflow,在其之上定义模型以及自定义模型的数据预处理,这种方式很难做到模型沉淀、复用和共享,而对于模型上线同样也面临:上线难、延迟高、成本高等问题,TEG-AI 平台部-搜索业务中心从 2019 年底开始,前期经过大量调研,在 AllenNLP 基础上自研了推理及训练一体化工具 TurboNLP, 涵盖了训练框架 TurboNLP-exp 和推理框架 TuboNLP-inference,TurboNLP-exp 训练框架具备可配置、简单、多框架、多任务、可复用等特点,在其之上能够快速、高效的进行 NLP 实验.

TurboNLP-inference 推理框架底层支持高效的模型推理库 BertInference,集成了常用的 NLP 模型, 具备无缝兼容 TurboNLP-exp、推理性能高(在 BERT-base 文档分类业务模型上实测,FP6 精度在 batch_size=64、seq_len=64 的情况下达到了 0.275ms/query,INT8 精度在 batch_size=64、seq_len=64 的情况下达到了 0.126ms/query 性能)等特点,NLP 训练和推理一体化工具极大的简化了训练到推理的流程,降低了任务训练、模型上线等人力成本,本文将主要介绍 NLP 训练和推理一体化工具。

背景

NLP 任务通常是算法研究者自定义模型和数据预处理在机器学习框架PytorchTensorflow进行训练,并手动部署到 libtorch 或 tensorflow 上,这一过程存在如下问题:

  • NLP 任务已有的模型结构和数据预处理重新定义,重复性高。

  • 手动修改模型结构和数据预处理代码,不断调整训练参数,反复试验,造成代码混乱。

  • 模型复杂度(多模型多任务)高或需要对现有模型进行优化改进时,如不熟悉模型结构,就需要重头梳理 Python 定义的模型和数据预处理代码。

  • 知识沉淀、模型复用及共享困难。

  • 上线难、数据预处理 C++化复杂、推理延迟高。

  • 流程化提升 NLP 任务的离线训练及效果实验效率困难,试错成本高。

为了解决以上存在的痛点,在此背景下,我们打通了 NLP 训练端到推理端、自研了训练框架TurboNLP-exp及推理框架TuboNLP-inference,以下是框架的整体架构图:

简介

  • 训练框架 TurboNLP-exp

    • TurboNLP-exp 具备模块化、可配置、多平台支持、多任务支持、多模型格式导出、C++数据预处理等特点、既能满足研究者快速实验、也能将模型通过配置沉淀到框架上,后续研究者通过配置来复用和共享知识。

    • TuboNLP-exp 对模型和数据预处理进行了模块化设计,对于数据预处理,针对同一类 NLP 任务(序列标注、分类、句子关系判断、生成式)数据预处理基本一样,通过复用配置即可复用已有的数据预处理;对于模型,TurboNLP-exp 集成了丰富的子模块:embedder、seq2seq_encoder、seq2vec_encoder、decoder、attention 等,通过配置随意的构建模型,达到快速实验目的。

    • TuboNLP-exp 对底层机器学习平台(Pytorch 和 Tensorflow)进行了统一的封装,熟悉不同的机器学习平台丝毫不影响模型的复用、共享和知识沉淀。

    • TurboNLP-exp 支持 C+&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值