大模型本地部署的三大核心:平台、代码仓库与权重文件

📅 2026/6/22 17:37:17
大模型本地部署的三大核心:平台、代码仓库与权重文件
1. 这不是“下载一个模型就能跑”的事先搞懂你本地部署的到底是什么很多人点开 GitHub 或 Gitee 页面看到一个 star 数过万的仓库点下“Download ZIP”解压后发现里面一堆.bin、.safetensors、.gguf文件再配上几行pip install transformers和一段from transformers import AutoModelForCausalLM的代码就以为自己“部署成功了”。结果一运行——报错OSError: Cant load tokenizer或者勉强加载出来输入一句话等了三分钟显存爆了进程被系统 kill。这时候才开始翻 issue、搜报错、加群问“为什么我的 3090 跑不动 Qwen2-7B”“权重文件和代码不匹配怎么办”“这个 model.safetensors 是不是缺了 config.json”这背后根本问题不是硬件不够也不是你不会写 Python而是对“开源大模型”这个概念本身存在严重工程认知断层。它从来不是一个单一文件而是一套分层耦合、职责明确、版本强约束的工程制品集合。你本地部署的不是“一个模型”而是三个相互咬合的齿轮模型平台Platform、代码仓库Code Repository和权重文件Weights。少一个转不起来配错一个直接卡死。举个生活化类比你想在家组装一台能打《赛博朋克2077》的电脑。你不能只买一块 RTX 4090 显卡就开机——你还得配兼容的主板、足够功率的电源、匹配的 CPU 散热器、支持 PCIe 5.0 的 M.2 固态硬盘最后还得装对版本的 NVIDIA 驱动和 Windows 系统。模型部署同理权重文件是那块“显卡”它决定了算力上限和能力边界代码仓库是“主板CPU内存”它定义了如何加载、如何推理、如何调度显存模型平台比如 Ollama、vLLM、Transformers Accelerate则是“操作系统驱动”它负责把底层硬件资源翻译成模型能听懂的语言并处理并发、量化、流式输出这些关键服务。所以标题里强调“工程化理解”就是要把这三者从“模糊的整体印象”拆解成可触摸、可验证、可替换的独立模块。你得清楚知道当你在 Gitee 上看到一个叫Qwen2-Chinese-Local的仓库它大概率只提供推理脚本和配置模板不包含权重当你在 Hugging Face Hub 下载Qwen2-7B-Instruct的model.safetensors它只是“模型大脑”没有“神经系统”tokenizer和“行为手册”config.json当你用ollama run qwen2:7bOllama 已经在后台自动完成了权重拉取、格式转换、服务封装——它把三个齿轮焊死在一个壳子里省事但黑盒而你自己手动部署就得亲手拧紧每一颗螺丝。这也是为什么“本地部署”这个词在热搜里反复出现却始终伴随大量失败案例大家盯着“部署”这个动作却忽略了部署对象本身的复杂结构。本文不教你怎么一键跑通某个模型而是带你回到源头看清每一个零件长什么样、怎么生产、怎么组装、哪里容易松动。只有这样你才能在面对dify本地部署教程、deepseek本地部署、comfyui qwen3 vl本地部署这些具体场景时不再靠复制粘贴碰运气而是能自主诊断、精准替换、可靠复现。2. 模型平台不是工具是模型运行的“操作系统内核”2.1 平台的本质抽象硬件差异统一模型接口所谓“模型平台”不是指某个具体的 GUI 软件比如 Dify 的 Web 界面而是指一套运行时环境与服务框架它的核心使命是让同一个模型权重在不同硬件NVIDIA GPU / AMD GPU / Apple Silicon / 甚至纯 CPU、不同操作系统Linux / Windows / macOS、不同使用方式命令行调用 / API 接口 / 嵌入到应用中下都能以一致、稳定、高效的方式执行推理任务。你可以把它理解为模型世界的“操作系统内核”——它屏蔽了底层硬件的千差万别向上提供标准化的“模型调用指令集”。目前主流的模型平台有三类它们定位清晰、不可互相替代轻量级终端运行时Terminal Runtime代表是Ollama和LM Studio。它们的目标用户是个人开发者、研究者、AI 爱好者追求“开箱即用”。Ollama 的ollama run qwen2:7b命令背后其实完成了一整套自动化流程从远程仓库拉取适配 Ollama 格式的 GGUF 权重、自动选择最优量化级别Q4_K_M、启动内置的 llama.cpp 推理引擎、暴露/api/chatRESTful 接口。整个过程对用户完全透明你不需要知道 GGUF 是什么也不需要手动编译 llama.cpp。优势极简适合快速验证、本地测试、桌面端交互。局限高度定制化难无法深度控制推理参数如 logit_bias、repetition_penalty 的细粒度调整不支持多模型并行服务扩展性弱。高性能服务框架High-Performance Serving Framework代表是vLLM、TGIText Generation Inference和SGLang。它们面向的是生产环境目标是榨干 GPU 显存和计算单元的每一分性能。vLLM 的 PagedAttention 技术把传统 Transformer 的 KV Cache 拆分成离散的“内存页”像操作系统管理物理内存一样动态分配使得单卡 24G 显存能同时服务 10 个 Qwen2-7B 实例吞吐量提升 3~5 倍。TGI 则深度集成 Hugging Face 生态原生支持 FlashAttention、AWQ 量化、连续批处理Continuous Batching并提供企业级的健康检查、指标监控Prometheus、请求队列管理。优势极致性能、高并发、生产就绪、可观测性强。局限部署复杂依赖 Docker、Kubernetes 等运维知识对硬件要求高通常需 A10/A100 级别 GPU学习曲线陡峭。通用模型库General-Purpose Model Library代表是Hugging Face Transformers Accelerate组合。这是最“原始”也最灵活的平台。Transformers 提供了统一的AutoModelForCausalLM加载接口能自动识别config.json中的模型架构匹配对应的modeling_*.py实现Accelerate 则负责跨设备CPU/GPU/TPU、跨精度FP16/BF16/INT4的自动调度与内存优化。你写一行model AutoModelForCausalLM.from_pretrained(Qwen/Qwen2-7B-Instruct)它就在后台完成了下载config.json→ 解析架构 → 实例化 Qwen2Model 类 → 下载pytorch_model.bin→ 根据device_mapauto自动将不同层分配到 CPU/GPU → 启用torch.compile加速前向传播。优势灵活性无与伦比可深度定制推理逻辑如自定义 stopping criteria、logits processor、无缝接入训练流程、社区生态最庞大。局限性能不如 vLLM/TGI显存占用更高需要用户自己编写服务包装Flask/FastAPI对 Python 工程能力要求高。提示很多新手混淆“平台”和“应用”。Dify、ComfyUI、Ollama Desktop 都是基于上述平台构建的应用层。Dify 的后端默认用 vLLM 或 Transformers前端是 ReactComfyUI 的节点底层调用的是transformers或diffusers库。你部署 Dify本质是部署一个依赖 vLLM 的 Web 服务你部署 ComfyUI本质是部署一个依赖transformers的图形化工作流引擎。平台是地基应用是房子。2.2 为什么平台选择决定成败一个真实踩坑案例去年帮一位做教育 SaaS 的朋友部署DeepSeek-R1-7B需求是在 2 台 309024G服务器上支撑 50 教师实时调用“作文批改”功能平均响应时间 3 秒。我们最初选了最熟悉的方案transformers accelerate代码简洁调试方便。但上线压测后发现单次推理耗时 8~12 秒QPS每秒请求数不到 3远低于预期。排查过程很典型先看显存nvidia-smi显示显存占用 95%但 GPU 利用率GPU-Util只有 30%——说明不是算力瓶颈是显存带宽或调度问题再看日志发现每次请求都触发了完整的model.forward()没有利用 KV Cache 复用最后查文档transformers默认的generate()方法对每个新 token 都重新计算所有历史 KV而vLLM的 PagedAttention 会缓存并复用这是数量级的差异。于是我们切换到 vLLM# 启动 vLLM 服务启用 PagedAttention 和 FlashAttention python -m vllm.entrypoints.api_server \ --model Qwen/Qwen2-7B-Instruct \ --tensor-parallel-size 1 \ --dtype bfloat16 \ --enable-prefix-caching \ --max-num-seqs 256 \ --max-model-len 4096同样硬件QPS 直接跃升至 22P95 延迟稳定在 2.1 秒。这个案例说明平台不是“能跑就行”而是直接决定你的服务能否落地。选错平台等于给法拉利装拖拉机变速箱——发动机再强也跑不快。2.3 平台与硬件的硬性匹配关系别再盲目“抄配置”平台对硬件有明确的“硬性门槛”这不是建议而是数学约束。以下是你必须刻在脑子里的几条铁律Ollama / LM Studio 对 Windows 支持有限Ollama 官方仅提供 macOS 和 Linux 的原生二进制包。Windows 用户必须通过 WSL2Windows Subsystem for Linux运行且 WSL2 的 GPU 直通需额外配置 CUDA Toolkit 和 NVIDIA Container Toolkit。很多教程说“Windows 一键安装 Ollama”实际是让你在 WSL2 里装而非原生 Windows。LM Studio 虽有 Windows 版但其底层 llama.cpp 对 AMD GPU如 RX 7900 XTX支持极差几乎只能用 NVIDIA 卡。vLLM / TGI 强依赖 CUDA 和 cuDNN 版本vLLM 2.4.0 要求 CUDA 12.1cuDNN 8.9。如果你的系统预装了 CUDA 11.8常见于老版 Ubuntu直接pip install vllm会编译失败报错nvcc: fatal: Unsupported gpu architecture compute_86。解决方案不是降级 vLLM而是升级 CUDA——但这又可能破坏你已有的 PyTorch 环境。因此生产环境强烈推荐用 Dockerdocker run --gpus all -p 8000:8000 ghcr.io/vllm-project/vllm:v0.4.3镜像里已预装好匹配的 CUDA/cuDNN。Apple SiliconM1/M2/M3的特殊路径Mac 用户想跑大模型基本只有两条路一是用transformersacceleratempsMetal Performance Shaders后端但 MPS 对 Qwen2、DeepSeek 等新架构支持不稳定常报RuntimeError: The size of tensor a (32768) must match the size of tensor b (2048)二是用 Ollama它对 Apple Silicon 有专门优化ollama run qwen2:7b会自动选用llama.cpp的 Metal 后端实测 M2 Ultra 64G 内存可流畅运行 Qwen2-14B。注意网上流传的“4G 显存本地 Windows11 部署 nemo guardrails”方案本质上是用llama.cpp的 GGUF 格式 q4_0量化在 CPU 上跑。它根本没用到 GPU所谓的“4G 显存”是误导——那是系统内存RAM需求。真正的 GPU 推理7B 模型最低需 8G 显存FP16量化后也要 4~5G。务必分清“显存VRAM”和“内存RAM”。3. 代码仓库不是源码是模型的“使用说明书”与“适配器”3.1 仓库的三种角色官方源码、推理模板、社区魔改当你在 Gitee、GitHub、GitLab 上搜索“Qwen2 本地部署”点开的仓库90% 都不是“模型源码”而是针对特定平台的推理适配代码。必须分清这三类仓库的本质官方模型源码仓库Source Code Repo如QwenLM/Qwen2GitHub、deepseek-ai/deepseek-r1GitHub。这类仓库包含模型架构定义modeling_qwen2.py、训练脚本train.py、评估脚本eval.py、以及最重要的——config.json和tokenizer_config.json。它们不包含权重文件权重单独托管在 Hugging Face Hub 或魔搭ModelScope。仓库的README.md会明确写出权重下载地址例如Qwen/Qwen2-7B-Instruct。价值如果你想修改模型结构如加 LoRA 适配层、复现训练过程、或深入理解 attention 实现必须看这里。平台专用推理模板Inference Template Repo如huggingface/transformers的 examples、vllm-project/vllm的 examples、ollama/ollama的 library。这类仓库提供的是“标准用法”。比如transformers仓库里的examples/pytorch/text-generation/run_generation.py它演示了如何用AutoTokenizerAutoModelForCausalLM加载任意 HF 模型vLLM仓库里的examples/api_client.py则展示了如何用curl调用其 API。它们是“通用说明书”不绑定具体模型但告诉你“所有模型都该这么用”。社区魔改适配仓库Community Adaptation Repo如Gitee 上的 ‘Qwen2-Chinese-Local’、GitHub 上的 ‘DeepSeek-R1-Windows-Batch’。这才是你热搜里看到的“本地部署教程”源头。它们通常由个人开发者维护目标是解决一个具体痛点让 Qwen2 在 Windows 下用transformers正常加载修复tokenizer路径 bug为 DeepSeek-R1 编写vLLM的modeling_deepseek.py适配器因为 vLLM 官方尚未支持 R1 架构将comfyui的qwen3-vl节点打包成一键安装的.custom_nodes。价值极大降低入门门槛但风险在于作者可能弃坑、代码未充分测试、与最新平台版本不兼容。提示Gitee 上传代码到仓库、GitLab 上传代码、Git 小乌龟推送到分支这些操作针对的都是你自己的项目代码不是模型权重。模型权重文件体积巨大7B 模型约 14GBGit 无法有效管理必须用git-lfsGit Large File Storage或直接上传到 Hugging Face Hub/魔搭。你在 Gitee 仓库里看到的model.safetensors大概率是作者用git-lfstrack 的或者只是放了个下载链接。3.2 读懂 README一份合格的部署仓库该写什么一个真正专业的“本地部署”仓库其README.md必须包含以下五个不可省略的部分缺一不可。我拿QwenLM/Qwen2官方仓库的README.md和一个高星社区仓Qwen2-Local-Win对比你就知道差距在哪项目官方仓库QwenLM/Qwen2社区仓Qwen2-Local-Win1. 环境依赖明确列出torch2.0.0,transformers4.37.0,cuda12.1并注明macOS 不支持 flash-attn只写Python 3.10,pip install -r requirements.txtrequirements.txt 里混着torch2.1.0cu118和torch2.3.0cu121导致 Windows 用户必踩坑2. 权重获取清晰给出 HF Hub 地址Qwen/Qwen2-7B-Instruct并说明model.safetensors是主权重config.json和tokenizer.model是必需配套文件写“权重已打包在weights/目录”但weights/是空的实际要用户自己去百度网盘下载链接已失效3. 快速启动提供python cli_demo.py --model_name_or_path Qwen/Qwen2-7B-Instruct并说明该脚本会自动下载 tokenizer提供run.bat但 bat 文件里硬编码了C:\Users\Admin\Qwen2路径普通用户双击就报错4. 配置说明详细解释--max_length,--temperature,--top_p参数含义并给出推荐值如--temperature 0.7只有一行修改 config.pyconfig.py 里全是# TODO: add comment5. 常见问题列出CUDA out of memory的 3 种解决方案量化、减小max_length、升级显卡完全没有 FAQissue 区全是 “怎么运行”、“报错了”这就是专业和业余的分水岭。你部署一个模型第一步不是 clone 仓库而是逐字精读它的 README。如果 README 连环境依赖都没写清楚那这个仓库大概率是个半成品不值得花时间折腾。3.3 代码仓库的“隐形契约”版本号就是生命线所有靠谱的模型仓库都会在README或requirements.txt里锁定关键依赖的版本。这不是保守而是工程必需。因为模型行为对库版本极其敏感transformers4.41.0和transformers4.42.0之间可能修改了Qwen2ForCausalLM的forward方法签名导致你旧的推理脚本model.generate(...)报TypeError: generate() got an unexpected keyword argument pad_token_idtorch2.3.0的torch.compile对Qwen2的支持比torch2.2.0好 40%但torch2.4.0又引入了新的SDPA后端 bug会让attention_mask处理出错sentencepiece0.1.99和sentencepiece0.2.0生成的 tokenizer 二进制文件不兼容用新版 tokenizer 加载旧版tokenizer.model会报ValueError: Invalid sentence piece id。所以当你看到一个仓库的requirements.txt里写着transformers4.37.0 torch2.0.0这等于没写。真正可靠的写法是transformers4.41.2 torch2.3.0cu121 sentencepiece0.1.99并且仓库的 CI/CD 流水线如.github/workflows/test.yml必须包含pip install -r requirements.txt后的完整测试。没有版本锁死的仓库就像没有刹车的汽车——跑得越快翻车越惨。4. 权重文件不是数据是模型的“DNA 序列”与“出厂校准参数”4.1 权重文件的四种格式GGUF、safetensors、bin、pt选哪个权重文件是模型的“实体”它存储了训练完成后所有神经元连接的强度即权重矩阵。但同一组权重可以打包成不同格式每种格式服务于不同平台和场景。选错格式等于拿错钥匙开锁。格式全称主要平台优点缺点典型文件名GGUF—llama.cpp,Ollama,LM Studio体积最小Qwen2-7B 量化后仅 3.8GBCPU/GPU 通用支持多种量化Q2_K, Q4_K_M, Q5_K_M加载极快不支持微调无法用transformers直接加载生态封闭qwen2-7b-instruct.Q4_K_M.ggufsafetensorsSafe TensorsHugging Face Transformers,vLLM,TGI安全无 pickle 反序列化风险加载速度比.bin快 2x支持分片sharding社区标准文件体积比 GGUF 大Qwen2-7B FP16 约 14GB量化需额外工具如autoawqmodel-00001-of-00002.safetensorsbinPyTorch BinaryHugging Face Transformers旧版兼容性最好几乎所有老教程都用它不安全含 pickle加载慢无法分片已被safetensors逐步取代pytorch_model.binptPyTorch CheckpointPyTorch原生训练保存完整训练状态optimizer, scheduler用于断点续训体积最大含 optimizer state推理时需额外load_state_dict不推荐用于部署pytorch_model.pt决策树如果你用Ollama / LM Studio / CPU 推理→ 无脑选GGUF去 TheBloke 找量化好的版本如果你用vLLM / TGI / Dify / ComfyUI→ 必须用safetensors去 Hugging Face Hub 下载官方或社区上传的版本如果你用transformers accelerate且想微调 → 用safetensors如果只想推理且显存紧张 → 用autoawq工具将 safetensors 转成 AWQ 量化格式.awq再加载。注意comfyui qwen3 vl本地部署中的qwen3-vl是 Qwen3 的多模态版本其权重包含vision_tower视觉编码器和language_model语言模型两部分。它必须用safetensors格式且vision_tower的权重通常单独存为vision_tower/pytorch_model.bin不能和语言模型混在一起。很多失败案例就是因为只下载了language_model的权重漏了vision_tower。4.2 权重文件的“配套三件套”config.json、tokenizer.model、special_tokens_map.json权重文件绝不是孤零零一个.safetensors就能工作的。它必须和三个“配套文件”组成最小可运行单元缺一不可。这三者共同构成了模型的“身份认证系统”。config.json模型的“基因图谱”。它定义了模型的骨架有多少层num_hidden_layers、隐藏层维度hidden_size、注意力头数num_attention_heads、词汇表大小vocab_size、是否使用 RMSNormrms_norm_eps等。transformers库正是靠读取config.json才知道该实例化Qwen2Model还是LlamaModel该用Qwen2RotaryEmbedding还是LlamaRotaryEmbedding。如果你只下载了model.safetensors没下载config.jsonAutoModel.from_pretrained()会直接报错OSError: Cant find config.json。tokenizer.model或tokenizer.json模型的“字典”。它定义了如何把人类语言字符串切分成模型能理解的数字 IDtoken IDs。Qwen2 用的是sentencepiece其tokenizer.model是一个二进制文件而 Llama 系列用的是tiktoken其tokenizer.json是 JSON 文本。没有它模型连“你好”两个字都分不了词更别说推理。AutoTokenizer.from_pretrained()第一步就是加载这个文件。special_tokens_map.json模型的“标点符号手册”。它定义了|endoftext|、|im_start|、|im_end|这些特殊 token 的 ID。Qwen2 的对话模板强制要求在用户输入前加|im_start|user\n在助手回复后加|im_end|。如果special_tokens_map.json里没定义|im_start|或者 ID 错了模型就会把提示词当成普通文本输出乱码。很多dify本地部署失败就是因为 Dify 的 prompt template 和模型的 special tokens 不匹配。这三者必须来自同一个训练/发布批次。你不能用 Qwen2-7B-Instruct 的config.json搭配 Qwen2-7B-Pretrained 的model.safetensors因为它们的hidden_size或num_hidden_layers可能不同。Hugging Face Hub 上每个模型卡片的 “Files and versions” 标签页会明确列出所有配套文件下载时务必全选。4.3 量化不是“压缩”是“有损重铸”Q4_K_M 和 Q6_K 的真实代价量化Quantization是让大模型在消费级硬件上运行的关键技术但它不是简单的“文件变小”而是对权重数值进行有损近似。不同量化级别意味着不同的精度损失和性能收益。以Qwen2-7B的Q4_K_M为例原始 FP16 权重每个参数占 2 字节总大小 ≈ 14GBQ4_K_M将每 32 个权重分为一组K用 4-bit 整数0~15表示其相对值再用一个 16-bit 浮点数M表示该组的缩放因子scale。平均下来每个参数 ≈ 0.5 字节总大小 ≈ 3.5GB精度损失在数学计算密集型任务如代码生成、复杂推理上Q4_K_M 的准确率比 FP16 低 3~5%但在日常对话、摘要生成上人眼几乎无法分辨。而Q6_K每组用 6-bit 整数0~63缩放因子仍是 16-bit大小 ≈ 5.2GB精度损失仅 1~2%接近 FP16。所以“最低配置的版本部署方案”不是一味追求 Q2 或 Q3而是根据你的任务类型做权衡做客服问答、内容摘要 → Q4_K_M 足够省下的显存可以跑更大 batch size做编程辅助、数学解题 → 至少 Q5_K_MQ6_K 更稳妥做金融报告分析、法律文书生成 → 建议 FP16 或 BF16量化带来的误差可能引发严重后果。实操心得TheBloke 的量化模型会在模型名里明确标注量化级别如Qwen2-7B-Instruct-GGUF-Q4_K_M。但注意他提供的Q4_K_M是针对llama.cpp的如果你用transformers加载需要先用llama.cpp的convert-hf-to-gguf.py脚本反向转换或者直接用autoawq量化原版safetensors。不要试图用transformers直接加载 GGUF 文件——它不认识这种格式。5. 本地部署全流程实战从零开始部署 Qwen2-7B-InstructvLLM Windows WSL25.1 环境准备WSL2、CUDA、Docker三步筑基Windows 用户部署大模型绕不开 WSL2。这是微软为 Linux 兼容性做的最优解比虚拟机快比原生 Windows 支持好。以下是经过 20 台不同配置机器验证的稳定步骤Step 1安装 WSL2 并启用 GPU 支持以管理员身份打开 PowerShell依次执行dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启电脑下载 WSL2 Linux kernel update package 安装设置 WSL2 为默认版本wsl --set-default-version 2安装 Ubuntu 22.04wsl --install -d Ubuntu-22.04关键一步安装 NVIDIA CUDA on WSL 。这一步必须做否则nvidia-smi在 WSL2 里看不到 GPU。下载cuda-toolkit-wsl-ubuntu-2204-12-1-local.deb在 WSL2 里执行sudo apt update sudo apt install ./cuda-toolkit-wsl-ubuntu-2204-12-1-local.deb sudo apt-key del 7fa2af80 sudo apt updateStep 2安装 Docker Engine非 Docker DesktopDocker Desktop 在 WSL2 上对 GPU 支持不稳定。必须用原生 Docker Enginesudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo usermod -aG docker $USER newgrp docker # 刷新组权限验证docker run --rm --gpus all nvidia/cuda:12.1.1-runtime-ubuntu22.04 nvidia-smi应显示你的 GPU 信息。Step 3拉取并启动 vLLM 容器vLLM 官方镜像已预装 CUDA 12.1 和 vLLM 0.4.3开箱即用docker run --gpus all -p 8000:8000 \ --shm-size1g --ulimit memlock-1 --ulimit stack67108864 \ -v /path/to/your/models:/models \ ghcr.io/vllm-project/vllm:v0.4.3 \ --model Qwen/Qwen2-7B-Instruct \ --tensor-parallel-size 1 \ --dtype bfloat16 \ --enable-prefix-caching \ --max-num-seqs 256 \ --max-model-len 4096参数详解--gpus all让容器访问所有 GPU--shm-size1g增大共享内存避免多进程通信失败-v /path/to/your/models:/models将你本地存放模型的目录挂载到容器内/modelsvLLM 会自动从这里加载--tensor-parallel-size 1单卡部署设为 1若双卡设为 2--dtype bfloat16使用 bfloat16 精度比 float16 更稳定显存占用相同--enable-prefix-caching启用前缀缓存大幅提升连续对话性能。5.2 模型下载与验证HF Hub safetensors一次到位vLLM 启动时会自动从 Hugging Face Hub 下载模型但国内网络不稳定极易中断。