【vLLM 学习】Distributed

大模型推理:vllm多机多卡分布式本地部署 我是一台机器启动了一个docker,将docker当作一个节点,在docker里面执行ray start --head --port=6379,将另一台机器的docker作为worker节点,并加入到ray cluster中,如果机器间的通信没有问题,worker节点在几秒内就能加入集群。值得注意的是多机多卡部署的推理框架,也适用于单机多卡,单机单卡,这里不过多赘述。确保head节点的IP与指定的通信网卡的IP一致,同时,检查/etc/hosts里面的IP对应的主机名与docker的主机名是一致的。 阅读详情

vLLM 是一款专为大语言模型推理加速而设计的框架,实现了 KV 缓存内存几乎零浪费,解决了内存管理瓶颈问题。

更多 vLLM 中文文档及教程可访问 →https://vllm.hyper.ai/

*在线运行 vLLM 入门教程:零基础分步指南

源码 examples/offline_inference/distributed.py

# SPDX-License-Identifier: Apache-2.0

"""
此示例显示了如何使用 ray 数据进行离线批处理推断
在多节点群集上分布。
在 https://docs.ray.io/en/latest/data/data.html 中了解有关 ray 数据的更多信息
"""

from typing import Any

import numpy as np
import ray
from packaging.version import Version
from ray.util.scheduling_strategies import PlacementGroupSchedulingStrategy

from vllm import LLM, SamplingParams

assert Version(ray.__version__) >= Version(
    "2.22.0"), "Ray version must be at least 2.22.0"

# 创建一个采样参数对象。
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)

# 每个实例设置张量并行性。
tensor_parallel_size = 1

# 设置数量的实例。每个实例都将使用 Tensor_parallel_size GPU。
num_instances = 1


# 创建一个以进行批处理推理的类。
class LLMPredictor:

    def __init__(self):
        # Create an LLM.
        # 创建一个 LLM。
        self.llm = LLM(model="meta-llama/Llama-2-7b-chat-hf",
                       tensor_parallel_size=tensor_parallel_size)

    def __call__(self, batch: dict[str, np.ndarray]) -> dict[str, list]:
        # 从提示中生成文本。
        # 输出是包含提示的 RequestOutput 对象的列表,
        # 生成的文本和其他信息。
        outputs = self.llm.generate(batch["text"], sampling_params)
        prompt: list[str] = []
        generated_text: list[str] = []
        for output in outputs:
            prompt.append(output.prompt)
            generated_text.append(' '.join([o.text for o in output.outputs]))
        return {
            "prompt": prompt,
            "generated_text": generated_text,
        }


# 从 S3读取一个文本文件。 ray 数据支持读取多个文件
# 来自云存储 (例如 JSONL,Parquet,CSV,二进制格式)。
ds = ray.data.read_text("s3://anonymous@air-example-data/prompts.txt")



# 对于 tensor_parallel_size> 1,我们需要为 vLLM 创建放置组
# 要使用。每个演员都必须拥有自己的安置小组。
def scheduling_strategy_fn():
    # One bundle per tensor parallel worker
    # 每张张量的平行工人一捆
    pg = ray.util.placement_group(
        [{
            "GPU": 1,
            "CPU": 1
        }] * tensor_parallel_size,
        strategy="STRICT_PACK",
    )
    return dict(scheduling_strategy=PlacementGroupSchedulingStrategy(
        pg, placement_group_capture_child_tasks=True))


resources_kwarg: dict[str, Any] = {}
if tensor_parallel_size == 1:
    # 对于 tensor_parallel_size == 1,我们只是设置 num_gpus = 1。
    resources_kwarg["num_gpus"] = 1
else:
    # 否则,我们必须设置 num_gpus = 0并提供
    # 一个将创建一个安置组的函数
    # 每个实例。
    resources_kwarg["num_gpus"] = 0
    resources_kwarg["ray_remote_args_fn"] = scheduling_strategy_fn

# 应用所有输入数据的批处理推断。
ds = ds.map_batches(
    LLMPredictor,
    # Set the concurrency to the number of LLM instances.
    # 将并发设置为 LLM 实例的数量。
    concurrency=num_instances,
    # Specify the batch size for inference.
    # 指定推理的批次大小。
    batch_size=32,
    **resources_kwarg,
)

# 窥视前10个结果。
# 注意:这是用于本地测试和调试。对于生产用例,
# 应该写出完整的结果,如下所示。
outputs = ds.take(limit=10)
for output in outputs:
    prompt = output["prompt"]
    generated_text = output["generated_text"]
    print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")

# ds.write_parquet("s3://<your-output-bucket>")
# 将推理输出数据作为 parquet 文件输出到 S3。
# 多个文件将写入输出目标,
# 每个任务将分别编写一个或多个文件。
#
# ds.write_parquet ( "s3:// <your-out-output-bucket>")
vLLM 双 RTX 3090 + WSL2 部署 Qwen AWQ:vLLM 多卡推理 双RTX3090+WSL2部署Qwen AWQ模型实战指南 本文详细介绍了在双RTX3090显卡的Windows11系统上,通过WSL2 Ubuntu环境部署Qwen3.6-35B-A3B-AWQ大模型的全过程。主要内容包括: 环境准备:检查WSL2双显卡识别状态,解决常见识别问题 开发环境配置:使用uv工具创建Python3.11独立环境 模型部署: 下载并校验Qwen AWQ模型 使用vLLM框架实现双显卡张量并行推理 服务化部署: 提供OpenAI兼容API接口 配置systemd服务实现开机自启 解 阅读详情

相关推荐

【Bug已解决】[Bug]: vllm 0.22 nccl error: invalid usage 解决方案

下面给出针对 0.22 "invalid usage" 的精确定位与修复。

博客 264

vLLM分布式推理:张量、流水线、数据并行全解析

你是否正面临LLM推理时的内存瓶颈?是否因单卡算力不足而无法部署百亿级参数模型?vLLM作为高性能推理引擎,通过精妙的分布式并行策略,将大模型推理效率提升3-10倍。本文将系统解析vLLM的张量并行、流水线并行和数据并行实现,教你如何通过分布式技术突破硬件限制,实现高效大模型部署。 读完本文你将掌握: - 三种并行模式的核心原理与适用场景 - vLLM并行通信原语的底层实现 - 多节点部署的关键...

gitblog_00141的博客 2316

让AI镜头“活”起来:22个核心运镜提示词,告别视频画面呆板

介绍了22种影视级镜头语言的AI提示词用法。内容涵盖推轨/后拉镜头等距离变化技巧、横摇/俯仰等方向控制手法、环绕/升降等空间位移方式,以及POV视角等特殊构图。

weixin_43489601的博客 6281

PHP-- 亚马逊 aws s3 文件上传及获取下载地址

【代码】PHP-- 亚马逊 aws s3 文件上传及获取下载地址。

caicairich的博客 1451

西红柿成熟度检测数据集总结

成熟度类别标注数量semiripe(半成熟)10275rotten(腐烂)13470fullyripe(完全成熟)35031unripe(未成熟)26212。

crz1336768325的博客 2125

大模型选型实战指南|教育行业:108个模型「闭卷考试」实测,这3类应用场景直接抄作业!

教育行业大模型选型必读 1.闭卷考试!独家评测集:用最新K12真题(小学-高中全学科)构建“闭卷考场”,108个模型同台竞技,数据污染率<5%(传统评测集污染率超60%) 2.价格透明对比:40元/M tokens的阿里系模型VS 2元/M tokens的字节系、腾讯系模型,谁更值? 3.四大选型禁区:>60元但得分<75的模型被列入不推荐名单(附避坑清单) 4.核心结论直出:教学核心环节必须用专用模型,90%场景用通用模型可降本50%+

easyllm的博客 1523

vllm源码解析(五):LLM模型推理

self.model_executor.execute_model,调用与vllm耦合后的LLM模型进行推理。这是本篇要讲解内容,我们先来看下模型输入长什么样,execute_model_req: 从调度系统中获得,可以用于做推理的seq_groups, 对seq_groups及可用到的各种属性做了封装,暂时不必管都是什么意思,用到时再现场分析。8.1中完成了资源调度工作,接下来该送入初始化好的模型进行推理了。不过vllm对具体模型的又做了多层封装:8.1中模型调用指向gpu_executor:

weixin_42479327的博客 8261

智能车图像处理0-图像处理整体框架思路

1.总体框架如上所示,具体代码请查看后续文章。2.因为参与竞赛时间是大二,所以在编程中有许多不规范的地方(如变量的命名),大家见谅。3.原创文章,请勿侵权=-=

taiyuezyh的博客 1万+

ELR-SELLM开发报告

启蒙灯塔起源团(ELR) 是以“真实高于完美”信仰在现实冲突中叩问自己也叩问未来,并基于叩问进行真实探索与实践研发,我们只是如实记录与叙事,但我们不输出理论或研究(如果有任何模型是总结分析是理论和定义,是他们视角得出来),我们始终相信路是走出来的,人生是活出来的,再一次次碰壁中实际反馈涌现找到自己。ELR-SELLM研发方向是解决降本增效吗?答案是否定的,ELR-SELLM研发方向是让人类和自己硅基伙伴携手一起走过一段旅程,或跨纪元的文明发展问题

X54先生硅基智能研究 469

[NoC]Outstanding和Credit的概念详解

摘要:本文详细解析了计算机体系结构中outstanding和credit两个核心概念。outstanding指已发出但未完成的请求数量,通过跟踪未决事务实现并发和乱序执行,常见于AXI总线等场景;credit则是基于信用令牌的流控机制,通过控制发送速率防止接收端缓冲溢出,多用于NoC网络。二者在目的、机制上存在差异:outstanding侧重提升并发度,credit关注流控保护。文章通过AXI协议实例和SystemC代码示例展示了二者的应用与结合方式,并探讨了在SoC设计中参数优化的方法,包括性能/资源权衡

元直的博客 2284

使用 ABAP Development Tool 登录 SAP BTP ABAP 环境时,遇到弹出框应该怎么办?

但在实际环境里,隐私模式、第三方 Cookie 禁止、跨站追踪限制、缓存代理误命中、混合内容拦截等因素,都可能让这条跳转链路被打断。等),浏览器会弹出系统原生登录框,请求用户输入账号和口令或做集成认证。只要它们在响应头里出现,浏览器就会理直气壮地弹框,这是协议层的强约定。,最终弹出原生登录框。前端与网关领域有个通用的经验规则:如果你看到了原生登录框,而期望的是带样式的。环境里的登录方式表述为基于浏览器的前端认证,也就是这类重定向式的交互。环境的具体落地,拆出几类常见诱因与排障路径,并穿插真实世界的案例。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 369

图解大模型计算加速系列:vLLM源码解析1,整体架构

图中左侧是用户使用界面,罗列了上述所说的两种调用方式(注意,如前文所说,做demo用的api server官方已经不再维护了,openai_api_server才是官方推荐的使用方式,user custom server目前还没有实现)。右侧则是开发者界面,不难发现LLMEngine是vLLM的核心逻辑。:该方法将每一个请求包装成vLLM能处理的数据类型(SequenceGroup,后面我们会详细解释),并将其加入调度器(Scheduler)的waiting队列中。

具身机器人和通用AI 3692

图像做旧算法原理及代码解释

该图像做旧算法主要通过一系列的图像处理操作来模拟旧照片的效果。整体流程包括:首先对输入图像进行颜色调整,降低饱和度并增加黄色调以营造出旧照片的色彩风格;接着添加高斯噪声来模拟旧照片可能存在的颗粒感;最后通过在图像上随机绘制线条来模拟旧照片的划痕和瑕疵。综上所述,该图像做旧算法通过对颜色的调整(包括饱和度降低、色相偏移)、添加高斯噪声以及模拟划痕和瑕疵等一系列操作,从多个方面模拟了旧照片的特征。

m0_44975814的博客 901

distributed serving with vllm

【代码】distributed serving with vllm。

qq_38963393的博客 443

ardupilot 日志分析《xKF1信息》

ardupilot 日志分析系列将会把ardupilot所有的日志文档进行分析,为我们分析无人机的运行状态,炸鸡原因,传感器状态,电机状态,控制信息,滤波信息做准备。本节主要分析xKF1日志信息,欢迎批评指正。学习好ardupilot必须会分析飞行日志,从飞行日志中我们可以学到很多无人机的知识。无人机是综合知识的体现,涵盖:导航、控制、滤波、算法、协议等各种知识,只有更全面的学习,才能在无人机的道路上越走越远。

陌城烟雨 1226

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Nano-vLLM架构介绍

Nano-vLLM是一个轻量级大模型推理框架,核心代码仅约1.2k行,支持单节点张量并行和Qwen3模型运行。框架包含四大核心模块:LLM Engine作为中央调度器,负责请求处理全流程;Block Manager基于PagedAttention管理KV cache显存;Scheduler通过双队列机制实现请求调度;Model Runner完成模型前向计算,支持多进程协作。该框架采用PyTorch、flash_attn等技术实现,具有模块化设计特点,特别适合AI Infra初学者学习大模型推理框架基础架构。

InfraTech 463

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

vLLM镜像是否支持分布式推理集群搭建?

vLLM不仅支持分布式推理集群,还具备PagedAttention、连续批处理和原生分布式架构等核心技术,可实现高并发、低延迟的大模型服务部署,适用于多机多卡场景,显著提升吞吐量与资源利用率。

weixin_42593701的博客 1009

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VLLM 详细学习笔记 第 7 章 多 GPU 与 MoE:TP / DP / EP / PP 的落地组合

摘要 本文深入探讨了大型语言模型(LLM)在长上下文处理中的挑战与解决方案。首先分析了长上下文面临的三大核心难题:模型质量退化、显存占用过大和首字延迟,并详细介绍了vLLM的应对策略,包括RoPE位置编码扩展技术和分块预填充调度方法。其次,阐述了流式响应技术的重要性及其SSE实现原理,强调其对用户体验的提升作用。最后,探讨了断点续生成与前缀缓存等高级优化技术。文章通过参数配置示例和性能对比表,为实践者提供了实用的技术指导,帮助开发者在保证服务质量的同时有效处理长文本任务。

qq_38334677的博客 1337

深入解析vLLM:从架构设计到动态调度策略

本文深入解析vLLM框架的架构设计与动态调度策略,探讨其如何通过PagedAttention技术和动态批处理能力显著提升大模型推理效率。vLLM作为大模型推理的加速引擎,在显存管理和计算优化方面表现出色,特别适合高并发的在线服务场景。

tcp8optimizer的博客 183

【vllm】(v1 Executor)vLLM V1 Executor 深度分析 — Part3: Ray执行器与工具函数

vLLM V1 Executor 深度分析 — Part3: Ray执行器与工具函数

zhonglinzhang 456

vLLM工具模块设计与优化实践

在大型语言模型推理框架中,工具模块作为基础设施的核心组件,直接影响系统性能和稳定性。vLLM的utils.py模块通过线程安全设计、热更新机制和内存优化等技术,为分布式推理任务提供了高效支持。其中,双重校验锁模式解决多进程日志冲突,CUDA事件回调实现低开销内存监控,这些设计在大模型部署中尤为重要。工具模块的演进趋势包括编译化加速、分布式感知和可观测性增强,这些优化方向对提升AI工程化水平具有重要参考价值。

weixin_34408624的博客 352

大模型推理引擎vLLM(32):MOE层相关代码流程梳理_权重重排、量化、GEMM计算、EP、vllm serve命令的解析过程

大模型推理引擎vLLM(20):MOE层相关代码流程梳理_权重重排、量化、GEMM计算、EP

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 591

【vllm】(v1 Executor)vLLM V1 Executor 深度分析 — Part1: 抽象基类与单进程执行器

vLLM V1 Executor 深度分析 — Part1: 抽象基类与单进程执行器

zhonglinzhang 547

vllm分析(三)——EngineCore 到 Worker 初始化流程分析

分析vllm从engine core 到worker的处理流程

u010643777的专栏 336
上一篇: 蛋白质结构预测/功能注释/交互识别/按需设计,中国海洋大学张树刚团队直击蛋白质智能计算核心任务
下一篇: 内含教程丨医疗VLM新突破!HealthGPT对复杂MRI模态理解准确率达99.7%,单一模型可处理多类生成任务
HyperAI超神经
博客等级 码龄7年 8873粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值