一、应用程序ollama

  • Ollama是一个应用程序,让用户能够轻松下载、运行和使用各种大型语言模型

  • 它在底层使用llama.cpp作为推理引擎,增加了模型管理、会话管理等功能

二、模型推理框架

市面上有许多模型推理框架,如llama vllm等

vLLM 的 --model 指向文件夹(内含 config.json、*.safetensors 等多个文件),而 llama.cpp 的 -m 指向单个 .gguf 文件

框架名称 核心特点与定位 硬件与环境 模型格式 性能与场景
vLLM 高吞吐、内存管理标杆
核心是 PagedAttention 技术,可显著提升显存利用率和并发能力。
NVIDIA GPU (CUDA) Safetensors, PyTorch 极高吞吐,适合高并发API、大规模生产部署。
TensorRT-LLM NVIDIA 生态的极致性能
NVIDIA官方出品,通过算子融合和FP8等深度优化,将GPU性能压榨到极限。
NVIDIA GPU (专用) 需转换为TensorRT格式 极致延迟,适合对响应速度要求极高的场景。
TGI Hugging Face 官方方案
与HF生态无缝集成,开箱即用,提供Docker镜像,部署最便捷。
NVIDIA, AMD GPU Safetensors, PyTorch 性能稳定可靠,适合快速部署和企业级应用。
llama.cpp 轻量级、本地运行首选
主打一个“能跑”,无需高端显卡,在CPU、Mac (Metal) 上就能流畅运行。
CPU, Apple Silicon, GPU GGUF (专属) 资源占用极低,适合个人设备、边缘计算。
LMDeploy 一站式LLM部署工具箱
由上海人工智能实验室开源,集成了高效的TurboMind推理引擎,功能全面。
NVIDIA GPU HuggingFace格式 均衡且强大,在推理性能和功能丰富度上表现出色。
SGLang 复杂逻辑与结构化输出
擅长处理多轮对话、工具调用,其RadixAttention技术在多轮场景下吞吐量极高。
NVIDIA GPU Safetensors, PyTorch 缓存效率极高,适合复杂逻辑编排和结构化数据生成(如JSON)。
Triton 企业级推理服务器
NVIDIA出品,支持多模型、多框架、动态批处理,是云原生环境下的全能选手。
NVIDIA GPU (为主) 支持PyT, TF, ONNX等 功能最全面,适合大型系统集成和复杂流水线。

2.1.模型文件类型

格式 适用场景 优点 缺点
GGUF 本地推理、CPU/GPU 部署 轻量、跨平台、量化成熟 主要用于推理,不适合训练
PyTorch/Safetensors 训练、高精度服务 完整、官方支持 体量大、显存要求高
ONNX 跨框架推理 通用 大模型优化不如 GGUF
MLX Apple 生态 极致优化 平台锁定

2.2.模型文件下载

可到模搭社区找到模型文件ModelScope 魔搭社区

2.2.1安装modelscope

前提:安装python环境,安装modelscope,配置python、modelscope环境变量

pip install -U modelscope

2.2.2下载模型文件(llama.cpp举例)

modelscope download --model=qwen/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.gguf

2.3启动

llama-cli -m Llama-3.2-3B-Instruct-Q8_0.gguf

 三.docker model

Docker 官方推出的、专门用于AI 大模型容器化管理与一键推理运行的工具

1.拉取模型文件及环境

docker model pull 拉取模型权重文件且带运行环境

docker pull 拉取的话只能拉有模型权重文件的镜像,不带运行环境(镜像不允许同时有模型文件和环境)

2.运行模型文件 

docker model run

(我这里内存不够了)

四、docker

4.1运行框架环境,挂载模型

docker运行vllm镜像,并且挂载模型位置

docker run --gpus all \
  -p 8000:8000 \
  --ipc=host \
  -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.8'

services:
  vllm:
    image: vllm/vllm-openai:latest
    container_name: vllm-server
    restart: unless-stopped
    ports:
      - "8000:8000"
    environment:
      - HUGGING_FACE_HUB_TOKEN=${HF_TOKEN:-}  # 可选:私有模型需要
    volumes:
      # 挂载模型缓存目录,避免重复下载
      - ~/.cache/huggingface:/root/.cache/huggingface
      # 如果你有本地下载好的模型,也可以挂载本地目录
      - /path/to/your/local/models:/models
    command:
      - --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: nvidia
              count: all
              capabilities: [gpu]
    ipc: host
    stdin_open: true
    tty: true

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐