使用 llama.cpp 在本地高效运行大语言模型,支持 Docker 一键启动,兼容CPU与GPU

一、简介

  • llama.cpp 是一个在 C/C++ 中实现大型语言模型(LLM)推理的工具
  • 支持跨平台部署,也支持使用 Docker 快速启动
  • 可以运行多种量化模型,对电脑要求不高,CPU/GPU设备均可流畅运行
  • 开源地址参考:https://github.com/ggml-org/llama.cpp
  • 核心工作流程参考:

二、安装与下载模型(Docker方式)

1. 搜索可用模型

  • 可以在huggingface官网中搜索可用的量化模型:https://huggingface.co/models?search=gguf

  • 这里以 qwen3-vl 模型为例,提供了多种量化版本,每种版本的大小不一样,根据自己的电脑性能做选择,如选择(模型+量化标签):Qwen/Qwen3-VL-8B-Instruct-GGUF:Q8_0

2. 使用 docker-compose 安装启动 llama.cpp

  • 提前安装好Docker、docker-compose软件环境
  • (可选)如果有GPU,需要安装好 NVIDIA 驱动程序、NVIDIA Container Toolkit
    英伟达驱动安装参考文档: https://developer.nvidia.com/cuda-toolkit-archive
    NVIDIA Container Toolkit安装参考:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

    //运行下面命令,如果输出显卡信息即Docker内可以正常使用GPU
    docker run --rm --gpus all nvidia/cuda:12.5.0-runtime-ubuntu22.04 nvidia-smi
  • 新建docker-compose.yml配置文件,参考下面内容:
    CPU运行版本

    services:
      llama-cpp-server:
        image: ghcr.io/ggml-org/llama.cpp:server
        ports:
          - "8000:8000"
        volumes:
          - ./cache:/root/.cache
        command: >
          -hf Qwen/Qwen3-VL-8B-Instruct-GGUF:Q8_0
          --jinja
          -c 65535 
          --port "8000"
          --host 0.0.0.0
        restart: unless-stopped

    GPU运行版本

    services:
      llama-cpp-server:
        image: ghcr.io/ggml-org/llama.cpp:server-cuda
        ports:
          - "8000:8000"
        volumes:
          - ./cache:/root/.cache
        command: >
          -hf Qwen/Qwen3-VL-8B-Instruct-GGUF:Q8_0
          --jinja
          -c 65535 
          --port "8000"
          --host 0.0.0.0
          --n-gpu-layers 99
        restart: unless-stopped
        deploy: #使用GPU主要增加这个配置
          resources:
            reservations:
              devices:
                - driver: nvidia
                  count: all #使用所有GPU,可以指定数量和特定GPU
                  capabilities: [gpu]

    关键参数注解,参考如下

    -hf                    # 从 HuggingFace 自动下载模型
    --jinja                # 启用聊天格式模板(多轮对话必需)
    -c 65535               # 上下文窗口大小(tokens数量,越大占用越多显存)
    --port "8000"          # 容器内监听端口
    --host 0.0.0.0         # 监听所有网络接口(Docker 容器必需)
    --n-gpu-layers 99      # GPU 加载层数(99=全部层,0=纯CPU)
    更多参数用法参考:https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md
  • 配置完,直接一键启动即可
    docker-compose up -d

    初次启动会自动从huggingface下载模型可能比较耗时(网络不好的话请自行配置加速代理),成功下载并启动截图如下:

三、使用

1. llama.cpp 默认提供的 Web Ui中使用

  • 启动后,可直接访问:http://ip:8000/,进入对话页面
  • 在对话界面,可以输入文本、文件、图片等直接和启动的模型进行对话
    文本对话
    图片[1]-使用 llama.cpp 在本地高效运行大语言模型,支持 Docker 一键启动,兼容CPU与GPU-副业网
    多模态对话

2. 使用 llama.cpp 提供的 Openai 接口兼容 API

  • 文本对话API,适合通用问题回答
    postman请求示例截图如下:

  • 多模态对话示例
    上面启动的 Qwen/Qwen3-VL 是非常强大的多模态模型,可以进行图片对话,输入下面手写文本图片
    图片[2]-使用 llama.cpp 在本地高效运行大语言模型,支持 Docker 一键启动,兼容CPU与GPU-副业网
    postman请求示例截图如下:

四、总结

  • llama.cpp 是个非常强大大语言模型启动工具,让普通电脑也能快速运行大语言模型,基于C/C++开发,性能比 Ollama 更优
  • 安装依赖较少,兼容CPU/GPU,可跨平台部署,可Docker一键部署
  • 提供Web Ui在线访问,也提供 Openai 接口兼容的 Api ,方便快速接入各种客户端
  • 私有部署,完全免费且私密,可以满足各种应用场景,如询问一下私密问题、搭建本地AI笔记、搭建本地AI数据库应用、识别自己的图片内容等
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容