大模型本地部署
本文最后更新于28 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

一、GPU 驱动与 CUDA 安装

1. GPU 驱动核心认知

  • 本质:操作系统与 GPU 硬件之间的 “翻译官”,负责让系统识别、调用并控制显卡
  • 核心功能:识别硬件信息(温度 / 显存 / 功耗)、管理显存分配回收、控制运行状态(风扇 / 时钟 / ECC/MIG/ 多卡通信)
  • 无驱动后果:nvidia-smi 不可用、CUDA 失效、PyTorch 检测不到 GPU、仅基础显示无加速,显卡性能完全无法发挥

2. 驱动安装方式对比

安装方式是否联网包含内容版本管理适用场景
APT 在线安装是仅驱动及系统依赖仓库统一管理,易升级 / 回滚有外网的生产 / 开发环境、批量自动化部署
run 离线安装否驱动 + CUDA Toolkit + 运行库 + 示例手动管理,需重新下载安装包无外网、临时环境、快速安装指定版本

国内生产环境补充方案

  • 自建内网 APT 仓库:下载一次内网复用,安全可控、可审计,适合大规模集群统一部署
  • 海外专线安装:无需自建仓库,实时获取最新版,适合小规模、有更新需求的环境

3. APT 在线安装步骤(Ubuntu)

  1. 硬件检查:lspci | grep -i tesla 确认物理显卡存在
  2. 查看支持驱动:ubuntu-drivers devices
  3. 安装驱动:添加 NVIDIA 官方源 → apt install -y nvidia-driver-535
  4. 重启生效:reboot
  5. 安装验证:nvidia-smi

4. SXM 机型

SXM 多卡 NVSwitch 架构服务器,安装驱动后必须安装对应版本的 Fabric Manager:

  • 作用:初始化和管理 NVSwitch/NVLink Fabric
  • 要求:版本必须与驱动版本严格匹配

5. CUDA Toolkit

  • 定义:NVIDIA 官方 GPU 开发环境,核心包含 NVCC 编译器、CUDA 运行时库、cuDNN 深度学习库、调试分析工具
  • 用途:并行计算、深度学习训练推理、图形渲染、视频图像处理
  • 安装步骤:
    1. 下载对应版本 .run 安装包
    2. chmod +x cuda_xxx.run 添加执行权限
    3. 运行安装,取消 Driver 勾选(驱动已单独安装),仅安装 CUDA Toolkit
    4. 配置环境变量(~/.bashrc 中添加 PATH 和 LD_LIBRARY_PATH)
    5. 验证:source ~/.bashrc 后执行 nvcc --version

驱动与 CUDA 版本对应

  • 驱动 535 → CUDA 12.2;驱动 570 → CUDA 12.8;驱动 580 → CUDA 13.0
  • 兼容原则:向下兼容,最终以 NVIDIA 官方兼容性文档为准

二、GPU 监控与管理命令

1. nvidia-smi(⭐)

基础命令

  • 查看所有 GPU 状态:nvidia-smi
  • 查看指定 GPU:nvidia-smi -i 0
  • 核心关注 4 项指标:温度、功耗、GPU 利用率、显存占用与进程

实时监控

  • 每秒自动刷新:nvidia-smi -l 1
  • 高亮变化值刷新:watch -n 2 -d nvidia-smi

高级管理命令汇总

功能命令
查看 GPU 上运行的进程nvidia-smi pmon
重置指定 GPU(解决卡死)nvidia-smi -i 0 -r
查看 GPU 拓扑矩阵nvidia-smi topo -m
查看 NVLink 链路状态nvidia-smi nvlink -s
查看功耗详细信息nvidia-smi -q -d POWER
设置 GPU 0 功耗上限为 200Wnvidia-smi -i 0 -pl 200
查看 ECC 报错统计nvidia-smi -q -d ECC
查看系统层面硬件报错`dmesg -Tgrep -iE “NVRMXidECC”`

GPU 掉卡排查思路

  1. 先执行 lspci | grep -i nvidia 与 nvidia-smi 交叉判断
    • lspci 可见、nvidia-smi 不可见:优先怀疑驱动、GPU 初始化、XID、Fabric Manager 等软件 / 固件问题
    • lspci 也不可见:偏向 PCIe 链路、GPU 模组、SXM 基板、供电等硬件问题
  2. 结合交叉测试(换槽、换卡)判断故障是否转移

2. nvitop(交互式监控)

  • 特点:信息更丰富、彩色界面直观、支持交互式操作、带历史趋势曲线
  • 安装:pip3 install nvitop
  • 启动:nvitop
  • 常用快捷键:q 退出、h 帮助、p 按进程排序、m 按显存排序、u 按利用率排序、k 杀死进程

3. gpustat(轻量监控)

  • 特点:纯 Python 实现、轻量简洁、支持 JSON 输出、易集成
  • 安装:pip3 install gpustat
  • 常用命令:
    • gpustat:快速查看状态
    • gpustat --watch:实时监控
    • gpustat --json:JSON 格式输出,便于程序集成

三、大模型基础概念与分类

1. 大模型分类

按模态划分

  • 文本大模型:处理文本输入输出,擅长问答、写作、翻译;代表:Llama 3.1、Qwen3
  • 多模态大模型:同时理解文本、图片,部分支持音频视频;代表:GPT-4o、Qwen3.5-Omni
  • 推理大模型:强调多步思考与复杂推理,擅长数学、代码、分析;代表:DeepSeek-R1
  • 生成式媒体模型:专门生成图片 / 视频 / 音频;代表:Sora、Kling、Midjourney

按能力与用途划分

  • 基座模型(Base):大规模预训练,学习通用语言规律,是所有能力的基础
  • 指令 / 对话模型:在基座上做人类偏好对齐,更懂指令、擅长对话
  • 推理模型:强化思考能力,复杂问题拆解能力强
  • 代码 / Agent 模型:支持代码生成、工具调用、任务执行

按生态与商业模式划分

  • 闭源商用:API 调用,产品成熟生态完善;代表:GPT、Claude、Gemini
  • 开源开放:权重公开,可本地部署、微调、二次开发;代表:Llama、Qwen、DeepSeek
  • 垂直行业模型:在通用模型基础上,面向医疗 / 金融 / 工业等场景做专业增强

2. 核心术语(必记)

术语含义
Token大模型处理文本的最小单位;中文 100 字≈120-180 Token
上下文长度模型一次最多能记住的 Token 数,如 8K、32K、128K
训练让模型通过海量数据学习知识与规律的过程
推理使用训练好的模型回答问题、生成内容的过程
微调(Fine-tuning)在已有模型上用少量数据继续训练,适配特定领域 / 任务
TFLOPSGPU 算力单位,每秒万亿次浮点运算
7B/70B模型参数量级;1B = 10 亿参数,参数量越大能力越强、显存要求越高

3. 常见模型文件格式

格式特点典型场景
.safetensors安全(无可执行代码)、加载速度快,当前主流服务端训练与推理
.pt/.pth/.bin传统 PyTorch 格式,存在安全漏洞、加载慢旧版模型、训练流程
.gguf单文件集成(权重 + 分词器 + 配置)、极致量化,硬件要求低本地部署、端侧、Ollama
.onnx跨平台、脱离 Python 环境端侧部署、异构硬件加速

4. 本地部署的核心价值

  1. 数据安全合规:数据流转完全在企业内网,满足金融、医疗、政务等强监管要求
  2. 定制化与控制权:支持深度微调、RAG 知识库搭建,模型版本完全可控
  3. 长期成本优势:前期一次性硬件投入,高频使用场景下 1-2 年回本,边际成本趋近于零
  4. 低延迟与离线可用:内网传输延迟极低,支持断网、保密、野外等离线环境

四、大模型推理框架

1. 传统部署(Transformers+PyTorch)的局限性

  1. 无动态批处理:串行或静态 Batch,长请求阻塞短请求,算力浪费严重、延迟高
  2. KV Cache 管理粗糙:为每个请求盲目预留最大显存,碎片化严重,显存利用率极低
  3. 缺乏生产级优化:流式输出、多卡并行、请求调度、超时重试都需自行开发,维护成本高

2. 推理框架四大核心优化

  1. 连续批处理(Continuous Batching) 请求生成完成立即返回,空出的位置动态插入新请求,无需等待整批完成,吞吐量提升数倍。
  2. PagedAttention(分页 KV 缓存) 借鉴操作系统虚拟内存思想,将显存切分为 “页”,按需动态分配、用完即回收,消除约 96% 显存浪费,大幅提升并发数。
  3. 模型量化 将 FP16 精度压缩为 INT4/INT8,显存需求降低数倍,整数运算速度更快,在可接受精度损失下大幅降低硬件门槛。
  4. 工程化接口 开箱提供 OpenAI 兼容 API、自动多卡并行、流式输出、请求队列调度,无需重复造轮子。

3. 主流推理框架

Llama.cpp

  • 定位:轻量级 C/C++ 推理引擎
  • 特点:无外部依赖、支持 CPU/GPU 全平台、多种量化精度
  • 适用:资源受限环境、端侧设备、底层定制开发

Ollama !!!

  • 定位:零门槛本地推理平台,底层基于 llama.cpp
  • 架构:经典 Client-Server 架构,服务端 = HTTP 接口层 + llama.cpp 推理引擎
  • 特点:一键部署、自动 GPU 加速、模型生态丰富、支持命令行与 API 双模式
  • 适用:个人本地使用、轻量私有化部署、快速验证场景

五、Ollama 本地部署实战

1. 安装方式

  • 在线一键安装:curl -fsSL https://ollama.com/install.sh | sh
  • 离线安装步骤:
    1. 安装解压依赖:apt install -y zstd
    2. 解压安装包:tar --use-compress-program=unzstd -xvf ollama-linux-amd64.tar.zst -C /root/ollama
    3. 配置软链接:ln -sf /root/ollama/bin/ollama /usr/local/bin/ollama
    4. 编写 systemd 服务,设置开机自启,监听 0.0.0.0:11434
    5. 启动服务并验证:ollama -v

2. 常用命令汇总

命令功能
ollama list列出本地所有模型
ollama pull 模型名从远程仓库拉取 / 增量更新模型
ollama run 模型名运行模型并进入终端对话
ollama ps查看当前正在运行的模型
ollama stop 模型名停止运行中的模型,释放显存
ollama rm 模型名删除本地模型文件
ollama cp 原名称 新名称复制模型(用于自定义修改)

3. API 调用(默认端口:11434)

非流式调用(一次性返回结果)

curl http://localhost:11434/api/generate -d '{
  "model": "qwen3.5:4b",
  "prompt": "从运维角度介绍Docker的作用",
  "stream": false
}'

流式调用(逐字返回)

curl http://localhost:11434/api/generate -d '{
  "model": "qwen:7b",
  "prompt": "为什么草是绿的?"
}'
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇