跳至主要内容

本地运行 LLM:6 种简单方法

在本地(Windows、macOS、Linux)运行 LLM,可使用这些易用的 LLM 框架:Ollama、LM Studio、vLLM、llama.cpp、Jan 和 llamafile。
· 14分钟 阅读

使用 AI 探索

由于具备更好的隐私、控制力和可靠性,在本地系统上使用大型语言模型(LLM)正变得越来越流行。有时,这些模型甚至比 ChatGPT 更准确、更快速。

我们将展示在 Windows 11 上借助 GPU 加速本地运行 LLM 的七种方式,但所述方法同样适用于 macOS 和 Linux。

如果您想从零开始学习 LLM,可以先从这门课程入手:Large Learning Models (LLMs)。

让我们从第一个 LLM 框架开始。

1. Ollama

Ollama 是本地运行诸如 Llama 4、 Mistral 3 和 Gemma 3 等 LLM 的主流生态。

此外,许多应用都支持集成 Ollama,这使其成为在本地机器上更快、更便捷访问语言模型的优秀工具。

Ollama 现已提供完整的 OpenAI API 兼容性,可直接替代 OpenAI 的云服务。最新特性包括函数调用、结构化 JSON 输出、视觉模型的 Flash Attention,以及在 Apple Silicon 和 AMD GPU 上快 30% 的推理速度。

A. 安装 Ollama

可从下载页面获取 Ollama 安装包。

使用默认设置安装完成后,系统托盘中会出现 Ollama 图标。

B. 运行 Ollama

我们可以通过在终端输入以下命令来下载 Llama 3 模型:

$ ollama run llama3

Llama 3 现已可用!下方列出了使用其他 LLM 时需要的命令:

Various ollama commands for using various LLMs

C. 运行自定义模型

要访问已下载并位于 llama.cpp 文件夹中的模型,我们需要:

  • 使用 cd 命令进入 llama.cpp 文件夹。
$ cd C:/Repository/GitHub/llama.cpp
  • 创建名为 Modelfile 的文件,并添加一行 "FROM ./Nous-Hermes-2-Mistral-7B-DPO.Q4_0.gguf"。
$ echo "FROM ./Nous-Hermes-2-Mistral-7B-DPO.Q4_0.gguf" > Modelfile
  • 通过提供模型名称来构建模型。
$ ollama create NHM-7b -f Modelfile

creating the custom model

  • 运行 NHM-7b 模型。
$ ollama run NHM-7b
  • 像使用其他聊天应用一样使用它。

通过这种方法,我们可以从 Hugging Face 下载任意扩展名为 .gguf 的 LLM,并在终端中使用。如果您想了解更多,请查看这门课程:Working with Hugging Face。

2. LM Studio

LM Studio 是一体化的本地 LLM 工作台,并原生支持微调。此外,它支持多模型并发、推测式解码(令牌生成快 1.5x-3x),以及文档 RAG 集成。

A. 安装

可从 LM Studio 首页下载安装程序。

下载完成后,使用默认选项安装应用。

最后,启动 LM Studio!

LM Studio on windows

B. 下载模型

我们可以使用搜索功能从 Hugging Face 下载任意模型。

这里我们将下载体量最小的模型:Google 的 Gemma 2B Instruct。

Downloading the Gemma 2B model on LM studio

C. 生成回复

我们可以在顶部下拉菜单中选择已下载的模型,并像往常一样与之聊天。与 GPT4All 相比,LM Studio 提供了更多自定义选项。

Using LM Studio

D. 本地推理服务器

与 GPT4All 类似,我们可以自定义模型,并一键启动 API 服务器。要访问模型,可以使用 OpenAI API 的 Python 包、CURL,或直接集成到任何应用程序中。

Running Local Inference Server

E. 使用多个模型

LM Studio 的关键特性是可同时运行并服务多个模型。这使用户能够比较不同模型的结果,并将其用于多种应用。要运行多个模型会话,我们需要较高的 GPU 显存。

Running multiple LLM models

微调是生成具备上下文意识且更个性化回复的另一种方式。您可以通过教程 Fine Tuning Google Gemma: Enhancing LLMs with Customized Instructions 学习如何微调您的 Google Gemma 模型。您将学习在 GPU/TPU 上运行推理,并在角色扮演数据集上微调最新的 Gemma 7b-it 模型。

3. vLLM

vLLM 是一个用于大规模生产环境的开源 LLM 推理引擎。与 Ollama 或 LM Studio 不同,vLLM 在多用户场景下优先优化吞吐与延迟。

其核心创新是 PagedAttention,它像虚拟内存一样管理 GPU 内存,重用小页而非预留大块内存,并结合连续批处理。真实基准测试显示,vLLM 在 Llama 70B 上可实现每秒 793 个 token,而在并发负载下 Ollama 为每秒 41 个 token。

vLLM 还支持跨 GPU 的张量并行、前缀缓存,以及多 LoRA 批处理,可同时服务多种微调变体。

A. 安装

在 Mac 和 Linux 上,可使用 pip 轻松安装 vLLM。

在支持 CUDA 11.8+ 的 Linux 上:

pip install vllm

在搭载 Apple Silicon 的 macOS 上:

python3.11 -m venv vllm_env
source vllm_env/bin/activate
pip install vllm

目前尚无对 Windows 的官方支持。不过可通过 WSL2 或 Docker 曲线实现。

B. 运行模型

启动兼容 OpenAI 的服务器:

vllm serve meta-llama/Llama-2-7b-hf --port 8000 --gpu-memory-utilization 0.9

在多 GPU 上运行 70B 模型:

vllm serve meta-llama/Llama-2-70b-hf --tensor-parallel-size 2 --port 8000

在 Python 中进行批处理:

from vllm import LLM, SamplingParams
llm = LLM(model="meta-llama/Llama-2-7b-hf", dtype="bfloat16")
sampling_params = SamplingParams(temperature=0.8, max_tokens=256)
outputs = llm.generate(["Write hello world", "Explain AI"], sampling_params)

C. 运行推理

查询时,使用 OpenAI SDK:

from openai import OpenAI

client = OpenAI(base_url='http://localhost:8000/v1', api_key='any')
response = client.chat.completions.create(
    model='meta-llama/Llama-2-7b-hf',
    messages=[{'role': 'user', 'content': 'What is ML?'}],
    max_tokens=200
)
print(response.choices[0].message.content)

另一种方式是通过 cURL 运行:

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "meta-llama/Llama-2-7b-hf", "messages": [{"role": "user", "content": "Hello"}]}'

若需面向上百并发用户提供生产 API,请选择 vLLM;本地开发可使用 Ollama。

4. Jan

最受欢迎、颜值也很高的本地 LLM 应用之一是 Jan。它是 ChatGPT 的隐私优先替代方案。

A. 安装

我们可以从 Jan.ai 下载安装程序。

使用默认设置安装 Jan 应用后,即可启动使用。

Jan AI Windows application

B. 导入模型

在介绍 GPT4All 和 LM Studio 时,我们已经下载了两个模型。我们无需再下载新的模型,只需前往模型页面并点击 Import Model 按钮,将已有模型导入即可。

Importing the model file

随后,进入应用目录,选择 GPT4All 和 LM Studio 的模型,分别导入。

  • GPT4All:"C:/Users/<user_name>/AppData/Local/nomic.ai/GPT4All/"
  • LM Studio:"C:/Users/<user_name>/.cache/lm-studio/models"

C. 访问本地模型

要访问本地模型,请进入聊天界面,并在右侧面板打开模型部分。

Selecting the Nous-Hermess-2-Mistral-7b model

我们可以看到导入的模型已在列表中。选择需要的模型即可立即开始使用!

D. 生成回复

回复生成速度非常快。用户界面自然,类似 ChatGPT,而且不会拖慢您的笔记本或台式机。

generating the response in the Jan AI

Jan 的独特之处在于,它允许我们安装扩展,并使用来自 OpenAI、MistralAI、Groq、TensorRT 和 Triton RT 的专有模型。

E. 本地 API 服务器

与 LM Studio 一样,我们也可以将 Jan 用作本地 API 服务器。它提供更强的日志记录能力和对 LLM 输出的控制,并且可在设置中通过简单配置 API 密钥集成 OpenAI、Mistral AI、Groq、Claude 和 DeepSeek。

Running the Jan AI local server

5. llama.cpp

另一款流行的开源 LLM 框架是 llama.cpp。它完全由 C/C++ 编写,速度快、效率高。

许多本地与基于 Web 的 AI 应用都基于 llama.cpp。因此,学会在本地使用它,将有助于您了解其他 LLM 应用在幕后如何工作。

若想了解能将 llama.cpp 推至更远的构建方式,请参阅我们的指南:在 RTX 5090 上本地运行 Qwen3.8-27B,使用原生 Blackwell 的 NVFP4 与 MTP 推测式解码。

A. 下载 llama.cpp

首先,我们需要在终端使用 cd 命令进入项目目录——您可以在这门Introduction to Shell 课程中进一步了解终端。

然后,使用以下命令从 GitHub 服务器克隆全部文件:

$ git clone --depth 1 https://github.com/ggerganov/llama.cpp.git

B. 在 Windows 上使用 MakeFile

make 命令行工具在 Linux 和 macOS 上默认可用。但在 Windows 上,我们需要按以下步骤操作:

  • 下载适用于 Windows 的最新 w64devkit Fortran 版本 w64devkit。Downloading the w64devkit zip file
  • 在本地目录中解压 w64devkit。
  • 在主文件夹中找到 w64devkit.exe 文件并运行。
  • 使用 $ cd C:/Repository/GitHub/llama.cpp 命令进入 llama.cpp 文件夹。
  • 输入 $ make 并按下Enter 安装 llama.cpp。

running the make file to install necessary packages

B. 启动 llama.cpp 的 WebUI 服务器

完成安装后,在终端输入以下命令运行 llama.cpp 的 Web UI 服务器。(注意:我们已将模型文件从 GPT4All 文件夹复制到 llama.cpp 文件夹,以便更容易访问模型)。

$ ./server -m Nous-Hermes-2-Mistral-7B-DPO.Q4_0.gguf -ngl 27 -c 2048 --port 6589

launching the llama.cpp web server

Web 服务器运行在 http://127.0.0.1:6589/。您可以复制该 URL 并在浏览器中打开,以访问 llama.cpp 的网页界面。

在与聊天机器人交互之前,我们应先修改设置和模型参数。

llama.cpp web app running in the browser想要了解更多,请查看这篇 llama.cpp 教程!

D. 生成回复

回复生成速度较慢,因为我们是在 CPU 上运行,而非 GPU。若要在 GPU 上运行,我们必须安装不同版本的 llama.cpp。

$ make LLAMA_CUDA=1

using the llama.cpp web application

6. llamafile

如果您觉得 llama.cpp 稍显复杂,可以尝试 llamafile。该框架将 llama.cpp 与 Cosmopolitan Libc 合并为单一可执行文件,从而为开发者和终端用户简化 LLM 的使用。它消除了与 LLM 相关的各种复杂性,使之更易上手。

A. 下载模型文件

我们可以从 llamafile 的 GitHub 仓库下载所需的模型文件。

这里我们将下载 LLaVA 1.5,因为它还能理解图像。

downloading the LLaVA 1.5 llamafile

B. 为 Windows 做的修改

Windows 用户需要在终端中为文件名添加 .exe。为此,请右键单击下载的文件并选择 Rename。

renaming the llamafile

C. 运行 LlamaFile

我们先在终端使用 cd 命令进入 llamafile 目录。然后运行下方命令以启动 llama.cpp Web 服务器。

$ ./llava-v1.5-7b-q4.llamafile -ngl 9999

该 Web 服务器会使用 GPU,无需您进行任何安装或配置。

llamafile running in the terminal

它还会自动在默认浏览器中打开运行着 llama.cpp 网页应用的页面。如果未自动打开,我们也可以直接访问 http://127.0.0.1:8080/。

D. 生成回复

在确定好模型配置后,我们就可以开始使用该网页应用。

llamafile web application

通过 llamafile 运行 llama.cpp 更加简单高效。我们以 53.18 tokens/sec 的速度生成了回复(未使用 llamafile 时,速率为 10.99 tokens/sec)。

using the llama.cpp web app

结语

在本地安装和使用 LLM 是一段有趣而令人兴奋的体验。我们可以自行尝试最新的开源模型,享受隐私、可控性以及更佳的聊天体验。

本地使用 LLM 也有许多实用场景,例如通过 API 服务器与其他应用集成,或连接本地文件夹以提供具备上下文的回答。在某些情况下,尤其当隐私与安全至关重要时,本地使用 LLM 更是必不可少。

您可以通过以下资源进一步学习 LLM 与构建 AI 应用:

Abid Ali Awan

作者

Abid Ali Awan

作为一名持证的数据科学家,我热衷于利用前沿技术打造创新的机器学习应用。凭借在语音识别、数据分析与报告、MLOps、对话式人工智能以及自然语言处理方面的扎实背景,我不断打磨构建智能系统的能力,力求带来切实影响。除技术专长外,我也擅长沟通,能够将复杂概念提炼为清晰、简明的表述。因此,我成为数据科学领域备受关注的博主,与不断壮大的数据专业人士社区分享洞见与实践经验。目前,我专注于内容创作与编辑,借助大语言模型打造有力且吸引人的内容,帮助企业与个人更好地发挥数据价值。

主题