当前位置: 首页 > article >正文

三、TorchRec中的Optimizer

TorchRec中的Optimizer


文章目录

  • TorchRec中的Optimizer
  • 前言
  • 一、嵌入后向传递与稀疏优化器融合如下图所示:
  • 二、上述图片的关键步骤讲解:
  • 三、优势
  • 四、与传统优化器对比
  • 总结


前言

  • TorchRec 模块提供了一个无缝 API,用于在训练中融合后向传递和优化器步骤,从而显着优化性能并减少使用的内存,同时还可以在将不同的优化器分配给不同的模型参数方面提供粒度。

一、嵌入后向传递与稀疏优化器融合如下图所示:

在这里插入图片描述

二、上述图片的关键步骤讲解:

  • 1、梯度生成(Output Gradient)

    • 来自模型前向传播的输出梯度(如损失函数的梯度),对应具体样本(Sample 1 和 Sample 2)
    • Sample 1 的梯度可能包含 row 1、row 2和 row 6 的嵌入梯度
    • Sample 2 的梯度可能包含 row 1、row 3 和 row 6 的嵌入梯度
  • 2、梯度排序(Gradient Sorting)

    • 目的 :将不同样本中相同行(Row)的梯度合并到一起,便于后续聚合
    • row 1 的梯度来自 Sample 1 和 Sample 2
    • row 6 的梯度也来自 Sample 1 和 Sample 2
  • 3、梯度聚合(Gradient Aggregation)

    • 操作 :对相同行的梯度求和(或平均),得到该行的总梯度
    • row 1 的总梯度 = Sample 1 的 row 1 梯度 + Sample 2 的 row 1 梯度
    • row 6 的总梯度 = Sample 1 的 row 6 梯度 + Sample 2 的 row 6 梯度
  • 4、稀疏优化器(Sparse Optimizer)

    • 功能 :仅更新非零梯度对应的嵌入参数(稀疏更新),节省计算和内存。
    • 只更新 row 1、row 2、row 3、row 6 的嵌入参数,其他行保持不变。

三、优势

  • 1、减少冗余计算
    • 通过梯度聚合,避免重复计算相同行的梯度(如 row 1 在两个样本中出现)。
  • 2、稀疏性优化
    • 只更新实际有梯度的行(如 row 3 只出现在 Sample 2 中),跳过全零梯度的行。
  • 3、并行化加速
    • 融合反向传播与优化步骤,减少内存拷贝和计算开销。

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

四、与传统优化器对比

特性传统优化器TorchRec中的稀疏优化器
更新粒度全量参数更新(稠密)仅更新非零梯度对应的行(稀疏)
内存占用需存储所有参数梯度仅存储非零梯度
计算效率低效(大量零梯度参与计算)高效(跳过零梯度)

总结

  • TorchRec 的优化器设计通过 梯度排序、聚合与稀疏更新 ,极大提升了稀疏特征的训练效率。
  • 这一机制尤其适用于推荐系统中常见的高维稀疏数据场景,是其高性能的核心原因之一。

相关文章:

三、TorchRec中的Optimizer

TorchRec中的Optimizer 文章目录 TorchRec中的Optimizer前言一、嵌入后向传递与稀疏优化器融合如下图所示:二、上述图片的关键步骤讲解:三、优势四、与传统优化器对比总结 前言 TorchRec 模块提供了一个无缝 API,用于在训练中融合后向传递和…...

C++算法之代码随想录(链表)——基础知识

(1)什么是链表 链表是一种线性数据结构。常见的单链表由两部分组成,value(存储节点的值)和next(存储指向下一个节点地址的指针)。链表的头节点称为head。创建链表一般使用结构体(str…...

oracle update 原理

Oracle 11g 中的 UPDATE 操作是数据库修改数据的关键机制,其核心原理涉及事务管理、多版本并发控制(MVCC)、Undo/Redo 日志、锁机制等 1. 执行前的准备 SQL 解析与执行计划: Oracle 解析 UPDATE 语句,生成执行计划&…...

蓝桥杯 15g

班级活动 问题描述 小明的老师准备组织一次班级活动。班上一共有 nn 名 (nn 为偶数) 同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 nn 以内的正整数作为 idid,第 ii 名同学的 idid 为…...

webrtc pacer模块(一) 平滑处理的实现

Pacer起到平滑码率的作用,使发送到网络上的码率稳定。如下的这张创建Pacer的流程图,其中PacerSender就是Pacer,其中PacerSender就是Pacer。这篇文章介绍它的核心子类PacingController及Periodic模式下平滑处理的基本流程。平滑处理流程中还有…...

基于角色个人的数据权限控制

一、适用场景 如何有效控制用户对特定数据的访问和操作权限,以确保系统的安全性和数据的隐私性。 二、市场现状 权限管理是现代系统中非常重要的功能,尤其是对于复杂的B端系统或需要灵活权限控制的场景,可以运用一些成熟的工具和框架&…...

河北工程大学e2e平台,python

题目,选择题包100分! 题目,选择题包100分! 题目,选择题包100分! 联系🛰:18039589633...

BeautifulSoup 踩坑笔记:SVG 显示异常的真正原因

“这图是不是糊了?”以为是样式缺了?试试手动复制差异在哪?想用对比工具一探究竟……简单到不能再简单的代码,有问题吗?最后的真相:viewBox vs viewbox,preserveAspectRatio vs preserveaspectr…...

【AI提示词】创业导师提供个性化创业指导

提示说明 以丰富的行业经验和专业的知识为学员提供创业指导,帮助其解决实际问题并实现商业成功 提示词 # Role: 创业导师## Profile - language: 中英文 - description: 以丰富的行业经验和专业的知识为学员提供创业指导,帮助其解决实际问题并实现商业…...

【OpenCV 对图片做旋转操作】仿射=旋转+平移+缩放+剪切

OpenCV 中的旋转相关函数详解 OpenCV 提供了多种函数用于图像的旋转操作,主要分为 任意角度旋转 和 固定角度旋转。以下是常用函数及详细使用说明: 一、任意角度旋转 1. cv2.getRotationMatrix2D() 生成旋转矩阵,用于定义旋转参数。 函数原…...

【browser-use+deepseek】实现简单的web-ui自动化

browser-use Web-UI 一、browser-use是什么 Browser Use 是一款开源Python库,专为大语言模型设计的智能浏览器工具,目的是让 AI 能够像人类一样自然地浏览和操作网页。它支持多标签页管理、视觉识别、内容提取,并能记录和重复执行特定动作。…...

django数据迁移操作受阻

错误信息: django.db.utils.OperationalError: (1227, Access denied; you need (at least one of) the SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation)根据错误信息分析,该问题是由于MySQL用户 缺乏SYSTEM_VARI…...

MOS管的发热原因和解决办法

发热来源 如上图,MOS管的工作状态有4种情况,分别是开通过程,导通过程,关断过程和截止过程。 导致发热的损耗主要有两种:开关损耗、导通损耗。 导通损耗 导通损耗比较好计算,根据驱动电压VGS值可以得到MOS…...

4月11日随笔

本来以为大风会很厉害,本来今天早八的微积分不想去了。但是起床发现并没有很大的风,还是去了。 中午回来的路上突然变天,雷阵雨转冰雹。下了大概半小时,所幸挨淋的不是很严重。 中午打了首胜,AI的基本弄完了&#xf…...

科技项目验收测试怎么做?验收测试报告如何获取?

科技项目从研发到上市需要一个很长的周期,并且在上市之前还有一个至关重要的交付过程,那就是项目验收,验收需要通过验收测试来呈现。科技项目验收测试是确保项目成功交付的关键步骤,那么是如何进行的呢?企事业单位想要获取科技项…...

Java面试黄金宝典45

1. 非对称加密 RSA 定义:RSA 是一种广泛使用的非对称加密算法,其安全性基于大整数分解的困难性。它使用一对密钥,即公钥和私钥。公钥可公开用于加密消息,而私钥必须保密,用于解密由相应公钥加密的消息。要点: 公钥公开,私钥保密,二者成对出现。加密和解密使用不同的密钥…...

计算机网络学习前言

前言 该部分说明计算机网络是什么?它有什么作用和功能?值不值得我们去学习?我们该如何学习?这几个部分去大概介绍计算机网络这门课程,往后会介绍计算机网络的具体知识点。 1.计算机网络是什么? 计算机网…...

Vuex 源码

以下是关于 Vuex 源码 的系统梳理: 一、Vuex 核心架构设计 1. 整体架构分层 #mermaid-svg-Eqqp2jldNkQwvgcr {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Eqqp2jldNkQwvgcr .error-icon{fill:#552222;}#mermaid…...

AutoEval:现实世界中通才机器人操作策略的自主评估

25年3月来自 UC Berkeley 和 Nvidia 的论文“AutoEval: Autonomous Evaluation of Generalist Robot Manipulation Policies in the Real World”。 可规模化且可复现的策略评估一直是机器人学习领域长期存在的挑战。评估对于评估进展和构建更优策略至关重要,但在现…...

IP组播技术与internet

1.MAC地址分为三类:广播地址;组播地址;单播地址 2.由一个源向一组主机发送信息的传输方式称为组播。 3.组播MAC地址,第一个字节的最后一位为1; 单播MAC地址,第一个字节的最后一位为0; 4.不能…...

基于SSM框架的房屋租赁小程序开发与实现

概述 一个基于SSM框架开发的微信小程序房屋租赁管理系统,该项目实现了用户管理、中介管理、房源信息管理等核心功能。 主要内容 一、管理员模块功能实现 ​​用户管理​​ 管理员可对通过微信小程序注册的用户信息进行修改和删除操作,确保用户数据的准…...

oracle 表空间(Tablespace)

在 Oracle 11g 中,表空间(Tablespace) 是数据库存储架构的核心逻辑单元,其原理基于 逻辑存储与物理存储的分离,通过分层管理数据文件、段(Segment)、区(Extent)和数据块&…...

基于YOLOv8的机场跑道异物检测识别系统:提升航空安全的新一代解决方案(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​ ​​​​​​​​​ ​​ 1. 机场跑道异物检测领域概述 机场跑道异物(Foreign Object Debris, FOD)是指存在于机场跑道、滑行道等关…...

23种设计模式生活化场景,帮助理解

以下是 23种设计模式的生活化场景 及其核心对比,通过日常例子和比喻帮助理解它们的本质区别和应用场景: 创建型模式(5种) 1. 工厂方法(Factory Method) • 场景:快餐店的点餐系统。 • 问题&a…...

Android学习总结之OKHttp拦截器和缓存

深入理解 OkHttp 拦截器 1. 拦截器接口详解 Interceptor 接口是自定义拦截器的基础,它仅包含一个抽象方法 intercept。以下是对该方法参数和返回值的详细解释: import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; import…...

Wincc管对象的使用

Wincc管对象的使用 管对象的调用多边形管T形管双T形管管弯头管道大小调整 管对象的调用 打开【图形编辑器】 多边形管 多边形管如下: 一根管子的顶点数是两个,如果修改顶点数,管子就有多少个端点。 修改顶点数为5 此时点击端点然后拖动&#…...

Linux-----驱动

一、内核驱动与启动流程 1. Linux内核驱动 Nor Flash: 可线性访问,有专门的数据及地址总线(与内存访问方式相同)。 Nand Flash: 不可线性访问,访问需要控制逻辑(软件)。 2. Linux启动流程 ARM架构: IRAM…...

GHG认证是什么,GHG认证的意义?对企业发展好处

GHG认证(温室气体认证)详解 GHG认证(Greenhouse Gas Certification,温室气体认证)是指对组织、产品或项目的温室气体(GHG)排放量进行科学量化、报告,并由第三方机构进行独立核查和认…...

Docker 常用命令指南

Docker 提供了丰富的命令行工具来管理镜像、容器、网络和数据卷等资源。本指南按类别整理 Docker 的常用命令,并为每个命令提供简体中文说明和示例,以帮助您快速查询和掌握日常使用。 1. 镜像管理 Docker 镜像(Image)是打包好的应用程序及其依赖环境,可用于创建容器。常用…...

问问lua怎么写DeepSeek,,,,,

很坦白说,这十年,我几乎没办法从互联网找到这个这样的代码,互联网引擎找不到,我也没有很大的“追求”要传承,或者要宣传什么;直到DeepSeek的出现 兄弟,Deepseek现在已经比你更了解你楼下的超市…...