Bilibili搭建高效AI平台
主要内容:
- 背景:Bilibili正在构建一个云原生AI平台,旨在支持公司内部的多种业务需求,包括广告推荐(ADS)、图像处理(CV)、自然语言处理(NLP)、语音识别(Speech)等。
- 组件:该平台主要包括模型开发、模型训练、模型存储和模型服务等功能模块。
关键技术:
- Alluxio:作为核心缓存层,Alluxio提供了分布式缓存功能,能够处理大规模数据集,并简化了数据访问过程。它通过FUSE接口提供POSIX兼容性,使数据读取变得更加便捷。
- Fluid:Fluid是一个数据管理和加速器,支持数据集抽象,实现云数据预热和访问加速,以及应用程序和数据的协同管理。
性能对比:
-
案例一:音频语言识别模型
- 使用OSS+S3+Fuse+本地SSD+Alluxio的组合,完成训练所需时间为242.56小时。
- 使用Alluxio单独加速后,完成训练所需时间为63.48小时,速度提升了约13.82倍。
-
案例二:视频人像抠图
- 使用OSS+S3+Fuse+本地SSD+Alluxio的组合,每个epoch运行时间稳定在18小时。
- 使用Alluxio单独加速后,模型效果有了显著提升。
优化建议:
- Alluxio调优:
- 增加垃圾回收暂停时间(MaxGCPauseMillis),增加并行垃圾收集线程数(ParallelGCThreads),调整内存请求。
- 调整RPC重试配置(alluxio.user.rpc.retry.max.duration, alluxio.user.rpc.retry.base.sleep)。
- 升级Alluxio至2.6.2版本,以改善小文件读取性能。
架构设计:
- Serverless Fuse:采用容器化部署方式,实现了无服务器化的数据访问解决方案,提高了灵活性和资源利用率。
总结:
通过引入Alluxio和Fluid,Bilibili成功构建了一个高效的AI平台,显著提升了模型训练效率和数据处理能力,特别是在大规模数据集场景下表现优异。