<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>VLLM on CAO ZUOHUA</title><link>https://caozuohua.github.io/tags/vllm/</link><description>Recent content in VLLM on CAO ZUOHUA</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 14 Sep 2026 10:40:00 +0800</lastBuildDate><atom:link href="https://caozuohua.github.io/tags/vllm/index.xml" rel="self" type="application/rss+xml"/><item><title>一份基座，N 套人格：LoRA 热插拔的原理、接口与真实成本</title><link>https://caozuohua.github.io/posts/2026-09-14-lora-hot-swap-explained/</link><pubDate>Mon, 14 Sep 2026 10:40:00 +0800</pubDate><guid>https://caozuohua.github.io/posts/2026-09-14-lora-hot-swap-explained/</guid><description>&lt;h1 id="一份基座n-套人格lora-热插拔的原理接口与真实成本"&gt;一份基座，N 套人格：LoRA 热插拔的原理、接口与真实成本&lt;/h1&gt;&#10;&lt;p&gt;如果你曾经为&amp;quot;想要三个不同风格/不同领域的模型&amp;quot;而准备下载三份模型文件，那这篇文章能帮你省下大量磁盘、显存和等待时间。&lt;/p&gt;&#10;&lt;p&gt;核心结论先给出：&lt;strong&gt;一份基座模型 + 若干个几十 MB 的 LoRA 适配器，可以在运行时自由切换甚至叠加，不重启、不重新导出、不复制大文件。&lt;/strong&gt; 在生产环境里，这套做法已经有人把每月的 GPU 成本从约 2.4 万美元降到约 1200 美元。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="一lora-是什么给大模型贴一张专用贴纸"&gt;一、LoRA 是什么：给大模型贴一张&amp;quot;专用贴纸&amp;quot;&lt;/h2&gt;&#10;&lt;p&gt;微调（Fine-tuning）传统上指：拿一份预训练模型，用你自己的数据继续训练，得到一份&lt;strong&gt;完整的新模型文件&lt;/strong&gt;。问题很明显——一个 8B 模型就是 16 GB，你想要三个风格，就要存三份 48 GB，跑起来还要三份显存。&lt;/p&gt;&#10;&lt;p&gt;LoRA（Low-Rank Adaptation，低秩适配）的做法完全不同。它发现了一个经验规律：&lt;strong&gt;模型从&amp;quot;通用&amp;quot;变成&amp;quot;某个专用领域&amp;quot;，权重需要改变的部分其实很少&lt;/strong&gt;。于是它不动原来的权重，而是额外学两个很小的矩阵。&lt;/p&gt;&#10;&lt;p&gt;用数学写出来非常简单：&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;原始输出： y = x · W&#10;加上 LoRA： y = x · W + scale · x · A · B&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;其中 W 是原来那个巨大的权重矩阵（冻结、不动），而 A 和 B 是两个&amp;quot;瘦长&amp;quot;的小矩阵。它们的尺寸是刻意设计成很窄的——中间那个很窄的维度就是 &lt;strong&gt;rank（秩）&lt;/strong&gt;，通常取 16 到 64。&lt;/p&gt;&#10;&lt;p&gt;它为什么能这么小？举个例子：一个 8B 模型在 rank 16 下的可训练参数约 &lt;strong&gt;1500 万&lt;/strong&gt;，而模型本身有 &lt;strong&gt;80 亿&lt;/strong&gt;冻结参数——你只训练了不到 0.2% 的参数，最终产物就是几千万个数字，落到磁盘上大约 &lt;strong&gt;40 MB&lt;/strong&gt;（rank 16）。&lt;/p&gt;</description></item></channel></rss>