大型语言模型 (LLM) 已经彻底改变了我们与技术互动的方式。但你是否知道,无需强大的云服务器,你也能在自己的电脑上运行这些模型?Ollama 正是为此而生!它让在本地机器上运行、创建和管理各种开源大模型变得前所未有的简单。
本文将带你全面了解 Ollama,从常用命令到支持的模型,如何安装、理解模型对内存的占用,再到如何通过第三方用户界面 (UI) 提升体验,甚至是如何将其打造成 GitHub Copilot 的本地替代品。
安装 Ollama 非常简单,支持 macOS、Linux 和 Windows。
直接访问 Ollama 官网下载安装包:
使用 Homebrew 安装 Ollama:
bashbrew install ollama
或者
.dmg
文件,将 Ollama 拖拽到 "Applications" 文件夹即可。运行命令:
bashcurl -fsSL https://ollama.com/install.sh | sh
Windows 版本目前处于预览阶段,但安装同样简单:
.exe
安装程序并运行,按照提示完成安装。安装完成后,打开终端(或命令提示符),运行以下命令:
bashollama --version
如果看到版本信息,说明 Ollama 已成功安装。
安装完 Ollama 后,运行模型就像呼吸一样简单。以 deepseek-r1 8b 为例:
bashollama run deepseek-r1:8b
Ollama 会自动检测你是否已下载该模型。如果没有,它会先帮你下载(可能需要一些时间,取决于模型大小和你的网络速度),然后启动模型。
Ollama 主要通过命令行界面 (CLI) 进行操作。以下是一些常用的命令:
ollama run <model_name>[:tag]
: 这是与模型开始交互的最直接方式。如果模型尚未下载,该命令会自动下载并运行指定的模型。例如,要运行 deepseek-r1 模型,只需输入 ollama run deepseek-r1:8b
。ollama pull <model_name>[:tag]
: 如果你只想下载模型以备后用,可以使用此命令。例如,ollama pull deepseek-r1:8b
会下载 deepseek-r1 模型。ollama list
: 列出你本地已经下载的所有模型及其大小和下载时间。ollama ps
: 显示当前正在运行(已加载到内存中)的模型。ollama rm <model_name>[:tag]
: 删除本地指定的模型。例如,ollama rm deepseek-r1:8b
。ollama cp <source_model> <destination_model>
: 复制一个已存在的本地模型为新的模型,方便进行修改和实验。ollama create <custom_model_name> -f <Modelfile_path>
: 根据指定的 Modelfile
创建自定义模型。Modelfile
允许你定义模型的参数、系统提示等。例如,ollama create mymodel -f./Modelfile
。ollama show <model_name>[:tag]
: 显示指定模型的详细信息,包括其 Modelfile
内容、参数等。ollama help
: 显示帮助信息或特定命令的帮助文档。Ollama 的一大魅力在于其对众多开源 LLM 的广泛支持。你可以在 Ollama 的官方模型库 (ollama.com/library) 中找到不断更新的完整列表。以下是一些热门且常用的模型类别和代表:
模型名称/系列 | 常见参数规模 | 典型文件大小 (估算) | 备注 (类型, 近期更新, 特定来源日期) |
---|---|---|---|
Llama 4 | Scout (例如 16x17B), Maverick (例如 128x17B) | 大型 | Meta, 多模态, 视觉。(2025 年 5 月) |
Llama 3.3 | 70B | ~43GB | Meta, 高性能。(2025 年 6 月前的数月发布) |
Llama 3.2 | 1B, 3B | 1B: ~1.3GB, 3B: ~2.0GB | Meta, 更小更高效的模型。 |
Llama 3.2 Vision | 11B, 90B | 11B: ~7.9GB, 90B: ~55GB | Meta, 视觉能力。(2024 年 11 月 / 2025 年 5 月) |
Llama 3.1 | 8B, 70B, 405B | 8B: ~4.7GB, 405B: ~231GB | Meta, 多功能尺寸。 |
Qwen3 (通义千问 3) | 0.6B, 1.7B, 4B, 8B, 14B, 30B, 32B, 235B | 多样 | 阿里巴巴, 最新一代, 密集 & MoE。 |
Qwen2.5-coder | 0.5B, 1.5B, 3B, 7B, 14B, 32B | 多样 | 阿里巴巴, 代码专用。 |
Qwen2.5vl | 3B, 7B, 32B, 72B | 多样 | 阿里巴巴, 视觉语言。 |
Gemma 3 | 1B, 4B, 12B, 27B | 1B: ~815MB, 27B: ~17GB | 谷歌, 通过新引擎支持视觉。(2025 年 5 月) |
Phi 4 | 14B | ~9.1GB | 微软。 |
Phi 4 reasoning | 14B | 微软, 专注推理。 | |
Phi 4 mini reasoning | 3.8B | 微软, 轻量级推理。 | |
DeepSeek-R1 | 1.5B, 7B, 8B, 14B, 32B, 70B, 671B | 多样 (671B: ~404GB) | DeepSeek, 推理模型。(持续更新/澄清中) |
Devstral | 24B | 多样 | 用于代码智能体。 |
Mistral Small 3.1 | 24B (有效) | 多样 | Mistral AI, 视觉 & 长上下文。 |
Granite3.3 | 2B, 8B | 8B: ~4.9GB | IBM, 128K 上下文, 推理。 |
Cogito | 3B, 8B, 14B, 32B, 70B | 多样 | Deep Cogito, 混合推理。 |
DeepCoder | 1.5B, 14B | 多样 | 开源代码模型。 |
CodeQwen | (未指定大小, 但功能广泛) | 多样 | 阿里巴巴, 代码生成, 92 种语言, 64k 上下文。 |
Mistral-Nemo | 12B | 多样 | Mistral AI & NVIDIA, 128k 上下文。 |
QwQ (Qwen 系列) | 32B | ~20GB | 阿里巴巴, 推理模型。 |
Mixtral | 8x7B, 8x22B | 多样 | Mistral AI, MoE 模型。 |
OpenThinker | 7B, 32B | 多样 | 从 DeepSeek-R1 蒸馏, 推理。 |
选择合适的模型取决于你的具体需求(例如,是进行通用聊天、代码生成还是特定领域的问答)以及你的硬件配置(特别是 RAM 和 VRAM 大小)。Ollama 通常会提供不同参数大小的模型版本,你可以根据自己的设备情况进行选择。
本地运行 LLM 时,最重要的考量之一就是内存占用,尤其是显存 (VRAM)。模型的大小和它的量化精度直接决定了所需的内存。
量化是指将模型中的浮点数(通常是 16 位或 32 位)转换为更小的整数格式(如 8 位、4 位甚至 2 位),从而显著减小模型体积,降低内存和计算资源需求。当然,这也会对模型的性能产生轻微影响,但对于本地部署而言,通常是一个可以接受的权衡。
Ollama 广泛使用 GGUF (Georgi Gerganov Unified Format) 格式的模型,这是一种为本地 LLM 优化而设计的格式,支持多种量化级别。
内存占用计算方式:
运行模型时的内存占用(RAM 或 VRAM)比模型文件大小更复杂,因为它不仅包括模型权重,还包括:
num_ctx
):上下文越长,需要缓存的 token 越多。q8_0
或 q4_0
),但这通常需要启用 Flash Attention 等特性。一个粗略的 VRAM/RAM 估算规则 (针对模型权重部分):
f16
:参数量 (B) × 2 ≈ GBq8_0
:参数量 (B) × 1 ≈ GBq4_K_M
(或类似 4 位):参数量 (B) × 0.5 + 少量额外开销 ≈ GB总内存占用会显著高于仅模型权重所需的内存,特别是当上下文窗口较大或并发用户较多时。例如,一个 13B 模型用 f16
可能需要 26GB 存储权重,但加上 KV 缓存(比如 10 个并发用户,2000 token 上下文)可能轻易超过 100GB。 对于本地 Ollama 使用,通常是单个用户,但上下文长度依然是重要因素。
下表提供了一个基于模型参数量和常见量化方式的大致内存占用(主要指模型权重加载到内存中)和推荐系统内存的参考。请注意,这些数值是近似值,实际需求会因具体模型、上下文长度设置 (num_ctx
)、并发请求以及 KV 缓存等因素而变化。
模型参数规模 | 量化级别 | 估算模型文件/权重内存 (GB) | 推荐最小系统 RAM (GB) | 备注 |
---|---|---|---|---|
~1B - 3B | q4_K_M | ~0.6 - 1.8 | 8 | 适合轻量级任务,可在较低配置硬件上运行。 |
q8_0 | ~1.0 - 3.0 | 8 - 16 | ||
~7B - 8B | q4_K_M | ~3.8 - 5.0 | 8 - 16 | 平衡性能与资源消耗的常见选择。 |
q5_K_M | ~4.5 - 5.5 | 16 | 略高质量,内存需求稍高。 | |
q8_0 | ~7.0 - 8.0 | 16 - 32 | 更高质量,但需要更多内存。 | |
~13B-15B | q4_K_M | ~7.0 - 9.0 | 16 - 32 | 更复杂的任务,需要较好硬件。 |
q5_K_M | ~8.5 - 10.0 | 32 | ||
q8_0 | ~13.0 - 15.0 | 32 - 64 | ||
~30B-34B | q4_K_M | ~16.0 - 20.0 | 32 - 64 | 适合需要更强推理能力的应用。 |
q5_K_M | ~20.0 - 23.0 | 64 | ||
~70B | q3_K_M | ~28.0 - 33.0 | 64 | 即使是 3 位量化,70B 模型也需要大量内存。 |
q4_K_M | ~38.0 - 43.0 | 64 - 128 | 高端模型,对硬件要求很高。 | |
q5_K_M | ~45.0 - 50.0 | 128+ | ||
~100B+ | q4_K_M | ~55.0+ | 128+ | 通常需要多 GPU 或非常高端的硬件。 |
虽然 Ollama 的 CLI 功能强大,但对于一些用户来说,图形用户界面 (GUI) 可能更加友好和直观。以下是一些广受欢迎的 Ollama Web UI:
Cherry Studio: AI 模型聚合客户端,支持多种官方 API 及本地部署的 Ollama 模型,界面美观,功能丰富。
Open WebUI: (曾用名 Ollama WebUI) 一款功能丰富、用户友好的自托管 Web UI,支持离线操作,界面风格类似 ChatGPT,提供包括 RAG、模型管理在内的多种高级功能。
Lobe Chat: 一个注重本地运行和用户隐私的 UI 框架,界面设计时尚现代化,支持通过插件系统扩展功能,并可以作为 PWA 应用使用。
追求功能全面、类似线上 ChatGPT 体验:Open WebUI 是首选,它功能强大,社区活跃,并且持续更新。
注重界面美观、多 API 聚合管理:Cherry Studio 和 Lobe Chat 都是不错的选择,前者在聚合多种商业和本地模型方面有优势,后者则以时尚的 UI 和插件扩展性为特点。
GitHub Copilot 无疑是代码辅助的利器,但如果你追求数据隐私或希望完全掌控所使用的模型,Ollama 结合 Continue 是一个绝佳的本地替代方案。
虽然本地模型的性能可能在某些方面与顶级的云端代码助手(如最新的 GPT-4 驱动的 Copilot)相比仍有差距,特别是对于非常复杂的任务或需要海量上下文理解的情况 。但对于许多日常编码任务、快速原型验证和学习新语言/框架而言,基于 Ollama 的本地代码助手已经足够强大和实用。随着开源模型和 Ollama 本身的不断进步,本地代码辅助的能力也在持续增强。
Continue 是一个开源的 VS Code 插件,它允许你连接到各种本地或远程的 LLM 服务,提供代码自动补全、代码生成、重构、问答等功能,功能与 GitHub Copilot 和 ChatGPT 类似,但可以完全在本地运行。
以下是如何设置 Ollama 和 Continue 来实现本地 Copilot 功能的步骤:
选择合适的代码模型: 首先,你需要从 Ollama 支持的模型中选择一个擅长代码生成的模型。例如 codellama, deepseek-coder, qwen2.5-coder, codestral 或 phi-3 等都是不错的选择 。可以通过 ollama pull <model_name> 下载
拉取代码生成模型: Ollama 库中有一些专门为代码任务优化的模型,例如:
codellama:7b-instruct
)deepseek-coder:7b-instruct
)qwen:7b-chat
)wizardcoder:7b-python
)通过以下命令拉取:
bashollama pull codellama:7b-instruct
ollama pull deepseek-coder:7b-instruct
# 根据你的需求选择其他模型
安装 Continue VS Code 插件: 在 VS Code 扩展市场搜索 "Continue",然后点击安装。
配置 Continue 连接到 Ollama:
安装 Continue 插件后,它会自动打开一个 config.json
文件(或点击左侧边栏的 Continue 图标,然后点击齿轮图标进入设置)。你需要修改 models
部分来连接到 Ollama。
这是 config.json
的一个示例配置:
json{
"models": [
{
"title": "Ollama",
"provider": "ollama",
"model": "AUTODETECT"
}
],
"tabAutocompleteModel": {
"title": "qwen2.5-coder:7b",
"provider": "ollama",
"model": "qwen2.5-coder:7b"
},
"tabAutocompleteOptions": {
"debounceDelay": 1000,
"maxPromptTokens": 1500
// "disableInFiles": ["*.md"]
}
}
name
:这是你在 Continue 插件中看到和选择的模型名称。base_model
:这必须与你在 Ollama 中运行的实际模型名称(例如 qwen2.5-coder:7b
)完全匹配。provider
:设置为 ollama
。api_base
:Ollama 服务的默认地址是 http://localhost:11434
。在 VS Code 中使用 Continue:
Ctrl+L
或 Cmd+L
)打开 Continue 的侧边栏,直接向模型提问、生成代码、重构代码等。