TorchEasyRec中mc_ebc 和EmbeddingBagCollection 有什么区别?

简介: mc_ebc(Managed Collision Embedding Bag Collection)是TorchEasyRec中支持冲突管理的嵌入表集合,基于EmbeddingBagCollection扩展,通过动态追踪ID、智能分配槽位及ZCH策略,显著降低哈希冲突。含mc_ebc_user等变体,并含分布式修复函数。

mc_ebc 是 Managed Collision Embedding Bag Collection 的缩写。

  • ebc = EmbeddingBagCollection:torchrec 的标准嵌入表集合
  • mc = ManagedCollision(管理冲突):torchrec 的一种特殊 Embedding 机制,用于自动处理哈希冲突

ManagedCollision 的作用

普通 EmbeddingBagCollection 使用固定大小的 hash bucket(num_buckets),不同 ID 哈希到同一个 bucket 时会发生冲突,共享同一个 embedding 向量。

ManagedCollisionEmbeddingBagCollection 在此基础上增加了一层冲突管理策略(ManagedCollisionCollection),能够:

  • 动态追踪哪些 ID 实际出现过
  • 智能分配 embedding 槽位,减少高频 ID 的哈希冲突
  • 支持 ZCH(Zero Collision Hashing)等策略

在代码中的使用

从 embedding.py 可以看到模型中同时存在两类 Embedding:

ebc        普通 EmbeddingBagCollection(固定哈希)
mc_ebc     ManagedCollisionEmbeddingBagCollection(冲突管理)

在 INPUT_TILE=3 模式下还会进一步拆分出 user 侧:mc_ebc_user。

dist_util.py 中 mcebc_input_dist 函数的目的

_mc_ebc_input_dist 是一个 monkey-patch 修复函数(见注释 fix missing create_mean_pooling_callback of mc-ebc input_dist),用于修复 torchrec 在分布式场景下 mc_ebc 的 input_dist(输入分发)阶段缺少 mean_pooling_callback 初始化的问题。

相关文章
|
5天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
3998 10
|
15天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
11607 134
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
3天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
1412 6
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
5天前
|
人工智能 自然语言处理 数据挖掘
零基础30分钟搞定 Claude Code,这一步90%的人直接跳过了
本文直击Claude Code使用痛点,提供零基础30分钟上手指南:强调必须配置“工作上下文”(about-me.md+anti-ai-style.md)、采用Cowork/Code模式、建立标准文件结构、用提问式提示词驱动AI理解→规划→执行。附可复制模板与真实项目启动法,助你将Claude从聊天工具升级为高效执行系统。
|
5天前
|
人工智能 定位技术
Claude Code源码泄露:8大隐藏功能曝光
2026年3月,Anthropic因配置失误致Claude Code超51万行源码泄露,意外促成“被动开源”。代码中藏有8大未发布功能,揭示其向“超级智能体”演进的完整蓝图,引发AI编程领域震动。(239字)
2296 9