avatar
文章
491
标签
109
分类
29
首页
归档
分类
标签
关于
xhj的博客
首页
归档
分类
标签
关于

xhj的博客

推理引擎
发表于2025-12-11|LLM
推理引擎推理系统与推理引擎训练和推理服务推理和训练的区别: 模型部署后,长期运行; 不需要反向传播; 部署设备更加多样。 推理服务系统的功能(与 AI 算法关系不大,更多地是平台性的工作): 模型加载; 版本管理; 数据管理; 服务接口。 优化目标 低延迟; 高吞吐:高负载; 高效率:低功耗使用 CPU/GPU; 灵活性:支持多框架; 扩展性。 部署态场景:数据中心的服务端、边缘侧的移动端。 云端; 边侧:严格约束功耗、算力不足、数据分散、平台多样化。 推理系统架构推理服务化、推理服务框架。 基本概念: 推理:前向计算; 部署:将模型部署到硬件上,包括:移植、压缩、加速等; 服务化:将模型封装为 sdk 或 web 服务。 Triton 服务化框架: 接入层:HTTP、gRPC、CAPI; 模型仓库; 模型预编排:解析 URL 请求; 框架后端:指推理引擎(如 TensorRT、ONNX Runtime、MindSpore Lite 等); 监控功能:健康管理。 模型版本管理模型生命周期管理: 金丝雀策略(Canary); 回滚策略(Rollba...
推理加速
发表于2025-12-10|LLM
推理加速模型量化数值类型LLM 的训练和推理要尽量使用 BF16,而不是 FP16/HF16/FP32。 FP32:单精度浮点数,用 8 bit 表示指数,23 bit 表示小数; FP16:半精度浮点数,用 5 bit 表示指数,10 bit 表示小数; BF16:对 FP32 单精度浮点数截断数据(小数部分),即用 8 bit 表示指数,7 bit 表示小数。 这里的计算方式不太懂? BF16 vs HF16: BF16 拥有 7 位精度,而 HF16 拥有 10 位精度。这表明在表示接近于 1 的小数值时,HF16 比 BF16 能提供更高的精度。然而,BF16 拥有与 FP32 相同的 8 位指数部分,因而能够表示与 FP32 几乎一样广泛的数值范围,这对于避免上溢和下溢非常重要。尽管 BF16 在尾数精度上不如 HF16,但在深度学习应用中,这种较宽的数值范围通常比尾数的额外几位精度更为重要。这是因为深度学习模型通常对权重的尾数精度不是非常敏感,而更依赖于能够处理范围广泛的梯度和权重值。 总结: 量化后速度并不能明显提高,但占用的显存显著减...
性能测试
发表于2025-12-09|LLM
Qwen2.5-VL 性能测试环境设置1234567# vllmcd /workspace/vllmgit reset --hard 2918c1b49c88c29783c86f78d2c4221cb9622379# vllm-ascend: maincd /workspace/vllm-ascendpip install -r benchmarks/requirements-bench.txt Run: 1bash benchmarks/scripts/run-performance-benchmarks.sh Benchmark 结果Before (未移除任何 layer 之前): 12345678910111213141516171819202122232425============ Serving Benchmark Result ============Successful requests: 200 Failed requests: 0 Reque...
如何快速上手一个开源项目
发表于2025-12-08|LLM
如何快速上手一个开源项目项目洞察社区治理 运作方式(独裁、共建); 核心人物(commiter); 参与方; release 节奏(feature、bugfix 版本周期); 社区交流方式(PR/ISSUE、邮件列表、SLACK/IRC/微信); 当前/未来发展; …… 源码托管 托管平台(GitHub、gitee、私仓); 贡献方式; License; CLA/CCLA; CI/CD CI 系统(GitHub action、Jenkins、circle CI、trivia CI); 架构(x86/arm、CPU/GPU、……); CI job 内容(unit test、集成测试、端到端测试、……)。 学习方法 官方网站、文档、源码(重点)【非翻译版】; 主流媒体(官方 blog、知乎专栏、知乎订阅号、领域 KOL); 搜索引擎(Google); 其它(教学视频、自行发现等)。 注意: 刚开始尽量看英文原版的文档(信息最完整、准确),有了整体的认识之后,可以再针对某些部分去看一些中文的网站...
多模态大模型MRoPE作用解析
发表于2025-12-07|LLM
好的,这是一个非常专业且深入的问题。我们来详细解析一下多模态大模型中的 MRoPE(Modality-aware Rotary Position Embedding) 算子的作用。 首先,我们需要理解它的基础——RoPE。 1. 基础:RoPE(旋转位置编码)RoPE是像LLaMA、GPT-NeoX等众多主流大语言模型所采用的位置编码方式。 核心思想: 不是将位置信息作为一个独立的数字(如绝对位置)或向量(如正弦余弦函数)直接加到词向量上,而是通过旋转的方式来注入位置信息。 形象比喻: 想象一个二维平面,每个词对应一个二维向量。RoPE会根据这个词在序列中的位置,将这个向量旋转一个与位置成比例的角度。位置1旋转θ度,位置2旋转2θ度,以此类推。这样,两个词向量的内积(代表它们的关联程度)就只与它们的内容和相对位置差有关,而与它们的绝对位置无关。 优势: 很好的外推性: 模型在训练时见过的序列长度有限,但在推理时能处理更长的序列,因为旋转操作是连续且可扩展的。 显式编码相对位置: 模型能天然地理解“距离”的概念。 2. 多模态的挑战:为什么需要“M”?当我们将大模型从纯文本...
多卡推理中CUDA-Graph协同计算解析
发表于2025-12-06|LLM
这是一个非常好的问题,它触及了现代大模型推理优化的核心。我们来详细拆解一下 torch.compile() 生成的 CUDA Graph 是如何在分布式多卡环境下协同工作的。 首先,要明确一个关键点:torch.compile 和 CUDA Graph 是两种不同但可以协同工作的优化技术。 torch.compile: 它是一个编译器。它捕获你的 PyTorch 模型(一个动态图),将其编译成一个优化的、静态的计算图。这个优化后的图可以由不同的后端执行,其中最强大的后端就是 inductor。 CUDA Graph: 它是一种执行模式。它通过捕获在 GPU 上执行的一系列内核(kernel)来创建一个“图”,然后可以多次、高效地重放这个图,避免了 CPU 驱动开销、启动内核的开销等。 在 torch.compile 的 inductor 后端中,一个非常重要的优化就是自动生成并利用 CUDA Graph 来执行编译好的计算图。 现在,我们来看多卡(分布式)推理的场景。这里通常使用 Tensor Parallelism(张量并行) 或 Pipeline Parallelism(...
启动时未指定max_model_len导致通信卡死
发表于2025-12-05|LLM
启动时未指定 max_model_len 导致通信卡死排查记录12345vllm serve /root/.cache/modelscope/hub/models/Qwen/Qwen3-VL-30B-A3B-Instruct \--tensor-parallel-size 4 \--enable-expert-parallel \--enforce-eager \--max_model_len 131072 1234INFO 10-25 02:18:40 [parallel_state.py:1208] rank 0 in world size 4 is assigned as DP rank 0, PP rank 0, TP rank 0, EP rank 0INFO 10-25 02:18:40 [parallel_state.py:1208] rank 1 in world size 4 is assigned as DP rank 0, PP rank 0, TP rank 1, EP rank 1INFO 10-25 02:18:40 [parallel_state....
分布式系统控制面与数据面解析
发表于2025-12-04|LLM
好的,这是一个非常核心的分布式系统设计概念。我们可以用一个生动的比喻来开始,然后深入技术细节。 核心比喻:空中交通管制系统 控制面 就像是空中的交通管制塔和调度员。 他们不直接开飞机(处理乘客和货物)。 他们的工作是:规划航线、指挥飞机起飞和降落、监控所有飞机的状态和位置、处理紧急情况、分配跑道和空域。他们做出决策,确保整个系统安全、有序地运行。 数据面 就像是飞机本身和跑道。 它们负责实际的运输工作:搭载乘客、装载货物、在指定的航线上飞行。 它们不决定去哪、怎么飞,而是忠实地执行控制塔发出的指令,专注于高效、安全地完成“运输”这个核心任务。 详细解释1. 控制面控制面是系统的大脑和神经系统,负责管理、协调和决策。它不直接处理用户的业务请求,而是确保数据面能够正确、高效地处理这些请求。 主要职责: 系统配置与管理:管理网络配置、服务发现、负载均衡策略、安全策略(如防火墙规则)等。 状态监控与收集:收集整个系统中所有组件(数据面节点)的健康状态、性能指标(如CPU、内存、流量)、日志和拓扑信息。 路由决策:决定数据包的转发路径。例如,在微服务网络中,控制面决定一个...
分布式系统伸缩策略解析
发表于2025-12-03|LLM
好的,这是一个非常核心的分布式系统与云计算概念。我们来详细解析“水平伸缩”和“垂直伸缩”的含义、区别以及各自的应用场景。 1. 核心含义水平伸缩 含义:通过增加或减少实例的数量来应对负载变化。这通常意味着在负载高时,向资源池中添加更多的服务器/节点;在负载低时,移除多余的服务器/节点。 形象比喻:一个餐厅客人变多,老板不是让同一个服务员干得更快(垂直伸缩),而是雇佣更多的服务员来分担工作。 技术实现:通常依赖于负载均衡器,将进入的请求流量分发到后端多个无状态的服务实例上。在云环境中,这通常通过自动伸缩组来实现。 垂直伸缩 含义:通过升级或降级单个实例的资源配置(如CPU、内存、磁盘I/O)来应对负载变化。这通常意味着在负载高时,为服务器更换更强大的CPU或增加更多内存;在负载低时,降低配置以节省成本。 形象比喻:同一个服务员,通过让他参加培训、喝咖啡、使用更先进的工具,从而提升他个人的服务速度和能力。 技术实现:在物理机时代,这需要手动更换硬件。在云时代和虚拟化环境中,这通常可以通过改变虚拟机实例的规格(例如,AWS 从 t3.small 升级到...
分布式多卡推理通信域建立与动态通信域解析
发表于2025-12-02|LLM
好的,这是一个非常核心且专业的问题。我们来详细拆解一下分布式多卡推理中通信域的建立过程,并解释动态通信域的概念。 第一部分:分布式多卡推理中通信域的建立过程在分布式计算中,通信域 是一个核心抽象,它定义了一组可以相互通信的进程。在大模型推理中,由于单个GPU的显存无法容纳整个模型(如拥有数百亿甚至上万亿参数的模型),我们必须将模型“拆分”并分布到多个GPU上。 这个过程主要依赖于 NCCL 这个由NVIDIA打造的高性能通信库。NCCL优化了GPU之间(包括单机多卡和多机多卡)的集合通信操作,如 all-reduce, all-gather, broadcast 等,这些操作在模型并行和流水线并行中至关重要。 建立通信域的过程可以概括为以下几个步骤: 1. 进程初始化分布式任务通常由多个进程组成,每个进程控制一个或多个GPU。在开始任何通信之前,这些进程需要知道自己和同伴的存在。 工具库: 通常使用 torch.distributed(对于PyTorch用户)来管理分布式进程组。 关键函数: torch.distributed.init_process_group(...) ...
1…101112…50
avatar
xhj
相关学习笔记
文章
491
标签
109
分类
29
Follow Me
公告
欢迎来到我的博客
最新文章
Multi-Agent2026-06-03
Multi-Agent vs Single-Agent2026-06-02
Harness Engineering2026-06-01
25-架构模式总结2026-05-25
24-Skill-Plugin开发实战2026-05-24
分类
  • AI Agent40
  • Algorithm20
  • Backend Dev74
  • Big Data2
  • C/C++2
  • Claude Code71
  • Computer Basics18
  • Computer Network2
标签
Netty PyG Stacking Pandas Neural Networks PCA Maven Tornado PCV RabbitMQ Claude Code Heap Memory Tree dijkstra Redis GAT MySQL Computer Basics JVM Architecture Linear Regression List Kruskal Algorithm Object Identification Message Queue Gradient descent HBOS LOF Grid search OSI Embedding OLSE Prim NMF DataFrame AI Agent Kafka GNN Thread Compilation
归档
  • 六月 2026 3
  • 五月 2026 25
  • 四月 2026 16
  • 三月 2026 20
  • 二月 2026 10
  • 一月 2026 22
  • 十二月 2025 15
  • 十一月 2025 19
网站信息
文章数目 :
491
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By xhj框架 Hexo 8.1.2|主题 Butterfly 5.5.4