einsum函数
理解专家并行,需要了解einsum函数
import torch# 设置输入张量的维度:s = 3 tokens, e = 2 experts, c = 2 capacity, m = 4 embedding dim
s, e, c, m = 3, 2, 2, 4# 1. 输入 token 的嵌入向量 (s, m)
reshaped_input = torch.tensor([[1.0, 1.0, 1.0, 1.0], # token 0[2.0, 2.0, 2.0, 2.0], # token 1[3.0, 3.0, 3.0, 3.0], # token 2
])# 2. dispatch_mask: (s, e, c)
# 表示每个 token 被分配到哪个 expert 的哪个槽位(slot)
dispatch_mask = torch.tensor([# token 0[[1, 0], # expert 0: slot 0[0, 0]], # expert 1: no slot# token 1[[0, 0],[1, 0]], # expert 1: slot 0# token 2[[0, 1], # expert 0: slot 1[0, 0]], # expert 1: no slot
])
dispatch_mask = dispatch_mask.float()
# 3. 应用 einsum 进行 token 分发到专家
dispatched_input = torch.einsum("sec,sm->ecm", dispatch_mask, reshaped_input)# 4. 打印结果
print("Dispatched Input shape:", dispatched_input.shape)
print("\nDispatched Input Tensor:")
print(dispatched_input)
结果如下
Dispatched Input shape: torch.Size([2, 2, 4])Dispatched Input Tensor:
tensor([[[1., 1., 1., 1.],[3., 3., 3., 3.]],[[2., 2., 2., 2.],[0., 0., 0., 0.]]])
增加画图功能
import torch
import matplotlib.pyplot as plt
# 输入数据
reshaped_input = torch.tensor([[1.0, 1.0, 1.0, 1.0],[2.0, 2.0, 2.0, 2.0],[3.0, 3.0, 3.0, 3.0],
]) # float32dispatch_mask = torch.tensor([[[1, 0], [0, 0]],[[0, 0], [1, 0]],[[0, 1], [0, 0]],
]) # int64 → 不兼容# 修复:转换为 float 类型
dispatch_mask = dispatch_mask.float()# Einsum 分发
dispatched_input = torch.einsum("sec,sm->ecm", dispatch_mask, reshaped_input)# 输出
print("Dispatched input shape:", dispatched_input.shape)
print(dispatched_input)def visualize_dispatch(dispatch_mask):s, e, c = dispatch_mask.shape # tokens, experts, capacityplt.figure(figsize=(6, 4))for token in range(s):for expert in range(e):for slot in range(c):if dispatch_mask[token, expert, slot] > 0:# token 位置 (左边)x_token, y_token = 0, s - token# expert-slot 位置 (右边)x_expert, y_expert = 4, e * c - (expert * c + slot)# 画连接线plt.plot([x_token, x_expert], [y_token, y_expert], 'k-', lw=1)# 标记 tokenplt.text(x_token - 0.2, y_token, f"T{token}", va='center', ha='right', fontsize=10)# 标记 expert-slotplt.text(x_expert + 0.2, y_expert, f"E{expert}-S{slot}", va='center', ha='left', fontsize=10)# 设置图形样式plt.xlim(-1, 6)plt.ylim(0, max(s, e*c) + 1)plt.axis('off')plt.title("Token → Expert-Slot Routing")plt.show()visualize_dispatch(dispatch_mask)相关文章:
einsum函数
理解专家并行,需要了解einsum函数 import torch# 设置输入张量的维度:s 3 tokens, e 2 experts, c 2 capacity, m 4 embedding dim s, e, c, m 3, 2, 2, 4# 1. 输入 token 的嵌入向量 (s, m) reshaped_input torch.tensor([[1.0, 1.0, 1.0, 1.0],…...
gitee 配置git上传
Git入门?查看 帮助 , Visual Studio / TortoiseGit / Eclipse / Xcode 下如何连接本站, 如何导入仓库 简易的命令行入门教程: Git 全局设置: 以 176fuguM2项目为例 git config --global user.name "堕落圣甲虫" git config --global user.email "11…...
【电子通识】为什么电子元件的规格书常常要看英文版本
在我们查看电子器件规格书的时候,如果有中文版本和英文版本两种供我们选择,那我们常常需要查看英文版本,大家有想过这是为什么吗? 为什么英文规格书很重要? 电子元件规格书(Datasheet)常以英文版…...
Scala基础知识5
面向对象 Scala 的面向对象思想和 Java 的面向对象思想和概念是一致的。 Scala 中语法和 Java 不同,补充了更多的功能。 1.Scala包 基本语法:package 包名 Scala 包的三大作用(和 Java 一样) 1.区分相同名字的类。 2.当类很多…...
【图像处理基石】什么是RAW格式?
在图像处理中,RAW格式是一种未经处理、记录了相机传感器原始数据的图像文件格式。它保留了相机传感器捕捉到的全部原始信息,未经任何压缩或处理,因此被称为“原始数据”(Raw)。以下是关于RAW格式的详细解释:…...
AI Agent 实战:搭建个人在线旅游助手
AI Agent 实战:搭建个人在线旅游助手 本次实验中,我们将继续探索 Agent 的提示词,学习更加规范的提示词撰写方法。 本实验中你将掌握的知识点 使用 Dify 构建 Agent 的方法结构化的提示词撰写技巧变量的使用方法 1. 准备 在新建 Agent 之…...
【JavaScript】十四、轮播图
文章目录 实现一个轮播图,功能点包括: 自动播放鼠标经过暂时播放鼠标离开继续播放点击切换按钮手动切换 div盒子嵌套先写出静态HTML,再使用JS来修改样式和数据,渲染页面: <!DOCTYPE html> <html lang"…...
2025 全球音乐 AI 大模型对决:技术革新引领商业变革浪潮
未来的世界声音: 音乐产业如今正被 AI 技术推动着,开启一场智能革命的全新篇章。无论是旋律的诞生,还是工业化编曲的流程,AI 大模型都在以飞快的速度改变着行业的基本逻辑架构。在中国,昆仑万维依靠 Mureka 系列产品在…...
RabbitMQ详解,RabbitMQ是什么?架构是怎样的?
目录 一,RabbitMQ是什么? 二,RabbitMQ架构 2.1 首先我们来看下RabbitMQ里面的心概念Queue是什么? 2.2 交换器Exchange 2.3 RabbitMQ是什么? 2.4 重点看下优先级队列是什么? 三,RabbitMQ集群 3.1 普通集群模式 3.2 镜像队列集群 一,RabbitMQ是什么? 假设我们程序…...
Java 大视界 -- Java 大数据在智能教育自适应学习平台中的用户行为分析与个性化推荐(169)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
智能打印预约系统:微信小程序+SSM框架实战项目
微信小程序打印室预约系统,采用SSM(SpringSpringMVCMyBatis)经典框架组合。 一、系统核心功能详解 1. 智能化管理后台 用户数据看板打印店资源管理预约动态监控服务评价系统 2. 微信小程序端 智能定位服务预约时段选择文件…...
Redisson 操作 Redis Stream 消息队列详解及实战案例
目录 一、Redis Stream 概念 1.Redis消息队列-认识消息队列 2.Redis Stream特点 3.Redis Stream与RabbitMQ等消息队列的比较 二.Redis Stream基本操作命令 1.生产消息 2.消费消息 3.消费者组操作 4.确认消息处理 三、Redisson 操作 Stream 的核心 API 1. 获取流的API…...
【深度学习量化交易19】行情数据获取方式比测(1)——基于miniQMT的量化交易回测系统开发实记
我是Mr.看海,我在尝试用信号处理的知识积累和思考方式做量化交易,应用深度学习和AI实现股票自动交易,目的是实现财务自由~ 目前我正在开发基于miniQMT的量化交易系统——看海量化交易系统。 经常使用MiniQMT的朋友都知道,xtquant的…...
23种设计模式-结构型模式-代理
文章目录 简介问题解决方案代码核心设计要点 总结 简介 代理是一种结构型设计模式,让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在把请求提交给对象前后进行一些处理。 问题 为什么要控制对于某个对象的访问呢?…...
Windows C++ 排查死锁
开发出来应用程序突然间卡死不动,如果其中是因为死锁问题卡列该如何排查 下面是一个简单的死锁例子 #include <iostream> #include <thread> #include <mutex>std::mutex a, b;void function_a() {std::lock_guard<std::mutex> _x(a);std:…...
ctfshow
1,web517 通过输入两个单引号让查询语句正常,判断是什么注入,使用的是什么字符 然后我们通过order by 判断回显位,进行一个联合查询注入 获取数据库名 ctfshow的sqli-labs和本地搭建最大的不同,就是show的flag不在当前…...
【AI论文】什么、如何、何处以及效果如何?大语言模型测试时缩放技术调研
摘要:随着预训练时代对计算(数据和参数)缩放的热情逐渐减退,测试时缩放(Test-Time Scaling, TTS),也被称作“测试时计算”,已成为一个备受瞩目的研究焦点。近期研究表明,…...
大模型学习一:deepseek api 调用实战以及参数介绍
一、说明 DeepSeek(杭州深度求索人工智能基础技术研究有限公司)是一家专注于大语言模型(LLM)研发的中国创新型科技公司,成立于2023年7月17日,由幻方量化孵化。其核心产品包括开源推理模型DeepSeek-R1、多模…...
C++ 编程指南33 - 使用模板来表达适用于多种参数类型的算法
一:概述 在 C 中,模板(Templates)提供了一种强大的泛型编程方式,使代码可以适用于不同的数据类型,而无需重复编写类似的逻辑。模板的主要目标是: 泛化能力(Generality)&a…...
MYSQL实现获取某个经纬度区域内的数据
1.创建表 2.插入表数据 INSERT INTO tf_sys.tf_location(name, longitude, latitude, location) VALUES (资料名称1, 114.437625, 16.016914, ST_GeomFromText(POINT(114.437625 16.016914))); INSERT INTO tf_sys.tf_location(name, longitude, latitude, location) VALUES (…...
《Python实战进阶》No39:模型部署——TensorFlow Serving 与 ONNX
第39集:模型部署——TensorFlow Serving 与 ONNX 摘要 在机器学习项目中,训练好的模型需要被部署到生产环境中才能发挥实际价值。本集聚焦于如何将模型高效地部署到生产环境,涵盖TensorFlow Serving和ONNX两种主流工具的使用方法。我们将从理…...
嵌入式调试进阶:从手动到自动的HardFault破案指南
今天和大家聊聊嵌入式开发中让无数新手头疼,但又避不开的HardFault。 还记得我刚入行那会儿,信誓旦旦改了几行代码,信心爆棚地烧录进板子。结果呢?灯!没!亮!调试器显示程序卡在了HardFault_Han…...
YOLOv11区域检测
TrackZone 使用Ultralytics YOLO11 -Ultralytics YOLO 文档 如何通过Ultralytics YOLO11 在Python 中使用 TrackZone? 只需几行代码,您就可以在特定区域设置对象跟踪,从而轻松将其集成到您的项目中。 import cv2from ultralytics import s…...
手工win提权土豆家族一键梭哈
手工提权 就是在没有工具使用的时候进行提权(或者是win版本过新导致的exp作者没更新等) 优点就是 随选随用 缺点就是非常繁琐(建议是先土豆梭哈然后再手工提权) 先进行信息收集(这边靶机以例子) 这个…...
在Qt中直接在构建目录下直接运行.exe文件报错问题分析
在Qt中直接在构建目录下直接运行.exe文件报错问题分析 在学习Qt的过程中遇到过一个问题,直接在Qt构建目录下运行生成的.exe文件时会报错。这和MFC有一定的差别,如果MFC是可以直接运行的。 这是怎么回事呢? 在 Qt 中直接运行构建目录下的 .…...
头戴式面捕头盔:高精度捕捉真人面部表情,赋能元宇宙多场景应用
随着元宇宙虚拟人与现实场景的不断交融,如何赋予虚拟人更加自然,灵动的表情成为了业内人员共同讨论的话题,尤其是在虚拟人直播,影视动画制作方面。在虚拟人直播间,丰富的面部表情可以赋予虚拟人更加生动的情感表达&…...
LLM大模型教程——什么是AI大模型
引言 当GPT-4展现出惊人的上下文理解能力,当Stable Diffusion创造出媲美人类画师的图像作品,当AlphaFold2破解蛋白质折叠密码——这些里程碑事件标志着人工智能发展进入大模型主导的新纪元。本综述将深入解析这一技术革命的核心载体——AI大模型。 一、AI 大模型是什么 概…...
产品经理的大语言模型课 04 -模型应用的云、边、端模式对比
目录 算力部署方式的影响因素数据量计算难度前期投入数据隐私应用规模与泛化能力 云、边、端部署的特点和对比典型场景举例社区人脸门禁后厨老鼠识别 未来展望 算力部署方式的影响因素 最近和人工智能从业者进行了非常广泛的沟通,尝试对模型应用的云、边、端模式进…...
机器学习(八):K-Means聚类原理与实战
声明:未经允许禁止转载与抄袭。 前言 k k k均值( k k k-means)聚类算法是一种经典的无监督聚类算法,本文将深入解析其理论原理,并在真是数据集上进行算法实践,话不多说,请看下文。 算法原理 …...
基于yolo11的BGA图像目标检测
1.产生图像数据的分辨率 2.产生图像的大小 3.产生图像是黑白或是RGB彩色 灰度图像,达到识别要求,减少计算量 4.标注数据的精准程度 1.模型标注后,少量标注全部人工校验,大量数据抽检,部分人工检验 2.明确边界框贴合…...
