当前位置: 首页 > 科技赋能

2020Techo-Park开发者大会召开,作业帮分享拍搜系统架构演进

时间:2024-05-20 00:53:52 科技赋能

12月19日至20日,由腾讯主办的TechoPark开发者大会在北京举行。

据悉,本次大会邀请了全球顶尖科技专家到场,与数千名参会者就云计算、大数据、人工智能等前沿科技话题进行深入交流,为中国乃至全球提供了一个平台。

为云计算爱好者、从业者、开发者提供最具参考价值的创新分享。

作业邦视觉智能实验室架构负责人程童受邀出席会议并发表题为《作业帮拍照搜题系统架构的演变》的主题演讲,系统介绍了作业邦拍搜系统的概况、不同阶段面临的问题和解决方案以及GPU服务虚拟化的实践经验以及取得的迁移成果。

作业帮拍搜以底层技术为支撑,帮助用户精准获取全面信息。

作为国内最大的K12在线教育公司,作业帮致力于用科技助力普惠教育,解决教育领域痛点。

旗下拥有作业帮、作业帮直播课、作业帮帮口算、丫丫AI课程、智能硬件喵喵机等教育产品,日活跃用户总数超万,月活跃用户超1.7亿,累计激活量超8亿用户设备。

其中,作业帮APP是唯一进入中国应用市场前30名的教育APP。

作业帮直播课是中国在线教育领先品牌,已服务超过10000名学生。

在作业邦的整个产品链中,排搜系统提供了底层的技术支持。

据程童介绍,作业帮手搜索系统拥有多项OCR、检索、系统专利,并且是业内首个实现“只需点击几秒即可获得答案”的系统。

同时,随着搜索功能的不断拓展,作业帮手完成了从单题到整页到猜想拍的全方位搜索场景,从搜索到批改到评分,全面帮助学生提升技能。

学习效率。

据了解,作业搜索算法架构主要分为OCR和检索两部分。

其中,OCR系统的主要任务是将抓取的内容识别为文本,由多个策略&预处理模块以及大量使用GPU作为计算设备的深度学习在线推理服务组成;而检索系统的主要任务是识别文本检索答案,包括四个主要部分:策略层、正向排序系统、倒排系统和离线数据库构建。

在图片搜索问题这个垂直领域进行了大量的策略优化。

程童表示:“针对用户在不同使用场景下可能出现的模糊、倾斜、低像素、干扰等各种拍照问题,作业帮一直在不断迭代算法,并完善结构。

“在一个完整的文本识别流水线中,坐帮派搜系统有30多个不同的神经网络各司其职,一次识别中平均可以运行100多个神经网络预测。

此外,通过构建大规模并行GPU集群平均只需毫秒即可完成一次完整的识别过程,作业辅导系统可以在一分钟内完成百万次这样的搜索请求,对于识别出的题库内容,系统可以在题库搜索引擎中进行匹配。

超过3亿的指数,保证用户获取更全面、更准确的信息,从更快、更准确到快速响应,探索程童在过去六年的演讲中提到的功课帮助下的极限。

拍搜系统以两年为一个周期进行演进,大致可分为三个发展阶段,每个阶段因业务场景和系统规模不同,面临不同的问题。

2000年至2009年属于第一阶段。

作业帮拍摄搜索系统的业务才刚刚起步。

需要解决的核心问题是更快、更准确。

更快是为了提供更好的用户体验,更容易形成口碑传播,吸引更多用户。

为了达到“拍一张照片,秒级得到答案”的效果,作业邦视觉智能实验室工程架构团队从并行计算、调度策略、工程实现三个方面做出了努力。

该团队率先将GPU用于在线推理服务:利用CPU进行预处理,利用GPU强大的并行计算能力来运行深度神经网络。

上线后,他们实现了10倍的加速效果,平均耗时从3秒多缩短到多个毫秒。

后续持续优化至平均毫秒级。

团队还开发了轻量级的RPC框架,并设计了适合多GPU协作的线程池和调度策略。

高峰期GPU利用率达到90%以上。

随着业务流量的不断增加,作业帮派搜系统从2004年到2018年进入了第二个发展阶段。

业务的扩大引入了更多的算法模型,需要不断开发和交付新的业务;算力需求的快速增长也带来了成本压力。

近两年来,团队在开发和运维方面都面临着挑战。

团队迅速调整策略,制定应对方案。

首先,我们优先满足业务发展需求,尽快提供服务,保证算法模型快速上线;同时,我们尽力优化系统环境,减少技术债务。

例如,针对异构环境问题,团队升级接入层,优化自研RPC客户端,满足多机房、多模型负载均衡、实验卸载等需求;还利用服务器迁移的机会,融合异构模型和环境;根据业务情况不断调整优化系统部署,实现日常运营自动化,提高管理效率。

经过技术团队的不懈努力,随着业务的不断扩大、流量的不断增加,系统有力地支撑了作业帮拍照、题搜索业务的发展,并已发展到一定规模。

虚拟化突破了两大矛盾,显着的迁移效应激发了更多的可能性。

该系统于2017年进入第三阶段,针对早期发展过程中的各种问题,程童和团队并没有停留在表面,而是不断回顾总结,深入挖掘后,相信已经出现的很多问题之前出现的问题看似与性能、稳定性有关,但实际上是系统灵活性不足造成的。

在人力有限的前提下,以物理机(裸机、裸机服务器)作为资源分配和系统管理的最小单位,无法突破两个矛盾,即日益频繁的变更与系统管理之间的矛盾,以及日益频繁的变更与系统管理之间的矛盾。

需求管理和资源管理之间的关系。

为了突破这个瓶颈,团队选择了虚拟化,以K8s和容器的形式来实现。

至于为何选择K8s,程童解释道:“在最关键的资源分配环节,K8s突破了机器的边界,将资源抽象成资源池。

应用程序按需申请,由调度程序分配,解决了资源管理的问题。

通过抽象Pod、部署、服务等概念,可以低成本地实现整个应用生命周期的自动化,解决系统管理中的矛盾。

“为了降低系统迁移的风险,团队制定了渐进式的迁移步骤。

首先对环境进行标准化,改造一些不适合在容器环境下使用的组件或功能;然后将整个系统容器化,了解并掌握相关相关知识。

”最后实现灰度环境验证和在线系统迁移针对K8s原生不支持显存调度的问题,从目前的迁移效果来看,团队也通过开发调度插件提供了解决方案。

,通过更细粒度的资源分配和服务共置,部分集群在迁移后节省了50%的机器资源,资源利用率也得到了大幅提升;并且通过迁移获得的弹性扩展能力可以让系统应对流量;相比物理机时代集群调整平均需要2个小时,现在平均只需10分钟即可完成;并且在故障处理方面,也从原来的平均20分钟缩短到平均5分钟,对于简单的故障,系统可以实现无需人工干预。

在程童看来,移民的影响远不止于此。

虚构改造带来的灵活性,让很多以前不方便的事情变得更加方便,创造了很多可能性。

未来,作业邦技术团队将持续构建先进的技术体系,不断突破在线教育发展中遇到的技术难题,真正实现技术赋能在线教育的创新发展。