news 2026/5/9 6:59:32

【vLLM 学习】Rlhf Utils

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【vLLM 学习】Rlhf Utils

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

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

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

源码 examples/offline_inference/rlhf_utils.py

import torch def stateless_init_process_group(master_address, master_port, rank, world_size, device): """ vLLM 提供 `StatelessProcessGroup` 来创建进程组, 无需考虑 torch.distributed 中的全局进程组。 建议先创建 `StatelessProcessGroup`,然后初始化 外部(训练进程)与 vLLM 工作进程之间的数据平面通信(NCCL)。 """ from vllm.distributed.device_communicators.pynccl import PyNcclCommunicator from vllm.distributed.utils import StatelessProcessGroup pg = StatelessProcessGroup.create(host=master_address, port=master_port, rank=rank, world_size=world_size) pynccl = PyNcclCommunicator(pg, device=device) return pynccl class WorkerExtension: """ vLLM 工作进程的基类。 通过定义扩展类,无论底层工作进程类是什么,代码都能正常工作。 这种方式使代码能同时兼容 vLLM V0 和 V1。 注意:我们在单独模块中定义此类,主模块应将完整限定名 作为 `worker_extension_cls` 参数传递。 """ def init_weight_update_group(self, master_address, master_port, rank_offset, world_size): from vllm.distributed.parallel_state import get_world_group rank = get_world_group().rank + rank_offset self.model_update_group = stateless_init_process_group( master_address, master_port, rank, world_size, self.device, ) def update_weight(self, name, dtype, shape): weight = torch.empty(shape, dtype=dtype, device="cuda") self.model_update_group.broadcast(weight, src=0, stream=torch.cuda.current_stream()) self.model_runner.model.load_weights(weights=[(name, weight)]) del weight def check_weights_changed(self): """ Check if the weights are updated to 0. """ """ 检查权重是否已更新为 0。 """ weights_updated = True for name, p in self.model_runner.model.named_parameters(): weights_updated = weights_updated and torch.allclose( p, torch.zeros_like(p)) return weights_updated class ColocateWorkerExtension: """ vLLM 工作进程在协同部署场景下的基类。 通过定义扩展类,无论底层工作进程类是什么,代码都能正常工作。 这种方式使代码能同时兼容 vLLM V0 和 V1。 注意:我们在单独模块中定义此类,主模块应将完整限定名 作为 `worker_extension_cls` 参数传递。 """ def report_device_id(self) -> str: from vllm.platforms import current_platform self.device_uuid = current_platform.get_device_uuid(self.device.index) return self.device_uuid def update_weights_from_ipc_handles(self, ipc_handles): handles = ipc_handles[self.device_uuid] device_id = self.device.index weights = [] for name, handle in handles.items(): func, args = handle list_args = list(args) # the key is to change device id to the current device id # in case two processes have different CUDA_VISIBLE_DEVICES # 关键是将设备 ID 改为当前设备 ID, # 以防两个进程有不同的 CUDA_VISIBLE_DEVICES list_args[6] = device_id tensor = func(*list_args) weights.append((name, tensor)) self.model_runner.model.load_weights(weights=weights) torch.cuda.synchronize() def check_weights_changed(self): """ 检查权重是否已更新为0。 """ weights_updated = True for name, p in self.model_runner.model.named_parameters(): weights_updated = weights_updated and torch.allclose( p, torch.zeros_like(p)) return weights_updated
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 17:31:31

传统问卷设计 VS 虎贲等考 AI:3 天工作量压缩到 30 分钟的科研效率革命

还在为一份学术问卷熬秃脑袋?翻遍文献找量表却不知如何本土化修订,设计好的问卷因问题歧义导致数据失真,回收几百份问卷后才发现信效度不达标…… 在实证研究里,问卷设计堪称 “第一道生死关”。据调研显示,超 65% 的社…

作者头像 李华
网站建设 2026/5/9 3:17:03

AI 写论文哪个软件最好?实测虎贲等考 AI:毕业论文的学术通关加速器

毕业季的论文攻坚战里,“AI 写论文哪个软件最好” 的灵魂拷问,总能在高校互助群里刷屏。有人踩坑通用 AI 的 “文献幻觉”,有人栽在单一工具的 “功能割裂”,还有人被查重和 AIGC 检测的双重门槛难住。作为深耕论文写作科普的测评…

作者头像 李华
网站建设 2026/5/3 15:57:20

建筑施工扬尘监测仪厂家:金叶仪器技术解析与现场应用实践指南

在建筑施工过程中,扬尘污染是常见的环境问题之一,它不仅影响周边空气质量,还可能对居民健康和生态平衡带来潜在影响。随着环保意识的提升和相关法规的逐步完善,施工扬尘的监测与管理成为项目现场的重要环节。金叶仪器(…

作者头像 李华
网站建设 2026/4/30 18:48:03

手把手搭建本地RAG知识库!实现文档秒检索。

文章详细介绍如何使用开源模型nomic-embed-text搭建本地RAG知识库,实现高效文档检索。内容包括模型基本信息、特性对比和应用场景,以及完整搭建步骤:下载模型、创建工作区、上传文档、向量化存储和检索测试。同时提供了两种使用方式&#xff…

作者头像 李华
网站建设 2026/5/3 0:06:17

Python优势:为何适合新手入门与数据分析

Python作为一门脚本语言,其优势不仅体现在语法简洁上,更在于它构建了一个庞大而实用的生态系统。从我多年的使用经验来看,Python的核心价值在于它极大地降低了技术应用的准入门槛,让开发者能将精力聚焦于问题本身,而非…

作者头像 李华
网站建设 2026/5/2 6:03:15

医疗时序用Prophet稳节假日预测

📝 博客主页:jaxzheng的CSDN主页 医疗时序预测的稳定之锚:Prophet模型在节假日效应中的优化实践目录医疗时序预测的稳定之锚:Prophet模型在节假日效应中的优化实践 引言:节假日波动与医疗预测的“隐形危机” 一、Proph…

作者头像 李华