【vLLM 学习】Rlhf Utils

从Tianshou到RLHF:AI工程化中的基础设施设计与实践 大家好,我是专注于AI工程化落地的技术博主。在探索大模型应用的过程中,我们常常被各种炫酷的“想法”所吸引,但真正决定项目成败的,往往是支撑这些想法的“基础设施”。今天,我们就从一个极具代表性的开源项目——天授框架(Tianshou)出发,深入探讨其背后所蕴含的工程哲学,并以此视角,拆解像OpenAI RLHF Infra这类顶级AI基础设施的核心价值。无论你是想理解强化学习框架的设计,还是希望构建自己的大模型微调与部署管线,本文都将为你提供一套从理念到实践的完整指南。 1. 背景与核心概念:从“想法”到“铲 阅读详情

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

LLM工程落地五大关键技术:StreamingLLM、LongLoRA与多模态MoE实战解析 大语言模型(LLM)的推理优化、长上下文建模与多模态融合,是当前AI工程化的核心挑战。其底层原理涉及KV缓存动态管理、低秩适配器的位置感知重构、以及跨模态特征空间的路由对齐等关键技术。这些方法不仅显著降低显存带宽压力与推理延迟,更在客服对话、长文档摘要、图文生成等真实场景中实现可量化的性能跃迁。尤其StreamingLLM通过注意力窗口滑动重构实时响应范式,LongLoRA以极小参数开销突破128K上下文瓶颈,二者已成为工业级LLM部署的关键支点。本文聚焦从论文公式到GPU实操的完整链路,覆盖环境适配、数据 阅读详情

相关推荐

LLM研究者周度作战地图:6篇可落地论文精读指南

大语言模型(LLM)技术迭代加速,研究者面临信息过载与落地滞后双重挑战。理解MoE架构、稀疏注意力、4-bit量化微调(QLoRA)、长上下文记忆机制等核心原理,是提升工程响应力的关键。这些技术不仅重构推理引擎、微调工具链与RAG架构,更直接决定模型在客服对话、代码生成、金融文档解析等真实场景的可用性与鲁棒性。本文聚焦‘下周就可用’的硬核论文,结合开源实现成熟度、硬件兼容性(如A100 40GB支持)与业务指标提升(如幻觉率下降9.6%),提供从原理验证到生产集成的全链路实践路径。

weixin_30268071的博客 489

DPO直接偏好优化:替代RLHF的轻量级对齐新范式

直接偏好优化(DPO)是一种无需奖励模型的LLM对齐技术,它将人类偏好信号直接建模为语言模型输出概率的相对差异,从根本上规避了RLHF中奖励建模失准、标注噪声放大与训练不稳定的固有缺陷。其核心原理基于Bradley-Terry模型与隐式奖励函数推导,通过端到端梯度更新实现更鲁棒、更低开销的策略优化。技术价值体现在训练稳定性提升、KL散度可控、显存与标注成本显著降低;典型应用于对话助手冷启动、游戏NPC风格调优、短视频脚本生成等快速迭代场景。本文聚焦DPO在7B/13B/34B模型上的工业级落地实践,涵盖数据

weixin_30388677的博客 399

Llama-Factory:大模型训练实战与优化技巧

大模型训练是当前AI领域的热点技术,通过分布式计算和内存优化技术,能够在有限硬件资源下实现高效训练。Llama-Factory作为一套开源工具链,整合了数据预处理、分布式训练和模型评估的全流程工具,显著降低了训练门槛。其核心技术包括梯度检查点重计算、Zero Redundancy Optimizer和混合精度策略,这些方法能有效减少显存占用并提升训练效率。在实际应用中,Llama-Factory已被证明可以将训练时间缩短40%,显存需求降低30%,适用于消费级硬件和专业计算卡。对于开发者而言,掌握这些优化技

SAN_YUN的专栏 352

ChatGPT工程栈实战:从SFT、RLHF到vLLM部署全链路代码实现

大语言模型(LLM)的落地本质不是算法复现,而是覆盖监督微调(SFT)、奖励建模(RM)、人类反馈强化学习(RLHF)和推理优化的完整工程链路。理解其底层原理需穿透Transformer黑箱,聚焦数据流、梯度控制与服务部署间的耦合关系;技术价值在于将抽象概念转化为可调试、可量化的代码行为——如用Pairwise Ranking构建鲁棒奖励信号,以LoRA实现13B模型低成本微调,通过PPO clip_epsilon与KL约束防止策略发散。典型应用场景包括金融客服、合规问答等对准确性与响应延迟双敏感的工业系统

weixin_33875564的博客 442

【EMC电磁兼容】02.04——原理图的实战落地细节

原理图上的关于EMC的落地体现一、元器件的选型二、原理图上的EMC体现在哪里?1.芯片电源管脚滤波去耦:2.时钟电路滤波设计3.低速电路滤波抗干扰设计4.通讯接口电路的防护滤波5.系统输入电源端口电路的防护滤波6.系统接地的定义7.芯片软件功能的审查 一、元器件的选型 ​ 原理图最初设计涉及到选型元器件方面: 元器件选型 不仅仅功能需要满足要求,还需要考虑其它细节参数在不同应力下的反应,封装的不同也会产生不同的变化。 元器件替代 常常因为成本原因进行器件替代,除了要考虑功能参数相同时也要考虑系统参数

Time to Forget 2243

工业界实战:小红书推荐系统中的AB测试策略解析——分层、Holdout与反转实验

本文深入解析了小红书推荐系统在工业界实践中采用的AB测试核心策略。重点阐述了分层实验如何解决多实验并行与干扰问题,Holdout机制如何作为评估黄金标准提供稳定基准,以及反转实验如何作为全量上线后的终极安全网进行风险控制。这些策略共同构成了科学、严谨的线上评估体系,是保障推荐系统迭代效果与决策质量的关键。

transformer2023的博客 477

【vllm】(Part 5)vLLM服务入口层

vLLM的服务入口层是连接外部请求与推理引擎的核心桥梁。它采用FastAPI + Uvicorn + uvloop技术栈,提供了从OpenAI兼容REST API到gRPC、从CLI交互到批量推理的多种接入方式。

zhonglinzhang 748

【C2000系列DSP的Bootloader详解】如何打包源文件为库文件且加密仅授权使用,一步步教你如何实现

如果想要在 TI 的 CCS 开发环境中为 C2000 系列 MCU 生成 lib 库文件,并对这些库文件进行加密保护,确保只有授权方(持有密钥)才能调用和使用,以此保护源代码的知识产权。

昔时扬尘处 177

LLM工程落地三把钥匙:FlashAttention-3、QLoRA++与SafeGuard-RLHF实战指南

大语言模型(LLM)已从规模竞赛转向基础设施层优化,核心挑战聚焦于推理加速、高效微调与端侧对齐。FlashAttention-3通过CUDA核融合显著降低显存带宽瓶颈,实现实时服务级延迟压缩;QLoRA++引入梯度敏感度分析,将LoRA的固定秩升级为每层自适应‘秩配置’,提升参数效率与任务适配性;SafeGuard-RLHF则以17M轻量奖励模型+维基编辑历史自监督构造,推动RLHF从云端向边缘设备下沉。三者共同构成LLM工业部署的关键技术栈——覆盖计算层、内存层与对齐层,支撑RAG、Agent及私有化微调

weixin_34242819的博客 299

全志平台camera驱动开发(3)MIPI接口camera驱动开发

详细沟通: 请加video_D 目前开发过的allwinner平台: V5/V3/V3S/V40/T3/T7/A64等 开发过的mipi sensor: sony:imx317、imx477、imx274、imx258、imx286、imx307、imx385等 ov:ov2718、ov12895、ov2710等 ar: ar0238等 国产:gc1024、gc1034...

jzwjzw19900922的博客 9029

【WRF-Chem工具】pyVPRM 计算大气与陆地植被之间的 CO₂ 交换通量

pyVPRM 计算大气与陆地植被之间的 CO₂ 交换通量

WW、forever的博客 210

PaddleOCR 版面恢复(Layout Recovery)实战指南:PDF/图片转 Word 与 Markdown 的完整方案

版面恢复(Layout Recovery)是 PaddleOCR PP-Structure 体系中面向"文档还原"的核心能力:它能把输入的 PDF 或文档图片中的文字、表格、图片、标题等内容,在保持原有段落结构、阅读顺序和排版布局不变的前提下,重建输出为可编辑的 Word(docx)文档或 Markdown 文件。本文以 [ppstructure/recovery/README_ch.md](ht

gitblog_00563的博客 686

GEE案例:Landsat 5、7、8影像构建1985-2023年rsei生态遥感指数详细代码

rsei(Regional Silviculture Ecological Index,地区林业生态指数)是一种生态遥感指标,用于评估森林生态系统的健康状况和生态服务。构建1985-2023年的rsei生态遥感指,主要需要使用Landsat 5、7和8的遥感影像数据。以下是一种可能的构建方法:1. 数据获取:从美国地质调查局(USGS)或其他可靠数据提供商处获取Landsat 5、7和8的遥感影像数据。确保选择的影像具有适当的空间和时间分辨率,以覆盖所需的时间段。

此星光明博客 3412

【vLLM-Ascend+MindSpeed】昇腾后训练强化学习最佳实践

本文基于 Atlas 800T A3 完整跑通 verl + DAPO 框架下的 Qwen3-32B 强化学习训练,提供开箱镜像、全链路脚本、参数解读与性能调优指南,帮助开发者少踩坑、可复现地开展昇腾 RL 后训练。

zzzliupi的博客 459

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

架构范式演进:基于HybridFlow的大语言模型强化学习训练系统深度解析

在大语言模型(LLM)强化学习训练领域,传统的训练范式面临着计算效率低下、系统复杂度高和算法扩展性差等核心挑战。火山引擎推出的verl框架通过创新的HybridFlow架构范式,重新定义了大规模语言模型强化学习训练的技术边界,为业界提供了一个生产就绪的解决方案。这一架构范式不仅解决了传统RLHF框架的局限性,更在系统设计和算法实现层面实现了重大突破。 ## HybridFlow架构:解耦控制流与

gitblog_00954的博客 990

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

verl版本升级避雷:v0.3.0有哪些坑要注意?

本文介绍了如何在星图GPU平台上自动化部署verl镜像,高效开展大语言模型强化学习训练。该镜像专为RLHF、PPO及GRPO等算法优化,典型应用于大模型后训练与对齐,显著提升模型安全性与指令遵循能力。

weixin_42629522的博客 606

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Meta Muse Glimmer-30B模型实战:MoE架构解析与vLLM部署指南

混合专家(MoE)模型作为大语言模型架构的重要创新,通过稀疏激活机制在保持庞大参数容量的同时显著降低计算开销。其技术原理在于路由网络动态选择少数专家子网络处理输入,实现了计算效率与模型性能的平衡,为高性价比推理提供了新思路。在工程实践中,结合vLLM等高效推理引擎,开发者能够在消费级GPU上部署数十亿参数模型,广泛应用于智能对话、代码生成等场景。本文以近期表现亮眼的Meta Muse Glimmer-30B为具体案例,深入探讨MoE模型的技术实现与部署方案,为开发者提供从环境配置到性能评估的完整实践路径。

weixin_34315485的博客 400

gemma-4-31B-it-FP8-block:vLLM原生适配的31B级大模型部署指南

大语言模型部署中,FP8量化与PagedAttention内存管理是提升推理效率的关键技术路径。FP8本身依赖硬件Tensor Core支持,但真正释放性能需结合vLLM的Block Manager机制——这要求模型不仅做格式转换,更要按KV Cache Page对齐进行逻辑分块(即FP8-block)。此类结构体跳过运行时重映射,显著降低延迟、提升吞吐,适用于高并发API服务场景。当前仅H100等支持原生FP8+Unified Memory的GPU能 fully unlock 其潜力,而ARM64、昇腾、

weixin_34080951的博客 345

Keye-VL-1.5技术深度解析:8B参数模型如何突破128K视频推理边界

在视频内容占互联网流量80%的时代,多模态大模型面临的核心挑战是如何在有限计算资源下实现长时序视频的深度理解。快手Keye团队发布的Keye-VL-1.5-8B模型通过架构创新而非参数堆砌,在80亿参数规模下实现了**128K上下文长度的视频理解能力**,重新定义了轻量化多模态模型的性能边界。 ## 问题诊断:视频理解的技术瓶颈与商业挑战 当前视频理解技术面临三大核心困境:**计算效率低下**

gitblog_00202的博客 435

大模型强化学习:信息论低效下的有效机制解析

强化学习(RL)作为机器学习的重要分支,已在多个领域取得突破。当它与大语言模型(LLM)结合时,催生了RLHF、RLVR、GRPO等训练范式,显著提升了模型的对齐性与推理能力。然而,从信息论角度看,LLM动作空间极大,RL的样本效率本应极低,实践中却依然非常有效。这一反差源于多种机制:预训练先验压缩了搜索空间,奖励模型提供密集信号,KL约束限制无效探索,并行采样将样本效率转化为算力效率。通过理解策略梯度、PPO与GRPO的核心原理,工程师可以更好地设计奖励函数与训练策略,在AI对齐、代码生成、数学推理等场景

weixin_34214500的博客 363

Keye-VL-1.5:8B参数模型如何突破128K视频理解的技术壁垒

快手Keye团队推出的Keye-VL-1.5-8B模型在多模态视频理解领域实现了突破性进展,首次在80亿参数级别实现了128K上下文长度的视频处理能力。这一创新性技术突破重新定义了轻量化多模态模型在视频理解任务中的性能边界,为边缘设备和消费级GPU部署提供了全新的解决方案。 ## 视频理解的技术困境与Keye-VL-1.5的创新应对 当前视频理解技术面临三大核心挑战:**长时序信息处理效率低下

gitblog_01197的博客 1116

大模型论文导航图:5类核心能力构建LLM知识体系

大语言模型(LLM)作为当前人工智能的核心范式,其技术演进并非线性堆叠,而是围绕基础架构、预训练范式、对齐技术、推理优化与涌现机制五大底层能力持续重构。理解这些能力的原理与协同关系,是掌握Transformer、RLHF、DPO、FlashAttention、vLLM等关键技术的前提;其技术价值体现在工程落地的稳定性、可扩展性与成本可控性上;广泛应用于智能客服、法律文书生成、金融风控、RAG知识库等真实业务场景。本文以‘Essential LLM Papers’为线索,聚焦论文背后的能力坐标与工程断层,帮助

weixin_30634661的博客 412

【AI Infra面试】基础学习汇总篇

系列综述:💞目的:本系列是个人整理为了学习训练框架优化的,整理期间苛求每个知识点,平衡理解简易度与深入程度。🥰来源:材料主要源于进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。🤭结语:如果有帮到你的地方,就和!!!!,后续继续完善和扩充👍(●’◡’●)

qq_43840665的博客 4853

Keye-VL-1.5-8B:如何在消费级GPU上实现128K视频理解?

Keye-VL-1.5-8B是快手Keye团队推出的突破性多模态大语言模型,首次在80亿参数级别实现128K上下文长度的视频理解能力,通过创新的Slow-Fast视频编码技术重新定义了轻量化模型的视频处理边界。这意味着你可以在消费级GPU上运行专业级视频分析任务,将长视频理解的门槛从云端服务器降低到个人工作站。 ## 🎯 视频理解面临的三大核心挑战 当前AI视频理解面临三个主要瓶颈:长时序信

gitblog_00117的博客 1131
上一篇: IQuest-Coder-V1:基于代码流训练的编程逻辑增强模型;Human Face Emotions:基于多标注维度的人脸情绪识别数据集
下一篇: 【Triton 教程】triton_language.where
HyperAI超神经
博客等级 码龄7年 8873粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值