Windows 环境下 llama.cpp 编译运行指南

在大模型落地场景中,本地轻量化部署因低延迟、高隐私性、无需依赖云端算力等优势,成为开发者与 AI 爱好者的热门需求。本文聚焦 Windows 环境,详细拆解 llama.cpp 工具的编译流程,并指导如何通过 modelscope 下载 GGUF 格式的模型,最终实现模型本地启动与 API 服务搭建。

1、编译源码之前需要自行安装 Visual Studio 18 2026 开发工具,并打开VS2026 x64 兼容工具命令提示,执行如下命令克隆仓库。

bash 复制代码
Microsoft Visual Studio 18.0> git clone https://github.com/ggml-org/llama.cpp
Microsoft Visual Studio 18.0> mkdir build
Microsoft Visual Studio 18.0> cd build

2、基础编译(仅 CPU 支持)或者选用GPU 加速编译(已安装 CUDA Toolkit)版。

如果只使用 CPU 模式则执行如下配置

bash 复制代码
Microsoft Visual Studio 18.0> cmake .. -G "Visual Studio 18 2026" -A x64 -DLLAMA_CURL=OFF
Microsoft Visual Studio 18.0> cmake --build . --config Release

如果已安装 CUDA Toolkit 工具包,则添加 -DLLAMA_CUDA=ON 开启 GPU 加速支持

bash 复制代码
Microsoft Visual Studio 18.0> cmake .. -G "Visual Studio 18 2026" -A x64 -DLLAMA_CUDA=ON
Microsoft Visual Studio 18.0> cmake --build . --config Release

编译完成后则会在build目录生成对应的可执行文件,其中的llama-server.exe则为主程序

3、下载 GGUF 格式的模型权重文件,模型权重已同步上线两大主流渠道,开发者任选其一即可。

以魔搭社区为例,直接使用官方PIP包拉取仓库内容到本地,下载后的保存位置为 C:\Users\Admin\dir 执行以下命令完成模型下载。

bash 复制代码
# 安装魔搭
C:> pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple modelscope

# 下载 Qwen2.5-1.5B-Instruct-GGUF 完整仓库模型文件
C:> modelscope download --model Qwen/Qwen2.5-1.5B-Instruct-GGUF

# 下载 Qwen2.5-1.5B-Instruct-GGUF 仓库下 qwen2.5-1.5b-instruct-q4_k_m.gguf 模型文件
C:> modelscope download --model Qwen/Qwen2.5-1.5B-Instruct-GGUF qwen2.5-1.5b-instruct-q4_k_m.gguf --local_dir ./dir

4、将下载好的qwen2.5-1.5b-instruct-q4_k_m.gguf模型文件,放在llama-server.exe同级目录下,同时打开命令行工具,执行启动命令:

bash 复制代码
# 执行命令行启动
C:> chcp 65001
C:> llama-cli.exe -m qwen2.5-1.5b-instruct-q4_k_m.gguf -i -c 4096

# 执行启动CPU版本服务端
C:> llama-server.exe -m qwen2.5-1.5b-instruct-q4_k_m.gguf --host 127.0.0.1 --port 11433 -c 4096

# 执行驱动GPU加速版服务端
C:> llama-server.exe -m qwen2.5-1.5b-instruct-q4_k_m.gguf --host 127.0.0.1 --port 11433 -c 1024 --n-gpu-layers 32

5、直接调用 /completion 接口,原生Python标准库,无需额外第三方包,验证服务可用性。

python 复制代码
import json
from urllib import request, error

url = "http://127.0.0.1:11433/completion"
headers = {"Content-Type": "application/json"}

prompt = """<|im_start|>user
你好,简单介绍一下自己<|im_end|>
<|im_start|>assistant
"""

data = {
    "model": "qwen2.5-1.5b-instruct-q4_k_m.gguf",
    "prompt": prompt,
    "temperature": 0.7,
    "max_tokens": 512,
    "ctx_size": 4096,
    "stop": ["<|im_end|>"],
    "stream": False
}

try:
    data_json = json.dumps(data).encode("utf-8")
    req = request.Request(url, data=data_json, headers=headers, method="POST")
    with request.urlopen(req, timeout=60) as response:
        result = json.loads(response.read().decode("utf-8"))

    print("生成结果:")
    print(result["content"].strip())

except error.HTTPError as e:
    print(f"调用失败(HTTP错误):{e.code} - {e.reason}")
except error.URLError as e:
    print(f"调用失败(连接/网络错误):{e.reason}")
except Exception as e:
    print(f"调用失败(其他异常):{e}")

运行main.py,正常输出示例如下,代表本地大模型服务部署完成,可以对外提供推理服务。

bash 复制代码
C:> main.py
生成结果:
您好!我是来自阿里巴巴的AI助手,我叫通义千问。
相关推荐
点亮~黑夜15 小时前
远程连接浏览无桌面服务器上的图片
windows·软件构建
Albart57515 小时前
Docker Desktop 增量更新失败终极排查:Failed to apply delta update 反复回滚怎么办?
windows·docker·容器·docker部署大模型
Patrick在香港15 小时前
Claude + Python 数据管道:一次字段改名,786 行历史数据被静默重写
开发语言·windows·python·claude·数据工程·数据校验·数据管道
Tiny21416 小时前
解决VMware中win10虚拟机无法上网
网络·windows·vmware
微软技术分享17 小时前
LLama-Factory 实现大模型LoRA-SFT微调指南
llama
tryxr17 小时前
Chat2Excel 文件服务模块剩余功能开发
java·服务器·windows·java项目·文件服务
kakakahahahaha17 小时前
Windows DRIVER_IRQL_NOT_LESS_OR_EQUAL NETIO.SYS 蓝屏排查流程
windows·电脑·笔记本电脑·内容运营·软件需求
kakakahahahaha1 天前
Windows笔记本重装系统的4种路径和风险边界
windows·电脑·笔记本电脑·内容运营·软件需求·重装系统
自动化监测Learner1 天前
Windows 自带搜索太慢?Everything 安装与使用指南,全盘文件秒搜
windows·everything
天机玄正2 天前
云运维高阶二:CLI 调用 API (白名单追随)
windows·云原生