- 博客(62)
- 收藏
- 关注
原创 Flash attention安装
直接安装flash attention可能会出问题。因此直接在官网下载对应版本的whl文件安装。但是这样使用时还是会出现乱码的报错。
2025-09-30 11:12:13
421
原创 CUDA/NCCL/NVlink实现GPU之间的通信/GPU不同架构解读
peripheral 次要的,附带的;外围的,周边的;(计算机设备)外围的2020年就有A100了pascal架构第一次提出了NVlinkVolta架构第一次提出了tensor coreVolta架构上面就是卖的工作站DGX这是 NVIDIA 用来命名其高性能深度学习工作站和服务器的系列品牌,专门面向 AI 训练和推理任务。
2025-12-27 13:58:13
380
原创 Qwen2.5VL的token演化规律探究
其中type 0代表img token的占位符,由于都是同样的token,所以在空间距离上接近type1代表system prompt的tokentype2代表text token。
2025-12-24 21:37:19
343
原创 Qwen1/2/2.5/3 VL的图像输入与位置编码方式讲解
Qwen2 VL中在patch size的基础上还会通过MLP 做一个2*2的merge,进一步减小viusal token输,并加上start 和 end token。
2025-12-18 13:31:56
250
原创 基于单视图几何摄像机内参的投影成像原理
通过将: ( 点的物理坐标/点的深度z )* f-[相机以像素为单位的焦距] 就可以得到点的物理坐标到像平面坐标的转换。2,每一帧都: 预测目标物体在当前帧的相机坐标系下的3d坐标,这样z_center就是对应的相对于当前帧的相机的深度。摄像机焦距和fov存在一一对应的关系,fov其实就是摄像机焦距的另一种更直观的表达方式。根据图像长宽和fov得到图像的相机内参,从而得到3D点到图像平面的映射关系。1,所有帧都以第一帧的相机坐标系为世界坐标系,直接预测物体在世界坐标系中的3D位置。
2025-12-17 15:42:15
135
原创 Qwen3-VL 3D grounding代码复现
官方仓库:https://github.com/QwenLM/Qwen3-VLhttps://github.com/QwenLM/Qwen3-VL 测试3D grounding的官方代码在:Qwen3VL全系列可以支持3D grounding,只要输入下面的提示词即可但是Qwen3VL只支持单目图像的grounding,不支持多张图像的模型预测的值都是真实尺度(米meter),输出有9个自由度输入提示词:Qwen3VL 2B/4B/8B instruct 模型的输出效果比较:在可视化时,需要先根据图像
2025-12-16 10:26:06
456
原创 vscode python debug方式
根据模版文件,把要debug的命令行代码文件给GPT,让GPT改写成lauch.json的格式即可debug。然后可以看到在当前项目下创建一个了launch.json的文件。找到vscode左侧的debug案件,新建。点击创建launch.json文件。
2025-12-12 12:11:26
278
原创 LeetCode华为2025年秋招AI大模型岗刷题(四)
在英语中,我们有一个叫做(root) 的概念,可以词根添加其他一些词组成另一个较长的单词——我们称这个词为例如,词根help,跟随着词"ful",可以形成新的单词"helpful"。现在,给定一个由许多组成的词典dictionary和一个用空格分隔单词形成的句子sentence。你需要将句子中的所有用替换掉。如果有许多可以形成它的,则用的替换它。你需要输出替换之后的句子。代码:这个代码中,每个单词的子单词都需要和完整的dictionary来匹配,效率很低。
2025-12-11 21:12:48
833
1
原创 Qwen模型系列详解
本文介绍的论文包括:Qwen3-VL,Qwen3,Qwen2.5-VL,Qwen2.5,Qwen2-VL,Qwen2,Qwen1.5,Qwen,Qwen-VL
2025-12-10 21:11:38
1930
原创 Python项目管理和Anaconda讲解
一般来讲,使用pip freeze生成的requiremnts.txt文件会包含这个虚拟环境中需要的所有的依赖。python项目中的.venv文件夹是当前这个项目用的虚拟环境,用于安装各个依赖包。miniforge就是miniconda的免费版本,其默认的channel就是conda-forge。社区中提供了一些更高级的工具来帮助用户管理这些环境依赖,比如uv,这个在深度学习领域用的不多。miniforge中的mamba就等于miniconda中的conda。miniconda 是conda的最简版本。
2025-12-09 11:02:09
1058
原创 LeetCode华为2025年秋招AI大模型岗刷题(三)
中等给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。思路:1,建立一个visited的矩阵用于遍历。遍历过的地方就标记成true2,定义一个dfs的寻找岛的算法,给定一个起点,通过dfs的方式搜索周围4个方向的陆地,搜索时要判断是否越界。3,构造循环遍历整个二维矩阵的循环,遇到没有遍历并且是岛的地方就启动深度搜索,并将count+1。
2025-12-08 21:29:13
938
原创 各种attention的变体:MHA,GQA,MQA,MLA(DeepSeek-V2)详解
在推理时,KV cache只用保存这个低维度的向量,在计算时由up projection还原到多个head的高维空间,这样做的好处是减小了KV cache。对于KV head部分,都由一个共用的低维度向量表示来up pojection出来多个head。减小KV head的数量,多个Query head共用一个KV head。只有一个KV head,多个Query head共用一个KVhead。其中的W^UK可以和W^UQ合并,W^UV和W^O可以合并。MLA在DeepSeek-V2论文中被提出,
2025-12-06 10:37:42
158
原创 PyTorch DDP分布式训练Pytorch代码讲解
if is_ddp:# 开始 DDP 时用了 init_process_group# 结束 DDP 时要调用 destroy_process_group。
2025-12-05 17:12:35
981
原创 深度学习各种优化器(SGD/Momentum/RMSProp/Adam/AdamW)与Weight decay详解
但是weight decay是直接在最后的权重更新表达式上加上一个权重衰减项。在SGD中,L2正则化和Weight decay的效果是完全一样的。Adam就是Momentum+RMSProp+指数加权平均的修正。在Adam中,L2正则化和Weight decay的效果不一样。解决方式:根据历史走的步数情况经过指数加权来决定下一步怎么走。为了避免序列太短导致初始的V偏离太大,对齐进行修正即可。AdamW就是在Adam的基础上加上了一个权重衰减的项。根据历史走的步数情况经过指数加权来决定下一步怎么走。
2025-12-04 16:01:35
190
原创 VLLM,GPU原理,Flash attention详解
vLLM通过优化KVcache机制提升LLM推理效率,重点采用PageAttention技术实现虚拟内存管理,使KV内存逻辑连续而物理分散,并支持多个回答共享KV块以减少显存占用。GPU方面,PyTorch通过CUDA调用TensorCore加速矩阵运算,其算力远超CUDA核心。FlashAttention通过减少HBM与SRAM间的IO操作来优化注意力计算,FlashAttention2进一步提升了性能。这些硬件优化显著提升了LLM的推理速度和内存效率。
2025-12-04 14:34:40
603
原创 多卡显存优化技术:DP/DDP/FSDP,Deepspeed ZeRO 1/2/3 (Offload),Gradient(Activation) checkpointing详解
本文将介绍:DP(DataParallel)、DDP(DistributedDataParallel),DeepSpeed ZeRO1/2/3及其CPU offload版本,Gradient Checkpoint技术。
2025-12-04 11:29:23
433
原创 朴素贝叶斯分类器以及分类问题的混淆矩阵、F1、ROC和AUC
对于根据老鼠体重来判断老鼠是否肥胖的二分类问题,使用罗辑回归的方式,并将阈值设置为0.5,高于这个阈值就认为老鼠肥胖。通过设置不同的阈值,可以得到不同的分类结果和混淆矩阵。朴素贝叶斯分类器认为样本的每个特征都是独立的。:连续时间下首次事件发生时间(连续)AUC越大的模型效果越好。:固定次数试验中成功次数。
2025-12-02 22:21:47
922
原创 华为华为AI岗实习面试算法题
请在这棵树中选出一棵“价值最大”的子树,并把这棵子树按“完全二叉树的层序数组”形式输出。输出也使用相同规则表示挑选出的那棵最优子树,并且去除末尾多余的尾部 null。允许对某个结点“剪掉”对总和贡献为负的整棵子树(即可以只要左子树、或只要右子树、或两者都要;3,还原出最大子树的输出结构(输出的最大子树需要重新分配序号),使用递归的方式,分别从左子树和右子树来构造。1,首先根据DFS(递归)的方式和DP的思想,来找到每个节点的最大子树和,用value数组表示,子树的价值定义为它所包含的所有结点权值之和。
2025-12-02 20:58:39
582
1
原创 2D/3D bounding box计算方式详解
本文介绍了2D和3D边界框的计算方法。对于2D边界框,通过获取点集的最小/最大x、y坐标确定包围矩形;交集计算则比较两个边界框在x、y轴上的重叠范围。3D边界框同理扩展至z轴维度。代码示例展示了如何计算边界框及其交集,当各维度最小值小于最大值时才存在有效交集。该方法适用于计算机视觉中的物体检测和空间计算任务。
2025-12-01 20:18:50
287
原创 KNN分类器与K-means无监督聚类详解
摘要:本文介绍了KNN分类器和KMeans聚类算法的原理与实现。KNN是有监督分类方法,通过计算新样本与K个最近邻样本的距离进行多数投票分类。KMeans是无监督聚类算法,通过迭代更新聚类中心将数据分成K个簇。文章提供了两种算法的Python实现代码:KNN通过欧氏距离和投票机制实现分类;KMeans通过随机初始化中心点、计算距离和重新计算中心点完成聚类。两种算法都展示了机器学习中距离计算的核心思想。
2025-12-01 17:46:36
356
原创 Transformer的Lora微调机制详解
LoRA(低秩适应)是一种高效微调Transformer模型的方法,它通过在注意力层的QKVO变换矩阵W上添加低秩矩阵BA来实现参数更新。核心实现包含随机初始化的A矩阵(r×in_features)和全零初始化的B矩阵(out_features×r),这种初始化方式经实验证明能获得更低的loss且允许更大的学习率。具体实现时,使用PyTorch将LoRA线性层替换原始线性层,在forward过程中计算x@A.T@B.T并乘以scale因子后叠加到原始输出。
2025-11-28 15:19:49
1684
原创 LeetCode华为2025年秋招AI大模型岗刷题(二)
在遍历时,同步处理一个prefix的值,通过在x出的prefix和减去k等于之前出现过的prefix的频率,每存在一个这样的历史prefix,就可以满足那个历史prefix到x之间的间隔的和等于k。是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。2,每个外循环中,需要将背包容量再逐步减小,解决当前物体个数时,背包容量从大到小的各个子问题。不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
2025-11-27 20:58:47
793
原创 LeetCode华为2025年秋招AI大模型岗刷题(一)
本文整理了华为2025秋招AI大模型实习岗推荐的15类算法题型及解题思路:1)递归(爬楼梯、路径总和);2)分治(合并K个链表);3)单调栈(每日温度);4)并查集(省份数量);5)滑动窗口(最小子数组);6)前缀和(中心下标);7)差分(拼车问题);8)拓扑排序(课程表);9)字符串(最长回文);10)二分查找(旋转数组);11)BFS(单词接龙);12)DFS&回溯(最短桥);13)动态规划(环形打家劫舍);14)贪心算法(跳跃游戏);15)字典树(单词压缩)。
2025-11-25 22:14:14
1308
2
原创 Batch/Layer/RMS Normalization详解
本文深入讲解3中normalization的方式,包括:Batch Normalization, Layer Normalization, RMS Normalization(Root Mean Square Layer Normalization)
2025-11-25 15:33:48
1253
原创 Attention计算代码详解
首先Q会和每个key算内积,得到的值经过softmax就是attention的概率分布(注意力权重,是概率分布)当输入是三维或更高维,会对前面的维度广播(batch dim 不参与乘法,只逐个对应计算)分类任务通常用交叉熵损失,而交叉熵需要概率分布,softmax 刚好提供了连续可微的概率。softmax 对大的值更敏感,小的值会被压得更小,大的值会更突出。5个key:维度也是8,其对应的5个value,维度是10。每个value上,就得到了query最终的结果。单个头的注意力计算代码,基于Q,K,V。
2025-11-21 17:42:30
1309
原创 李宏毅深度强化学习课程笔记
课程链接:https://www.bilibili.com/video/BV1aes8ebEz3/?spm_id_from=333.1007.0.0&vd_source=132c74f7a893f6ef64b723d9600c40b7https://www.bilibili.com/video/BV1aes8ebEz3/?spm_id_from=333.1007.0.0&vd_source=132c74f7a893f6ef64b723d9600c40b7强化学习的过程如下:其目标就是最大化total rew
2025-11-05 21:42:43
622
原创 零基础一次搞懂Pytorch训练和推理框架:以猫狗图像分类为例
nn.Module类这个部分用于定义模型用于训练import os# ✅ 支持 dict 输入else:x = batch # 向后兼容,直接传 tensor 也可以# 如果 labels 存在,可以直接计算 loss])# 假设 batch 来自 dataloader# 保存# 加载# 查看参数名称和形状else:# 直接传入 dict。
2025-10-22 21:58:09
646
原创 3D超点(3D Superpoint)概念解释与代码实现
Superpoint的划分是默认Superpoint内的点都是属于同一个物体类别的。3D Superpoint的核心思想就是把初始的数量非常多的点云根据其邻近的几何信息给划分成更大的point patch,每个大的point patch就叫做一个超点(3D Superpoint)一般使用segmentator库来实现3D点云的超点划分,输入需要xyz和mesh的信息,如果不包含mesh信息,则需要先生成mesh信息,再用segmentator得到超点。生成mesh的速度还是比较慢的。
2025-10-21 22:38:34
960
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅