runner000001
具备实战经验的大模型算法高级工程师,擅长前沿技术研究与分享
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GSPO vs GRPO:MoE 模型的强化学习
值得注意的是,即使存在显著更高的截断标记率,GSPO 仍能保持更高的训练效率,这进一步验证了在此类场景下标记级优化的不足。GSPO 代表了混合专家模型强化学习领域一次具有针对性的重大演进,它通过更连贯的序列级方法,解决了 GRPO 等令牌级方法的核心不稳定性和低效问题。不同于逐词元比较当前策略(即正在训练的模型)与参考策略(即初始化所用模型)的对数概率,GSPO 采用归一化的序列级似然来计算重要性比率。关键的是,GSPO 还在序列层级应用了剪裁技术,这提升了训练鲁棒性并消除了对辅助稳定技术的需求。原创 2025-08-17 13:56:30 · 656 阅读 · 0 评论 -
OpenAI GPT-OSS:原生 4 比特混合专家模型
GPT-OSS 包含两个基于 Apache 2.0 许可证发布的混合专家模型(MoE)检查点。其中 GPT-OSS 20B 模型总参数量为 210 亿,每个 token 激活 36 亿参数,可在 16GB 消费级 GPU 上运行。更大的 gpt-oss-120B 模型拥有 1170 亿参数,借助 MXFP4 量化技术可适配单块 80GB 显存的 H100 GPU。没错,就是 MXFP4!随着 Blackwell 架构 GPU(包括消费级版本)现已原生支持该格式,原生 MXFP4 模型的出现只是时间问题。原创 2025-08-17 10:19:18 · 770 阅读 · 0 评论 -
使用 Python 从零构建 DeepSeek R1
DeepSeek R1 的整个训练过程,本质上就是在基础模型(即 deepseek V3)之上采用不同方式的强化学习。从一个小型本地运行的基础模型开始,我们将基于 DeepSeek R1 技术报告从头构建所有内容,并在每个步骤中同步讲解相关理论。搭建基础环境现在,让我们导入所需的库。训练数据集尽管论文未明确说明 RL 预训练使用的初始数据集,但我们推测其重点应聚焦于推理能力。AI-MO/NuminaMath-TIR 包含 7 万个数学问题,其中消息列展示了解题背后的思维链(COT)推理过程。原创 2025-08-04 16:44:17 · 1086 阅读 · 0 评论 -
如何使用 vLLM 运行 gpt-oss
vLLM 是一款开源的高吞吐量推理引擎,通过优化内存使用和处理速度,专为高效服务大型语言模型(LLMs)而设计。本指南将逐步介绍如何使用 vLLM 在服务器上部署 gpt-oss-20b 或 gpt-oss-120b,将其作为 API 为您的应用程序提供服务,甚至可将其连接到智能体 SDK。请注意,本指南适用于配备专用 GPU(如 NVIDIA H100)的服务器应用。原创 2025-08-17 10:57:22 · 696 阅读 · 0 评论 -
如何在多 GPU 配置上运行 Unsloth:数据并行或模型并行
当工作负载受限于内存(模型或批次无法放入单张显卡)、或受限于计算且计算与通信比率较高时(即每块 GPU 的额外计算量超过同步参数的开销,如在 DDP 中,或超过传递激活值的开销,如在模型并行中),多 GPU 配置才开始显现优势。在松散连接的显卡上(尤其是 PCIe 版本的 H100 或 A100),额外的设备间数据传输会导致性能显著低于单 GPU 运行。让我们厘清概念,明确说明如何通过模型并行(将模型拆分到多个 GPU)或数据并行(在每个 GPU 上复制模型)来跨多 GPU 运行 Unsloth。原创 2025-08-17 12:30:01 · 503 阅读 · 0 评论 -
如何大幅加速 PyTorch 模型训练
3. 优化 DataLoader 速度训练深度学习模型有时就像看着油漆慢慢变干。迭代过程可能缓慢到让你忍不住用头撞键盘,眼睁睁看着终端上每个 epoch 像蜗牛般爬行,这时你难免会想:有没有更好的方法?别担心!我又带来了一篇文章,分享一些让你的深度学习工作流程更加敏捷的技巧/窍门。我将分享一些直接而有用的代码调整,帮助你更有效地利用计算资源。我们还将深入探讨一系列经过行业验证的技巧、窍门和调整,这些方法可以从你的硬件中榨取每一分性能,让你少花时间等待,多花时间进行更快的迭代。原创 2025-07-18 11:02:02 · 834 阅读 · 3 评论 -
LLMs 现可通过纯强化学习进行预训练
RPT 表现如何?深度解析微软研究人员提出的强化预训练(RPT)新技术,该技术可扩展性地利用强化学习预训练 LLMs。传统上,LLMs 通过自监督方式在大型文本数据集上进行下一词预测目标的预训练。预训练完成后,它们会通过进一步的监督学习针对特定任务进行微调,或使用强化学习(RL)进行对齐调优。然而,这种流程在未来可能不再是训练模型的标准范式。微软近期发表的一篇研究论文提出了强化预训练(RPT)这一新方法,该方法将 LLMs 的预训练目标从"下一个词元预测"重新定义为"下一个词元推理"。原创 2025-07-17 10:40:14 · 1060 阅读 · 0 评论 -
与文档对话工具——RAG(向量数据库+余弦相似度)及 Claude API 实现
最近在做一家律所的项目:做一个回答所有文档相关问题的工具一些典型的使用场景包括:1) 描述法庭上发生的事件2) 提供案件审理状态更新3) 制作案件时间线请记住我们讨论的是律师事务所场景,因此这个工具需要能处理大量涉及客户隐私、法律程序等机密信息,隐私保护与(尤其是)幻觉问题是我必须解决的两大瓶颈。他们最初的想法是把所有数据都导入 ChatGPT 进行提问,但这显然不是理想方案,因为无法处理上述问题。几周前这个项目交到我手上,我认为自己成功交付了一个既有效又成本可控的方案。原创 2025-07-16 20:56:33 · 899 阅读 · 0 评论 -
Chain-of-Draft (CoD) 是提示技术的新王者
只选择一种推理路径,易错。原创 2025-07-15 21:42:17 · 1256 阅读 · 0 评论 -
ExLlamaV2:运行 LLMs 最快的库
量化大型语言模型(LLMs)是当前最流行的模型压缩和加速推理方法。在这些技术中,GPTQ 在 GPU 上展现出惊人的性能表现。与未量化模型相比,该方法在保持相近精度和更快生成速度的同时,VRAM 占用减少了近 3 倍。其流行程度之高,以至于近期已直接集成到 transformers 库中。ExLlamaV2 是一个专为榨取 GPTQ 更多性能而设计的库。得益于新内核,它针对(极速)推理进行了优化。该库还引入了新的量化格式 EXL2,为权重存储方式提供了极大灵活性。原创 2025-07-14 20:22:49 · 919 阅读 · 0 评论 -
通过 mergekit 融合大型语言模型
模型融合是一种将两个或多个 LLM 合并为单一模型的技术。这是一种相对新颖且实验性的方法,能够以低成本(无需 GPU)创建新模型。令人惊讶的是,模型融合效果出奇地好,并在 Open LLM 排行榜上催生了许多最先进的模型。本教程中,我们将使用 mergekit 库来实现这一技术。具体来说,我们将探讨四种融合方法并提供配置示例。本节我们将重点介绍 mergekit 当前实现的四种方法。需注意还存在其他方法(如线性合并和任务算术)。1. SLERP。原创 2025-07-09 20:44:51 · 683 阅读 · 0 评论 -
大型语言模型中的解码策略
在大型语言模型(LLMs)的奇妙世界中,人们往往聚焦于模型架构、数据处理和优化技术。然而像束搜索(beam search)这类对文本生成至关重要的解码策略却常被忽视。本文将深入解析 LLMs 生成文本的机制,包括贪心搜索、束搜索的工作原理,以及 top-k 采样和核采样等抽样技术。通过本文的学习,你不仅能透彻理解这些解码策略,还会熟悉如何处理温度、num_beamstop_k和top_p等重要超参数。原创 2025-07-08 15:14:24 · 1007 阅读 · 2 评论 -
如何从零开始成为 LLM 科学家与工程师?
多模态模型:这类模型(如 CLIP、Stable Diffusion 或 LLaVA)通过统一的嵌入空间处理多种类型输入(文本、图像、音频等),从而解锁了文生图等强大应用场景。编排器:编排器(如 LangChain、LlamaIndex、FastRAG 等)是流行的框架,用于将 LLMs 与工具、数据库、记忆系统等连接起来,从而增强其能力。量化是指将模型参数和激活值转换为更低精度的过程。部分技术已趋成熟(模型融合、多模态),而另一些则更具实验性(可解释性、测试时计算规模调整),成为众多研究论文的焦点。原创 2025-07-08 10:25:58 · 812 阅读 · 1 评论 -
LLM 微调入门指南
随着人们对大型语言模型(LLMs)兴趣的增长,旨在简化其训练流程的工具和封装器如雨后春笋般涌现。主流选择包括 LMSYS 开发的 FastChat(曾用于训练 Vicuna 模型)和 Hugging Face 的 transformers/trl 库(在我的前作中使用过)。此外,每个大型 LLM 项目(如 WizardLM)通常都会基于最初的 Alpaca 实现方案,开发自己的训练脚本。本文将使用 OpenAccess AI Collective 开发的工具。原创 2025-07-08 09:31:24 · 778 阅读 · 0 评论 -
使用 MergeKit 创建专家混合模型
随着 Mixtral 的发布,混合专家(MoE)架构在最近几个月变得流行起来。。虽然 Mixtral 和其他 MoE 架构都是从头开始预训练的,但最近出现了另一种创建 MoE 的方法。得益于 Arcee 的 MergeKit 库,我们现在可以通过。这类模型通常被称为"缝合 MoE"(frankenMoE)或"混合 MoE"(MoErge),以区别于预训练的 MoE 模型。本文将详细解析混合专家(MoE)架构的工作原理及 frankenMoE 的创建方法。原创 2025-07-07 21:22:37 · 665 阅读 · 0 评论 -
使用 GGUF 和 llama.cpp 量化 Llama 模型
由于大语言模型(LLMs)的庞大规模,量化已成为高效运行它们的关键技术。通过降低权重精度,可以在保留模型大部分性能的同时节省内存并加速推理。最近,8 位和 4 位量化技术实现了在消费级硬件上运行 LLMs 的可能性。结合 Llama 模型的发布及高效微调技术(LoRA、QLoRA),这催生了一个丰富的本地 LLMs 生态系统,如今已能与 OpenAI 的 GPT-3.5 和 GPT-4 分庭抗礼。除本文介绍的基础方法外,主要有三种量化技术:NF4、GPTQ 和 GGML。原创 2025-07-06 14:32:58 · 981 阅读 · 0 评论 -
使用 ORPO 微调 Llama 3
💻 使用 ORPO 微调 Llama 3ORPO 是一种令人振奋的新型微调技术,它将传统的监督式微调与偏好对齐阶段合并为单一流程。这显著降低了训练所需的计算资源和时间成本。实证研究还表明,在不同模型规模和基准测试中,ORPO 的表现均优于其他对齐方法。本文将使用 TRL 库,通过 ORPO 技术对全新的 Llama 3 8B 模型进行微调。指令微调与偏好对齐是使大语言模型(LLMs)适配特定任务的关键技术。然而研究人员发现这种方法存在局限性。原创 2025-07-06 13:31:21 · 881 阅读 · 0 评论 -
使用DPO微调 Mistral-7b 模型
🥇 偏好数据集预训练的大型语言模型(LLMs)仅能执行下一个词预测任务,这使得它们无法直接回答问题。因此需要对这些基础模型进行指令-答案对的微调,使其成为有用的助手。但这一过程仍可能存在缺陷:经过微调的 LLMs 可能存在偏见、毒性或危害性等问题。这正是人类反馈强化学习(RLHF)的用武之地。RLHF 会为 LLM 提供不同答案,这些答案根据期望行为(有用性、毒性等)进行排序。模型通过学习输出候选答案中的最佳选项,从而模仿我们期望灌输的行为模式。原创 2025-07-06 11:51:38 · 885 阅读 · 0 评论 -
使用 GPTQ 进行 4 位量化
权重量化的最新进展使我们能够在消费级硬件上运行超大规模语言模型,例如在 RTX 3090 显卡上运行 LLaMA-30B 模型。这得益于新型 4 位量化技术(如 GPTQ、GGML 和 NF4)的应用,这些技术能在性能损失最小的情况下实现模型压缩。在上一篇文章中,我们介绍了基础的 8 位量化技术和卓越的 LLM.int8()方案。本文将深入探讨流行的 GPTQ 算法,解析其工作原理,并通过 AutoGPTQ 库实现该量化方法。🧠 OBQ算法让我们首先介绍要解决的问题。原创 2025-07-06 11:09:31 · 737 阅读 · 0 评论 -
量化技术入门指南
大型语言模型(LLMs)因其庞大的计算需求而闻名。通常,模型大小通过参数数量(规模)与数值精度(数据类型)相乘计算得出。但为了节省内存,可通过称为量化的过程,使用更低精度的数据类型存储权重。本文我们区分出两大权重量化技术体系:训练后量化(PTQ)是一种直接的技术,它无需重新训练即可将已训练模型的权重转换为更低精度。虽然易于实现,但 PTQ 可能导致性能下降。量化感知训练(QAT)在预训练或微调阶段就融入了权重转换过程,从而提升模型性能。然而 QAT 计算成本高昂,且需要具有代表性的训练数据。原创 2025-07-06 10:14:58 · 1000 阅读 · 0 评论 -
如何构建大模型的“偏好”训练数据?
偏好数据集包含一个提示以及至少两个对该提示的回答,这些回答由语言模型生成并被标注为“已选择”或“已拒绝”。原创 2025-07-05 21:37:10 · 564 阅读 · 0 评论 -
偏好优化 + 合成指令:两类大模型核心训练数据集盘点
然而,获取合适的数据集可能具有挑战性。例如,如果您的目标是开发一个可以回答各个领域问题的聊天机器人,那么生成训练数据集可以节省您从多个来源收集数据并标准化其格式、风格和语调的时间和精力。您仍然可以将其视为对响应的排序,但在这里我们只有两个排序的响应:选择的响应排在第一位,拒绝的响应排在最后一位。使用此数据集,我们希望模型学习生成像选择的答案一样的答案,同时避免生成像拒绝的答案一样的答案。在本节中,假设我们的目标是微调一个大型语言模型(LLM),使其成为一个能够以教育性的口吻回答各种领域问题的聊天机器人。原创 2025-07-05 20:55:03 · 1164 阅读 · 0 评论 -
训练大模型,什么样的数据才算“好”?
然而,对于预训练,我们只希望模型学习在批次中给定所有先前token的情况下,一个token的概率。例如,如果您的目标是一次性生成整个对话会话,则推理框架应继续生成,直到遇到<|end_of_text|>,而不是在<|eot_id|>处过早停止。对于指令微调,即把一个基础LLM变成一个聊天模型,EOS token 必须由 LLM 的 tokenizer 插入到训练数据中用户答案的末尾。EOS标记可能仅在训练的后期阶段,通过少量批次进行训练,易于用EOS标记进行标注,或者只是默认插入到每个训练批次的末尾。原创 2025-07-05 19:58:13 · 939 阅读 · 0 评论 -
LoRA 模型推理与合并指南:兼容 Transformers 与 vLLM 的最佳实践
Qwen2.5 1.5B 是一个较小的模型,而本示例中使用的适配器只在一个小型数据集上训练了一个 epoch,因此。是一个列表,你可以向其中添加多个提示(prompt),这样 vLLM 会根据你的 GPU 显存情况。出于优化考虑,vLLM 还需要知道你的 LoRA 适配器的秩(rank)。现在我们需要定义基础模型的名称、LoRA 适配器的路径,以及合并后模型的保存位置。:虽然不是必需的,但在指定加载模型所使用的数据类型时非常有用。:不是必需的,但在指定加载模型时的数据类型时非常有用。原创 2025-07-05 18:28:29 · 1063 阅读 · 0 评论 -
LoRA 微调实战指南:基于 Unsloth 的高效训练流程
需要一块至少具有 6GB 显存的 GPU。已在支持 bfloat16 和 FlashAttention 的 GPU 上进行过测试。建议使用 Ampere 架构或更新的 GPU。兼容的 GPU 示例包括:所有 RTX 系列 GPU所有 AXX 系列 GPU,如 A40、A100H100。原创 2025-07-05 17:59:25 · 927 阅读 · 0 评论 -
基于 Hugging Face Transformers、PEFT 与 TRL 的 LoRA 微调全流程指南
需要一块。已在支持和的 GPU 上进行过测试。建议使用。兼容的 GPU 示例包括:所有所有,如 A40、A100。原创 2025-07-05 17:41:46 · 927 阅读 · 0 评论 -
LoRA 成本全解析:显存、计算与参数量
既然我已经介绍了LoRA的超参数,我们现在可以估计LoRA微调的内存消耗。在本节结束时,我们将理解为什么LoRA比完整微调消耗的内存少得多。原创 2025-07-05 15:54:29 · 809 阅读 · 0 评论 -
LoRA 怎么调?一文看懂超参数设置
LoRA 自身也引入了一些额外的超参数,主要包括:秩(rank)、alpha 和目标模块(target modules)。在本节中,我们将定义这些超参数,并通过示例来理解它们的影响。原创 2025-07-05 15:34:18 · 786 阅读 · 0 评论 -
如何正确微调:大语言模型的超参数与训练设置
超参数是用于控制机器学习模型训练的设定或配置。它们在训练开始前就已确定,并会显著影响模型性能。微调 LLMs 需要设置数十个超参数和训练参数。其中大多数参数可保留默认值,而另一些则必须仔细调优以最大化模型性能。然而为微调找到最优参数值既困难又成本高昂。对于超大规模语言模型而言,尝试不同超参数值的多种组合更是难以实现。正因如此,理解每个超参数的作用至关重要。只有充分理解这些超参数,我们才能推测出可能有效的数值,或至少大幅减少需要尝试的参数范围。微调 LLMs 需设置的主要超参数。原创 2025-07-05 15:13:24 · 850 阅读 · 0 评论 -
让大模型“轻装上阵”的秘密武器:LoRA
低秩适应 (LoRA) 是最常用的 PEFT 技术之一。它由微软在以下论文中提出:一个神经网络由多个执行矩阵乘法的稠密层组成,其权重矩阵通常是满秩的。但是,什么是满秩矩阵?在继续之前,至关重要的是要理解满秩矩阵和低秩矩阵之间的区别。- 满秩矩阵:当矩阵的所有行或列线性独立时,该矩阵为满秩矩阵。这意味着没有任何向量可以通过组合其他向量来形成——它们各自指向独特的方向并添加新的、独立的信息。- 低秩矩阵:当一个矩阵的秩小于其最大可能秩(即行数或列数中的较小者)时,该矩阵是低秩的。原创 2025-07-05 14:14:55 · 651 阅读 · 0 评论 -
如何估算 LLMs 微调的内存消耗
在深入研究PEFT方法之前,重要的是要理解为什么完全微调的成本会非常高。诸如GPT-2和BERT之类的第一批LLM现在可能被认为是小型的,但当它们发布时,我们从未处理过如此大型的模型。在分多个阶段发布后,OpenAI的GPT-2被提议分为小型、中型、大型和XL尺寸,分别包含1.37亿、3.8亿、8.12亿和16.1亿个参数。BERT模型的大小相似:分别为1.1亿和3.36亿。虽然在消费级硬件上微调这些模型已经极具挑战性,但与最近的大型语言模型(LLM)的规模相比,这些规模根本不算什么。原创 2025-07-05 13:49:09 · 1055 阅读 · 0 评论 -
LLMs 推理过程中的内存占用估算
高效的内存管理对于大型语言模型(LLMs)的优化部署至关重要,尤其是在资源有限的本地硬件上运行模型时。了解 LLMs 如何消耗内存,可以确保更流畅的性能和更好的资源利用率。本文展示了如何在不同条件下估算 LLMs 的内存消耗,包括不同批处理大小和序列长度。我还将解释 GQA、FlashAttention 和 KV 缓存等优化技术如何节省内存。为了说明这一点,我将以 Llama 3.3 70B 为例,估算其在推理过程中的内存占用。此外,我还将介绍一个专门设计用于自动化此估算过程的代码。原创 2025-07-05 11:28:44 · 1593 阅读 · 0 评论
分享