模型的不同部署方式

张开发
2026/6/9 23:23:15 15 分钟阅读
模型的不同部署方式
一、应用程序ollamaOllama是一个应用程序让用户能够轻松下载、运行和使用各种大型语言模型它在底层使用llama.cpp作为推理引擎增加了模型管理、会话管理等功能二、模型推理框架市面上有许多模型推理框架,如llama vllm等vLLM 的--model指向文件夹内含 config.json、*.safetensors 等多个文件而 llama.cpp 的-m指向单个 .gguf 文件框架名称核心特点与定位硬件与环境模型格式性能与场景vLLM高吞吐、内存管理标杆核心是PagedAttention技术可显著提升显存利用率和并发能力。NVIDIA GPU (CUDA)Safetensors, PyTorch极高吞吐适合高并发API、大规模生产部署。TensorRT-LLMNVIDIA 生态的极致性能NVIDIA官方出品通过算子融合和FP8等深度优化将GPU性能压榨到极限。NVIDIA GPU (专用)需转换为TensorRT格式极致延迟适合对响应速度要求极高的场景。TGIHugging Face 官方方案与HF生态无缝集成开箱即用提供Docker镜像部署最便捷。NVIDIA, AMD GPUSafetensors, PyTorch性能稳定可靠适合快速部署和企业级应用。llama.cpp轻量级、本地运行首选主打一个“能跑”无需高端显卡在CPU、Mac (Metal) 上就能流畅运行。CPU, Apple Silicon, GPUGGUF (专属)资源占用极低适合个人设备、边缘计算。LMDeploy一站式LLM部署工具箱由上海人工智能实验室开源集成了高效的TurboMind推理引擎功能全面。NVIDIA GPUHuggingFace格式均衡且强大在推理性能和功能丰富度上表现出色。SGLang复杂逻辑与结构化输出擅长处理多轮对话、工具调用其RadixAttention技术在多轮场景下吞吐量极高。NVIDIA GPUSafetensors, PyTorch缓存效率极高适合复杂逻辑编排和结构化数据生成(如JSON)。Triton企业级推理服务器NVIDIA出品支持多模型、多框架、动态批处理是云原生环境下的全能选手。NVIDIA GPU (为主)支持PyT, TF, ONNX等功能最全面适合大型系统集成和复杂流水线。2.1.模型文件类型格式适用场景优点缺点GGUF本地推理、CPU/GPU 部署轻量、跨平台、量化成熟主要用于推理不适合训练PyTorch/Safetensors训练、高精度服务完整、官方支持体量大、显存要求高ONNX跨框架推理通用大模型优化不如 GGUFMLXApple 生态极致优化平台锁定2.2.模型文件下载可到模搭社区找到模型文件ModelScope 魔搭社区2.2.1安装modelscope前提安装python环境安装modelscope配置python、modelscope环境变量pip install -U modelscope2.2.2下载模型文件(llama.cpp举例)modelscope download --modelqwen/Qwen2.5-7B-Instruct-GGUF --include qwen2.5-7b-instruct-q5_k_m*.gguf --local_dir .2.2.2下载结果2.2.1合并对于分割的文件你需要首先使用llama-gguf-split命令进行合并linux指令# ./llama-gguf-split --merge 第一个分割文件路径 合并后文件路径./llama-gguf-split --merge qwen2.5-7b-instruct-q5_k_m-00001-of-00002.gguf qwen2.5-7b-instruct-q5_k_m.gguf2.3启动llama-cli -m Llama-3.2-3B-Instruct-Q8_0.gguf三.docker modelDocker 官方推出的、专门用于AI 大模型容器化管理与一键推理运行的工具1.拉取模型文件及环境docker model pull 拉取模型权重文件且带运行环境docker pull 拉取的话只能拉有模型权重文件的镜像不带运行环境镜像不允许同时有模型文件和环境2.运行模型文件docker model run我这里内存不够了四、docker4.1运行框架环境,挂载模型docker运行vllm镜像,并且挂载模型位置docker run --gpus all \ -p 8000:8000 \ --ipchost \ -v /path/to/your/models:/models \ vllm/vllm-openai:latest \ --model /models/Qwen2.5-7B-Instruct模型实例:my_local_model/ # 这是你的模型文件夹文件夹名字可以随意起├── config.json # 【必需】模型的核心配置文件如层数、注意力头数等├── model.gguf # 【必需】模型权重文件也可能叫 pytorch_model.bin├── tokenizer_config.json # 【必需】分词器的配置文件├── tokenizer.json # 【必需】分词器需要的词表文件└── special_tokens_map.json # 【可选】特殊标记的映射配置4.2docker compose环境变量修改方便:只需要修改一个环境变量就能切换不同的模型。version: 3.8services:vllm:image: vllm/vllm-openai:latestcontainer_name: vllm-serverrestart: unless-stoppedports:- 8000:8000environment:- HUGGING_FACE_HUB_TOKEN${HF_TOKEN:-} # 可选私有模型需要volumes:# 挂载模型缓存目录避免重复下载- ~/.cache/huggingface:/root/.cache/huggingface# 如果你有本地下载好的模型也可以挂载本地目录- /path/to/your/local/models:/modelscommand:- --model ${MODEL_NAME:-Qwen/Qwen2.5-7B-Instruct} # 通过环境变量指定模型- --served-model-name ${SERVED_NAME:-my-model}- --max-model-len ${MAX_MODEL_LEN:-4096}- --tensor-parallel-size ${TP_SIZE:-1}- --gpu-memory-utilization ${GPU_MEM_UTIL:-0.9}deploy:resources:reservations:devices:- driver: nvidiacount: allcapabilities: [gpu]ipc: hoststdin_open: truetty: true

更多文章