自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 DeepSeek-R1

为什么要冷启动:普通的SFT以对话格式作为微调的数据,这是因为人类可以拥有或者直接标注大量这样的数据,但是推理模型就很难获得包含推理过程的数据,因为可查看的数据资源中没有包含推理过程的,而且人工标注起来成本显然是巨大的。因此,可以得出两个结论:首先,将更强大的模型提炼成较小的模型会得到极好的结果,而依赖于本文提到的大规模强化学习的小模型则需要巨大的计算能力,甚至可能无法达到提炼的效果。例如,在具有确定性结果的数学问题中,模型被要求以指定的格式(例如,在一个框内)提供最终答案,从而允许基于规则的正确性验证。

2025-02-09 01:28:24 810

原创 DeepSeek V3报告阅读

该技术报告从架构、基础设施、预训练和后训练四个方面展开,由于有不少技术已经出现在了V2报告中,因此本文只关注V3与V2相比增加了什么内容,或者有哪些改进。

2025-02-08 18:19:09 754

原创 DeepSeek V2报告阅读

在H800集群上进行的实际训练中,对于每万亿标记的训练,DeepSeek 67B需要300.6K GPU小时,而DeepSeek-V2仅需要172.8K GPU小时,即稀疏的DeepSeek-V2与密集的DeepSeek 67B相比,可以节省42.5%的训练成本。研究人员还设计了一种设备限制的路由机制,以限制与MoE(Mixture of Experts)相关的通信成本:由于专家的细粒度分割,激活的专家数量可能很大,因此应用专家并行,MoE相关的通信将更加昂贵。设备级别的负载均衡损失也是类似。

2025-02-08 00:14:15 1152

原创 DeepSeek LLM(初代)阅读报告

我们介绍了DeepSeek LLMs,一系列开源模型,这些模型是基于2T tokens的庞大数据集从零开始训练的。在本文中,我们提供了关于超参数选择、scaling-law以及我们进行的各种微调尝试的深入解释。

2025-02-08 00:12:39 922

原创 投机解码论文阅读:Falcon

如下图,在训练过程中,草稿模型预测得到对下面几个token以及其特征的预测之后,会根据正确的预测(也就是LLM自回归生成的token以及特征)对草稿模型输出进行替换。同时预测两个token X 和 Y,其总熵为:H(X)+H(Y) = H(Y∣X) + 2I(X;具体替换的比例是根据训练所处的阶段和预测结果和正确结果之间的汉明距离决定的,当前训练轮次越小、汉明距离越大,则替换的比例越高。除了加速比的对比实验,还有对草稿序列的接受率和接收长度的对比,被对比的方法是medusa和eagle。

2025-01-10 15:21:36 755 1

原创 KeyFormer:使用注意力分数压缩KV缓存

202403,发表在Mlsys。

2024-12-16 15:53:57 2120

原创 Unlocking efficiency in large language model inference: A survey of speculative decoding

在SpecDec之后,Google和DeepMind也进行这方面的工作,也就是Fast inference from transformers via speculative decoding[202305,ICML2023]和Accelerating large language model decoding with speculative sampling[202302],对应于上面的投机解码和投机采样那两篇文章。此外,这种方法提出了一种创新策略,放宽了严格的验证标准,从而提高了起草令牌的接受率。

2024-11-30 15:00:23 754

原创 Llmcad: Fast and scalable on-device large language model inference

题目:Llmcad: Fast and scalable on-device large language model inference 发表于2023.09声称是第一篇speculative decoding+边缘设备的论文(不一定是绝对的第一篇),不开源,没有github地址。

2024-11-27 14:10:22 1170

原创 投机解码EAGLE精读

题目:EAGLE: Speculative Sampling Requires Rethinking Feature Uncertainty [ICML2024] 发表于24.02LLM推理是自回归的,这个自回归是从token层开始的自回归(也就是词元被转成嵌入的那一层)。而EAGLE将这一自回归延后到了特征层(也就是经过了多层transformer layer后)。通过在特征层的自回归,省去了transformer layer的时间。在特征层自回归生成几个token之后,把它们当做草稿序列进行校验。

2024-11-26 11:51:28 1123

原创 Medusa精读

自回归+每步都要从HBM读取,造成访存瓶颈;普通投机推理需要单独获取一个草稿模型。基于以上提出Medusa,通过增加解码头来并行预测接下来几个token,使用基于树的注意力机制,在每个解码步骤中构建多个候选,并同时验证它们。有两种获得解码头的方式,一种是冻结原来的模型,只训练解码头;另一种是原模型和解码头共同训练。此外,提出了几种扩展,这些扩展改进或扩展了MEDUSA的效用,包括一种自我蒸馏方法,用于处理没有训练数据的情况。

2024-11-24 11:23:55 702

原创 非root用户安装CUDA toolkit

4.下载完成后执行.run文件,需要添加两个参数,一个是--override,用于跳过某些检查或限制;另一个是--toolkitpath,它表示安装路径,必须是自己目录下面的路径,如果是根目录就会安装不上。根据实际情况,如果不需要安装驱动,就不选择Driver;其他就正常安装就可以。这个.run文件大概3-4G,需要下载一会。表示当前驱动最多支持cuda12.1。正常情况下,这样就能安装成功了。2.进入cuda安装界面,

2024-11-22 19:57:23 697

原创 LLM Inference Unveiled

early-exit:在decode过程中,有时候不一定非要经过每一个transformer层,对于某些令牌,隐藏状态在中间的一些层会饱和。算法级别-加快decoding的算法:它将相关算法分成两种,即生成单个token尽可能少地使用参数和每次前向传播解码更多数量的token,其中包含比较关注的speculative decoding。利用稀疏性:训练一个稀疏性的预测器,如果某些列是稀疏的,就直接在计算中舍弃他们。这也是一篇推理加速的综述,重点关注一下它的组织结构吧,也就是它对推理加速方法的分类。

2024-11-22 17:07:07 484

原创 使用flash-attention推理

虽然transformers库中可以实现flash attention,但是默认情况下是不使用的,需要在加载模型时使用一个参数:attn_implementation="flash_attention_2"。不仅如此,还需要在本地install flash-attn;如果安装失败,可以下载。这个文件,下载到本地之后pip install 它就可以。

2024-11-20 12:31:06 1147

原创 SpecInfer论文阅读

题目:SpecInfer: Accelerating Large Language Model Serving with Tree-based Speculative Inference and Verification本文提出了构建token tree的方式、引入了基于树的并行解码机制。

2024-11-18 12:28:18 999 1

原创 REST: Retrieval-Based Speculative Decoding

文章最后指出,REST的性能直接受到数据存储的准确性和完整性的影响。直接构建推测解码中的草稿令牌序列。最直接的想法是使用密集索引检索,但是密集索引也是一个参数量不小的model,使用它们会增加额外的开销。在related work部分,介绍了本文与LLMA的差异:LLMA的信息来源是RAG得到的内容,而本文是全面数据存储。在每次推理步骤中,我们首先使用先前的令牌(预先生成的令牌或提示令牌)作为查询,以在数据存储中识别确切的匹配项。数据存储:数据的存储形式是(c,t)对,其中c是指上下文,t是指c的延续。

2024-11-17 20:14:27 779

原创 Distillspec: Improving speculative decoding via knowledge distillation

题目:Distillspec: Improving speculative decoding via knowledge distillation在本工作中,提出了DistillSpec,,它依赖于知识蒸馏(KD)来获得一个有效的草稿模型。与KD的标准应用主要关注提高小型学生模型的任务性能不同,DistillSpec旨在将草稿模型与目标模型对齐,以提高投机解码期间的接受率。

2024-11-15 21:53:07 377

原创 MoEfication代码实践

由于这是访存瓶颈的,所以减少的计算量并不会减少整体时间。t5-sst2-inf.py:它使用一个情感分析的数据集sst-2,让t5-base执行推理,并将每一个层的推理结果都保存下来,所以非常消耗存储。首先让完整的t5-base对训练数据集sst-2进行推理,每条训练数据的推理结果是一个seq_len*d_model大小的张量,然后对所有推理结果进行concat并保存。t5_select_example.py:训练MLP,也就是根据上面保存过的推理结果,结合构建的专家,来训练路由模块。

2024-11-12 21:45:22 404

原创 MoEfication

MoEfication可以使用模型的预训练权重,将非MoE的LLM转换为MoE版本。这种方法消除了对MoE模型昂贵预训练的需求。为了实现这一点,MoEfication首先将预训练的LLM中的FFN神经元划分为多个组。在每个组内,神经元通常由激活函数同时激活。然后,它将每个神经元组重构为一个专家。通过综述的描述,这篇文章最吸引我的点是它不需要预训练就能把一个训练好的模型转成MoE。

2024-11-07 16:52:34 432

原创 FFN的推理优化

常见的说法是Knowledge Neurons。tokens在前一层attention做全连接之后,通过FFN的参数中存放着大量训练过程中学习到的比较抽象的知识来进一步更新。相关的文章比如,大概率会让整体表现变得很差。两个FC中间会有个,一般设置为4,也就是先把隐藏层维度变成原来的4倍,经过激活函数后再降回来。把这个地方调小会发现怎么都不如大点好。

2024-11-07 11:57:49 1297

原创 投机解码实践

建议目标模型的参数量是草稿模型的x-x倍,如果差的过大,会导致草稿模型推理出来的token和目标模型差很多,拒绝的概率大大增加;用opt-6.7b作为目标模型opt-1.3b作为草稿模型,发现两个模型的推理用时差距太少,比如后者推理一个token用时为前者3/4,那么反而会浪费时间。而使用投机解码之后,由于草稿模型中的一些token被目标模型接受,于是这个过程中草稿模型执行了12次推理,目标模型执行了3次推理。模型最好选比较新的,比较老的模型会导致目标模型和草稿模型推理分布差距过大。

2024-11-05 12:31:00 919

原创 Survey on Efficient Inference

题目:A Survey on Efficient Inference for Large Language Models论文首先介绍了模型制约LLM推理速度的三个要素:模型大小:主流大型语言模型通常包含数十亿甚至数万亿个参数。例如,LLaMA-70B模型包含700亿个参数,而GPT-3模型则扩展到1750亿个参数。这种相当大的模型尺寸显著增加了在大型语言模型推理过程中的计算成本、内存访问成本和内存使用量。注意力操作:在预填充阶段,自注意力操作在输入长度上表现出。

2024-11-01 23:29:56 882

原创 Efficient Large Language Models: A Survey

题目:Efficient Large Language Models: A Survey这篇论文将高效LLM方式分成三大类:model-centric、data-centric和frameworks,本文主要摘录和总结论文中和LLM推理加速相关的内容。

2024-10-31 19:49:10 774

原创 vLLM+torch.profiler实践

在vllm使用torch.profiler,vllm的/examples/offline_inference_with_profiler.py文件中,通过指定VLLM_TORCH_PROFILER_DIR,来记录离线推理的轨迹。基于上面的torch.profiler,基于transformers库和vllm库加载模型,并执行相同的推理任务,生成两个不同的trace.json文件。发现它调用了17次llm_engine中的step函数,调用次数和生成的token个数相同,说明它是自回归地生成token。

2024-10-31 14:30:14 2337

原创 vllm指定gpu序号

如果想要指定vllm serve 运行的1号gpu,不能仅仅在前面加CUDA_VISIBLE_DEVICES=1;还需要在参数里指定device = cuda,因为不指定的话默认device是auto。

2024-10-30 12:09:33 1427

原创 Quest: Query-Aware Sparsity for Efficient Long-Context LLM Inference

从摘要部分看,llm推理加速的需求是来自于llm的支持越来越长的上下文的需求,随着序列长度的增长导致推理速度降低。将得到的两行的矩阵和当前token的query进行点乘,得到点乘的结果后每一列去最大值,然后各个最大值相加。根据其related work,它介绍了过去一些kv cache压缩的工作,并指出本文的工作不在于将kv cache压缩,而是将它们。将每个page的评分从高到低排列,取其中top-K个评分最高的page作为最终关注的KV cache page。,以减少从HBM中取出的次数,加快推理。

2024-10-18 16:09:31 408

原创 LLM推理加速-入门与前置知识

​ LLM(大语言模型)加速是指通过各种技术优化其推理和训练过程,以提高处理速度和计算效率。由于大语言模型通常包含数十亿甚至上千亿个参数,计算开销巨大,因此加速技术的应用至关重要,尤其是在实时应用、低延迟要求或资源受限的环境中。LLM加速技术主要涵盖硬件加速、算法优化、软件框架优化和分布式计算等方面。需要考虑的几个问题:给LLM加速的方法涉及到很多方面,哪种对加速的提升最大?哪种是当前研究的热门方向?ChatGPT给的答案是:在现有的加速技术中,和是最常用且最容易优化的加速手段;

2024-10-15 12:07:52 1024

原创 微软Graph RAG实践-query部分源码分析

由查询的调用语句入手:python3 -m graphrag.query --root ./ragtest --method global "查询的问题"入口程序为graphrag/query/__main__.py,它根据参数method对使用局部搜索还是全局搜索进行选择。

2024-10-12 14:09:35 1076

原创 微软Graph RAG实践-quick start

如果自己的语料是中文,同时希望自己的输出也是中文,那么就可以修改ragtest/prompts中的文件,这个文件夹中的文件是提供给LLM的提示,不需要把所有提示英译汉,只需要把提示中的“in English”改成“in Chinese”即可;这个日志同样也可以用来查看程序运行轨迹,辅助理解代码。另外,同文件夹下的 .env文件也要修改,它对应了settings.yaml文件中的${GRAPHRAG_API_KEY}注意自己使用的LLM和嵌入模型的base_url可能不一样,这时候要修改api_key。

2024-10-11 13:25:05 451

原创 Finding Optimal Solutions to Cooperative Pathfinding Problems

地图和常规MAPF地图定义相似,agent占据一个空格,并且可以向相邻空格移动不同之处在于:可以对角线移动可以循环移动,如下图单个代理路径的cost是代理到达其目标所花费的总时间步数,而整个解决方案的cost是所有路径成本的总和。虽然可以循环移动,但不能交换位置,比如图中不能发生1和2直接交换位置的情况。

2024-10-09 15:48:39 574

原创 CBS(Conflict-Based-Search)原理和代码实现

path : 一条机器人的路径,也就是我们平时用得最多的单机规划结果solution : 多机系统中所有机器人的 path 的集合( n 条 path ),也就是 mapf 算法的全局规划结果conflict : 冲突.上述的 solution 中, n 条 path 之间可能会有冲突(没冲突当然皆大欢喜了).具体的描述形式为 (​) ,表示在时刻 t , ​ 和 ​ 同时占据了顶点 v . 拿栅格地图来说,就是在时刻 t , ​ 和 ​ 同时占据了矩阵的一个格子 matrix(i,j) .

2024-10-09 10:47:14 2894

空空如也

空空如也

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

TA关注的人

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