- 博客(312)
- 资源 (34)
- 收藏
- 关注

转载 当太阳升起时开始奔跑
静谧的非洲大草原上,夕阳西下,这时,一头狮子在深思:明天当太阳升起,我要奔跑,以追上跑得最快的羚羊;此时,一只羚羊也在深思:明天当太阳升起,我要奔跑,以逃脱跑得最快的狮子。那么,无论你是狮子或是羚羊,当太阳升起,你要做的,就是奔跑。
2006-05-05 09:06:00
4760
3
原创 DeepSeek V2/V3中的MLA和Matrix Absorption
DeepSeek V3的网络结构基本沿用了DeepSeek V2,采用了MLA和DeepSeekMoE两大特性。本文主要涉及MLA(Multi-Head Latent Attention)。抛开维度变化,DeepSeek V3与V2在MLA结构上差别不大。详细请参见官方论文《DeepSeek-V3 Technical Report》和《DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model》。
2025-02-04 08:49:11
1046
3
原创 LayerNorm与Softmax的online化与并行化
现代神经网络中有不少算子需要先做归约(reduction),再基于reduction的结果来对每个元素进行处理。这会带来难以并行计算和容易overflow的问题。接下来以深度学习中常见的Softmax与LayerNorm算子为例看看这些问题在业界是如何被解决的。
2024-12-08 09:05:32
1159
原创 图说GPT网络结构(参数量与计算量估计)
实际使用时,我们会碰到各种网络变体,各种配置或各种跑法,另外还可能需要回答一些更细节具体的问题,比如KV Cache节省了多少计算量,需要额外占用多少memory,把某层分布式计算需要增加多少通信量,或者MQA/GQA相比传统的MHA可以节省多少memory等等。在模型的优化时,我们经常需要一些信息,诸如特定配置的模型计算需要多少compute与memory资源,计算与数据传输大概需要多长时间等。下面以经典的GPT2模型为例,在其网络结构上标注了各操作的shape,并进行参数量和计算量估计。
2024-09-15 09:07:17
1900
1
原创 LLM时代中的AI推理优化
毫无疑问,AI是当下最热的话题之一,而大模型又是当前AI的主角。几年前,正当深度学习进入瓶颈时,以GPT为首的LLM的横空出世让之似乎又找到了“第二增长曲线”。当模型规模大到一定程度时,它所表现出来的涌现能力(Emergent ability)是之前在小模型中所不曾见过的。这种大模型所特有的推理、计算等能力给我们带来了无穷的想象空间。但是,它的代价是模型和以往模型相比增大了成百上千倍。要玩大模型十亿参数基本是个入门级门槛,上百亿才算像点样。各个大公司为了争夺大模型的话语权,更是将大模型越“卷”越大。
2024-06-15 11:05:14
5704
原创 本地用AIGC生成图像与视频
最近AI界最火的话题,当属Sora了。遗憾的是,Sora目前还没开源或提供模型下载,所以没法在本地跑起来。但是,业界有一些开源的图像与视频生成模型。虽然效果上还没那么惊艳,但还是值得我们体验与学习的。
2024-03-16 10:18:43
3110
原创 线性规划中的对偶理论与Farkas引理及应用
对偶(Duality)理论与Farkas引理是线性规划中非常重要的部分,有着广泛的应用。本文聊一下关于它们的一些理解。文章不重在理论推导,因为任何一本关于优化的书基本都会有单独的章节来阐述相关的证明。以下先分别介绍Duality理论与Farkas引理,再说说它们的联系。
2024-02-03 08:43:51
3182
1
原创 LLM时代中的分布式AI
深度学习相较传统机器学习模型,对算力有更高的要求。尤其是随着深度学习的飞速发展,模型体量也不断增长。于是,前几年,我们看到了芯片行业的百家争鸣和性能指标的快速提升。正当大家觉得算力问题已经得到较大程度的缓解时,大语言模型(LLM, Large language model)的兴起又带来了前所未有的挑战。
2023-11-05 11:51:54
6484
2
原创 峡谷战争艺术 -《孙子兵法》在王者荣耀中的应用
MOBA游戏中一般有意识流与操作流两种。当然高手肯定是两者兼有的。但对于时间有限,偶尔打打养生局的人,根本没时间培养操作。因为要当绝活哥往往需要大量时间吃透特定英雄的操作和培养手感。一般人没那时间,而且这样也限定自己只能主玩少数英雄甚至1,2个英雄,游戏体验就会减少。有些高端技巧,可能训练营里玩得转,实战时就很容易玩脱。太依靠那些就会让发挥很不稳定。而相较之下,意识更加通用一些。换个英雄或者策略调整影响都不会很大。
2023-08-06 10:24:43
2812
原创 CUDA Sample中的reduce实现
我们知道,GPU擅长做并行计算,像element-wise操作。GEMM, Conv这种不仅结果张量中元素的计算相互不依赖,而且输入数据还会被反复利用的更能体现GPU的优势。但AI模型计算或者HPC中还有一类操作由于元素间有数据依赖,会给并行化带来挑战,那就是reduce操作。它代表一类操作,即将多个元素通过某种特定的运算进行归约。其应用很广泛,很多其它算法也以它为基础,如scan, histogram等操作。最naive的计算方式是序列化地挨个累加。
2023-05-07 10:47:34
2162
原创 AI推理计算框架中的内存优化
内存管理是AI计算中非常重要的一部分。我们希望模型计算时占用内存尽可能小,这样我们训练或推理时就可以用更大的batch size使其尽快收敛,或者提高吞吐率。又或者让我们可以使用参数更多、或更复杂的模型从而达到更好的准确率。由于现代深度学习模型大多在GPU上运行,而GPU的显存相比CPU小得多,因此我们这里主要关注的是GPU memory。首先看下我们需要重点关注哪些GPU memory。
2023-02-12 09:40:41
3580
原创 用C++元编程实现任意函数签名的回调
注册回调函数在C++中是十分常见的做法。但大多时候需要显式给出回调函数的声明,因为编译需要这个信息来根据ABI生成函数调用代码。那么问题来了,如果我们想注册不同的任意函数签名的回调函数呢?
2022-11-13 08:51:51
1268
原创 (三)大话深度学习编译器中的自动调优·Empirical Search
前面的第一篇与第二篇分别介绍了背景与一些相关概念,这第三篇我们开始切入正题,看下现代深度学习编译器中的自动调优(Auto-tuning)方法。Schedule的自动生成,一类方法是基于解析模型(Analytical model),然后使用一些经验公式来产生解;另一类方法是多面体编译技术。它将循环嵌套迭代空间建模为多面体,然后用如整数规划等数学方法求出能提升局部性与并行性的循环变换;还有一类就是经验搜索(Empirical search)方法。.........
2022-08-14 08:39:18
4036
3
原创 (二)大话深度学习编译器中的自动调优·DSL与IR
前一篇《(一)大话深度学习编译器中的自动调优·前言》介绍了深度学习编译器及早期算子自动调优的背景,在接下去更深入地聊自动调优具体方法之前,在这篇中想先聊下两个与之密切相关的重要基础概念:领域专用语言(Domain-specific Language,DSL)与中间表示(Intermediate Representation,IR)。DSL与IR在整个深度学习编译器中的位置大体如下
2022-05-15 11:53:02
5402
5
原创 (一)大话深度学习编译器中的自动调优·前言
深度学习计算框架中的自动化调优,尤其是高性能算子自动生成是这几年非常火的话题。这个系列的文章主要是对之前看到的零碎信息做个简单的总结。尽管,由于有些方向比较艰深,笔者懂得十分浅薄,文章在很多方面也只能蜻蜓点水。这是第一篇,权当是个引子。
2022-02-20 09:39:21
6742
5
原创 TVM中的auto-scheduling机制(Ansor)学习笔记
背景TVM沿用了Halide中算法的计算与调度分离的思想。用户使用Tensor Expression(TE)这种DSL定义计算,然后编译器优化相应的schedule,最后生成目标平台的代码。因此,要根据给定的计算自动产生高性能的算子实现,其核心就是找到好的schedule。然而这个schedule不仅和计算相关,还与硬件平台相关。这个搜索空间很大,本质上是个np-complete的组合优化问题。因此,TVM引入了auto-tuning机制,它使得编译出的算子实现性能上有了很大提升。最早一代的auto-tu
2021-11-21 07:33:44
8475
5
原创 TVM的“hello world“基础流程 II
上一篇《TVM的“hello world“基础流程 I》中基于一个最基本的case介绍了TVM中计算的定义与schedule的构建。这篇沿用上一篇中的case,继续介绍接下去的一个重点部分,就是编译。编译有了前面构建的schedule之后,接着就需要编译并生成目标代码了。这个工作主要由tvm.build()和relay.build()两个函数来完成。它们的区别在于应用目标的范围,前者用于单个算子,后者用于整个网络。由于网络可看作由算子组成,后者会调用前者。本例中是针对单个算子的,因此这里使用的是前者:
2021-08-22 08:12:20
4205
1
原创 TVM的“hello world“基础流程 I
前言继前图灵奖获得者Hennessy和Patterson在ISCA 2018提出“A New Golden Age for Computer Architecture”,编译器大神Chris Lattner在ASPLOS 2021提出了“The Golden Agen of Compiler Design”。另一方面,2020年图灵奖授予了编译器“龙书”作者Jeffrey Ullman和Alfred Aho。编译器技术在新的时代背景下似乎又焕发了新的活力,成为了业界的热点。而作为现在最热门的AI计算场景
2021-05-23 09:48:35
5576
3
原创 强化学习的并行加速
前言机器学习方法的复现性一直都是比较另人头痛的问题,因为很多因素都可能会影响最后的效果。而强化学习还涉及与环境交互带来的随机性,情况更加严重。可能类似的环境配置,跑上几遍结果还不太一样。2017年McGill University和Microsoft的论文《Deep Reinforcement Learning that Matters》中研究了强化学习的可复现性,指出像随机种子、环境因素、超参以及使用的codebase带来的不确定性都会导致结果难以重现。这在一定程度上就提高了实验成本。另一方面,除非是一
2021-02-28 12:58:17
15427
2
原创 奔跑吧,旅行商 - 当机器学习遇上组合优化
背景如今机器学习在视觉、自然语言处理、语音、推荐等领域的应用已非常广泛,相关的讨论也非常多。与这些热门领域相比,关于机器学习在组合优化中的应用相对还没那么泛滥。今天我们就来聊一下这个有意思的话题。值得一提的是,近几年热度升温的GNN和RL(《GNN、RL强势崛起,CNN初现疲态?这是ICLR 2021最全论文主题分析》)都是这个方向里的常规方法。在实际工程中,有一类优化问题需要我们从集合的所有组合中找出一个最优方案。这类离散空间中的优化问题就称为组合优化问题(Combinatorial Optimizat
2020-12-06 10:41:18
16462
10
原创 自动驾驶平台Apollo 5.5阅读手记:Cyber RT中的通信传输
前言计算框架是自动驾驶系统中的重中之重,也是整个系统得以高效稳定运行的基础。为了实时地完成感知、决策和执行,系统需要一系列的模块相互紧密配合,高效地执行任务流。由于各种原因,这些模块可能位于不同进程,也可能位于不同机器。这就要求计算框架中具有灵活的、高性能的通信机制。我们知道,Apollo在3.5版本中推出了Cyber RT替代了原先的ROS。之前写过两篇相关的文章介绍了其中的调度部分:自动驾驶平台Apollo 3.5阅读手记:Cyber RT中的协程(Coroutine)和自动驾驶平台Apollo 5.
2020-09-12 14:00:17
19710
1
原创 闲话模型压缩之量化(Quantization)篇
1. 前言这些年来,深度学习在众多领域亮眼的表现使其成为了当今机器学习的主流方法。但其巨大的计算量仍为人诟病。尤其是近几年,随着端设备算力增强,业界涌现出越来越多基于深度神经网络的智能应用。为了弥补算力需求与供给的巨大鸿沟,近几年来模型压缩成为了业界的热点之一。模型压缩又可细分为多个子方向。之前在浅谈端上智能之计算优化中有过一些简单的论述,同时在闲话模型压缩之网络剪枝(Network Pruning)篇中更加具体地整理了些关于网络剪枝(network pruning)的东西,今天就再将目光放到另一类方法上
2020-06-25 15:21:52
69934
26
原创 小议车辆环境视觉基础前视感知
1. 前言无论是AD/ADAS还是智能网联车,前视感知都是其最基础和重要的能力之一。自动驾驶(AD)是前几年的热门话题。今天虽然稍微降温下来一些,但仍是大家关注的重点之一,毕竟它是人类长久以来的梦想之一。众所周知,美国汽车工程师学会(SAE)将自动驾驶分为 L0~L5共六个级别。其中L3及以上允许由系统在限定或不限定条件下完成所有的驾驶操作;而L2及以下还是需要由人类驾驶员一直保持驾驶状态,因此...
2020-04-11 09:45:35
14367
原创 自动驾驶平台Apollo 5.5阅读手记:Cyber RT中的任务调度
前言Baidu Apollo在3.5中引入了Cyber RT,替换了之前基于ROS的变体。Cyber RT的一大特点在于其调度系统。因为自动驾驶与人身安全强相关,因此很强调实时性。传统的机器人系统并不为此设计,所以很难满足实时性要求。系统中存在大量异步任务,如果任其运行和抢占,系统会有很大的不确定性。为了提高系统中任务执行的确定性,Cyber RT引入了协程,在用户态来做调度,一方面让开发者可以...
2020-01-27 11:51:11
24674
9
原创 浅谈端上智能之计算优化
一、背景 - 边缘智能人工智能(Artificial intelligence)的迅速发展正在改变世界。以深度学习(Deep learning)为驱动力和代表的第三波AI浪潮,正在变革和赋能金融、制造、农业、交通、医疗、零售、教育等众多行业,同时也极大地影响着我们每个人的生活。当前,在移动设备上各种新的AI应用场景正在不断涌现。大量新的需求对端上的智能能力提出了新的挑战,也带来了新的机遇。今天,...
2019-11-16 10:24:36
15739
2
原创 闲话模型压缩之网络剪枝(Network Pruning)篇
背景今天,深度学习已成为机器学习中最主流的分支之一。它的广泛应用不计其数,无需多言。但众所周知深度神经网络(DNN)有个很大的缺点就是计算量太大。这很大程度上阻碍了基于深度学习方法的产品化,尤其是在一些边缘设备上。因为边缘设备大多不是为计算密集任务设计的,如果简单部署上去则功耗、时延等都会成为问题。即使是在服务端,更多的计算也会直接导致成本的增加。因此,人们正在从各个角度试图克服这个问题,如这几...
2019-09-15 09:23:26
47083
15
原创 超参数自动优化方法PBT(Population Based Training)
我们知道,机器学习模型的效果好坏很大程度上取决于超参的选取。人肉调参需要依赖经验与直觉,且花费大量精力。PBT(Population based training)是DeepMind在论文《Population Based Training of Neural Networks》中提出的一种异步的自动超参数调节优化方法。以往的自动调节超参方法可分为两类:parallel search和sequen...
2019-08-24 12:26:45
21606
原创 C++强化学习通过Python bindings接OpenAI Gym
OpenAI gym是强化学习最为流行的实验环境。某种程度上,其接口已经成为了标准。一方面,很多算法实现都是基于gym开发;另一方面,新的场景也会封装成gym接口。经过这样一层抽象,算法与实验环境充分解耦隔离,可以方便地自由组合。但gym是python的接口,如果想用C++实现强化学习算法,则无法直接与gym相接。一种方案是跨进程:一个进程运行python环境,另一个进程运行强化学习算法,与环境交...
2019-06-29 08:19:13
12387
原创 单机玩转神经网络架构搜索(NAS) - Auto-Keras学习笔记
介绍AutoML这个topic在机器学习领域越来越火,新的研究成果也是层出不穷。在网络架构(NAS),模型压缩(AMC),数据增强(AutoAugment),优化器设计(Neural Optimizer Search),平台相关优化(AutoTVM)等领域,我们都可以看到相应的研究成果表明机器学习可以达到比人肉调参更优的结果。自动化方法正在逐步替代调参工。相信不久的将来,我们面对一个场景,只要喂...
2019-04-05 09:05:40
15038
7
原创 自动驾驶平台Apollo 3.5阅读手记:Cyber RT中的协程(Coroutine)
原文链接:背景2019 CES上百度发布了Apollo 3.5,其中的亮点之一就是其高性能计算框架Cyber RT。我们知道,Apollo在3.0及之前是基于ROS。ROS虽然已建立起强大生态,在机器人社区广受欢迎,但其多用于学术界实验室验证机器人算法,并不是为了工业界产品设计的。虽然社区已经看到这一矛盾,并已开整ROS 2.0,但现在还处于开发阶段。自动驾驶相较于其它高性能系统而言,最重要的...
2019-02-04 12:22:38
22323
7
原创 从《西部世界》到GAIL(Generative Adversarial Imitation Learning)算法
看过美剧《西部世界》肯定对里边的真实性(fidelity)测试有印象。William对其岳父James Delos, Delores对Alnold的复制体Bernard,Emily对其父亲William都做过。其中有些测试方和被测试方都是机器人。永生一直是很多科幻剧热衷的话题,而《西部世界》给出了一种基于机器载体与人类思想结合的方案,就是人的复制。那么问题来了,要想复制人,主要有两部分:一部分是躯体,当然这部分按剧中设定已不是问题,无论人、马、牛都能分分钟3D打印出来;另外一部分是思想的复制。但思想很难被
2018-12-23 20:04:02
19735
12
原创 神经网络架构搜索(Neural Architecture Search)杂谈
机器学习从业者被戏称为“调参工”已经不是一天两天了。我们知道,机器学习算法的效果好坏不仅取决于参数,而且很大程度上取决于各种超参数。超参数的自动搜索优化是一个古老的话题了。深度学习前它主要针对传统机器学习算法的参数,比较经典的方法有random search, grid search,Bayesian optimization,Reinforcement learning, Evolutionar...
2018-12-02 13:24:26
81177
16
原创 自动驾驶平台Apollo 3.0阅读手记:perception模块之lane post processing
背景之前写过一篇杂文《自动驾驶平台Apollo 2.5阅读手记:perception模块之camera detector》,介绍到用于camera输入的DNN模型不仅会输出物体检测结果,还会输出车道线的语义分割结果。但要得到最终的车道线信息,还要经过后处理。项目中自带一个例子cc_lane_post_processor_test,我们就以这个例子为线索,看下它的大体实现。首先按《自动驾驶平台A...
2018-10-13 19:26:46
14804
1
原创 深度增强学习DDPG(Deep Deterministic Policy Gradient)算法源码走读
本文是基于OpenAI推出deep reinforcement learning算法集baselines。之前写过该项目的环境setup介绍《常用增强学习实验环境 I (MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)》以及其中的另一重要算法-PPO算法走读《深度增强学习PPO(Proximal Policy Optimization)算...
2018-09-15 11:39:16
24251
8
原创 自动驾驶平台Apollo 2.5阅读手记:perception模块之camera detector
Apollo无人驾驶平台中camera会用来检测车道线及障碍物(车辆,自行车,行人等)。这是通过一个多任务网络来完成的。其中的encoder部分是Yolo的darknet,decoder分两部分:一部分是语义分割,用于车道线区域检测;另一部分为物体检测,用于物体检测。物体检测部分基于Yolo,同时还会输出其方向等3D信息,因此称为yolo3d。这些信息被输出后,就可以送到后续模块中进一步处理,从而...
2018-07-01 18:06:26
16916
22
原创 深度增强学习PPO(Proximal Policy Optimization)算法源码走读
OpenAI出品的baselines项目是一系列reinforcement learning(强化学习或增强学习)算法的实现。现在已经有包括DQN,DDPG,TRPO,A2C,ACER,PPO在内的近十种经典算法实现,同时它也在不断扩充中。它为对RL算法的复现验证和修改实验提供了很大的便利。本文主要走读其中的PPO(Proximal Policy Optimization)算法的源码实现。PPO是...
2018-05-27 19:40:58
107226
27
原创 自动驾驶平台Apollo 2.5环境搭建
我们知道,自动驾驶在学界其实已经是个很老的topic了。而这几年,伴随着以深度学习为主力的第三次AI浪潮,大家似乎看到了自动驾驶商业化的重大机会,于是无论是学界还是工业界都开始将注意力转向该领域。放眼望去,满大街似乎都在搞自动驾驶。前段时间,百度又发布了自动驾驶平台Apollo的2.5版本。要想搭个环境玩一下的话,其实官方文档里挺详细了。这里主要是备忘一下主要流程和一些小坑的解决方法。大体可分为以...
2018-05-06 19:16:32
18726
2
原创 读源码品Caffe - 结构流程篇
原文链接: https://blog.youkuaiyun.com/jinzhuojun/article/details/79834697背景本文主要介绍深度学习框架Caffe的工作原理和实现。时至今日,各种深度学习框架百花齐放,百家争鸣,从流行程度来说Caffe可能已经不同往日,那我们为什么还要来学习它的代码呢?尽管今天我们有了更多的选择,比如TensorFlow后来居上,凭借完整的生态、庞大的...
2018-04-07 18:57:53
7796
原创 常用增强学习实验环境 II (ViZDoom, Roboschool, TensorFlow Agents, ELF, Coach等)
原文链接:http://blog.youkuaiyun.com/jinzhuojun/article/details/78508203前段时间Nature上发表的升级版Alpha Go - AlphaGo Zero再一次成为热点话题。作为其核心技术之一的Deep reinforcement learning(深度增强学习,或深度强化学习)也再一次引发关注。Alpha Zero最有意义的地方之一是它去除了从...
2017-11-12 11:15:51
13517
原创 深度增强学习(DRL)漫谈 - 信赖域(Trust Region)系方法
一、背景深度学习的兴起让增强学习这个古老的机器学习分支迎来一轮复兴。它们的结合领域-深度增强学习(Deep reinforcement learning, DRL)随着在一系列极具挑战的控制实验场景及其它跨领域的成功应用,现在已是各大顶级AI会议的热门topic之一。之前两篇杂文深度增强学习(DRL)漫谈 - 从DQN到AlphaGo和深度增强学习(DRL)漫谈 - 从AC(Actor-Critic
2017-09-16 23:40:31
26233
2
The.Art.of.Multiprocessor.Programming.Source.Code
2012-02-14
Windows Internals Fifth Edition
2011-01-28
Principles of Data Mining
2010-09-08
Understanding Search Engines: Mathematical Modeling and Text Retrieval
2010-09-08
Mining the Web-Discovering Knowledge from Hypertext Data
2010-09-08
Search Engines, Link Analysis, and User’s Web Behavior
2010-09-08
Professional Linux Kernel Architecture
2010-08-29
《Dynamic Programming and Optimal Control》 Vol 2
2010-07-05
《The nature of statistical learning theory》Vapnik V.N.
2009-10-25
《Elements of the Theory of Computation》
2009-10-02
《The Design of The Unix Operating System》(unix操作系统设计)
2009-10-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人