delta
滴滴开源的端到端 NLP 与语音深度学习平台,支持训练、部署全流程
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
滴滴开源的端到端 NLP 与语音深度学习平台,支持训练、部署全流程
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你需要在一个月内上线一个能识别用户评论情绪、分析对话意图、自动抽取关键信息的智能系统。传统做法需要分别找 NLP 算法团队、语音团队、部署团队,三个月才能搞定。DELTA 正是为解决这个痛点而生——一个平台覆盖从训练到部署的全流程,让 NLP 和语音模型的开发变得像搭积木一样简单。
DELTA 由滴滴出行(Didi Chuxing)研发并开源,最早服务于滴滴海量的出行对话数据处理场景——每天数亿次行程相关的用户咨询、司机沟通、投诉反馈,都需要 NLP 技术进行分类、情感分析和意图识别。与此同时,语音识别、说话人验证等能力也是滴滴智能客服系统的核心组成。
2019 年,滴滴将这一内部平台以 Apache-2.0 许可证开源,发表论文 arXiv:1908.01853,正式加入 Linux Foundation LF AI & Data 基金会社区。项目面向学术研究和工业应用双场景,目标是用一套统一框架降低深度学习 NLP 和语音模型的开发门槛。
DELTA 并非一个单一模型,而是一套端到端训练与部署框架。它将数据处理、特征提取、模型构建、训练调优、服务部署全部整合在一起,用户通过 YAML 配置文件即可驱动整个流程,无需编写大量 glue code。
NLP 任务支持:
语音任务支持:
DELTA 主要基于 TensorFlow 2.x(早期版本基于 TF 1.x)和 Python 3 构建,代码采用模块化设计,关键层次如下:
核心层(core/):定义神经网络算子(ops),包括自定义 TensorFlow 算子的实现,是整个平台的基础计算单元。
模型层(delta/):提供各类预置模型架构(如 TextCNN、LSTM、BERT 等),每个模型对应一个子模块,支持通过配置文件切换。
部署层(delta-serving/):用 Go 语言实现轻量级 RESTful 模型服务,监听 8004 端口,API 兼容 TensorFlow Serving 标准格式。开发者在 Python 侧训练完成后,通过 dpl/run.sh 将 SavedModel 导出,再由 delta-serving 加载提供 HTTP 推理接口。
原生加速层(deltann/):将自定义 TensorFlow 算子编译为 C++ 原生代码,配合 gcompiler 工具链实现 GPU/CPU 高性能推理,绕过 Python/Gil 限制,显著提升推理吞吐量。
图编译层(gcompiler/):CMake 构建的 C++ 推理编译器,负责将计算图进行优化并编译为可执行文件,是生产级部署的关键组件。
工具链(tools/):提供代码格式化(format.sh)、代码规范检查(.pylintrc、.flake8)、编译构建(Makefile)等开发辅助工具。
DELTA 在容器化方面做了相当完善的准备:docker/ 目录下提供了 6 个 Dockerfile,分别针对 GPU/CPU 环境和不同组件(delta 主框架、deltann 原生加速、CI 测试镜像)。然而缺少 docker-compose.yml,无法用一条命令同时启动训练和服务环境,需要用户手动编排多个容器。
对于只想用 NLP 功能的用户,pip install delta-nlp 是最轻量的入门方式,pip 包仅包含 NLP 相关依赖,不含语音和 CUDA 相关组件。但 speech 任务(语音识别、情感识别等)必须从源码安装,因为涉及自定义 TensorFlow 算子的 C++ 编译,依赖 CUDA 环境,门槛明显高于纯 NLP 用法。
delta-serving 提供纯 HTTP RESTful 接口(兼容 TF Serving API),但没有 Web 界面。所有交互通过 curl 或 Go/Python 客户端调用,API 设计规范但调试不便。生产部署需要额外配置 Nginx 反向代理和健康检查。
优点:
缺点/局限:
DELTA 代表了 2018-2019 年工业界对一站式深度学习平台的探索方向——类似 Google 的 Tensor2Tensor(T2T)和 Facebook 的 PyTorch Lightning,DELTA 试图用一套框架降低深度学习落地的工程复杂度。尽管 2020 年后 Hugging Face Transformers 的崛起让这类框架的光芒有所褪色,DELTA 的设计思路(配置驱动、原生加速、多任务统一)对今天的 AI 平台建设仍有借鉴价值。
对于想学习 NLP/语音全栈工程实践的开发者,DELTA 是一个不错的源码阅读对象——它展示了如何将 TensorFlow 模型封装为服务、如何用 C++ 绕过 Python 性能瓶颈、如何设计一套支持多任务的配置系统。