科技俱乐部菌 来分享下内容社区的AI架构搭建与应用,知乎CTO李大海:谢邀( 三 )


结构化数据字段获取动态加速 , 有效的提升效率 。
自定义向量化特征数据格式:避免了parseprotobuf的序列化、反序列化cpu开销 , 比tensorflow的tfrecord快很多 , 典型场景有10倍的性能差异 。
第二个是特征落盘服务 。
为了对特征覆盖率等指标进行监控 , 并让落地的数据在多个业务之间低成本复用 , 特征在落地之前需要经过统一落盘处理 。 落盘服务提供的主要功能有:
流式特征覆盖率统计监控 , 特征分布统计 。
样本数据分流 。 大的样本数据尽量落成一份 , 小的特殊业务可以进行灵活的分流 。
跨业务的进行特征补全 。
未来 , 知乎的统一推荐框架将在三个方面进行完善和升级:
一站式配置管理、数据流管理、特征监控、指标监控 。
通用化onlinelearing , 让更多业务可以直接用在线学习的优势 。
AutoML , 降低业务使用机器学习模型的门槛 。
社区治理、反作弊、首页推荐算法AI架构
除了统一推荐 , 知乎还有一个很特殊的场景 , 就是社区治理 。 除了垃圾信息、有害信息的处理 , 一些对社区内容建设和人们的需求没帮助的信息 , 也在知乎的治理范围内 , 比如答非所问、阴阳怪气等等 。 这个场景沉淀出来的基础框架 , 和前面提到的zai框架是比较相似的 , 但是整个框架针对图片、视频等多媒体内容 , 做了很多特化的优化处理 , 比如通用的缓存转码之类的 。 具体细节在这里就不赘述了 。
科技俱乐部菌 来分享下内容社区的AI架构搭建与应用,知乎CTO李大海:谢邀
文章图片
机器学习架构—Jeeves机器学习平台
除了直接面向业务应用场景的三个框架之外 , 我们还构建了机器学习平台Jeeves , 用于帮助算法工程师快速构建、训练和部署机器学习任务 。 Jeeves将算法工程师从繁重的部署和配置工作中解放出来 , 专注于高质量模型的开发 。
随着机器学习对GPU资源的需求快速增加 , 仅通过算法工程师自行管理、调度 , 不仅增加了业务部门管理成本 , 也造成了GPU等计算资源一定程度的浪费 。 具体包括以下几点:
科技俱乐部菌 来分享下内容社区的AI架构搭建与应用,知乎CTO李大海:谢邀
文章图片
训练前部署难 。 算法工程师需投入大量精力进行运行环境的配置和资源调配 , 不便于工程师专注于模型优化和调参 。
资源配置优化难 。 算法工程shi难以判断机器学习任务的性能瓶颈在哪快(如CPU、GPU、内存等) , 不便于全局优化资源调配 。
单机训练瓶颈 。 纵向扩展成本高、提升小 。 机器学习需要快速迭代试错 , 性能瓶颈制约了其最终产出的质量和速度 。
Jeeves将Tensorflow容器化 , 通过容器进行训练资源的调度和管理 , 并为算法工程师提供方便的资源申请和释放流程 。 具体来说 , Jeeves提供:
科技俱乐部菌 来分享下内容社区的AI架构搭建与应用,知乎CTO李大海:谢邀
文章图片
一键部署能力 。 算法工程师只需要申请资源、载入训练数据和代码 , 即可一键部署环境并开展工作 。
资源消耗监控 。 监控资源在每个任务的消耗情况 , 便于识别瓶颈所在 , 针对性的进行性能优化和资源调配 。
算力水平扩展 。 支持分布式机器学习 , 支持算力的快速扩展 。
下图是Jeeves及其学习平台架构 。 Jeeves通过容器管理GPU集群的资源 , 底层使用Docker来隔离GPU资源 , 并通过Kubernetes对Docker容器进行调度 。 并提供训练数据挂载 , 日志和模型的持久化的功能 。 同时Jeeves还会监测空闲资源并保证其及时回收 , 提高资源利用效率 。
功能层面 , Jeeves主要提供两类功能:一种是「笔记本」 , 用于在线交互式试验训练代码;另一种是「项目」 , 用于创建单机或分布式训练 。
科技俱乐部菌 来分享下内容社区的AI架构搭建与应用,知乎CTO李大海:谢邀
文章图片
笔记本为算法工程师提供交互式体验和数据科学可视化的工具 , 用户可以通过浏览器快速迭代优化训练代码 。 对于不习惯使用浏览器或者不方便使用浏览器的用户 , Jeeves还提供了sshnotebook的功能 。


推荐阅读