自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (10)
  • 收藏
  • 关注

原创 Mixtral MOE专家层计算逻辑

【代码】Mixtral MOE专家层计算逻辑。

2025-01-27 10:25:56 90

原创 利用多GPU,推理transformer模型,避免显存溢出

transformers框架提供了多设备load模型的方式,通过设置device_map,让模型均匀的分布在多卡,从而以类模型并行的方式,比如用上4-6个8g-24g显存的设备就可以跑起来70B, moe, vl这些。像llama系列和MOE系列还好,可以借助deepseed等加速框架对齐进行TP切分,从而达到多卡切分参数的效果,但是像VL系列,TP等策略就不太好使了。最终,笔者利用4个32G的设备,成功推理了GLM-4V的模型,每个仅用了30%的显存。在一些模型参数量比较大的llm和多模态网络中,比如。

2025-01-02 23:23:16 575

原创 linux系统中,如何设置自定义命令,方便环境部署

在环境.bashrc中,可以设置如下命令,方便自己的系统调用。

2024-12-20 10:50:10 115

原创 一种统计torch内部计算过程算子输入输出信息的方法

最近有个需求,相对比网络中不同设备之间的运行情况,出现差异的时候,需要知道差异的地方,不同的设备上发生了什么,设计如下过程,可以看到中间算子的执行信息,用来辅助算子开发。

2024-12-19 14:51:34 383

原创 测试batch_isend_irecv多卡,多组通信

batch_isend_irecv支持同时配置多组P2P算子,但是其底层实现上也是拆开来做的。以下是NCCL的几种测试场景。

2024-12-08 11:18:39 270

原创 PAI-Megatron-Patch工程中,CPU-Offload的时候,最佳Chunk大小的计算规则

【代码】PAI-Megatron-Patch工程中,CPU-Offload的时候,最佳Chunk大小的计算规则。

2024-11-28 18:46:53 176

原创 python自定义类输出信息

python可以通过__repr__函数,实现类信息的默认显示。

2024-11-28 14:26:51 123

原创 明悟一个简单的道理

专注于自己的工作任务的产出和关键合作点的推进是我的本职,其余的真的是随心随缘。根本点是自己要为自己负责,这才是道理的基础。自足是基本态,合作共赢是理想态。被同事无沟通了3个月之久,心里有些许抑郁。与leader沟通后,明晰了一个道理。2. 我并不需要为他们的工作结果负责。3. 每个人和每个人的接受度不一样。1. 我与他们并无直接利益冲突。

2024-11-28 10:25:46 98

原创 Megatron-LM中重计算模式(recompute-activations)是如何实现的

代码如下,首先torch的自动推导机制下,如果继承于torch.autograd.Function函数下的实现,则不会为其自动保存相关tensor,通过自定义tensor的维护机制实现打包。

2024-11-28 09:54:25 327

原创 创建 glm4v 视觉-文本数据集,多组数据

【代码】创建 glm4v 视觉-文本数据集,多组数据。

2024-11-27 16:25:50 133

原创 modelscope系统中 微调工程的forward&backward&optimizer调用流程

以StableDiffusion中Dreambooth微调模式为例,其训练的调用过程大致如图所示。在OptimizerProcessor对象中,看到了完整的过程。在train_step过程中完成了模型的forward过程,跟到Optimer对象中,我们可以看到所有后处理相关过程。如果有相关需要,可以从这里去抓对应的数据。

2024-10-12 14:45:55 293

原创 deepspeed解决多卡inference的时候,hosts内存爆表的问题

由于deepspeed在启用多卡推理的时候,需要进行多个进程的载入,会导致一份transformers的weights被多个进程重复加载,用来替换子图用,导致在载入的时候,如果基础weights过大,那么需要的hosts内存就会巨大无比。4. 利用load_dict的方式,以meta加载原图,然后切分之后再将子图weights进行load_dict,从而达到每个进程只载入1/tp的weights的目的。65B * 2 * 16大小,这在很多电脑上都吃不消。2. 每次只执行1个进程的weights切分。

2024-09-14 10:36:04 489 1

原创 cuda并行编程全局坐标理解

2024-09-06 23:16:24 447

原创 一个torch.baddbmm算子实现的细节

在一些算法框架,如Megatron-DeepSpeed下,对于input会用empty定义出来,这就导致会进行一个empty*beta的计算过程,此时需要注意,如果beta是0的话,inptu*beta是要跳过的,不然的话如果empty过程中引入了inf值,会导致计算结果中存在NAN。在torch的CPU实现中,也是规避了0带来的NAN的异常值引入。torch.baddbmm算子定义如下。

2024-09-03 18:19:36 483 1

原创 c10::impl::PyInterpreter的理解

它的主要职责是桥接 C++ 和 Python,使得在 C++ 中编写的 PyTorch 应用程序能够调用和执行 Python 定义的函数、脚本或模块,特别是在处理那些通过 TorchScript 编译的模型时。TorchScript 是 PyTorch 的一种中间表示形式,允许模型从 Python 转换为高效的、可序列化的格式,进而可以在没有Python解释器的环境下执行。: 表示这是实现细节部分,通常意味着这部分是给库内部使用的,对外部用户不保证稳定性和兼容性,可能会随着版本更新而改变。

2024-06-23 16:04:13 275

原创 python借助tracer模块来看程序结束位置

tracer.run('out.backward()'), 通过改行命令来让执行测试程序,最后会逐行打印出运行日志,直到最终卡主的位置。对于一些无法找出运行逻辑的过程,可以借助该方法查看最终代码运行到了什么位置。

2024-06-14 10:42:07 196

原创 如何理解Lora

这种方式其实是改变了原始模型结构,虽然改动不大,但是对于一些基于Graph加速的编译器来说,会影响这些模型的编译。Lora的原理图如图所示。

2024-06-13 17:40:12 204

原创 pytorch linalg模块

是 PyTorch 框架中的一个模块,它提供了一系列线性代数运算。这个模块在 PyTorch 2.0 中被引入,是为了补充现有的。模块包含了一些线性代数的核心操作,例如矩阵分解、特征值和特征向量计算等。运算,提供更全面的线性代数功能。

2024-02-21 11:15:28 1441 2

原创 命令行关闭代理设置

【代码】命令行关闭代理设置。

2023-11-02 21:36:09 4301 2

原创 onnxsim时候一个跟ir_version相关的错误

github上查了各种信息也没有很靠谱的解决方案,经过无心插柳的查找,发现原来是onnx把model序列化成字串的时候,用了protobuf,这个版本高的话,会让序列化字串出错,Onnx导不进来,把该pip包降到了。无语死了,想优化一个ChatGLM2,结果导出的onnx,用onnxsim简化不了,一直提示。之后,成功载入并且sim成功,记录一下,赠给有缘人。

2023-07-26 15:48:31 2665 5

原创 全卷积网络解决抄表类问题,车牌识别等一个思路

在工业场景中经常会遇到一些抄表类问题,如示例图片所示:在这类问题中,可以使用全卷积网络很好的解决,笔者借助Tensorflow设计了全卷积网络,进行了训练,从结果来看,准确度还非常高,以下是预测的示例结果:以下是预测代码:import kerasfrom PIL import Imageimport numpy as npimport cv2from PIL import Imagemodel = keras.models.load_model("model...

2021-10-27 17:17:23 190

原创 python数据可视化,matplotlib可视化绘图,自定义子图布局,多区域

############################### 这是追踪的图##############################from navigation.BinAdapter import *class TraceAdapter(BinAdapter): def __init__(self,name = None,adapter = None,navigation = None,channel = None,mask = None): ...

2021-03-05 17:45:49 638 1

原创 (四)理解矩阵运算,利用矩阵运算实现对象的自由移动。

概述:矩阵运算是计算机图形图像的一个重头戏。贯穿图形图像的各个领域和方方面面,在图像处理,建模分析等各个分支里都有极大的作用,一切物体的缩放,旋转,位移,都可以通过变换矩阵作用得到。同时在投影 变换的时候也有很多应用,在该教程中,将会介绍一些简要的变换矩阵,以及里用变换矩阵实现对“空间坐标点”的操控,这些变换矩阵包括:平移矩阵 旋转矩阵 缩放矩阵 反射矩阵 相关操作 充值单位矩阵 矩阵相乘 运算 当然,矩阵运算不止只有这四种,其他的在该教程中不会涉及,我们只集成了基本的常用矩阵

2021-03-03 15:46:52 497

原创 为Sipeed MaixII AI开发板(base:全志V831),交叉编译C代码,利用FB在屏幕上绘制一个渐变的正方形

由于工作原因,最近在调研MaixII这款开发板,Sipeed是自己非常喜欢的一个团队,极客精神下的各种开源开发板,用起来相当顺畅。MaixII是一款基于全志V831的一款开发板,自带NPU,具有0.2T的算力,当然完整的nn工具链,我现在还没有看到。作为前期调研,在官网示例程序跑完后,觉得还是不够带劲,既然是一款跑linux系统的板子,从底层纯C开发程序,当然是最佳选择。为MaixII编译程序需要用到SIpeed提供的交叉编译包,这个环境是为他们的MaixPy准备的,我们只需要用到其中的gcc即

2021-02-25 15:49:26 3288

原创 (三)如何理解直线算法,并借助OpenCV进行展示

概述在该例程中,我们将从底层设计一个直线绘制算法,并借助OpenCV将结果展示出来。例程引入了模块化的设计,拆分了三个模块内存图像模块,封装了和内存图像相关的操作。 直线模块,封装了直线元素的算法逻辑。 主函数逻辑模块,封装了我们想要实现的功能逻辑。绘制直线是经典计算机图形学的基础算法之一,是传统的格栅化渲染过程中的一个基础方法,当然我们不会过多阐述经典计算机图形学的理论,在例程最后,可以看到我们在内存图像中绘制出来了一条直线,尝试着改变一下直线的方向角度,还有颜色,很有意思。核心内容

2021-02-25 13:08:50 276

原创 (二)OpenCV 通过修改内存图像实现颜色过渡效果

概述:本例程为利用OpenCV通过操控内存数据,创建一个光滑渐变的图像。我们会知道如何对图像数据进行访问修改以及操作。核心内容实践:Step:1: 如何访问指定坐标处的像素点我们创建的内存图像数组可以记住图像进行理解由于每个像素有三个通道,那么指定坐标处的数组索引就变成了 像素索引 = (y * width * x) * 通道数。定位到该像素索引之后,我们便可以去按照像素格式,逐通道的进行像素更改,利用指针,我们可以很优雅的实现这个逻辑。/**************.

2021-02-25 10:23:48 600

原创 (一)OpenCV创建显示内存图像

概述:本例程为一个创建内存图像,并将该内存图像利用图像库OpenCV,展示到窗体上。我们将在内存创建一个640x480大小的图像,图像内容是渐变的过渡色,从黑到红。通过本章节例程的学习,我们将掌握一下几个技术点:如何创建一个标准的内存图像数组(BGR分布) 如何理解像素格式 如何将内存数组绑定到OpenCV图像对象上并展示出来Step:1:内存数组,创建内存图像这里我们创建了一个三通道的内存图像,并将内存图像默认置为红色,内存图像的像素格式选取的BGR格式,也就是说,在这幅内存图像中.

2021-02-24 20:58:38 549

原创 Ubuntu 16.04 下交叉编译python3.5到arm板子,荔枝派Nano为例!

虽然网上有那么多python的交叉编译移植教程,但是方法差异蛮大,需要根据实际开发板的型号做调整,以下是适用于荔枝派Nano的板子移植过程。下载python3.5源码 准备一个Ubuntu16.04环境,虚拟机 or 实体机均可 编译前的预准备第一步,将源码首先编译一遍,因为需要用到一些Python的解释模块,需要提前生成cd Python3.5.2mkdir prebuildcd prebuild./configuremakecd ..第二步,进行交叉编译的环境设置,请注意,

2020-05-22 16:44:44 1184

原创 K210上利用LittleVGL制作一套酷炫的嵌入式页面

最近工程需要,需要在勘智的k210平台进行一些本体软件开发。首当其冲的就是界面设计了。由于k210自身存储空间不是很大,留给ROM和程序的空间并不是很多,所以littlevgl并没有吧它全部去支持了。而是采取了一半一半的方式。界面渲染采用了littlevgl,关键的按键消息机制也采用了原生的,但是界面的元素的回调和处理,就没有用LittleVGL了。而是采用了即时生成的方式,效果还...

2020-04-22 12:39:33 3096 3

原创 一文详解 LSTM 诗词生成

LSTM简单介绍长短时记忆网络(Long Short Term Memory Network, LSTM),是一种改进之后的循环神经网络,可以解决RNN无法处理长距离的依赖的问题,目前比较流行。长短时记忆网络的思路:原始RNN的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。再增加一个状态,即c,让它来保存长期的状态,称为单元状态(cell state)。正文开始...

2020-02-21 09:02:54 3592

原创 Tensorflow + Django 打造诗词生成系统

用Tensorflow + Django打造一款诗词生成系统安装Tensorflow,安装Tensorflowpip install tensorflow==1.15.0pip install Django创建Django默认框架django-admin startproject aitemplate前端Html页面<!DOCTYPE html>&...

2020-02-20 09:32:47 903 2

原创 Tensorflow实战系列教程(二) 通过简单的图像分类任务初识计算机视觉

目录 前言:摘要:正文:1.原始数据及标注2.待训练的参数及模型3.损失函数及反向传播优化器4.训练策略介绍完整工程,跑起来吧!前言:一套计算机视觉为切入点的Tensorflow教程,如果感兴趣,欢迎留言讨论。摘要:通过搭建一个分类Mnist数据集的示例,利用一个简单的数学矩阵模型,通过训练Mnist数据集的任务,来得到一个可以识别手写数字的模型...

2018-12-04 00:45:42 696 1

原创 Tensorflow实战系列教程(一) 训练一元一次方程

目录 前言:摘要:正文:1.原始数据及标注2.待训练的参数及模型3.损失函数及优化器4.训练过程完整工程,跑起来吧! 前言:一套计算机视觉为切入点的Tensorflow教程,如果感兴趣,欢迎留言讨论。摘要:通过搭建一个拟合一元方程 y = kx + b 的案例,我们来大致梳理一下一个完整的Tensorflow工程的几个关键要素。 正文...

2018-11-11 22:59:22 351

转载 Linux多核 转载的

方法

2017-03-24 15:42:07 658

原创 FTP调研

最近有个需求,希望把客户处理过的数据搜集过来我跟老大商定的最初的想法是搭建一个FTP服务器,我们为客户提供好标准的工具链,产生一些规范格式的数据,然后客户讲规范化的数据打包后通过FTP传到服务器上,我们定期把服务器上的数据处理一轮并返回结果。今天有时间,于是调研了一下FTP的搭建。我刚开始的思路是,树梅派+移动硬盘构建一个服务器,打在FTP服务,自己建立一个自用

2017-03-12 16:47:42 808

fcn_card_detect.zip

一种用FCN的方法进行车牌识别,表盘识别的方法,适用于工业场景,附件是工程和示例图片,具体内容详见博客。

2021-10-27

vlc3_0_9_2.rar

libvlc开发包,win64版本,.h和.lib以及.dll动态链接库

2021-02-26

v831_toolchain_linux_x86.tar.xz

V831的交叉编译环境,sipeed maix

2021-02-24

LvglFontTool_V0.3.rar

lvgl的字体生成器,生成中文字符,好用。可以通过这个工具生成中文字符,然后引入到自己的工程中。lvgl的中文字符需要占据一定的空间,使用中文字符需要用户自定义,如果有嵌入式UI开发需要,可以联系我呀。

2020-04-22

read_utils.py

可以转化文字到数字,用于NLP,以及机器学习等领域,配套请看我的个人博客,如果对你有帮助会很开心,也欢迎关注我

2020-02-21

suds for Python3.x

Python3.x访问webservice所需要的第三方库。 具体安装方法请看我的新浪博客,ID My城

2015-06-04

QtSoap 源码

qt访问webservice的好东西,Qt开源社区里的推荐版本

2015-04-10

Unity圣典完整版

完整版的Unity圣典 查找方便,本地可以打开

2014-09-26

漂亮的金刚石转动,课程设计哦

自作的一个金刚石图案,会变换图形长度,点数,角度自己看吧漂亮

2011-12-07

RGB演示比较全面的对话框代码

自己写的一个比较全面的对话框代码,包括了花样图标,Solider控件,托盘操作,注册表读写等,适合初学者交流

2011-11-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除