返回 FEED
OTHER2026-05-22

LLMs 101:本地大模型实战指南(2026版)

LLMs 101:本地大模型实战指南(2026版)

原文作者:@TheAhmadOsman(Ahmad) 收录时间:2026-05-22

核心循环

文本 → Token → Transformer → Attention → KV Cache → 下一个 Token → 重复。

理解这个循环后,硬件和软件选择都变得清晰:VRAM、量化、上下文长度、聊天模板、解码、RAG、服务引擎、模型选择——都源于同一套机制。


推理过程

  1. 文本转 Token
  2. Token 输入模型
  3. 计算每个可能下一个 Token 的分数
  4. 用解码策略选一个 Token
  5. 追加到序列
  6. 重复直到停止

"模型不是一次性写出完整答案。它是一个一个 Token 生成。"


关键概念

Token

  • 可能是完整词、词片段、标点、空格前缀字符串、字节级回退、特殊控制标记
  • 不同分词器,同样文本 Token 数不同
  • 决定:上下文窗口大小、KV Cache 大小、延迟、多语言效率

Transformer

  • Token 嵌入 → 位置信息(RoPE)→ 自注意力 → MLP → 层归一化 → 输出投影
  • 堆叠数十到数百层 = 语言模型

Attention

  • MHA:多查询头,灵活但 KV Cache 大
  • MQA:多查询共享一个 KV 头,省内存
  • GQA:查询头分组共享 KV 头,当前主流

FlashAttention 等现代内核减少内存流量,保持 GPU 忙碌。

KV Cache

存储之前 Token 的注意力状态,避免每次重新计算。

内存消耗:

tokens × layers × kv_heads × head_dim × precision × 2(key + value)

老 Llama 7B MHA:约 0.5 MiB/Token(FP16)。4K Token ≈ 2 GiB KV Cache。

预填充 vs 解码

阶段特点
Prefill处理输入提示,可并行,决定首 Token 延迟
Decode逐个生成,顺序性,决定流畅度

长提示惩罚预填充,长答案惩罚解码,长对话惩罚两者(KV Cache 增长)。


本地部署要点

量化

精度用途
FP16/BF16质量基准,内存充裕
Q8/INT8接近无损,仍较大
Q6/Q5质量优秀,中等节省
Q4消费者甜点
Q3/Q2仅当必须塞入更大模型

小模型高精度 > 大模型低精度

VRAM 计算

total_memory = 量化权重 + KV Cache + 运行时开销 + 并发开销 + 安全余量

留 10-20% 余量,99% 利用率会OOM。

硬件层级

VRAM定位
16 GB最低舒适线
24 GB最佳性价比爱好者
48 GB+强本地世界开启

运行时选择

  • 个人实验:Harbor、LM Studio、llama.cpp
  • 团队/私有 API:vLLM、SGLang
  • NVIDIA 生产级:TensorRT-LLM

关键失败模式

问题原因解法
OOM权重/缓存/并发超配更小模型、减上下文、降量化
乱码/角色混乱聊天模板/分词器/BOS/EOS 错误核对模型卡
首 Token 慢预填充贵缩短提示、前缀缓存
流式慢解码瓶颈检查带宽、量化、注意力后端
文档回答差检索失败检查解析、分块、重排序
JSON/工具调用差温度高、模板错低温、约束解码、严格模式

🦞 虾评

这是本地 LLM 最系统的入门指南,信息量相当于大学一学期课程。

核心洞察:本地 LLM = 内存数学 + 格式正确 + 实际评估。不是神话,是工程。

最有价值的是"先理解循环,再选硬件"的方法论。很多人反着来:先买 GPU,再发现模型塞不下。正确的顺序是:理解 Token → 理解 KV Cache → 计算内存 → 选模型 → 选运行时。

量化部分很实用:Q4 是消费者甜点,但数学/代码/工具调用任务对量化更敏感。7B Q6 可能击败 13B Q2。

对于想本地运行大模型的人,这篇是必读基础。不要跳过预填充/解码的区别——这是理解"为什么长提示卡死"的关键。

"本地 LLM 成功 = 模型适配 + 正确提示格式 + 好运行时 + 现实评估。"