基于 Python 和 llama.cpp 本地运行 LLaMA2 大模型
什么是 LLaMA2
LLaMA (Large Language Model Meta AI) 是 Meta AI 于 2023 年发布的开源大型语言模型系列,参数规模涵盖 7B 至 65B。最新版本已迭代至 LLaMA 3。该模型在多项基准测试中表现优异,且允许研究者和开发者在合规前提下进行本地部署与微调。
什么是 llama.cpp
llama.cpp 是一个开源 C++ 库,它用 C++ 重写了 LLaMA 的推理代码。其核心优势在于支持 CPU 上加载运行 LLaMA 语言模型,极大地降低了对硬件的要求(例如 RAM 开销可低于 4GB),使得在普通笔记本电脑甚至树莓派上运行大模型成为可能。
官方仓库地址:https://github.com/ggerganov/llama.cpp
本地运行环境准备
1. 安装依赖库
首先需要安装 llama-cpp-python 作为 Python 接口。建议使用虚拟环境以避免依赖冲突。
pip install llama-cpp-python
注意:部分系统可能需要先安装编译工具链(如 cmake, ninja-build)才能成功编译底层 C++ 代码。
2. 下载模型文件
从 Hugging Face 等平台下载已经量化好的 GGUF 格式模型文件。GGUF 是 llama.cpp 推荐的通用模型格式,支持多种量化级别(如 Q4_K_M, Q8_0 等),可在精度与显存占用之间取得平衡。
推荐模型示例:
代码示例及运行结果
以下 Python 脚本展示了如何加载模型并基于输入 prompt 获取输出。对于 Zephyr-7b-beta 或 LLaMA2 等模型,prompt 输入支持多种自然语言。
from llama_cpp import Llama
# 初始化模型,指定本地模型路径
llm = Llama(
model_path="./models/llama-2-7b-chat.Q4_K_M.gguf",
n_ctx=2048,
n_threads=4,
verbose=False
)
# 定义 Prompt
prompt = "What is the capital of France?"
# 生成回答
output = llm(
prompt,
max_tokens=128,
temperature=0.7,
stop=["\n", "User:"],
echo=True
)
print(output["choices"][0]["text"])


