【教程】如何在WSL2:Ubuntu上部署llama.cpp

【教程】如何在WSL2:Ubuntu上部署llama.cpp

WSL2:Ubuntu部署llama.cpp

llama.cpp 是一个完全由 C 与 C++ 编写的轻量级推理框架,支持在 CPU 或 GPU 上高效运行 Meta 的 LLaMA 等大语言模型(LLM),设计上尽可能减少外部依赖,能够轻松在多种后端与平台上运行。

安装llama.cpp

下面我们采用本地编译的方法在设备上安装llama.cpp

克隆llama.cpp仓库

在wsl中打开终端:

git clone https://github.com/ggml-org/llama.cpp cd llama.cpp 

编译项目

编译项目前,先安装所需依赖项:

sudoapt update sudoaptinstall -y build-essential cmake git#llama.cpp的某些功能依赖libcurl#如llama-download 的自动下载模型sudoaptinstall -y libcurl4-openssl-dev #如果要使用python接口,还需要sudoaptinstall -y python3 python3-pip pip3 install numpy 
CPU Backend

默认使用CPU版本编译

cmake -B build cmake --build build --config Release # cmake --build build --config Release -j 8 # -j 8 可加速编译过程,视你的 CPU 核心数而定
GPU Backend

如果你想使用GPU(推荐支持CUDA的NVIDA显卡),需要先安装CUDA Toolkit。由于WSL2默认不会自动识别WIndows主机上的CUDA Toolkit,因此需要特殊处理。

    • 驱动版本 ≥ 465
    • NVIDIA 官网 下载并安装最新版 CUDA Toolkit(但只需要驱动)。
  1. 重新编译带CUDA的llama.cpp

设置CUDA 环境变量

exportPATH=/usr/local/cuda/bin:$PATHexportLD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATHexportCUDACXX=/usr/local/cuda/bin/nvcc source ~/.bashrc 

安装CUDA Toolkit的stub(轻量化开发头文件)虽然你已经有了 CUDA runtime(用于运行模型),但 llama.cpp 编译阶段还需要 C++ 头文件和 nvcc 编译器 —— 你需要在 WSL2 里补装开发包:

sudoapt update #这里直接安装了CUDA12的整个工具包sudoaptinstall -y cuda #验证 nvcc --version 

在 子系统中验证 GPU 是否可用在 WSL2 中运行:

nvidia-smi 

如果成功看到你的 GPU 显示状态(如 RTX 3060、显存使用情况等),说明 CUDA 运行库已经桥接成功,可以继续。

Windows 主机 上确认:1)安装了支持 WSL 的 NVIDIA 驱动(必须是 DCH 驱动):2)安装好 WSL CUDA Toolkit(可以只装驱动和运行库,不需要开发工具)。

 如何安装WSL CUDA Toolkit 

​ i. 下载NVIDIA GeForce Game Ready(根据自己的GPU版本进行选择),下载网址:https://www.nvidia.com/Download/index.aspx​ ii. 移走原先的GPG key

sudo apt-key del 7fa2af80 

​ iii. 下载CUDA Toolkit

$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin $ sudomv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 $ wget https://developer.download.nvidia.com/compute/cuda/12.9.1/local_installers/cuda-repo-wsl-ubuntu-12-9-local_12.9.1-1_amd64.deb $ sudo dpkg -i cuda-repo-wsl-ubuntu-12-9-local_12.9.1-1_amd64.deb $ sudocp /var/cuda-repo-wsl-ubuntu-12-9-local/cuda-*-keyring.gpg /usr/share/keyrings/ $ sudoapt-get update $ sudoapt-get -y install cuda-toolkit-12-9 
#如果你用CPU生成过编译文件,执行新的make指令时可能会报错#先使用 rm -rf build 把之前的清空rm -rf build cmake -B build -DGGML_CUDA=ON cmake --build build --config Release -j 8# -j 8 可加速编译过程,视你的 CPU 核心数而定# 其实重启电脑也可以达到一样的效果

从Hugging Face下载模型

选择合适的模型

进入网站查看 llama.cpp 支持的所有模型列表

我们推荐首先尝试较为主流的 LLaMA 2、LLaMA 3、 Mistral、Qwen、ChatGLM 等系列模型。常见的 LLM 模型大小有 1B、7B、13B 等,一般来说,模型规模越大,生成的质量越好,但是运行时内存(推理时所需内存)也会随之增长。为避免频繁出现 OOM (Out of the memory) 的现象,我们推荐从较小的 LLM 开始调试。

注册Hugging Face账号后,可以添加自己的硬件设备信息,如下

用户主页

之后Hugging Face会对你的硬件能力做出评估

用户硬件性能评估

此时再选择相应的模型,右侧Hardware Compatibility面板 用于帮助用户根据自己设备的性能,选择合适的量化模型文件(GGUF 格式)

以第一行为例,Q4_K_M是模型的量化精度,数字越大精度越高,越接近原始模型,但也更占内存;2.5GB下载后模型文件所占空间,也是运行所需的最低内存估算

模型量化精度推荐

下载方法

1.使用Hugging Face下载

这里使用手动从 Hugging Face 官网下载的方法,打开你想下载的模型主页,如:
https://huggingface.co/Qwen/Qwen3-0.6B-GGUF

然后在 Files and versions 中找到对应的 .gguf文件下载并保存到你希望的目录即可。

2. 使用ModelScope下载

ModelScope 是阿里云提供的 AI 模型平台,也支持中文大模型。如果你无法访问 Hugging Face 或下载速度慢,推荐使用 ModelScope 下载

首先安装 ModelScope 所需库(推荐使用虚拟环境):

pip install modelscope 

然后运行以下 python 脚本

from modelscope import snapshot_download model_dir = snapshot_download('Qwen/Qwen3-0.6B-GGUF',#替换为你想要下载的模型名称,推荐下载 .gguf 格式的量化模型,适用于 llama.cpp cache_dir='./models/qwen-0.6b-gguf',#设置本地保存路径 revision='master',#可指定具体版本)print(f"Model saved at {model_dir}")

最后耐心等待即可。

Read more

从零开始:在本地搭建一个带知识库的 AI 助手(Ollama + Open WebUI)

从零开始:在本地搭建一个带知识库的 AI 助手(Ollama + Open WebUI)

一文讲清楚:要选哪些工具、需要什么环境、整体架构长什么样,以及一步步实现到能用的程度。 一、为什么要在本地搭一个 AI 助手? 过去一年,大模型从“新奇玩意儿”迅速变成“日常生产力工具”。但如果你只用网页版 ChatGPT / 文心一言 / 通义千问,会碰到几个很现实的问题: * 数据隐私:公司内部文档、个人笔记、聊天记录,你敢全部塞到线上吗? * 网络依赖:在飞机上、高铁里,或者公司内网严格管控时,在线 AI 直接“失联”。 * 额度与费用:免费额度有限,稍微重度一点就要付费,而且你也不知道自己的数据会不会被拿去训练。 本地部署一套 “AI + 知识库” 的好处就非常直观: 1. 数据完全不出本地,满足隐私合规要求。 2. 断网也能用,随时随地调取你的“第二大脑”。 3. 可定制:可以给团队搭一个“

【前端进阶之旅】50 道前端超难面试题(2026 最新版)|覆盖 HTML/CSS/JS/Vue/React/TS/ 工程化 / 网络 / 跨端

【前端进阶之旅】50 道前端超难面试题(2026 最新版)|覆盖 HTML/CSS/JS/Vue/React/TS/ 工程化 / 网络 / 跨端

文章目录 * 前言 * 一、原生开发(HTML/CSS/JavaScript) * 二、框架核心(Vue2/3、React16/18/19) * 三、网络协议 * 四、工程化 * 五、跨端开发(uniapp、uniappX) * 六、TypeScript * 写在最后 前言 作为前端开发者,想要突破中高级面试瓶颈,仅掌握基础语法远远不够 —— 大厂面试更侧重底层原理、手写实现、场景分析与跨领域综合能力。本文整理了50 道无答案版前端超难面试题,覆盖原生开发、框架核心、网络协议、工程化、跨端开发、TypeScript 六大核心方向排序且聚焦高频难点,适合自测、复盘或作为面试出题参考,建议收藏反复琢磨! 一、原生开发(HTML/CSS/JavaScript) 原生能力是前端的根基,

三级倒立摆LQR控制:Webots仿真与C语言实现之旅

三级倒立摆LQR控制——C语言Webots仿真三阶倒立摆(TIPS, Triple Inverted Pendulum System)。 需要请预约时间在线讲解教学 依旧使用Windows Webots自带编译环境及裸C实现控制,所见即所得。 使用拉格朗日法动力学建模,MATLAB符号运算验证数学推导,LQR全状态反馈控制。 (A)建模解析 + MATLAB计算 (B)Webots仿真工程 三级倒立摆是一个单输入四输出的非线性、强耦合、不稳定系统。 此Demo对于初学者掌握拉格朗日法动力学建模、MATLAB符号运算、LQR控制算法及其C语言实现和Webots建模仿真有全面性帮助; LQR控制器即线性二次型调节器 LQR(Linear Quadratic Regulator) #三级倒立摆 #三阶倒立摆 #Webots #LQR #拉格朗日方程 #动力学建模 #C语言 #MATLAB #控制算法 最近捣鼓了下三级倒立摆的LQR控制,用Webots结合C语言做了仿真,过程还挺有意思,来跟大家分享分享。 一、三级倒立摆系统简介 三级倒立摆(Triple Inverted Pendul

【前端地图】地理编码与逆地理编码 —— 让地址和坐标不再“鸡同鸭讲”

【前端地图】地理编码与逆地理编码 —— 让地址和坐标不再“鸡同鸭讲”

🌏第 7 节:地理编码与逆地理编码 —— 让地址和坐标不再“鸡同鸭讲” 🎙️ 一、 老曹引言:地址与坐标的“爱恨情仇” 🗣️ 各位同学好,我是老曹。今天咱们来聊第 7 节,地理编码与逆地理编码。说实话,这玩意儿在地图开发里属于“看似简单,实则坑深似海”的类型。你们是不是觉得,不就是把“成都市青羊区”变成一串数字,或者把一串数字变回“成都市青羊区”吗?太天真了!在实际项目中,我见过太多因为坐标系没搞对,导致物流配送员对着地图上的标记点骂娘,明明就在楼下,导航非让他去河里捞船。这节内容,就是为了让你们少挨骂,少加班,把地址和坐标之间的翻译工作做得明明白白。 🤔 很多新人刚上手地图 SDK 的时候,最喜欢干的事就是直接调用 geocoder.getLocation,然后指望它能返回一个精准无比的 coordinate。结果呢?高德的坐标放到百度地图上,偏移了几百米;或者在国内用了