自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I good vegetable a!

本人维护了一个数字图像各种论文复现工程,欢迎STAR: https://github.com/BBuf/

  • 博客(1677)
  • 资源 (2)
  • 收藏
  • 关注

原创 维护了一个微信公众号,分享论文,算法,比赛,生活,欢迎加入。

公众号名称: GiantPandaCV按照惯例,二维码:欢迎加入和我讨论深度学习,机器学习,ACM,Leetcode,工作生活等等。

2019-10-29 17:53:02 777

原创 CVPR && ICCV 2019 论文阅读

《Bounding Box Regression with Uncertainty for Accurate Object Detection》CVPR 2019:《精确目标检测的不确定边界框回归》论文解读地址:https://www.sohu.com/a/341292298_651893?spm=smpc.author.fd-d.16.1569831940423eL7mzGA《ACE: A...

2019-09-30 16:28:57 1470

原创 Leetcode 周赛记录

Leetcode第150场周赛时间:2019/8/18竞赛地址: https://leetcode-cn.com/contest/weekly-contest-150解决题目:4/4耗时: 1:05:04排名: 50+第一题,直接模拟。第二题,DFS遍历树,开一个数组,记录每一层的和。第三题,直接遍历,然后DFS计算和当前点满足条件的最小距离。第四题,观察一下肯定目标串是从出现过字符...

2019-08-18 12:00:00 1237

原创 OpenCV图像处理专栏一 | 盘点常见颜色空间互转

RGB2GRAY算法\quad首先是RGB2GRAY,也就是彩色图转灰度图的算法。RGB值和灰度的转换,实际上是人眼对于彩色的感觉到亮度感觉的转换,这是一个心理学问题,有一个公式:Grey = 0.299×\times×R + 0.587×\times×G + 0.114×\times×B。直接计算复杂度较高,考虑优化可以将小数转为整数,除法变为移位,乘法也变为移位,但是这种方法也会带来一定的...

2019-02-12 17:52:11 2292 3

原创 系统调优助手,PyTorch Profiler TensorBoard 插件教程

使用PyTorch Profiler进行性能分析已经一段时间了,毕竟是PyTorch提供的原生profile工具,个人感觉做系统性能分析时感觉比Nsys更方便一些,并且画的图也比较直观。

2024-04-16 12:24:00 827

原创 AI Infra论文阅读之《在LLM训练中减少激活值内存》

本次阅读一篇Megatron-LM的README贴出的一篇paper,是NVIDIA在2022年上传的,讲的是Megatron-LM里面的Sequence Parallel和Selective Activation Recomputation如何降低大语言模型训练中的激活内存。这里来看一下理论讲解,另外Paper的第4节的激活内存公式估计比较有用。。序列并行目前是非常常用的,但是选择性激活重计算可能用得人不多,我想一个很重要的原因应该是 FlashAttention 的出现大大降低了激活值内存大小。

2024-03-25 09:09:39 1063 1

原创 【BBuf的CUDA笔记】十四,OpenAI Triton入门笔记三 FusedAttention

继续Triton的学习,这次来到 https://triton-lang.org/main/getting-started/tutorials/06-fused-attention.html 教程。也就是如何使用Triton来实现FlashAttention V2。

2024-02-29 14:16:18 756

原创 AI Infra论文阅读之LIGHTSEQ(LLM长文本训练的Infra工作)

从 https://github.com/RulinShao/LightSeq 注意到这篇paper(https://arxiv.org/pdf/2310.03294.pdf),paper里面有一些比较有趣的发现并且这个paper的代码是基于Triton来实现的,所以激发了我阅读兴趣。我后续也会从源码的角度来解读这篇paper核心idea的代码实现,顺便学习下Triton。介于篇幅原因,这篇文章只读一下这篇paper,把握一下核心的Infra相关的idea。

2024-02-16 21:18:13 1104

原创 【BBuf的CUDA笔记】十四,OpenAI Triton入门笔记二

接着【BBuf的CUDA笔记】十三,OpenAI Triton 入门笔记一 继续探索和学习OpenAI Triton。这篇文章来探索使用Triton写LayerNorm/RMSNorm kernel的细节。之前在 【BBuf的CUDA笔记】十二,LayerNorm/RMSNorm的重计算实现 这篇文章我啃过Apex的LayerNorm实现,整个实现过程是非常复杂的,不仅仅需要手动管理Block内的共享内存,而且在每一行的具体计算时还需要以warp为视角做warp间和warp内的reduce以获得全局的均值和

2024-02-16 21:09:58 942

原创 星辰AI大模型TeleChat-7B评测

总的来说,TeleChat-7B具有一定的文创能力和代码能力,对于本次测试的大多数prompt可以生成较为合理的答案。但模型本身也存在大模型幻觉,指令跟随能力一般以及回答有概率重复的问题。但由于TeleChat模型的训练Token相比于主流模型已经比较少了,只有1.0T数据,所以相信上述问题通过更多高质量的数据以及PPO等训练可以进一步被缓解。

2024-02-09 17:19:02 759

原创 AI Infra论文阅读之将流水线并行气泡几乎降到零(附基于Meagtron-LM的ZB-H1开源代码实现解读)

大概就是说这个paper提出了一个新的流水线调度算法,实现了流水线并行同步训练时的的零气泡。我理解这里的同步训练指的就是1F1B中一个 batch 内的所有 micro-batch 的数据遇到的模型都是同一个版本的模型。然后这个改进基于一个关键的观察就是反向计算可以分成两部分,一部分计算输入的梯度,另一部分计算参数的梯度。此外paper还提到,他们开发了一个算法可以根据特定模型配置和内存限制自动找到最佳调度。另外,为了实现真正的零气泡,作者引入了一种新技术来绕过优化器步骤中的同步。

2024-02-04 14:40:38 1350

原创 AI Infra论文阅读之通过打表得到训练大模型的最佳并行配置

这次阅读一篇mlsys的一篇新论文,《Efficient Parallelization Layoutsfor Large-Scale Distributed Model Training》,虽然该论文还处于open review阶段,但作者在 Megatron-LM 基础上通过对各种训练调优方法进行组合打表获得了一些比较有趣的结论和发现,地址:https://openreview.net/pdf?

2024-01-26 21:24:44 1469 2

原创 【BBuf的CUDA笔记】十三,OpenAI Triton 入门笔记一

这里来看官方的介绍:https://openai.com/research/triton ,从官方的介绍中我们可以看到OpenAI Triton的产生动机以及它的目标是什么,还可以看到一些经典算法的实现例子展示。这里的标题是 Introducing Triton: Open-source GPU programming for neural networks ,翻译就是《介绍 Triton:用于神经网络的开源 GPU 编程语言》。

2024-01-22 21:17:31 1104

原创 【BBuf的CUDA笔记】十二,LayerNorm/RMSNorm的重计算实现

我也是偶然在知乎的一个问题下看到这个问题,大概就是说在使用apex的LayerNorm/RMSNorm的时候可以打开这个api的memory_efficient开关,这个开关可以在速度和精度无损的情况下节省网络训练的显存占用。感觉比较有趣,我就研究了一下,因此也就有了这篇文章。我去实测了一下,单机8卡A100训练LLama7B,纯数据并行的情况下打开memory_efficient开关相比于不打开节省了大约2个G的显存,如果模型继续scale up,那么省掉的显存也会更多。因此,本文就是对这个memory_

2024-01-15 21:56:02 1186

原创 【BBuf的CUDA笔记】十一,Linear Attention的cuda kernel实现补档

这篇文章和【BBuf的CUDA笔记】十,Linear Attention的cuda kernel实现解析就是我阅读Linear Attention官方实现的理解。欢迎关注 https://github.com/BBuf/how-to-optim-algorithm-in-cuda 获取更多后续cuda优化相关的知识。

2024-01-04 14:08:32 911

原创 【BBuf的CUDA笔记】十,Linear Attention的cuda kernel实现解析

我们先从这个naive的Linear Attention实现入手,摸清代码实现和上面介绍的公式5的对应关系。https://github.com/idiap/fast-transformers/blob/master/fast_transformers/attention/linear_attention.py ,这个实现很短,逐行解释一下。from ..feature_maps import elu_feature_map # 这就是论文提到的elu(x)+1。

2023-12-24 14:11:02 988

原创 使用OpenCompass评测rwkv模型教程

继续文章里面提到的想法,探索一下使用OpenCompass来评测RWKV模型,对模型的实际表现有一个更客观的了解。我在尝试的过程中也碰到了一些问题,所以这里记录一下使用OpenCompass评测的流程以及在评测RWKV过程中解决的问题。这里主要是记录如何跑通,后续可能会跑一下榜单去对比一下其它的模型。目前使用这个fork的版本(https://github.com/BBuf/opencompass)就可以正常做RWKV系列模型的评测了。

2023-11-30 09:17:55 1212

原创 MLC-LLM 支持RWKV-5推理以及对RWKV-5的一些思考

继续填使用MLC-LLM将RWKV 3B模型跑在Android手机上(redmi k50每s可解码8个token这篇文章留下的坑。由于上面这篇文章支持的是RWKV4模型,不支持最近RWKV社区正在训练的RWKV5模型,所以利用业余时间在MLC-LLM里面支持了最新的RWKV5模型的推理,同时也可以带大家看一下RWKV5的3B模型表现是否有惊艳之处。

2023-11-18 22:08:33 710 4

原创 使用MLC-LLM将RWKV 3B模型跑在Android手机上

这篇文章分享了一下使用MLC-LLM将RWKV模型跑在Android手机上遭遇的坑以及编译的详细教程,接下来也会尝试一下RWKV5。想在andorid手机上本地运行开源大模型的伙伴们可以考虑一下MLC-LLM,他们的社区还是比较活跃的,如果你提出一些问题一般都会有快速的回复或者解决方法。

2023-10-29 09:27:52 507

原创 【RWKV】如何新增一个自定义的Tokenizer和模型到HuggingFace

这件事情大概花了国庆的一半时间加一个完整的周六才搞定,所以这篇文章记录一下也可以帮助有相关需求的小伙伴们少踩点坑。

2023-10-15 23:02:23 413

原创 mlc-llm 推理优化和大语言模型搭建解析

本文解析一下mlc-llm(https://github.com/mlc-ai/mlc-llm)对大模型推理的流程以及使用的图优化,算子优化策略。mlc-llm的模型部署流程可以查看官方文档:https://mlc.ai/mlc-llm/docs/ ,也可以参考我前段时间写的这篇。此外,阅读mlc-llm的代码还需要理解一些TVM Unify的一些基础概念,可以参考等等。从 https://github.com/BBuf/tvm_mlir_learn 这里可以查看更多相关博客和资料。在。

2023-09-26 09:07:12 971

原创 MLC-LLM 部署RWKV World系列模型实战(3B模型Mac M2解码可达26tokens/s)

这篇文章介绍了一下笔者最近给mlc-llm做适配的工作,欢迎大家体验MLC-LLM和RWKV-World模型。

2023-09-02 11:05:29 1144

原创 ChatRWKV 学习笔记和使用指南

这篇文章还有一些ChatRWKV v2系统的模型实现部分,tokenizer部分都没有解析到,但目前篇幅已经比较多了,希望留到下次解析。

2023-08-30 17:07:23 6685 1

原创 【BBuf的cuda学习笔记十】Megatron-LM的gradient_accumulation_fusion优化

不需要总结,文本很短。

2023-08-23 16:23:44 754

原创 VLLM推理流程梳理

本文在对VLLM进行解析时只关注单卡情况,忽略基于ray做分布式推理的所有代码。先从使用VLLM调用opt-125M模型进行推理的脚本看起:可以看到这里创建了一个LLM对象,然后调用了LLM对象的函数。这就是vllm的入口点,接下来我们对LLM这个类的generaet过程进行解析。首先看一下LLM类的初始化函数:可以看到LLM类似于对LLMEngine进行了封装,一个LLM对象对应了一个LLMEngine对象。接下来我们解析一下和,首先来看:接下来对进行解析:从的定义可以知道,它做了初始化token

2023-08-14 17:33:47 7066 3

原创 大模型部署框架 FastLLM 实现细节解析

接着 大模型部署框架 FastLLM 简要解析 这篇文章首先梳理了一下FastLLM的调用链和关键的数据结构,然后解析了 FastLLM 的一些实现细节和CPU/GPU后端实现采用的优化技巧。以chatglm-6b的支持为例,函数入口在 https://github.com/ztxz16/fastllm/blob/master/src/models/chatglm.cpp#L626 ,这里的 就是输入的 context(string类型)。然后 https://github.com/ztxz16/fast

2023-07-27 09:21:00 1120

原创 大模型部署框架 FastLLM 简要解析

FastLLM支持X86/Arm/CUDA 3种架构的硬件,也就是说它的算子分别考虑了这几个架构的优化。此外,FastLLM除了支持FP32/FP16/BF16之外还支持INT8/INT4量化计算。所以FastLLM的优化就是在不同的平台上为不同的Bit数的数据实现Kernel,并且使用硬件特有的指令集来进行加速比如AVX2,Neon Instrics。在CUDA实现上,FastLLM并没有采用kernel fuse的方式进行进一步加速,这里的优化空间还是比较大的。

2023-07-20 09:22:01 1957

原创 【DeepSpeed 教程】四,DeepSpeed ZeRO++博客和代码解析

图 1:ZeRO++项目亮点展示。左上子图显示,与ZeRO阶段3相比,ZeRO++将通信量减少了4倍。右上子图显示了ZeRO++在RLHF模型训练上的表现,其中ZeRO++使RLHF训练速度提高了1.3倍,token生成速度提高了2倍。大型AI模型正在改变数字世界。由大型语言模型(LLMs)驱动的生成性语言模型,如Turing-NLG、ChatGPT和GPT-4,具有惊人的多功能性,能够执行摘要、编码和翻译等任务。同样,像DALL·E、Microsoft Designer和Bing Image Creato

2023-07-14 18:59:21 1394

原创 DeepSpeed-Chat 打造类ChatGPT全流程 笔记二之监督指令微调

在DeepSpeed-Chat 打造类ChatGPT全流程 笔记一中跑通了DeepSpeed Chat的训练和推理流程,DeepSpeed Chat的训练流程包含监督指令微调(SFT),Reward模型微调,基于人类反馈的强化学习(RLHF)三个步骤。接着上面文章的todo,这篇文章主要是解析一下监督指令微调(SFT)阶段的代码实现。

2023-07-05 16:37:45 1814

原创 DeepSpeed-Chat 打造类ChatGPT全流程 笔记一

之前翻译了几篇DeepSpeed的教程,也使用Megatron-DeepSpeed走通了GPT2模型的训练和推理流程。这篇文章想记录一下复现DeepSpeed前段时间给出的DeepSpeed-Chat例子,训练一个经过监督指令微调和RLHF之后的对话模型。

2023-07-01 18:52:52 1461

原创 【DeepSpeed 教程翻译】三,在 DeepSpeed 中使用 PyTorch Profiler做性能调试和Flops Profiler教程翻译

这篇翻译是对 https://www.deepspeed.ai/tutorials/pytorch-profiler/ 和 https://www.deepspeed.ai/tutorials/flops-profiler/ 两篇教程做的,使用DeepSpeed训练模型可以基于这两个教程做一下Profile工作判断模型的计算以及内存瓶颈在哪个地方。

2023-06-26 17:39:11 1093 1

原创 DeepSpeed结合Megatron-LM训练GPT2模型笔记(上)

本文基于DeepSpeedExamples仓库中给出的Megatron相关例子探索一下训练GPT2模型的流程。主要包含3个部分,第一个部分是基于原始的Megatron如何训练GPT2模型,第二个部分是如何结合DeepSpeed的特性进行训练Megatron GPT2,由于篇幅原因这篇文章只写了第一部分,主要是非常细致的记录了跑起来Megatron GPT2训练流程碰到的一些问题和如何解决的。

2023-06-15 22:20:03 1666 2

原创 【DeepSpeed 教程翻译】二,Megatron-LM GPT2,Zero Redundancy Optimizer 和 ZeRO-Offload

这篇文章主要翻译DeepSpeed的Megatron-LM GPT2 ,Zero零冗余优化器技术,ZeRO-Offload技术。关于DeepSpeed 的Zero和ZeRO-Offload的技术原理大家也可以查看图解大模型训练之:数据并行下篇(ZeRO,零冗余优化)这篇文章,文章里面对内存的计算和通信量的分析都很棒。ZeRO利用数据并行的计算和内存资源来降低模型训练所需的每个设备(GPU)的内存和计算要求。

2023-06-11 22:46:41 1326 1

原创 【DeepSpeed 教程翻译】一,Getting Started ,Installation Details 和 CIFAR-10 Tutorial

这个系列是对DeepSpeed的教程做一下翻译工作,在DeepSpeed的Tutorials中提供了34个Tutorials。这些Tutorials不仅包含配置DeepSpeed完成分布式训练的标准流程,还包含一些DeepSpeed支持的一些Feature比如低比特优化器,Zero等等。最近有使用DeepSpeed做一些简单的模型训练实验的需求,所以开一下这个专题,尽量翻译完DeepSpeed的大多数Tutorials,不定期更新。

2023-06-07 15:39:16 1819

原创 深度学习编译器之公共子表达式消除和死代码消除实现

在阅读代码实现的过程中,我发现基于MLIR来做公共子表达式消除的时候还顺带做了死代码消除的功能。另外,在考虑公共子表达式消除的时候需要保证两个重复的操作处于同一个基本块中以及两个重复操作之间没有其它具有副作用的操作才可以消除。在OneFlow的实现中只是对OneFlow的UserOp的特殊属性即OpName和SymbolID进行了擦除,用一个魔法属性来代替,这是因为这两个属性不应该去影响公共子表达式的消除。这个优化还是比较有用的,在OneFlow的Stable Diffusion优化中发挥了不小的作用。

2023-05-28 22:07:40 369

原创 深度学习编译器之Layerout Transform优化

更多的深度学习编译器知识可以在 https://github.com/BBuf/tvm_mlir_learn 找到。同时也维护了一个cuda学习仓库 https://github.com/BBuf/how-to-optim-algorithm-in-cuda 以及一个如何学习深度学习框架(PyTorch和OneFlow)的学习仓库,https://github.com/BBuf/how-to-learn-deep-learning-framework , 有需要的小伙伴可以。

2023-05-18 14:55:53 542 1

原创 Segment Anything模型部分结构和代码解析

本文介绍了 https://github.com/Oneflow-Inc/segment-anything 做的一些事情并解析了SAM的结构和代码实现。对于SAM来说,相比于模型更重要的是最数据进行处理,关于这方面大家可以参考:https://zhuanlan.zhihu.com/p/620355474。

2023-05-08 16:48:07 1870

原创 使用GPT4做Leetcode第 102 场双周赛

虽然一次周赛的几个题目说明不了太多问题,比如这个周赛的Hard题目就是板子题,算不上Hard,也许把第三题和第四题的顺序换一下比较合适。但是,GPT4的表现已经严重超出了我的预期。对于这次周赛的四个题目,GPT4的表现如下:题目1: 错了一次,简单提示后修正了错误,2A了。题目2: 1A。题目3: 无法通过提示的方法让GPT4做对,WA。题目4: 1A。不得不说,GPT4在模拟,模板题方面已经具备了不错的理解和处理能力,感觉在更强大的数据和更大模型的加持下以后大语言模型的做题能力能赶上一大半人类。| 从提

2023-04-26 09:48:38 556

原创 更全面的对比GPT4和Claude对MLIR的掌握能力

前面的文章中以Review一段MLIR相关的Pass代码为例子,对比了ChatGPT3.5,Claude,NewBing在该任务上的理解能力。我得出的结论是在该MLIR的相关任务上,Claude>ChatGPT3.5>>Newbing,评论区有人指出GPT4 >> Clude。我感觉上次的任务设计得不是特别好,并没有充分考察ChatGPT和Claude对MLIR的一些核心概念的理解。

2023-04-22 15:34:47 1501

原创 ChatGPT和Claude 对比测试(以Review MLIR Codegen代码为例)

这里将以oneflow IR部分中的一个Codegen任务(目标是在mlir codegen中支持oneflow stream,用oneflow stream替换pass中自己生成的stream,PR链接为:https://github.com/Oneflow-Inc/oneflow/pull/10149)为例,来对比一下chatgpt和claude对mlir的理解能力。

2023-04-18 19:28:56 3656 1

ncsdk-windows.rar

vs2015 movidius 神经计算棒一代 ncsdk windows c++调用SequeezeNet的代码。

2019-09-10

cs231-斯坦福大学-李菲菲-2016 课件

深度学习,李菲菲教授,课件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-01-30

空空如也

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

TA关注的人

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