惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Know Your Adversary
Know Your Adversary
小众软件
小众软件
L
LangChain Blog
月光博客
月光博客
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
Y
Y Combinator Blog
有赞技术团队
有赞技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
MongoDB | Blog
MongoDB | Blog
Recorded Future
Recorded Future
V
Visual Studio Blog
TaoSecurity Blog
TaoSecurity Blog
S
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA
P
Privacy & Cybersecurity Law Blog
T
Threat Research - Cisco Blogs
D
DataBreaches.Net
L
LINUX DO - 热门话题
C
Check Point Blog
F
Fortinet All Blogs
Hugging Face - Blog
Hugging Face - Blog
The Hacker News
The Hacker News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The GitHub Blog
The GitHub Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
博客园 - 司徒正美
T
Threatpost
P
Palo Alto Networks Blog
A
About on SuperTechFans
Spread Privacy
Spread Privacy
Engineering at Meta
Engineering at Meta
N
News | PayPal Newsroom
T
Tailwind CSS Blog
The Last Watchdog
The Last Watchdog
Blog — PlanetScale
Blog — PlanetScale
A
Arctic Wolf
量子位
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 聂微东
Google Online Security Blog
Google Online Security Blog
Google DeepMind News
Google DeepMind News
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Vulnerabilities – Threatpost
H
Hacker News: Front Page

博客园 - 左扬

VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— VictoriaLogs 协同:Metrics 到 Logs 的一体化监控 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 源码阅读路线图:如何高效阅读 VM 源码 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 开源生态:VM 在 CNCF 生态中的位置 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 与其他 TSDB 对比:Prometheus/InfluxDB/Thanos/VM VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 写入吞吐/查询延迟/内存占用的数学模型 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 模块依赖图——从 import 语句看组件关系 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— Goroutine 池/atomic/零拷贝/sync.Pool VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 多租户架构——accountID/projectID 与 tenant 隔离 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 版本演进:1.146.0 LTS 重大更新解析 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 整体数据流:一条监控数据的完整生命周期 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 架构演进:从 TSDB 到 MergeSet 的设计取舍 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— Single-Node vs Cluster 模式本质区别 VictoriaMetrics 1.146.0 源码【左扬精讲】—— 开篇总览 Rust 专题【左扬精讲】—— 从语法到灵魂:Ownership、Borrowing 与多语言对比 kubernetes 源码【左扬精讲】—— kube-scheduler 启动流程源码分析 Rust 专题【左扬精讲】—— 选择控制语句、运算符与格式化输出 Rust 专题【左扬精讲】—— 所有权详解 Rust 专题【左扬精讲】—— 作用域详解 Rust 专题【左扬精讲】—— 变量、常量与标量数据类型 kubernetes 源码 / Operator 专题【左扬精讲】—— Deployment Controller 源码分析:从对象创建到滚动更新 kubernetes 源码 / Operator 专题【左扬精讲】—— Operator 开发中的 Webhook:从准入控制到生产部署 Kubernetes源码 / Operator 专题【左扬精讲】—— 实现 Application Controller:从零构建生产级控制器 Kubernetes 编程 / Operator 专题【左扬精讲】—— 定义 Application 资源 + 添加自定义新 API 完整指南 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 八):内部架构与核心组件 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 八): —— 从入口到调度的全链路源码剖析(k8s v1.36.1) DeepSeek-R1 多模态 R1 / VLM-GRPO【左扬精讲】—— Qwen2-VL 微调与视觉推理强化学习实战 DeepSeek-R1 工业 RAG + 微调混合系统【左扬精讲】—— R1 系列收官之作:从 Prompt → RAG → 微调 选型决策树 DeepSeek-R1 推理时扩展【左扬精讲】—— o1 / R1 慢思考机制:Self-Consistency + ToT + PRM 详解 DeepSeek-R1 端侧 LLM 工程【左扬精讲】—— llama.cpp 调参与 Apple Silicon / 国产 NPU / Android 端侧落地全攻略 DeepSeek-R1 vLLM + k8s 生产部署【左扬精讲】—— 从单卡 7B 到 100 卡 671B MoE 集群的工业化部署实战 DeepSeek-R1 评估与系统(Evaluation & Systems)【左扬精讲】—— 从 GSM8K/MMLU 到 LLM-as-Judge 的工业级评估方法论 DeepSeek-R1 模型训练与算法【左扬精讲】—— GRPO 进阶算法:DAPO / PRIME / RLVR / PRM 四大 2025 前沿改进 DeepSeek-R1 模型训练与算法【左扬精讲】—— 数据蒸馏:用 DeepSeek-R1-671B 生成 800K 高质量 CoT 样本的完整流水线 DeepSeek-R1 优化与微调实战【左扬精讲】—— 从 R1 强化学习新范式到 GRPO 微调一站式入门 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 七):自定义插件开发实战 —— 手写一个 Score 插件并注册到集群 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 六):Scheduler Profile 与多调度器 —— 如何配置多个 profile 实现多租户、Coordinated LeaderElection Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 五):SchedulingQueue 与 QueueingHint —— 三段队列的细节、v1.36 新引入的 QueueingHint 工作机制 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 四):抢占(Preemption)算法剖析 —— DefaultPreemption 如何选 victim、PodDisruptionBudget 如何约束 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 二):内置插件逐个精读 — NodeResourcesFit / NodeAffinity / TaintToleration / PodTopologySpread / VolumeBinding / InterPodAffinity Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):调度器内置插件 逐个精读 k8s 源码级精讲(二十六):调度器内置插件逐个精读 Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):调度器内置插件精读 — NodeResourcesFit / NodeAffinity / TaintToleration / PodTopologySpread / VolumeBinding / InterPodAffinity Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):Scheduling Framework 扩展点逐个源码拆解 Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):初识调度模型、内部架构与事件驱动机制 Kubernetes 编程 / client-go 专题【左扬精讲】—— 四种客户端:为什么、怎么选、怎么用 Kubernetes 编程 / Operator 专题【左扬精讲】—— controller-runtime、kubebuilder、operator-sdk 三大框架深度对比 Kubernetes 编程 / Operator 专题【左扬精讲】—— 深入理解 ManagedFields 字段冲突协调机制 Kubernetes 编程 / Operator 专题【左扬精讲】—— k8s Finalizers 深度解析:对象的生命周期与删除控制 Kubernetes 编程 / Operator 专题【左扬精讲】—— OwnerReference 字段与级联删除机制 Kubernetes 编程 / Operator 专题【左扬精讲】—— 深入学习 Server-Side Apply:managedFields 替代 last-applied-configuration 的演进方向 Kubernetes 编程 / Operator 专题【左扬精讲】—— k8s Annotations 与元数据体系(Operator 专题) Kubernetes 编程 / Operator 专题【左扬精讲】—— RESTMapper:把 Group / Version / Kind / Resource 四元组翻译成 REST 路径的"查字典"大师 Kubernetes 编程 / Operator 专题【左扬精讲】—— Converter 资源版本转换器 Kubernetes 编程 / Operator 专题【左扬精讲】—— Application 业务扩展:从单 Deployment 到多 Workload 的复合 Operator 演进 Kubernetes 编程 / Operator 专题【左扬精讲】—— OwnerReference / Finalizer / 准入控制:k8s 资源生命周期的三大支柱 Kubernetes 编程 / Operator 专题【左扬精讲】—— controller-runtime 框架内幕:从 Manager 到 Reconcile 的全栈拆解 Kubernetes 编程 / Operator 专题【左扬精讲】—— 生产级 Operator 最佳实践:并发安全、资源清理与高可用设计 Kubernetes 编程 / Operator 专题【左扬精讲】—— application-operator Reconcile 循环源码精讲:从 client-go Informer 到 workqueue 的全链路解剖 Kubernetes 编程 / Operator 专题【左扬精讲】—— 从零搭建一个 application-operator 新项目:脚手架、API 设计与基于原生 DeploymentStatus/ServiceStatus 的状态建模 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:生产级 Controller 实践:并发安全、资源清理与高可用设计 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析: Controller 调试与诊断工具:从日志分析到问题定位 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:DynamicClient 操作 CRD:无需代码生成的动态操作 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:控制器与 APIServer 完整交互流程:从 Watch 到缓存同步 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:错误处理与重试机制:WorkQueue 限速器详解 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Leader 选举机制:高可用控制器的必备技能 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Controller 开发模式完整实战 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:SharedInformerFactory 与等待缓存同步 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:从认证配置到 Deployment 操作 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:版本对应、架构组件与组件关系 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Informer 源码深度解析:从底层原理到实战应用 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Reflector 源码深度解析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:ListWatcher 源码深度解析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Indexer 与 ThreadSafeStore 核心原理与源码深度剖析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:DeltaFIFO 核心原理与源码深度剖析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:workqueue 核心原理与实战 Kubernetes 编程 / Operator 专题【左扬精讲】—— runtime.Codec 资源编解码:serializer 与 codec 差异、编解码数据结构、codec 核心调用链路 Kubernetes 编程 / Operator 专题【左扬精讲】—— Scheme 资源注册机制全解 Kubernetes 编程 / Operator 专题【左扬精讲】—— Kubernetes 自定义资源的内部版本与外部版本:从源码看版本定义机制 Kubernetes 编程 / Operator 专题【左扬精讲】—— Kubernetes 1.36.1 核心 API 数据结构全解 Kubernetes 编程 / Operator 专题【左扬精讲】—— Kubernetes 构建过程 【AIOPS】一文读懂LLM【左扬精讲】:从诞生到普及,解锁大语言模型的核心密码 【AIOPS】AI Agent 专题【左扬精讲】核心功能篇:MCP-VictoriaMetrics Hooks 源码精讲:Hooks 可观测性的无侵入式实现 【AIOPS】AI Agent 专题【左扬精讲】核心功能篇:MCP-VictoriaMetrics Golang 配置解析源码精讲 ——SRE 自定义 Agent 核心技巧 【AIOPS】AI Agent 专题【左扬精讲】核心功能篇:MCP-VictoriaMetrics Golang 并发模型解析 ——SRE 应对高并发采集的调优思路 【AIOPS】AI Agent 专题【左扬精讲】基础架构篇:MCP-VictoriaMetrics Golang 源码整体架构拆解 ——SRE 必懂的核心模块与数据流 OpenTelemetry 开发实战【左扬精讲】—— 云原生可观测体系构建与分布式追踪二次开发 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 7 —— 基于流量预测模型的智能弹性扩缩容 Operator 实战(AIOps 模型训练与智能扩容(下篇)—— 预测式弹性扩缩容 Operator 落地实现) Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 7 —— 基于流量预测模型的智能弹性扩缩容 Operator 实战(AIOps 模型训练与智能扩容(上篇)—— 时序预测模型构建与离线训练) Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 6 —— 基于运维专家知识库的智能故障诊断与排查 Operator 实战 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 5 —— 基于大语言模型(LLM)的实时日志流智能监测 Operator 实现 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 4 —— 基于 Operator 实现大模型私有化部署与管理 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 3(上篇)—— 面向 AI / 算力调度场景:GPU 竞价实例资源池统一调度管理 Operator 开发 Kubernetes编程 / Operator专题【左扬精讲】—— Operator 开发实战项目 2 —— 面向零售 / 电商潮汐流量难题:多云多集群数据中心级全链路弹性伸缩 DataCenter Scaler Operator 从 0 到 1 全链路开发 Kubernetes编程 / Operator专题【左扬精讲】—— 深入理解Kubebuilder注解:为什么Operator开发离不开这些特殊注释 Kubernetes编程 / Operator专题【左扬精讲】—— Operator 开发实战项目1 —— Applicaion Operator(通用应用生命周期管理 Operator 实战) Pod 镜像拉取失败?kubectl edit pods修改镜像地址的底层原理与实操 (该方法仅为临时应急方案,并非长期解决方案) Kubernetes编程/Operator专题精讲—— 理解控制器模式 —— 控制器模式的核心原理与实现逻辑(从原理到实践) 【AIOPS】AI Agent 专题【左扬精讲】模型微调实战:一站式平台 LLaMA-Factory 【AIOPS】AI Agent 专题【左扬精讲】基于 k8s+vLLM+Ray 分布式部署全指南:架构设计、资源调度与性能优化 【AIOPS】AI Agent 专题【左扬精讲】零开发框架实现 ReAct Agent(Go SRE友好)
【AIOPS】AI Agent专题【左扬精讲】非量化版DeepSeek分布式部署全指南:精度保障、显存规划与Ollama/vLLM选型
左扬 · 2026-01-02 · via 博客园 - 左扬

【AIOPS】AI Agent专题【左扬精讲】非量化版DeepSeek分布式部署全指南:精度保障、显存规划与Ollama/vLLM选型

        在 AI Agent 落地实践中,模型输出质量直接决定业务价值。量化技术虽能通过损失精度换取显存占用的降低,但这种妥协往往会导致推理结果的逻辑性、准确性下降,尤其在金融风控、企业级决策等对精度要求极高的AIOPS场景中,这种损失可能引发严重风险。因此,在算力资源充足的前提下,优先采用非量化版大模型是保障业务质量的关键选择。

一、非量化大模型的显存需求:从数据 -> 认知

        随着大模型参数量的指数级增长,非量化版部署的显存门槛也随之飙升,而非量化部署最核心的两种精度标准便是FP16与FP32。

    • FP32,即32位单精度浮点数,是计算机运算中最基础的精度格式,数据存储占用4个字节,能提供较高的计算精度,但显存占用成本也最高;
    • FP16,则是16位半精度浮点数,仅占用2个字节的存储,在保证大部分场景下模型推理精度不出现明显损失的前提下,能有效降低显存压力,因此成为非量化部署的主流选择。

        很多开发者对不同参数量模型在这两种精度下的显存需求缺乏清晰认知,接下来结合权威资料,梳理主流大模型的非量化(FP16/FP32)部署显存要求,为部署规划提供参考。

1.1、核心显存需求计算逻辑

        非量化大模型的 显存需求 核心由参数量与数据类型决定,基础估算公式为:显存占用 ≈ 参数量 × 数据类型字节数

        例如FP16精度下,每个参数占用2字节,70B(700亿)参数量模型的基础显存需求约为140GB(700亿×2字节),再考虑激活值存储、显存碎片化等额外开销,实际需求会更高。

1.2、主流大模型非量化部署显存需求(参考1:阿里云)

参考链接:https://help.aliyun.com/zh/ecs/user-guide/deploy-the-deepseek-r1-distill-model-on-a-gpu-accelerated-instance#e502bc94642u0

        DeepSeek-V3/R1是拥有671B参数量的专家混合(MoE)模型,并已经开源了模型权重。模型的参数量越大,其处理数据和生成内容的复杂性也随之增加,且运行所需的计算资源也会相应增多。每个模型在计算和存储需求上存在差异,以下列出了DeepSeek-R1各型号所需的硬件配置。根据不同的使用需求选择合适的模型,不仅可以降低成本,还能提升部署效率。

模型名称

模型版本

模型大小

vCPU

内存

GPU显存

系统盘

推荐实例规格

DeepSeek-R1-Distill-Qwen-1.5B

1.5B(15亿参数)

6.7 GB

4核或6核处理器

30 GB RAM

24 GB

至少50 GB空闲空间

ecs.gn7i-c8g1.2xlarge

DeepSeek-R1-Distill-Qwen-7B

7B(70亿参数)

29 GB

6核或8核处理器

32 GB RAM

24 GB

至少100 GB空闲空间

ecs.gn7i-c16g1.4xlarge

DeepSeek-R1-Distill-Llama-8B

8B(80亿参数)

30 GB

6核或8核处理器

32 GB RAM

24 GB

至少100 GB空闲空间

ecs.gn7i-c16g1.4xlarge

DeepSeek-R1-Distill-Qwen-14B

14B(140亿参数)

56 GB

8核以上处理器

64 GB RAM

2*24 GB

至少200 GB空闲空间

ecs.gn7i-2x.8xlarge

DeepSeek-R1-Distill-Qwen-32B

32B(320亿参数)

123 GB

8核以上处理器

128 GB RAM

4*24 GB

至少500 GB空闲空间

ecs.gn7i-4x.8xlarge

DeepSeek-R1-Distill-Llama-70B

70B(700亿参数)

263 GB

12核以上处理器

128 GB RAM

8*24 GB

至少1 TB空闲空间

ecs.gn7i-8x.16xlarge

核心工具介绍

        • NVIDIA GPU驱动:用来驱动NVIDIA GPU的程序,本文以Driver版本 550.127.08为例。
        • vLLM:是一个有助于更高效地完成大语言模型推理的开源库,本文以其v0.6.4.post1版本为例。
        • Open WebUI:基于Web的交互界面,提供类似ChatGPT的用户体验,支持对话记录管理、多模型切换及插件扩展,适合非技术用户直接操作。

1.3、主流大模型非量化部署显存需求(参考2:稀土掘金——面试题:如何评估大模型微调和训练队所需硬件成本)

参考链接:https://juejin.cn/post/7543464528278487055

1.3.1、Dense类模型

        Dense类模型指的是每次都会代入全部参数进行推理或者训练的模型,例如Qwen3-32B模型就是一个拥有32*10=320亿参数的Dense模型。

1.3.1.1、全量微调

        在Dense模型架构下,如果是做 全量微调,每一步计算都会激活所有参数,此时硬件成本的评估逻辑相对直接。常见估计方法是根据 模型参数规模 * 精度位宽 来粗略估计显存需求。例如一个70B参数的Dense模型,若采用FP16格式进行存储,计算存储显存:

    • 参数量: 700 0000 0000
    • 每个参数所bit数: 16bit
    • 1GB所占bit数: 1GB=1024MB=1024 * 1024KB=1024 * 1024 * 1024 B = 1024 * 1024 * 1024 * 8 bit

计算公式:参数量 ✖ 每个参数所占位数 ➗ 1GB所占bit数 =700 0000 0000 * 16 ÷ 1024 ÷ 1024 ÷ 1024 ÷ 8≈ 130.385 GB ≈ 140GB

        训练过程中 梯度存储 的显存与 存储显存 相同占用 140G,优化器例如 AdamW 要为每个参数额外维护一阶动量和二阶动量等额外信息一般占用4倍显存,也就是约 560G, 全量微调总共需要 840G,再考虑激活值存储、显存碎片化以及分布式训练的冗余开销,实际需求往往在 1TB 显存左右。掘金原表格不清晰,我用豆包重新清晰化,如下图:

image

以上计算也可以整理为如下速算公式

image

        如果换成参数更小的Dense模型,一般可以按照近似线性比例来计算显存需求。

        例如一个13B参数的模型,参数是70B模型的1/5左右,整体可能200GB显存以内就能完成全量微调。如果精度降低,比如采用8bit或4bit量化存储,显存占用会近似按照位宽缩减。以70B模型为例,FP16下参数是140GB,如果用8bit存储则需要约70GB,用4bit存储只有约35GB。不过量化模型梯度和优化器通常还是以FP16形式保存,因此总体显存缩减幅度有限。

1.3.1.2、全量微调

        如果采用 Lora微调 方法显存占用会显著降低。因为 LORA 只需要在部分矩阵中引入低秩适配器,训练时只更新新增的适配器参数,原始大模型参数保持冻结。例如对70B模型应用LORA,实际需要更新的参数量可能只有1%~2%, 因此显存需求往往控制在160G左右。

豆包分析掘金大佬的话:

        • LoRA 显存占用低的核心是 冻结原始模型参数,仅训练新增的低秩适配器参数,可训练参数仅占总参数的 1%~5%;
        • LoRA 微调与全量微调的核心差异在于 可训练参数范围、显存 / 算力需求、训练效率和适用场景;
        • 实际应用中,LoRA 是中小规模任务的首选(性价比高),全量微调仅适用于有超大数据集和顶级硬件的场景。
        • 通俗解释,可以把大模型比作一辆出厂的豪车轿车:
          • 全量微调:把轿车的所有零件(发动机、变速箱、底盘等)都拆下来重新打磨、调整,甚至更换。虽然可能让车更适配你的驾驶习惯,但需要超大的维修车间(高显存)、专业的工程师团队(高算力),还可能不小心把核心零件调坏(模型泛化性下降)。
          • LoRA 微调:不拆原车任何零件,只在方向盘、油门旁加装一个“适配手柄”(低秩适配器),只调整这个手柄的参数,让你用原车的核心部件,却能适配你的驾驶习惯。维修车间(显存)变小,工程师(算力)变少,还不会破坏原车的核心性能(模型原始能力)。
        • 理解 LoRA 显存占用低的核心原理:
          • 参数冻结 + 低秩分解:LoRA 会冻结大模型的全部原始参数(比如 70B 模型的 700 亿参数),只在模型的关键矩阵(如注意力层的 W_q/W_v)旁插入一对低秩的小矩阵(可以理解为 “适配器”)。      
          • 仅训练小矩阵:训练过程中,只有这对小矩阵的参数会被更新,原始大模型参数完全不动。比如 70B 模型用 LoRA 时,新增的可训练参数通常只有几百万到几千万,仅占总参数的 1%~2%。
          • 显存占用核心来源:模型训练的显存主要消耗在两部分 —— 模型参数本身、反向传播时的梯度和优化器状态(如 Adam 优化器会为每个参数存储 2 份状态)。LoRA 只需要为这 1%~2% 的新增参数存储梯度和优化器状态,而全量微调需要为 100% 的参数存储,因此显存需求会大幅下降(70B 模型全量微调显存可能需要数百 GB 甚至 TB 级,LoRA 则能控制在 160G 左右)。 
        • 为了让你更清晰对比,我用表格和通俗解释结合的方式说明:
          对比维度LoRA 微调全量微调
          可训练参数 仅新增的低秩适配器参数(总参数的 1%~5%) 模型全部参数(100%)
          显存占用 极低(如 70B 模型≈160G) 极高(70B 模型可能需要 300G + 甚至更多)
          训练速度 快(参数少,计算量小) 慢(参数多,计算量呈指数级增加)
          硬件要求 较低,单卡 / 少量多卡即可(如 8 卡 A100) 极高,需要多卡高端 GPU 集群(如 8 卡 H100)
          模型泛化性 较好,原始模型参数未改动,仅适配下游任务 易过拟合,全量参数更新可能破坏原始能力
          调参难度 低,仅需调整 LoRA 的秩、学习率等少量参数 高,需精细调整全量参数的学习率、批次等
          适用场景 中小数据集、快速适配下游任务(如对话、翻译) 超大数据集、需要深度定制模型(如专属领域模型)

1.3.1.3、MoE模型微调

        MoE(Mixture of Experts)是一种神经网络架构。其核心思想是“分而治之”,将一个大模型拆分为多个功能不同的“专家”子网络(如前馈层)。对于每个输入,一个门控网络会动态选择并激活最相关的少数专家进行计算,再与共享参数的结果整合。这样能在显著增加模型总参数量的同时,保持计算量基本不变,实现了更高效的大模型训练与推理,例如 Qwen3-235B-A22B 模型,激活参数为22B, 共享参数约为7.8B。

豆包分析掘金大佬的话:

        • MoE 的核心优势是 参数规模与计算量解耦,通过动态激活少数专家,实现“大参数模型、小计算量训练”,显存占用不随总参数量线性上升;
        • MoE 是 模型架构设计,全量微调是模型训练方法,两者的核心差异在于参数组织形式、训练时的激活范围、显存与算力需求;
        • MoE 适合大规模通用模型的高效训练,追求“大而不贵”;全量微调适合小模型的深度定制,依赖充足数据和高端硬件。
        • 通俗举例理解两者差异,可以把模型训练比作一家公司处理客户需求:
          • MoE 架构训练:公司有 100 个专业能力不同的“专家员工”(专家子网络),还有 1 个“调度主管”(门控网络)。客户来咨询时,主管只挑选最擅长该领域的 1~2 个专家接待,其他 98 个专家正常待命。公司总人数(总参数量)很多,但每次只需要支付 1~2 个专家的人力成本(计算量 / 显存),既能处理复杂需求,又能控制成本。
          • 全量微调(传统单体模型):公司只有 1 个全能型的“超级员工”(单体模型),客户的所有需求都由他一个人处理。要提升服务能力,只能把这个员工的能力不断强化(增大模型参数量),但员工能力越强,消耗的人力成本(显存 / 算力)就越高,甚至会因为能力太杂而出现 “顾此失彼” 的情况(过拟合)。
        • 理解 MoE 显存与计算效率高的核心原理:
          • 分块专家 + 动态激活:模型由多个独立的 “专家” 子网络(如 FFN 层)和 1 个门控网络构成。门控网络会根据输入内容,只选择少数相关的专家参与计算(通常是 1~2 个,而非全部),未被选中的专家网络完全不激活。
          • 参数总量大,但激活参数少:MoE 模型的总参数量可以做得很大(比如 Qwen3-235B-A22B 总参数量 235B),但实际参与单次计算的激活参数只有一小部分(22B),再加上共享参数(7.8B),整体计算量可控。
          • 显存占用的核心逻辑:显存消耗和激活参数 + 梯度 + 优化器状态强相关。MoE 训练时,只有被激活的专家参数会产生梯度和优化器状态,未激活专家的参数仅需存储、无需计算梯度,因此显存占用不会随总参数量的增加而线性上升。
        • 为了让你更清晰对比,我用表格和通俗解释结合的方式说明(这里需要明确:MoE 是模型架构,全量微调是模型训练方法,两者的对比主要围绕“基于 MoE 架构的模型训练” 和“基于传统单体模型的全量微调”展开)  
对比维度MoE 架构训练全量微调(传统单体模型)
模型结构 由多个独立专家子网络 + 门控网络构成,含共享参数 单一、整体化的网络结构,无专家划分
可训练参数 总参数量大,但仅激活的专家参数 + 门控参数 + 共享参数参与训练 模型的 100% 参数全部参与训练和更新
显存占用 较低,仅与激活参数规模相关,与总参数量弱相关 极高,与模型总参数量强相关,参数量越大显存需求越高
计算量 基本稳定,单次计算仅激活少数专家,计算量不随总参数量线性增长 与总参数量正相关,参数量翻倍则计算量近似翻倍
硬件要求 相对较低,支持 “大参数、小激活” 的轻量化训练 极高,大模型全量微调需高端多卡 GPU 集群
模型能力 易扩展,增加专家数量即可提升模型容量,不易过拟合 容量提升依赖增大单体模型尺寸,易因参数过多过拟合
适用场景 大规模通用模型训练、多任务场景,追求 “大参数低成本” 小模型深度定制、下游任务数据充足的场景

二、分布式部署核心选择:Ollama vs vLLM 深度对比

        针对70B级非量化大模型的分布式部署,Ollama与vLLM是当前最主流的两种工具,但二者的定位、性能、适用场景差异显著。以下从部署复杂度、性能表现、适用场景等核心维度进行全面对比,为选型提供依据。

2.1、从核心定位与目标用户对比

        Ollama 的核心定位是“轻量化、易上手的大模型部署工具”,主打极简部署体验,目标用户以个人开发者、中小企业测试环境为主,无需专业的工程团队即可完成部署。而 vLLM 的定位是“企业级高性能推理引擎”,专注于高并发、低延迟的生产环境部署,目标用户是具备一定技术基础的企业级研发团队,适用于对推理性能有严苛要求的AIOPS场景。

2.2、从部署复杂度与效率对比

    • Ollama “一键部署”为核心优势,部署流程极简,全程仅需 3 步:通过命令行一键安装Ollama工具、拉取对应模型(如 ollama pull deepseek-r1:70b)、启动服务(支持Docker容器化部署,自带Web界面),整个过程5分钟内即可完成,且支持Windows/macOS/Linux跨平台,无需手动配置CUDA、分布式通信等复杂环境。
    • vLLM 的部署复杂度显著高于Ollama,需要开发者具备扎实的工程基础:需手动安装适配的CUDA版本、PyTorch环境,分布式部署时还需配置Kubernetes集群、设置张量并行参数(如--tensor-parallel-size 2指定2卡并行)、优化显存分配(如设置swap空间)等。整个部署流程至少需要1-2天,且对环境依赖的兼容性要求极高,容易出现版本冲突问题。

2.3、从性能表现(并发与延迟的关键差异)对比

性能是二者最核心的差距,尤其在70B级非量化模型的分布式推理场景中,差异更为明显,具体数据参考实测结果:

      • 单次响应延迟Ollama部署70B模型的单次响应延迟约5-10秒,而vLLM仅需1-3秒,延迟降低3-5倍。这是因为vLLM采用了PagedAttention核心技术,将KV Cache分块存储,大幅提升了显存利用率和推理速度。
      • 并发吞吐量Ollama的并发处理能力较弱,仅能支撑10请求/秒左右的并发量;而vLLM通过连续批处理技术(动态合并请求),并发吞吐量可达100+请求/秒,是Ollama的10倍以上,能轻松支撑日均1亿次请求的企业级场景。
      • 显存利用率在70B非量化模型分布式部署(2张A100)场景中,Ollama的显存利用率约为70%,存在较多冗余;vLLM支持动态显存分配,可通过--gpu-memory-utilization 0.9将显存利用率提升至90%,更高效地利用硬件资源。

2.4、从分布式部署能力与扩展方面对比

      • Ollama 分布式部署 能力较弱,仅支持基础的多卡并行,且缺乏负载均衡、故障自动恢复等企业级特性,当其中一张显卡故障时,整个服务会中断,可用性较差,不适合生产环境的大规模分布式部署。
      • vLLM 分布式部署设计优秀,专为分布式部署设计,支持张量并行、流水线并行等多种分布式策略,可灵活扩展至8卡、16卡甚至更多显卡的集群;内置Prometheus监控指标,能实时监控各卡的显存占用、算力利用率、请求响应情况;具备故障自动恢复能力,单卡故障时可自动将任务迁移至其他显卡,保障服务稳定性。此外,vLLM还支持动态扩缩容,可根据业务流量自动调整算力资源,降低运维成本。

2.5、适用场景

结合以上对比,可明确二者的选型逻辑:

    • 选择Ollama:个人开发者进行70B模型的本地测试、中小企业小流量场景的临时部署、对推理性能要求不高且缺乏专业工程团队的场景。
    • 选择vLLM:企业级AIOPS生产环境、高并发推理场景(如智能运维告警分析、大规模日志检索)、对响应延迟有严苛要求(如延迟<500ms)的业务、需要大规模分布式扩展的部署需求。

2.6、非量化DeepSeek分布式部署的核心建议

      • 资源规划:部署70B级非量化DeepSeek模型,需至少2张80GB显存显卡(如A100/H100),优先选择支持张量并行的推理引擎,提升显存利用率;
      • 工具选型:生产环境优先采用vLLM,保障高并发、低延迟的推理性能;测试环境可使用Ollama快速验证模型效果;
      • 算力储备:关注H200显卡的国内交付进展,对于大规模部署需求,可提前规划H200集群采购,缓解高端算力紧张问题;
      • 工程优化:分布式部署时,合理配置张量并行参数、显存利用率阈值,通过监控工具实时跟踪资源状态,避免显存碎片化和故障中断。

后续有时间再补充非量化DeepSeek分布式部署的详细步骤与实操教程,涵盖环境准备、模型拉取、分布式参数配置、服务启动与监控等全流程,助力 SRE 快速落地部署...