llama.cpp 部署运行 qwen模型
llama.cpp
是一个开源项目,旨在将 Meta(原 Facebook)开发的 LLaMA 系列大语言模型高效地运行在本地设备上,尤其是 CPU 和 GPU 上。该项目由开发者 Georgi Gerganov 发起,并得到了社区的广泛支持和贡献。
Qwen 是由阿里巴巴通义千问团队开发的大规模语言和多模态系列模型。 通义千问可以执行自然语言理解、文本生成、视觉理解、音频理解、工具调用、角色扮演、智能体等多种任务。语言和多模态模型均在大规模、多语言、多模态数据上进行预训练,并在高质量语料上后训练以与人类偏好对齐。
llama.cpp 项目特点
轻量级与跨平台:
llama.cpp
使用 C/C++ 编写,具有良好的性能优化。- 支持多种操作系统(如 Linux、macOS、Windows)。
- 可以在 CPU 或者 GPU 上运行,尤其适合资源有限的设备。
量化支持:
- 提供了对模型权重进行量化的能力(如 4-bit、5-bit 量化),大幅减少内存占用和推理时延。
- 量化后的模型可以在低端设备(如笔记本电脑或树莓派)上运行。
多模型支持:
- 不仅支持原始的 LLaMA 模型,还支持多个变种,如 LLaMA-2、LLaMA-3、Alpaca、Vicuna、WizardLM、Mistral 等。
- 支持 GGUF 格式(GPT-Generated Unified Format),这是
llama.cpp
自己的一种模型格式,便于加载和推理。
易于使用:
- 提供命令行接口(CLI)以及 C/C++ API,方便集成到其他应用中。
- 社区提供了丰富的文档和示例,帮助用户快速上手。
隐私与离线运行:
- 因为模型是在本地运行,不依赖云端服务,因此非常适合注重隐私的应用场景。
如何使用 llama.cpp
1. 克隆仓库
bash
git clone https://github.com/ggerganov/llama.cpp
https://github.com/ggml-org/llama.cpp
cd llama.cpp
2. 构建项目(以 CPU 版本为例)
需要安装cmake及libcurl:
apt install cmake apt install libcurl4-openssl-dev
bash
cmake -B build
cd build
make
编译为一个独立的课执行文件,不依赖与共享库。
cmake -B build -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON
cd build
make
如果你有 CUDA 支持,可以启用 GPU 加速:
bash
make LLAMA_CUDA=1
qwen模型介绍
你需要先获得 LLaMA 或其衍生模型的权重文件(通常为 .bin
或 .gguf
格式)。例如:
```bash
假设你已经下载了一个 GGUF 模型文件,比如 llama-2-7b.Q4_K_M.gguf
```
huggingface
安装pipx:
sudo apt install python3-pip pipx
使用pipx安装huggingface-cli
pipx install huggingface-hub
下载模型:
wget https://modelscope.cn/models/Qwen/Qwen3-0.6B-GGUF/resolve/master/Qwen3-0.6B-Q8_0.gguf
4. 运行模型
bash
./main -m ./models/llama-2-7b.Q4_K_M.gguf -p "Hello, how are you?"
示例输出:
Hello, how are you?
I'm doing well, thank you! How can I assist you today?
开发者工具和生态系统
- Web UI:有多个第三方 Web UI 工具(如
text-generation-webui
)支持llama.cpp
,方便构建本地聊天界面。 - Python 绑定:可以通过
llama-cpp-python
库在 Python 中调用llama.cpp
的功能。 - GGUF 模型转换工具:支持将 HuggingFace 格式的模型转换为 GGUF 格式,以便在
llama.cpp
中使用。
社区与资源
- GitHub 仓库:https://github.com/ggerganov/llama.cpp
- 文档与 Wiki:项目页面上的 Wiki 部分提供了详细的安装和使用说明。
- Discord/Reddit:活跃的社区讨论平台,适合提问和交流经验。
适用场景
- 本地 AI 助手:在没有网络连接的情况下提供自然语言处理能力。
- 隐私保护应用:数据无需上传至云端,确保信息安全。
- 教育与研究:用于教学或实验目的,了解大语言模型的工作原理。
- 嵌入式设备:如在 Raspberry Pi 上运行小型 AI 应用。