首页 > 最新资讯 > 赋能智慧教育,NVIDIA GPU 助力作业帮核心业务实现 10 倍加速
赋能智慧教育,NVIDIA GPU 助力作业帮核心业务实现 10 倍加速

赋能智慧教育,NVIDIA GPU 助力作业帮核心业务实现 10 倍加速

2021-05-21 22:14

#人工智能 #深度学习


作业帮作为中国最大的 K12 在线教育平台,旗下拥有作业帮、作业帮直播课、作业帮口算等多款教育产品,总日活用户超过 5000 万,月活用户超 1.7 亿,累计激活用户设备超过 8 亿。

2014 年 1 月,作业帮正式上线。基于百度知道的积累,作业帮首先推出以问答和圈子为主的 UGC 社区。但运行一段时间后,问题也开始显现,问答质量不高,时效性得不到保证。此时,K12 正处于创业高峰期,各家都在尝试使用拍照搜题的方式,帮助用户解决时效性的问题。

拍题重新开辟了一个之前从来没有存在过的、线上的学习场景,是有机会做到日活千万级以上的业务方向。但是,由于技术问题,当时拍照搜题的效率和准确率都不高,一次拍照搜题最少需要 3 秒,一般在 10 秒左右,严重影响了用户体验。在激烈竞争的环境下,识别效率就是公司生死线。

2015 年 4 月,作业帮开始“天王山”项目,对拍照搜题流程开始优化。作业帮拍搜技术团队率先在行业内使用 NVIDIA K40m GPU 搭建在线推理集群,利用 NVDIA GPU 突出的并行运算能力对检测识别过程加速,将整个拍照搜题速度提升 10 倍以上,平均耗时缩短到 300 毫秒以内。作业帮成为业内第一家实现“随手一拍,秒出答案”的公司,一举奠定了在同类产品中的领先地位,并将优势持续保持到了今天。

在业务发展的不同时期,拍搜系统面临的挑战也不尽相同,将过去的 6 年按每两年一个阶段所面临的的挑战日渐升级。

2015 年 - 2016 年面临的挑战:起步阶段,业务简单,如何做到更快更准是最大挑战,因为只有更快更准,才能获取更多的客户。

初期 OCR 检测识别流程还是用的 CPU,资源开销巨大且耗时长。“天王山”项目的主要改造点就是引入 GPU 并行运算能力,将目标检测和识别使用 GPU 并行能力加速,将图像预处理任务剥离给 CPU 集群控制成本。

同时,对关键模型 CUDA 代码深度优化,尽量避免核函数间同步操作,尽量复用已分配显存,避免运算过程中重新申请。另外,通过自定义线程池和调度策略,解决 GPU 并发任务处理存在额外损耗的问题。

在系统层面上,也做了流量和模型的调度,合理控制 GPU 负载。最终实现了拍搜流程 10 倍以上的加速,高峰期 GPU 算力的利用率稳定在 90% 以上。

2017 年 - 2018 年面对的挑战:硬件和软件环境日益复杂,流量快速上涨导致集群规模迅速扩张,运维能力面对挑战。业务的多样化,模型种类的快速增加,服务交付和性能均面对挑战。其次,环境治理滞后所带来的成本问题亦是一个挑战。

随着业务流量不断上涨和业务线扩充,集群规模和模型种类在快速增加,给环境治理带来了非常大的挑战。

作业帮拍搜技术团队从软硬件两方面入手,硬件层面先后引入了 Tesla P4,Telsa P40, T4 和 V100 等多款 GPU,利用硬件本身性能提升控制集群规模快速扩张;软件层面,对模型进行剪枝、压缩和量化,在客户端这一边就引入batch操作,提升服务吞吐,引入 NVIDIA TensorRT 提升加速比。

在一些关键服务上,进一步取得了 4 倍以上的性能提升,有效支撑了业务的快速发展,同时抑制了集群规模和成本的快速扩张,减轻环境管理的压力。

另外,在这个阶段,也利用 NVIDIA DCGM 和 Prometheus 建立了完整的 GPU 监控体系,利用 NVIDIA Docker 探索 GPU 虚拟化的落地方案。

2019 年 - 2020 年面对的挑战:日益频繁的变动与系统管理之间的矛盾;日益增长的需求与资源管理之间的矛盾;可预见的瓶颈:在“以物理机为系统和资源管理最小单位,有限人力”的条件下,无法突破上述矛盾。

伴随集群规模继续增长,作业帮拍搜技术团队愈发认识到,环境治理方面的困难,根源来自于显存和算力分配不够自动化。结合自身在 NVIDIA Docker 上的使用经验,对比了多种虚拟化方案后,拍搜团队最终选择了 NVIDIA Docker + K8s + Custom Device Plugin 的方案,建立了自己的 AI 计算平台。

通过全局部署优化,部分服务最多节省了 50% 的机器资源,集群调整时间从平均 2 小时下降到了分钟级别,硬件故障无需人工介入,同时通过弹性伸缩实现了计算能力的共享,让原来因缺少资源不能做不敢做的实验,也可以复用在线集群资源完成。

在 NVIDIA 的支持下,作业帮建立了业内领先的 GPU 在/离线集群,拥有数千张各类型 GPU 设备,并通过虚拟化技术,解决了大规模 GPU 集群在稳定性、资源调度、环境异构和弹性伸缩等方面的问题,为支撑作业帮业务的快速发展打下了坚实的基础。

相关新闻