模型并行之Embedding表

简介: Embedding表在推荐模型中起着关键作用,可将高维稀疏数据转化为低维稠密向量,支持用户兴趣建模与相似度计算。本文介绍了5种Embedding表切分方式:Table Wise(集中存储)、Row Wise(按key维度切分)、Column Wise(按列切分)、Table Wise & Row Wise(组合行切分)及网格切分(综合多种方式)。此外,还提及了数据并行方法,即每个Rank保留整个表的副本。这些策略有助于优化大规模模型训练中的存储和计算资源分配。

模型并行之Embedding表

Embedding在推荐模型中承担着将用户、物品及上下文信息映射为低维稠密向量的核心任务,通过捕捉潜在语义关联和协同过滤信号,为推荐系统提供可计算的特征表达基础。其向量化表征能力不仅解决了高维稀疏数据难以直接建模的问题,更能通过隐式关系挖掘支撑用户兴趣建模和相似度计算,这种稠密向量空间的连续性特征为后续针对不同行为序列、场景维度或兴趣簇的Embedding切片分析提供了可行性,例如基于时间衰减、行为类型或属性聚类的切片方式可进一步细化用户意图的动态表征。

接下来以一个案例为例介绍有关Embedding表的5种切分方式: Table Wise **、Column WiseRow WiseTable Wise\&Row Wise 、网格切分**。(前提 :假设用户有128个特征,每个特征的Dim是128,注:下图中Devicexx 表示不同的主机或服务器,Rankx****x表示同一个主机上的不同卡)

  • Table Wise切分:表示将所有embedding表放置在一个同一个device上的同个Rank上,其余的Rank和Device不放置。

  • Row Wise****切分 :表示将Embedding 表按照key的维度进行切分。注意::图右方的Device一般指的是不同的服务器,也可根据表的大小与需要进行设置到同一个Device。

  • Column Wise****切分 :表示将Embedding 表按列(Embedding Dim)切分到不同的Rank上,一个Embedding Dim维度为128均分切到4张卡上变成[0~31, 32~63,64~95,96~127]。也就是每一个Rank分别获取每个特征的{[0, 31],[32, 63], [64, 95], [96, 127]}。注意 :图中上方的Device一般指的是不同的服务器,也可根据表的大小与需要进行设置到同一个Device。

  • Table Wise\&Row Wise :组合切分方式,将Table Wise与Row Wise进行结合,其表示将表放置在一个主机上,在该主机上的 rank 之间进行行式拆分。

网格切片:其组合了Table Wise、Row Wise 和Column Wise三种,表示先将Embedding表按照Column Wise切片,然后再将CW 分片后的结果以TWRW方式放置在主机上。

4:数据并行并行之Embedding表:数据并行表示每个Rank中都保留整个表的副本。

相关文章
|
监控 安全 数据安全/隐私保护
云通信短信服务安全事项
云通信短信服务安全事项
|
4月前
|
人工智能 Kubernetes Nacos
Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态
Nacos 3.0 正式发布,作为云原生时代的基础设施级产品,不仅提升了技术能力,还以更高效、安全的方式帮助用户构建云原生AI应用架构。此次升级包括MCP Registry,围绕MCP服务管理,支持多种类型注册(如MCP Server、编排、动态调试和管理),并提供Nacos-MCP-Router实现MCP动态发现与自动安装代理。安全性方面,默认开启鉴权,并支持动态数据源密钥等零信任方案。此外,Nacos 3.0 还强化了多语言生态,覆盖主流开发语言(Python、GoLang、Rust等),并与K8S生态打通,面向全场景提供统一管理平台。
856 96
Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态
|
人工智能 Java Serverless
【MCP教程系列】搭建基于 Spring AI 的 SSE 模式 MCP 服务并自定义部署至阿里云百炼
本文详细介绍了如何基于Spring AI搭建支持SSE模式的MCP服务,并成功集成至阿里云百炼大模型平台。通过四个步骤实现从零到Agent的构建,包括项目创建、工具开发、服务测试与部署。文章还提供了具体代码示例和操作截图,帮助读者快速上手。最终,将自定义SSE MCP服务集成到百炼平台,完成智能体应用的创建与测试。适合希望了解SSE实时交互及大模型集成的开发者参考。
8010 58
Ninja is required to load C++ extensions | 问题解决
Ninja is required to load C++ extensions | 问题解决
|
4月前
|
人工智能 Java 程序员
JManus - 面向 Java 开发者的开源通用智能体
JManus 是一个以 Java 为核心、完全开源的 OpenManus 实现,隶属于 Spring AI Alibaba 项目。它旨在让 Java 程序员更便捷地使用 AI 技术,支持多 Agent 框架、网页配置 Agent、MCP 协议和 PLAN-ACT 模式。项目在 GitHub 上已获近 3k star,可集成多个大模型如 Claude 3.5 和 Qwen3。开发者可通过 IDE 或 Maven 快速运行项目,体验智能问答与工具调用功能。欢迎参与开源共建,推动通用 AI Agent 框架发展。
7289 64
|
4月前
|
机器学习/深度学习 数据采集 存储
大模型微调知识与实践分享
本文详细介绍了大型语言模型(LLM)的结构、参数量、显存占用、存储需求以及微调过程中的关键技术点,包括Prompt工程、数据构造、LoRA微调方法等。
778 72
大模型微调知识与实践分享
|
3月前
|
机器学习/深度学习 人工智能 PyTorch
200行python代码实现从Bigram模型到LLM
本文从零基础出发,逐步实现了一个类似GPT的Transformer模型。首先通过Bigram模型生成诗词,接着加入Positional Encoding实现位置信息编码,再引入Single Head Self-Attention机制计算token间的关系,并扩展到Multi-Head Self-Attention以增强表现力。随后添加FeedForward、Block结构、残差连接(Residual Connection)、投影(Projection)、层归一化(Layer Normalization)及Dropout等组件,最终调整超参数完成一个6层、6头、384维度的“0.0155B”模型
178 11
200行python代码实现从Bigram模型到LLM