- 博客(800)
- 资源 (10)
- 收藏
- 关注
原创 A Model-Driven Deep Learning Method for Normalized Min-Sum LDPC Decoding
来源Q. Wang, S. Wang, H. Fang, L. Chen, L. Chen and Y. Guo, “A Model-Driven Deep Learning Method for Normalized Min-Sum LDPC Decoding,” 2020 IEEE International Conference on Communications Workshops (ICC Workshops), Dublin, Ireland, 2020, pp. 1-6, doi: 10.1
2020-09-07 14:09:38
1110
原创 每日强化学习
20200901强化学习阅读:https://blog.csdn.net/qq_30615903/article/details/80739243
2020-09-01 15:23:39
173
原创 Relation extraction文章
Others2018No.FigureTitleAuthorsPub.Links5CASREL:A Novel Cascade Binary Tagging Framework for Relational Triple ExtractionKun Ho Kim, Oisin Mac Aodha, Pietro PeronaCVPR 2018 (Spotlight)paper4[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xk
2020-06-12 07:58:29
886
原创 凸优化之内点法
Convex Optimization Stephen Boyd Department of Electrical Engineering Stanford University 第11章本文为笔者结合原书及博客https://blog.csdn.net/dymodi/article/details/46441783 记录自己相关解释原始问题原始问题对应的拉格朗日公式为:利用障碍函...
2020-04-05 11:37:35
1838
原创 GloVe: Global Vectors for Word Representation必记
关于算法原理参考:下面是Relation with skip gramskip gram:接下来在整个corPus 中训练:但在vast corpus 难以求所有的Qi,jQ_{i,j}Qi,j,采用近似但对于两分布中的交叉熵损失是有弊端的:即低概率高权值并且上式中的Qi,jQ_{i,j}Qi,j还是难以normalized,因此不归一化带来的问题是Qhat,Pha...
2020-03-04 11:41:32
305
原创 semi -supervised classification with graph convolutional networks学习必记
1 主要解决的问题半监督学习:用于少量节点标签未知,例如文本、citation network、知识图谱分类2 主要思想采用图卷积中的一阶局部近似(即K=1),这部分的理解可以参考Chebyshev多项式作为GCN卷积核当K=1 时有两个参数,模型scales linearly in the number of graph edges ,同时可以表征局部图结构和节点的特征:3. 半...
2020-02-19 14:27:03
441
原创 Convolutional Sequence to Sequence Learning学习心得
为什么使用CNN学习序列表示和RNN相比,CNN产生的背景向量固定并且通过stacking 可以使 contex size 更大,如下图。和RNN相比,CNN产生的背景向量固定并且通过stacking 可以使 contex size 更大,如上图。Hierarchy representation如图1,只需要三次CNN operation ,而需要 7 次 r...
2020-02-18 16:25:43
704
原创 Sequence to Sequence Learning with Neural Networks学习笔记
论文的主要创新点提出了序列到序列的学习方法提出的背景DNN的限制:输入和输出向量维度固定,实际上很多序列问题中的序列长度不是已知先验单个RNN 的限制:输入和输出等长,且要一一对齐且对齐已知,无法应用到输入输出不等长且对应关系为非montonic解决方案两个RNN理论可行一个负责将输入充列map 为固定大小的vector(背景向量,含有整个输入句子的信息),另一个RNN将背景向列...
2020-02-17 16:44:20
386
原创 Attention Is All You Need(Transformer )
今天是2020年2月1日,笔者学习了Attention Is All You Need(Transformer )论文,可以在sequence to sequence 模型中用multi head self -attention 代替RNN,可以并行计算输出,其中multi head 的作用可以集成不同的上下文attention,由于knowledge leve有限,代码层面有待学习...
2020-02-01 16:54:11
211
原创 自然语言处理(机器翻译IBM模型 系列)
机器翻译方法概述直接转换法基于规则的翻译方法基于中间语言的翻译方法基于语料库的翻译方法- 基于事例的翻译方法- 统计翻译方法- 神经网络机器翻译基于规则的翻译过程分成6个步骤:(a) 对源语言句子进行词法分析(b) 对源语言句子进行句法/语义分析© 源语言句子结构到译文结构的转换(d) 译文句法结构生成(e) 源语言词汇到译文词汇的转换(f ) 译文词法选择与生成...
2019-12-25 16:29:35
3934
原创 【vllm】MCP工作原理
简单来说,就像一个专门为AI应用设计的“USB-C”接口标准,而则是遵循这个标准的“转接头”。它让AI能够安全、统一地与你的本地文件、数据库或各种外部工具进行交互。
2026-04-15 19:26:49
351
原创 【vllm 】WorkerProc WorkerWrapperBase GPU worker之间的关系
"""返回当前 Worker 的空闲显存(MB),如果低于阈值则打印警告"""# 假设 worker 有一个 .device 属性和 .get_memory_info() 方法free = worker.get_memory_info()[0] / (1024**2) # 转换为 MB。
2026-04-13 17:56:25
391
原创 【vllm] partial 语法
这段代码的作用是:给定对象obj和一种“方法表示”(字符串 / 序列化 bytes / callable),把它转换成真正可调用的函数,并用argskwargs执行。其中 bytes 和 callable 两种情况都默认把obj作为第一个参数传进去。为什么字符串分支不用partial,而 callable/bytes 分支要用这个函数在 worker / RPC / Ray 远程调用里通常怎么用。
2026-04-13 16:23:45
379
原创 【vllm】async_output_queue
创建是为了实现异步调度,将 GPU 计算与 CPU 输出处理解耦,通过独立线程处理输出复制,实现计算与通信的重叠执行。
2026-04-13 15:53:29
375
原创 【vllm】vllm/docs/configuration/optimization.md
当输入处理(在 API 服务器内运行)相比模型执行(在引擎核心内运行)成为瓶颈,并且您有额外的 CPU 容量时,这非常有用。尽管如此,由于多模态编码器的权重在每个 TP rank 上被复制,内存消耗会略有增加,如果模型刚好能放入内存,可能导致 OOM。默认情况下,TP 用于对多模态编码器的权重进行分片,就像对语言解码器一样,以减少每个 GPU 上的内存和计算负载。专家并行是一种专门用于混合专家(MoE)模型的并行形式,不同的专家网络被分布到不同的 GPU 上。它使用与张量并行相同的并行度。
2026-04-09 16:58:27
323
原创 【vllm】shared_worker_lock
””return multiprocessing.get_context(mp_method) shared_worker_lock = context.Lock() 一般怎么用呢在 vLLM 中,返回一个),用于创建与设置一致的子进程(fork或spawn而则基于该上下文创建一个,用于协调多个 worker 进程对共享资源的访问。
2026-04-09 16:49:26
362
原创 【vllm】OMP_NUM_THREADS
vLLM 启动多进程 worker 前,根据 CUDA/Ray 环境决定是否强制用spawn,再根据容器 CPU 配额和并行 worker 数量,自动把每个进程的 CPU 线程数降到合理范围,避免多进程下线程打架导致性能下降。到底控制什么和的关系为什么world_size增大时每个 worker 的线程数要减少在 Docker / K8s 里这段代码为什么特别重要OpenMP线程不是这段代码里直接启动的。
2026-04-09 16:48:06
396
原创 【vllm】PD分离
NIXL (NVIDIA Infrastructure eXtension Library) 是一个高性能的 GPU 内存传输库,支持 RDMA(远程直接内存访问)等传输方式。在 vLLM 的 PD 分离架构中,NIXL 负责在 prefill 和 decode 实例之间传输 KV cache 数据2。因为 CUDA 上下文、驱动状态、线程和锁不是 fork-safe,复制父进程状态会导致子进程中的 GPU 运行时异常。
2026-04-09 15:19:13
426
原创 【无标题】vLLM:推理吞吐与尾延迟的资源真相
│ Chunked Prefill 降低延迟的本质原因 ││ 问题 │ Chunked Prefill 解法 ││ 长Prefill阻塞Decode │ Prefill切块,每块不超过token预算 ││ → TPOT抖动 │ Decode每轮都能推进 ││ │ → P90_TPOT 稳定下降 ││ 每轮只能处理1个 │ 每轮可处理多个短输入prefill ││ 新Prefill │ 减少waiting队列等待轮数 ││ → TTFT排队过长 │ → P90_TTFT 大幅下降 │。
2026-04-01 19:34:56
331
原创 vLLM V1 Scheduler的调度逻辑&优先级分析
https://mp.weixin.qq.com/s/PAp5PPEUySRInqANcJRPgwvllm 中不使能chunked prefill 优先prefill 还是decode?当 chunked prefill 被禁用时,vLLM 没有明确的优先级策略,而是按照请求到达的顺序(FCFS)或优先级策略进行调度。vLLM V1 采用统一调度器,不严格区分 prefill/decode 阶段: 12. 禁用 Chunked Prefill 的限制当 chunked prefill 禁用时,调度器有
2026-04-01 17:45:35
374
原创 【vllm】max_num_batched_tokens。Performance Tuning with Chunked Prefill
https://docs.vllm.ai/en/v0.17.0/configuration/optimization/#preemption
2026-04-01 17:22:21
24
原创 【vllm】vllm根据并发学习调度
并发性,仅统计 RUNNING 队列不包含waiting 队列中的请求不限于decode 阶段,包含所有正在执行的请求统一调度:vLLM V1 混合处理不同阶段的请求│ 抢占后重新调度的核心问题 ││ RECOMPUTE模式 │ ││ 要重新prefill?│ ✅ 要!││ 带哪些token?│ prompt + 所有已生成的output token ││ │ 完整序列全部重新计算 ││ 为什么?│ KV Cache已释放,必须重建 ││ SWAP模式 │ ││ 要重新prefill。
2026-04-01 17:11:26
380
原创 【vllm】从并发量。 理解vllm
在中定义为单次迭代能处理的最大 token 数:1│ max_num_batched_tokens 对并发的影响 ││ 影响类型 │ 说明 ││ 直接限制 │ ❌ 不直接限制最大并发数上限 ││ 间接影响1 │ ✅ 影响每轮新增请求数 ││ │ 值越大→新请求进入越快 ││ 间接影响2 │ ✅ 影响达到最大并发的速度 ││ │ 值越大→越快达到max_num_seqs ││ 极端情况 │ ⚠️ 小于单个请求长度时 ││ │ 该请求永远无法被调度 ││ │ 变相减少有效并发数 │。
2026-04-01 15:52:11
395
原创 【vllm】多模态处理完整流程
每个多模态模型定义自己的占位符格式3阶段发生位置主要操作模型加载进程启动时创建多模态处理器和 tokenizer请求预处理API ServerToken 替换发生在这里推理执行GPU Worker生成图像特征并合并嵌入Token 替换不是在模型加载时做的,而是在每次请求处理时动态进行的,这样可以根据不同的图像大小和内容动态计算需要的 token 数量。
2026-03-20 14:52:17
376
原创 【RL】LLM-in-Sandbox Elicits General Agentic Intelligence
我们引入了LLM-in-Sandbox(沙盒中的大型语言模型)框架,使大型语言模型(LLM)能够在代码沙盒(即虚拟计算机)内进行探索,以激发其在非代码领域的通用智能。我们首先证明,强大的LLM无需额外训练,就表现出利用代码沙盒处理非代码任务的泛化能力。例如,LLM会自发地访问外部资源以获取新知识,利用文件系统处理长上下文,并执行脚本以满足格式要求。
2026-03-19 21:15:04
453
原创 【vllm】指令微调
这种模式把语言模型看作一个文本续写引擎。你给它一段文本(叫做prompt),它的任务就是预测接下来最可能出现的文本,并把它们“补全”出来。输入: 一个简单的字符串prompt交互模型: 单次、无上下文的“续写”。它不原生支持多轮对话的角色扮演(比如“用户”和“助手”)。适用模型: 早期模型如主要使用这个接口。现代的聊天模型虽然也可能支持,但通常不推荐用这种方式。这是为对话场景量身定做的模式。它把语言模型看作一个聊天机器人。你可以定义不同的角色(系统、用户、助手),并提供一个完整的对话历史。输入。
2026-03-19 11:52:45
394
原创 【RL】Stabilizing MoE Reinforcement Learning by Aligning Training and Inference Routers
这篇论文通过严谨的分析和实验,定位了MoE模型在强化学习训练中不稳定的核心原因——训练与推理阶段的路由器行为不一致。并据此提出了一个简单、高效且有效的解决方案,即在训练时重放推理阶段的专家选择。R3不仅成功解决了训练崩溃的问题,还显著提升了模型的最终性能,为未来在MoE架构上进行大规模强化学习研究提供了一个重要的基础性技术。这公式什么意思?举例以实际的矩阵举例 路由重放。好的,我们来详细解释这两个公式,并用一个具体的矩阵例子来说明“路由重放”(Route Replay)的过程。特性。
2026-03-18 20:41:08
296
原创 cuda】deepep
在SymBuffer的设计中,通道 (channel是一个空间分区 (Spatial Partitioning)的关键参数。它在Buffer代码中的作用是,指示SymBuffer的构造函数计算出正确的内存偏移量,从而将一个庞大的、共享的 RDMA 缓冲区在逻辑上切片。每个channel切片都包含了一套完整的、用于和所有伙伴rank通信的环形缓冲区(datametaheadtail通过让不同的计算单元(SM/Warp)在不同的通道切片上独立工作,deep_ep数据并行: 同时处理多个数据流。低争用。
2026-03-18 13:33:01
319
原创 【cuda] NVSHMEM
NVSHMEM 基地址: 不是一个单一的物理地址,而是一个逻辑概念,代表了由一次创建的所有对称内存区域在 NVSHMEM 全局地址空间中的“起点”。偏移量相同: 这句话的本质意思是,对称内存的内部布局在所有 PE 上都是完全一致的。因此,一个OFFSET在所有 PE 上都指向其本地对称内存中逻辑上相同的位置(比如,都是“与 rank m 通信的 channel c 的 data 区”)。的魔力: NVSHMEM 提供的 API (如) 负责将(逻辑位置, 目标 PE)
2026-03-18 13:21:16
314
原创 【deepep】deepep
Token T: 在 Rank 0 (Node 0, GPU 0) 上,需要被发送到 Rank 10 (Node 1, GPU 2) 的专家。[Rank 0]发现 Token T 的目标rank=10在 Node 1 上。将 Token T 的数据和元数据 (src_rank=0) 拷贝到发往Node 1的 RDMA 发送缓冲区。发起,目标是Node 1 的入口卡 (Rank 8)的 RDMA 接收缓冲区。[Rank 0]
2026-03-18 13:00:22
370
原创 【cuda】deepep 学习 cudaHostGetDevicePointer cudaHostAllocMapped
这个机制的精髓在于,它巧妙地将一个大的任务分解为“快速获取尺寸”和“慢速计算布局”两个子任务,并利用提前释放 CPU: CPU 不再需要等待整个布局计算完成,只需要等待最先计算出的尺寸信息。隐藏显存分配延迟: CPU 分配显存的操作与 GPU 后续的布局计算和同步操作并行执行,从而将显存分配的开销“隐藏”在了 GPU 的计算时间之下。通过这种方式,deep_ep有效地减少了 CPU-GPU 同步点,压缩了通信流水线中的“气泡”,从而提升了整体的 All-to-All 通信性能。
2026-03-18 10:59:24
375
原创 【cuda】get_low_latency_rdma_size_hint
好的,我们来详细分析这个函数是如何计算所需 RDMA 缓冲区大小的。首先,我们需要理解在下,RDMA 缓冲区是如何被使用的。
2026-03-17 20:56:34
128
原创 【cuda】 deepep
每个rank都在执行同样的代码,但操作的是自己绑定的 GPU 和属于自己的 C++ 对象实例。| || | (属于进程 0) | | (属于进程 1) | || | | || (在进程0中调用) | (在进程1中调用)V V| GPU 0显存 | | GPU 1显存 || | | || | (cpp_buffer_0的) | | | | (cpp_buffer_1的) | || | | |所以,将地址表拷贝到了当前进程所绑定的那块 GPU上,存放在属于当前进程的那个Buffer实例的。
2026-03-17 20:41:28
322
原创 【cuda】deepep
的变体。准备 (Packing): 每个 Rank 将自己要广播的信息,根据不同的目的地,分别打包到不同的发送槽位中。发送 (RDMA Put): 每个 Rank 并行地将打包好的数据块,通过非阻塞的 RDMA 操作,发送到所有其他 Rank 的指定接收区域。同步 (Barrier): 所有 Rank 通过一个全局屏障进行同步,确保所有的数据交换都已完成。完成这一阶段后,系统就从“每个节点只了解自己”的状态,进入了“每个节点都拥有全局信息”的状态,为下一阶段的节点内精细化规约做好了准备。
2026-03-17 17:52:54
310
原创 【cuda】deepep
是一个纯粹的、高度并行的数据预处理步骤。它通过一次对topk_idx数据的遍历,利用 GPU 强大的并行计算能力,高效地生成了后续所有通信和计算步骤所必需的“蓝图”和“清单”。这张图完美地将这一过程的输入、输出和核心功能可视化,是理解整个复杂通信流程的第一把钥匙。当然可以,您提的这个问题非常关键,触及了这个 Kernel 设计的核心思想——任务并行。为什么启动的线程块(SMs)数量是“处理experts所需的SM数”和“处理ranks所需的SM数”之和?我们通过图示来说明。num_sms的计算方式。
2026-03-17 16:34:16
294
原创 【cuda】deepep
这三个结构体共同构成了一个在 GPU 设备端进行高效、结构化内存管理的微型框架。Buffer是最基础的构建块,负责从一个大的内存池中切出一块连续的内存,并自动更新内存池的“游标”。AsymBuffer在Buffer的基础上,为多Rank和多SM的复杂场景提供了更高级的抽象。它能处理两种情况:所有Rank的缓冲区都在一个大的连续内存块里(对称布局,每个Rank的缓冲区位于各自独立的内存空间(非对称布局,),这对应于需要传入一个指针数组void**的情况。SymBuffer专为需要成对的send和。
2026-03-17 15:19:40
319
小功率调幅发射机仿真报告
2018-03-18
MATLAB频谱图
2018-03-18
小功率调幅发射机
2018-03-18
电子线路课程设计
2018-03-18
电容振荡器
2018-03-18
模拟通信中信号角度的调制与解调
2018-04-20
labview实例
2018-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅