
ByteDance Monolith大规模推荐建模深度学习框架的上手指南【免费下载链接】monolithA Lightweight Recommendation System项目地址: https://gitcode.com/GitHub_Trending/monolith4/monolithMonolith 是字节跳动开源的推荐系统深度学习框架构建在 TensorFlow 之上同时支持批处理与实时流式训练、推理。它把碰撞无关的嵌入表和实时训练当作两大核心能力面向 ID 特征量级很大的个性化场景。 三个关键机制决定它和通用训练框架的差异碰撞无关嵌入表collisionless embedding table—— 为不同 ID 特征保证唯一的向量表示避开哈希取模到固定桶带来的碰撞稀疏特征可以无上限地增长实时训练——input_fn直接对接 Kafka 数据流新样本持续进入训练让模型快速捕捉热点变化离线批训练与流训练走同一套模型 APIentry/PS 分离的推理架构—— PS 是纯嵌入 KV 存储不对外提供调用entry 接收请求、向 PS 取嵌入再跑计算图。大模型可把 ps_0/ps_1/ps_2 拆到不同机器上加载见 markdown/serving.md️ 仓库职责分工训练、推理、量化、部署四块训练运行时—— monolith/native_training/分布式训练主体含嵌入哈希表runtime/hash_table/、各类训练 hookcheckpoint、controller、Kafka/Parquet 数据接入推理服务—— monolith/agent_service/封装 TensorFlow Serving管理副本与模型加载启动时向 ZooKeeper 注册服务量化压缩—— idl/matrix/compression/嵌入表的 int8 量化QTZ8MM与 FP16 相关实现服务大表的存储与传输成本Kubernetes 部署—— deploy/kubebuilder 生成的 Go Operator定义MLServiceCRDdeploy/api/v1/mlservice_types.go按 role 与分片数自动生成 Deployment 和 Service 从 0 到跑起来环境与官方教程运行环境要求仅支持 Linux 编译Bazel 固定 3.1.0 版本Python 侧安装 numpy、wheel、packaging、requests、opt_einsum、keras_preprocessing克隆仓库并直接跑官方 demo电影排序任务git clone https://gitcode.com/GitHub_Trending/monolith4/monolith bazel run //monolith/native_training:demo --output_filterIGNORE_LOGS文档与示例入口markdown/demo/ —— 三部分教程Batch.md 批训练、Stream.md 接 Kafka 流训练、AWS-EKS.md 云上分布式异步训练markdown/input_and_model_fn.md ——MonolithModel的input_fn/model_fn写法稀疏特征必须为 int64 的tf.RaggedTensormarkdown/serving.md —— 哈希表 ckpt 格式、saved_model 导出entry 与 ps 分目录与服务端配置 适合谁以及边界在哪里典型适用场景ID 特征海量且持续增长用户、物品、行为序列嵌入表需要跨机分片要求模型边跑边学用实时样本维持推荐结果的新鲜度已在使用 Kubernetes希望用声明式 CRD 管理推理服务与分片需要注意的地方API 深度绑定 TensorFlowtf.data.Dataset、EstimatorSpec、SavedModel纯 PyTorch 技术栈团队迁移成本高编译环境锁死 Linux Bazel 3.1.0构建链路较重Serving 链路依赖 ZooKeeper 作为名字服务单机体验场景下略显繁琐收尾Monolith 提供的是训练 → 导出 → 在线服务一条链路的完整工程方案而不是一个孤立模型库。如果你的推荐系统瓶颈在嵌入表规模与模型更新时效它的碰撞无关哈希表和流式训练值得纳入选型评估反之模型以稠密网络为主、ID 空间不大的场景通用框架可能更划算。【免费下载链接】monolithA Lightweight Recommendation System项目地址: https://gitcode.com/GitHub_Trending/monolith4/monolith创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考