大模型相关知识学习整理
大模型相关知识学习整理
大模型基础
主流架构的对比
| 特性 | Dense (稠密模型) | MoE (专家混合) | SSM / Hybrid (状态空间/混合) |
|---|---|---|---|
| 代表模型 | Llama 3, GPT-3, Qwen | Mixtral 8x7B, DeepSeek V3 | Mamba, Jamba, RWKV |
| 核心原理 | 所有参数参与计算 | 路由器分配部分专家计算 | 维护固定状态,线性序列处理 |
| 计算效率 | 较低 (全量激活) | 极高 (按需激活) | 极高 (推理延迟低) |
| 显存压力 | 随上下文增加 | 极大 (需加载全部权重) | 极低 (无 KV Cache 压力) |
| 长文本支持 | 受限于显存 | 受限于显存 | 天生支持超长序列 |
| 主要优势 | 结构稳定、生态成熟 | 兼顾大参数量与低推理成本 | 长文本利器、推理极快 |
| 感性比喻 | 一个人干所有的活 | 专家委员会,按需点将 | 边干活边记笔记的高效管家 |
模型参数规模的演进逻辑
模型参数规模的序列(0.5B / 7B / 14B / 27B / 70B)并不是随意拍定的,它背后交织了显存物理限制、Scaling Laws(缩放定律)和并行效率的考量。
显存的"物理天花板"
模型在推理或微调时必须完整加载到显存中。主流消费级显卡的显存通常是 8GB, 12GB, 16GB, 24GB, 40GB, 80GB。
| 尺寸 | FP16 显存占用 | INT4 显存占用 | 对应显卡 |
|---|---|---|---|
| 7B - 8B | ~14 GB | ~5 GB | 消费级显卡(RTX 3060 12GB / 4060Ti 16GB) |
| 27B - 32B | ~54 GB | ~18 GB | 单卡 A100/H100 (80GB) 或双卡 3090/4090 量化 |
Scaling Laws 的倍数效应
OpenAI 和 DeepMind 的研究表明,模型性能与参数量、数据量、计算量呈幂律关系。
- 性能跨度:参数量增加 2 到 3 倍,能力才有质的飞跃
- 训练成本:参数翻倍,训练算力(FLOPs)在数据等比例增加时翻 4 倍
尺寸等级与战场
| 尺寸等级 | 典型代表 | 主要战场 |
|---|---|---|
| 0.5B - 1.5B | Qwen-1.5B, Gemma-2B | 手机终端、AI Agent 微型插件 |
| 7B - 9B | Llama-3-8B, Mistral | 个人电脑、开发者实验、逻辑门槛模型 |
| 14B - 20B | Qwen-14B, InternLM | 企业级单机部署、性能与成本平衡 |
| 30B - 34B | Yi-34B, Gemma-27B | 复杂任务处理、极强的指令遵循能力 |
| 70B+ | Llama-3-70B | 云端 API、复杂推理、知识库核心 |
这些数字是硬件厂商与算法厂商之间的"极限拉扯"——在既定成本下能榨取的最高"智力密度"节点。
Transformer 分层结构
目前主流的 LLM(Llama 3、Gemma、Mistral)基本都采用 Decoder-Only 架构,可以拆解为三个主要部分:
A. 嵌入层 (Embedding Layer)
- 组成:Token Embedding + Positional Embedding(位置编码)
- 作用:将离散 Token ID 映射为高维连续向量,位置编码告诉模型词序(Llama 使用 RoPE 旋转位置编码)
- 维度:通常等于隐藏层维度 ,如 4096
B. 骨干层 (Backbone / Transformer Blocks)
核心部分,通常由 32 到 80 个相同 Block 堆叠。每个 Block 包含:
自注意力层 (Self-Attention)
- 作用:建立 Token 之间的联系(上下文逻辑)
- 参数:(投影矩阵)和 (输出矩阵)
前馈网络层 (FFN / MLP)
- 作用:知识存储库,大部分事实性知识存储在 FFN 中
- 维度:通常进行扩展再收缩,如 4096 → 11008 → 4096(SwiGLU 结构)
C. 输出头 (LM Head)
- 作用:将最后一层隐藏状态映射回词表大小,通过 Softmax 预测下一个词
- 维度:
各层参数规模参考(Llama-3-8B)
| 组件 | 参数描述 | 典型维度/数值 | 作用总结 |
|---|---|---|---|
| Embedding | 词义映射 | ||
| Attention | 每层约 16M | 捕捉上下文关联 | |
| FFN | 每层约 45M | 存储事实知识 | |
| Total Layers | Block 堆叠数 | 32 层 | 深度特征提取 |
蒸馏模型 Distilled
Distilled(蒸馏)指知识蒸馏(Knowledge Distillation):让大模型(Teacher)教小模型(Student)模仿其推理方式。
工作原理
- 教师模型(大)输出详细概率分布(不仅知道正确答案,还知道各选项的相对合理性)
- 学生模型(小)模仿这个概率分布
- 学生学会教师的逻辑特征和推理模式
命名含义
如 DeepSeek-R1-Distill-Qwen-7B:
- 架构:Qwen-7B(小模型)
- 灵魂:使用 DeepSeek-R1 生成的推理数据蒸馏训练
- 结果:7B 模型的推理能力远超普通 Qwen-7B
蒸馏 vs 量化
| 特性 | 蒸馏 (Distilled) | 量化 (Quantization) |
|---|---|---|
| 原理 | 重新训练小模型模仿大模型 | 把权重数字压缩(16-bit → 4-bit) |
| 精度 | 通常比同规模普通模型高 | 比原模型略有下降 |
| 结构 | 模型架构变了(70B → 7B) | 架构不变,数字变小 |
| 类比 | 百科全书总结成精华手册 | 高清书压成低清图片 |
部署建议:先蒸馏(提质减量),再量化(压缩体积)。3090/4090 优先选 Distilled 模型,再叠加 AWQ/GPTQ 量化。
预训练-pre_train
数据处理
TODO
训练方式对比
从零预训练、增量预训练和 LoRA 微调是三条完全不同的路线。
| 方案 | 数据需求 | 显存需求 | 时间 | 效果 | 推荐度 |
|---|---|---|---|---|---|
| 从零预训练 | TB 级 | 多卡 A100 | 数月 | 最强,但成本极高 | 不现实 |
| 增量预训练 | GB 级 | 单卡 16GB | 数天 | 强,学习领域知识 | 强烈推荐 |
| LoRA 微调 | MB-GB 级 | 单卡 8GB | 数小时 | 适配任务风格 | 快速实验 |
从零预训练
- 不依赖任何预训练权重
- 需要海量数据(TB 级文本)
- 需要超级算力集群(多卡多机)
- 训练时间:数周甚至数月
- 成本:几十万到上百万美元
- 硬件要求:通常需要 A100 80GB 集群
增量预训练 (Continued Pre-training)
介于从零预训练和微调之间的中间路线:
- 使用官方权重作为初始化(不是微调,是继续预训练)
- 用私有数据继续训练
- 让模型学习领域知识
- 16GB 显存完全够用
这是最有性价比的方案:保留预训练知识的同时注入领域数据。
后训练-post_train
拿到 safetensors 之后要做的事
flowchart TD
A[LLM 训练阶段] -->|输出原始权重| B[PyTorch .bin/.pth]
A -->|安全高效存储| C[safetensors, 主流全能格式]
B -->|直接推理/继续训练| D[研究/实验环境]
C -->|推荐替代 .bin| D
A -->|量化转换| E[量化格式]
E --> F[GPTQ/AWQ]
E --> G[GGML]
E --> H[GGUF, 只能用来推理]
F -->|GPU推理优化| I[高性能GPU部署]
G -->|早期CPU推理| J[llama.cpp旧版本]
H -->|通用量化推理| K[llama.cpp / Ollama / 本地部署]
C -->|需转换为GGUF| H
微调-fine_tune
微调层级选择
在 PEFT(参数高效微调)普及的今天,微调的选择通常遵循以下策略:
| 层级 | 微调对象 | 效果 | 适用场景 | 代价 |
|---|---|---|---|---|
| Attention | 矩阵加旁路 | 改变任务风格、指令遵循能力 | 通用任务/对话适配 | 低(LoRA 经典方案) |
| FFN | 前馈网络权重 | 学习新的硬知识 | 深度领域适配(医学、冷门库) | 高(参数量是 Attention 两倍以上) |
| Embedding / LM Head | 词表嵌入层 | 理解新 Token | 扩充词表(特殊符号、MIDI 编码) | 易导致预训练知识崩溃 |
核心选择:微调 Attention 层
- 为什么:LoRA 最经典的做法是在 和 矩阵上加旁路
- 效果:微调 Attention 层能最有效地改变模型的任务风格和指令遵循能力
- 建议:通用任务/对话适配的首选,性价比最高
进阶选择:微调 FFN 层
- 为什么:如果希望模型学习新的硬知识(特定医学文献、极其冷门的编程库),微调 FFN 更有效
- 代价:FFN 参数量通常是 Attention 的两倍以上,显存消耗更高
特殊场景:微调 Embedding 或 LM Head
- 场景:需要扩充词表(加入特殊符号 Token)时,必须微调 Embedding 和 LM Head
- 风险:全量微调 Embedding 容易导致预训练知识崩溃,除非有极大规模数据集(百万级以上)
总结建议:通用任务用 LoRA 作用于 Attention 的 矩阵;深度领域适配可尝试 FFN;扩充词表才动 Embedding。
LoRA
另一篇文章有提到: LoRA微调训练和量化
主流微调框架对比
| 框架 | 核心特点 | 适用场景 | 开源协议 |
|---|---|---|---|
| LLaMA-Factory | 零代码 Web UI,支持 100+ 模型,集成 SFT/DPO/PPO 等方法 | 初学者、快速实验、原型验证 | Apache-2.0 |
| Unsloth | 显存优化(降低 70%)、速度提升 2x,单卡 GPU 可用 | 显存有限的环境、快速迭代研究 | Apache-2.0 |
| Self-LLM (Datawhale) | 针对国内用户,支持全参数/LoRA 微调,教程完善 | Linux 环境下的入门学习与实践 | Apache-2.0 |
| GaLore | 高效梯度存储与优化,适合大规模训练 | 企业级集群、科研场景 | 开源 |
| Axolotl | Hugging Face 生态深度集成,支持多种训练策略 | 熟悉 HF 的开发者,灵活定制 | 开源 |
| OpenChat | 专注于对话模型的高效微调 | 聊天机器人、客服场景 | 开源 |
选择建议
- 入门/快速实验:推荐 LLaMA-Factory 或 Self-LLM,界面友好,文档完善
- 显存有限/单卡 GPU:推荐 Unsloth,在 12GB–24GB 显存的消费级 GPU 上也能跑 LoRA
- 企业/科研大规模训练:推荐 GaLore 或 Axolotl,更适合复杂场景和深度定制
- 专注对话模型:推荐 OpenChat,针对聊天场景优化
注意事项:这些框架大多依赖 Hugging Face Transformers,需要关注版本匹配。LLaMA-Factory 和 Unsloth 社区增长快,Self-LLM 更适合国内用户。
量化-quantization
另一篇文章有提到: LoRA微调训练和量化
量化节省与精度对比
https://huggingface.co/mradermacher/Qwen3.5-2B-GPT-5.1-HighIQ-INSTRUCT-i1-GGUF
https://huggingface.co/Bedovyy/dasiwaWAN22I2V14B-GGUF/tree/main/HighNoise
有时候找模型会遇到不同精度的量化版本, 以 7B 模型为例, GGUF 量化
| 格式 | 典型大小 | 精度损失 | 推理速度提升 | 适用场景 |
|---|---|---|---|---|
| FP16 | ~14GB | 无损 | 基准速度 | 训练、基准推理 |
| q8_0 (8bit) | ~7.5GB | <0.5% | ~1.3× | 高精度服务器推理 |
| q6_k (6bit) | ~6.7GB | ~0.5–1% | ~1.5× | 高精度推理,接近无损 |
| q5_k_m (5bit混合) | ~4.5GB | ~1–3% | ~1.8× | 推荐的通用量化方案 |
| q4_k_m (4bit混合) | ~4.4GB | ~3–5% | ~2.0–2.2× | 主流移动端/轻量服务器部署 |
| q4_0 (原始4bit) | ~3.8GB | ~8–10% | ~2.5× | 基础推理,精度下降明显 |
| q3_k_m (3bit混合) | ~3.0GB | ~5–8% | ~3× | 移动端极限压缩 |
| q2_k (2bit) | ~2.7GB | >10% | ~3.5× | 极端压缩,精度损失大 |
量化方法和产物
| 标记 | 全称/含义 | 特点 | 适用场景 |
|---|---|---|---|
| Q | Quantized(量化) | 表示该模型是量化版本,后缀决定具体策略(如 q4_0、q4_k_m) | 所有量化模型的通用前缀 |
| K | K-quant(分组量化) | 改进的量化方法,分组存储权重,精度更好 | 主流推荐,如 q4_k_m、q5_k_m |
| M | Mixed(混合精度) | 不同部分使用不同 bit 数量,兼顾精度和体积 | 常见于 q4_k_m、q5_k_m,平衡最佳 |
| L | L-quant(低秩优化) | 针对部分权重做低秩近似,进一步压缩 | 更小体积,但精度略有下降 |
| IQ | Integer Quantization(整数量化) | 使用整数存储,推理速度更快 | 新方案,适合 CPU/GPU 高速推理 |
| 0 | 原始量化版本 | 最基础的量化实现,速度快,但精度损失较大 | 早期量化方案,适合极限压缩或测试 |
| S | Super-block 分组策略 | 在量化时使用更大的分组(block size),提升精度 | 常见于 q4_k_s,比 _0 精度更好 |
| S# | Super-block + 数字(如 S2, S3) | 表示不同的分组大小或策略,数字越大分组更细,精度更高 | 高精度量化,适合需要更好质量的推理 |
GPU 量化格式选择
上述表格讲的是 GGUF 格式的量化标记,主要用于 llama.cpp / Ollama / LM Studio 等 CPU/本地推理生态。
但 vLLM 目前不直接支持 GGUF。如果你的目标是 GPU 高并发推理,需要选择专为 GPU 加速优化的量化格式。
vLLM 支持的量化格式
| 格式 | 位宽 | 特点 | 搜索关键词 | 推荐度 |
|---|---|---|---|---|
| AWQ | 4-bit | 保护"显著权重",精度极高;vLLM 有专门内核优化 | 模型名 + AWQ | 首选推荐 |
| GPTQ | 4-bit | 最老牌、最常见的 GPU 量化格式,资源极多 | 模型名 + GPTQ | 备选 |
| FP8 | 8-bit | 几乎没有精度损失,利用新显卡硬件特性 | 模型名 + FP8 | 新款显卡必备 |
FP8 前提:需 NVIDIA H100、4090 或更高级别显卡(Ada Lovelace 架构及以后)。
格式与推理引擎的匹配
| 需求场景 | 推荐格式 | 推荐推理引擎 |
|---|---|---|
| 高并发、多用户、纯 GPU 推理 | AWQ / GPTQ / FP8 | vLLM |
| 个人本地测试、显存不足 (CPU 补位) | GGUF | Ollama / llama.cpp |
| 追求极致吞吐量 (NVIDIA 显卡) | FP8 / AWQ | vLLM / TensorRT-LLM |
小贴士:Hugging Face 上找不到 AWQ 版本时,可查找 neuralmagic 发布的量化版本,提供了大量针对 vLLM 优化的 FP8 和 AWQ 模型。
模型发布-huggingface
一般是发到 Huggingface, 部分国内模型会发到魔搭
| 仓库名称示例 | 核心存储内容 | 角色定位 | 适用场景/工具 |
|---|---|---|---|
*-LoRA | adapter_model.safetensors (几十MB) | 中间产物 (轻量级) | 二次微调、PEFT 动态加载、研究员交流 |
*-Full | model.safetensors (几个GB) | 标准产物 (工业级) | 服务器部署 (vLLM)、Transformers 库加载 |
*-GGUF | *.gguf (不同位宽) | 分发产物 (消费级) | 本地离线运行 (Ollama, llama.cpp, LM Studio) |
为了让 Hugging Face 自动识别模型之间的血缘关系(如你图中看到的 Tree 结构),你需要在每个仓库的 README.md 顶部配置 base_model 标签。
LoRA 仓库 (
*-LoRA)声明它是基于哪个原始大模型微调的。
base_model: Qwen/Qwen3.5-4B
library_name: peft
tags:
- lora
- latex完整版仓库 (
*-Full)它是合并后的模型,通常依然指向原始基座模型。
base_model: Qwen/Qwen3.5-4B
tags:
- merged
- latex量化版仓库 (
*-GGUF)关键点:它的基座应该是你微调合并后的那个仓库。
base_model: Weidows/Qwen3.5-4B-LaTeX
tags:
- gguf
- quantization
模型文件格式
拿到模型权重后,常见的文件格式有三种。需要澄清一个常见误区:.ckpt 和 .pth 在技术上没有本质区别,都是 PyTorch torch.save() 序列化的 pickle 文件,区别只在命名约定和保存内容。
PyTorch 原生格式(.ckpt / .pth)
| 维度 | 保存完整训练状态 | 仅保存模型权重 |
|---|---|---|
| 常见命名 | .ckpt | .pth |
| 保存内容 | model + optimizer + epoch + scheduler | model.state_dict() |
| 用途 | 断点续训、恢复训练 | 推理部署、模型分发 |
| 文件大小 | 较大(约为权重的 2 倍以上) | 与权重相当 |
| 加载方式 | torch.load() 后按需提取 | model.load_state_dict() |
# 保存完整训练状态(通常命名为 .ckpt) |
安全提示:
.ckpt/.pth基于 Python pickle,加载时会执行序列化对象中的代码。从不可信来源下载的权重文件存在代码注入风险。
Safetensors
Hugging Face 推出的安全权重格式,设计上替代 pickle:
| 特性 | 说明 |
|---|---|
| 安全性 | 不执行代码,只存储张量数据,杜绝 pickle 反序列化漏洞 |
| 加载速度 | 支持零拷贝(memory-map),大模型加载更快 |
| 跨平台 | 格式规范统一,不受 PyTorch 版本差异影响 |
| 分片支持 | 单文件 > 2GB 时可自动分片(model-00001-of-00002.safetensors) |
| 兼容性 | HF 生态原生支持,PyTorch 需安装 safetensors 库 |
from safetensors.torch import save_file, load_file |
格式选择建议
| 场景 | 推荐格式 | 原因 |
|---|---|---|
| 训练阶段/断点续训 | .ckpt | 需要同时保存优化器状态和 epoch |
| 推理部署/模型分发 | .safetensors | 安全、加载快、HF 生态标准 |
| 遗留项目/内部使用 | .pth | 兼容旧代码,结构简单 |
| 多卡大模型存储 | .safetensors | 自动分片,避免单文件过大 |
Hugging Face 已全面转向
safetensors,新发布的模型几乎都以该格式为主。如果你从 HF 下载模型,默认拿到的就是.safetensors文件。
推理部署-inference
推理框架选择
速度太慢了, 大部分场景都不适合
看起来更新速度不太快, 支持不行, pass
推理加速
核心思路:在资源受限的机器上,推理加速通常是 “减小模型规模”(量化/剪枝/蒸馏)与 “高效执行”(选择合适的框架/内核) 的结合。
主流推理框架对比
| 框架 / 方法 | 适用场景 | 核心优势 | 推荐配置参数 | 备注 |
|---|---|---|---|---|
| vLLM | LLM 大语言模型服务(如 ChatGPT) | PagedAttention:通过分页管理 KV Cache,解决显存碎片化问题;支持 Speculative Decoding(推测解码)。在长上下文场景下(如 30K token)表现优越。 | --max-num-batched-token (控制批处理大小),--kv-cache-dtype (设置 KV 缓存类型)[[1]][[2]] | 在小显存机器上,优于 HuggingFace Transformers 2-4 倍吞吐量[[3]][[4]] |
| OpenVINO | Intel CPU / GPU / NPU (如 Xeon, Arc) | 深度优化:针对 Intel 硬件的异构执行、自动 batch、性能 Hint (Latency/Throughput)。 | ov::hint::performance_mode(ov::hint::PerformanceMode::THROUGHPUT) | 对于 CPU 推理(如 ResNet, BERT),往往优于 pure PyTorch/TensorRT[[5]] |
| TensorRT | NVIDIA GPU (A100, H100, RTX) | 极致加速:张量核心 + FP8/INT8 加速;支持混合精度。 | --precision (FP8/INT8) [[6]] | 对于视觉模型 (YOLO, Stable Diffusion) 常见首选[[7]][[8]] |
| ONNX Runtime | 跨平台部署 (CPU, GPU, NPU, Edge) | 通用性:支持 CUDA、DirectML、OpenVINO EP。 | ExecutionProvider 选择 (如 CUDAExecutionProvider)[[9]] | 适合 Edge 设备(如 Jetson, Graviton)[[10]] |
核心加速技术手段
| 技术 | 加速原理 | 典型收益 | 适用场景 | 参考 |
|---|---|---|---|---|
| PagedAttention | 类似 OS 虚拟内存分页,按需分配 KV Cache,减少显存碎片。 | 显存利用率近 100%,解决长上下文卡死问题[[17]] | 超长上下文 LLM (30K token 以上) | vLLM 独有技术[[18]] |
| Speculative Decoding | 预先生成多个候选 token,提前并行计算,减少解码串行瓶颈。 | 吞吐量提升 2-4x | 需要高 QPS 的聊天机器人 | vLLM 中实现[[19]] |
| 自动 Batch | 动态聚合多个推理请求,提高 GPU 利用率。 | 吞吐量提升 1.5x-3x | 低频请求的 API 服务 | OpenVINO & vLLM 支持[[20]] |
MLX (Apple Silicon)
MLX 是 Apple Silicon (M1/M2/M3/M4) 专属的机器学习框架,由苹果 AI 研究团队开发。
核心优势:统一内存架构 (Unified Memory)
- 在 NVIDIA 显卡上:内存 (RAM) 和显存 (VRAM) 物理分离,模型必须能塞进显存
- 在 Mac (MLX) 上:CPU 和 GPU 共享同一块内存
- 一台 128GB 内存的 Mac Studio,MLX 可以直接调用绝大部分来跑模型
- 这意味着 Mac 可以跑动 3090/4090 完全跑不起来的超大模型(如 Llama-3-70B 或 Qwen-72B)
主要特点
- 原生性能:专为苹果芯片的 GPU、CPU 和 Neural Engine 优化,速度远超传统 PyTorch
- 类 PyTorch 设计:API 接近 PyTorch,模型转换成本低
- 延迟评估 (Lazy Evaluation):只有真正需要结果时才执行计算,优化显存和算力分配
- 量化支持:AWQ、4-bit、8-bit 等技术都有对应优化实现
适用场景
| 场景 | 说明 |
|---|---|
| 超大模型尝鲜 | 3090 跑不动的 72B 甚至 400B 模型,大内存 Mac 可用 MLX 慢速跑起来 |
| 本地开发 | 利用 Mac 低功耗特性进行模型微调或推理测试 |
| 高效推理 | 风扇几乎不转就能处理复杂 AI 任务,适合作为本地 AI 助手 |
3090 (CUDA) vs. Mac (MLX)
| 维度 | NVIDIA RTX 3090 | Apple Silicon + MLX |
|---|---|---|
| 生态系统 | CUDA(最成熟,工业标准) | MLX(苹果专属,高性能) |
| 内存限制 | 固定的 24GB(硬伤) | 动态共享(最高可达 192GB+) |
| 推理速度 | 极快(算力密度高) | 较快(受限于内存带宽) |
| 适用人群 | 追求速度、专业开发者 | 追求大模型容量、Mac 办公用户 |
一句话:CUDA 是 AI 界的"通用标准",MLX 是苹果为自家芯片量身定制的"专业跑车引擎"。如果你主力用 3090,MLX 对你没有直接作用;但如果你有 M 系列 Mac,它是跑超大模型的唯一选择。
常见误区
- ”多加一个 GPU 就能跑大模型”:在显存碎片严重时,即使是 2 块卡也可能卡死,PagedAttention 是关键
- ”只要量化就行”:直接 INT8 量化有时会导致 LLM 输出乱码,建议先使用 W4A4 (GPTQ) 或者 INT8 + W8A8 (vLLM)
KV Cache 显存估算
KV Cache 是 LLM 推理时显存占用的核心大头之一,尤其在长上下文场景下很容易成为瓶颈。这里记录一个快速估算公式。
对于量化后的模型(KV Cache 通常为 8-bit,即每个元素占 1 字节),显存占用近似为:
各项含义:
| 项 | 含义 |
|---|---|
| 2 | K (Key) 和 V (Value) 两个向量 |
| Layers | Transformer 层数 |
| Heads | 注意力头数量(GQA 架构下为 KV Heads 数) |
| Head Dim | 每个头的维度 |
| Context Length | 上下文 Token 数 |
| 字节转 GB |
Qwen3.5 27B 示例:
| 上下文长度 | 计算过程 | KV Cache 占用 |
|---|---|---|
| 256k | 2 x 64 x 4 x 256 x 262144 / 10^9 | ~34.3 GB |
| 8k | 2 x 64 x 4 x 256 x 8192 / 10^9 | ~1.07 GB |
长上下文对显存的压力是指数级的。如果想在 256k 长度跑满,仅 KV Cache 就要吃掉约 34 GB,这还没算模型权重本身。
未量化的情况:如果 KV Cache 用 FP16(每个元素 2 字节),分子需要再乘 2,上述数字直接翻倍。
多模态模型
CLIP
CLIP(Contrastive Language-Image Pre-training)是 OpenAI 提出的多模态模型,核心思想是同时编码图像和文本,让它们在同一个向量空间中对齐,通过对比学习训练。
基本能力:
输入一张图 + 若干文本描述,CLIP 会计算图文匹配度,找出最相关的描述。例如给一张猫图和三个文本 “a cat” / “a dog” / “a car”,CLIP 会返回 “a cat” 最匹配。
工程应用场景:
| 场景 | 说明 |
|---|---|
| 文本驱动检索 | 用文本搜图,适用于数据集筛选 |
| 零样本分类 | 不训练分类器,直接用 prompt 做分类 |
| 统一 Embedding 空间 | 做多模态 RAG(图像 + 文本混合检索) |
| 数据清洗 | 过滤不符合描述的脏数据 |
医疗场景注意事项:
CLIP 是用互联网通用数据训练的,对医学语义(如超声图像)理解较弱,容易产生语义偏移(semantic drift)。
建议的使用路线:
- 用 CLIP 做粗筛
- 再用领域模型(如自己微调的 LoRA)做精筛
- 或者直接训练 Medical CLIP 微调版本
CLIP 只能作为前置过滤层,不能替代领域模型的判断。
借物表
[1]: LLM









