本文面向:想在本地运行大模型的开发者,不需要任何云端 API Key。
预计阅读时间:10 分钟
最终效果:在本机跑通 Ollama,下载并运行大模型,验证可用。


Ollama 是什么

Ollama 是一个本地运行大模型的工具。一行命令就能下载并运行 Llama、Qwen、Mistral 等开源模型,不需要 GPU 服务器,不需要 API Key,完全免费。

为什么用本地模型

对比 本地(Ollama) 云端(OpenAI 等)
费用 完全免费 按 token 计费
隐私 数据不出本机 需发送到云端
速度 取决于硬件 稳定快速
离线 可以 不行
模型选择 qwen2.5、llama3、mistral 等 gpt-4o、claude 等
质量 够用,7B 模型接近 GPT-3.5 更好

前置条件

条件 说明
内存 >= 8GB 7B 模型需要约 5GB 内存
磁盘 >= 10GB 模型文件
Node.js >= 20 node -v 检查版本

macOS 用户注意: Apple Silicon (M1/M2/M3) 跑 Ollama 效果很好,比 Intel Mac 快很多。8GB 内存的 M1 跑 7B 模型足够流畅。

第一步:安装 Ollama

macOS / Linux

curl -fsSL https://ollama.com/install.sh | sh

Windows

irm https://ollama.com/install.ps1 | iex

或者去 ollama.com/download 下载安装包,双击安装。

验证安装

ollama --version
# 输出类似:ollama version 0.6.2

第二步:拉取模型

# 通用对话模型(约 4.7GB,首次下载需要几分钟)
ollama pull qwen2.5:7b

# Embedding 模型(约 274MB,用于文本转向量)
ollama pull nomic-embed-text

验证模型下载完成:

ollama list
# 应该看到:
# NAME                    SIZE
# qwen2.5:7b              4.7 GB
# nomic-embed-text         274 MB

模型选型建议

对话 / 摘要模型:

模型 大小 适合场景
qwen2.5:3b 2GB 内存紧张,质量一般
qwen2.5:7b 4.7GB 推荐,性价比最高
qwen2.5:14b 9GB 内存充足,质量更好
llama3.1:8b 4.7GB 英文为主的场景
mistral:7b 4.1GB 速度优先

Embedding 模型:

模型 大小 说明
nomic-embed-text 274MB 推荐,专为 Embedding 设计,维度 768
mxbai-embed-large 670MB 更高精度,维度 1024

第三步:测试模型

拉取完成后,测试模型能不能正常响应:

ollama run qwen2.5:7b "用一句话解释什么是向量数据库"

正常情况下会输出一段解释。输入 /bye 退出。

如果报错或无响应,检查 Ollama 服务是否在运行:

ollama serve
# 如果提示端口占用,说明已经在运行了,可以忽略

测试 Embedding 模型:

curl http://localhost:11434/api/embeddings -d '{
  "model": "nomic-embed-text",
  "prompt": "Hello world"
}'
# 应该返回一个很长的浮点数组

第四步:API 调用

Ollama 启动后会在 http://localhost:11434 提供 OpenAI 兼容的 API。

对话 API

curl http://localhost:11434/v1/chat/completions -d '{
  "model": "qwen2.5:7b",
  "messages": [{"role": "user", "content": "Hello"}]
}'

Embedding API

curl http://localhost:11434/v1/embeddings -d '{
  "model": "nomic-embed-text",
  "input": "Hello world"
}'

这意味着任何支持 OpenAI API 格式的工具都能直接用 Ollama 作为后端。

性能调优

并发设置

默认 Ollama 只处理一个请求。可以调整:

OLLAMA_NUM_PARALLEL=2 ollama serve

内存警告: 并发数为 2 意味着同时加载两个模型实例,内存占用翻倍。8GB 内存的机器建议保持默认 1。

模型预加载

Ollama 默认在第一次请求时加载模型到内存。如果第一次请求特别慢,可以预先加载:

curl http://localhost:11434/api/generate -d '{"model": "qwen2.5:7b", "keep_alive": "24h"}'

GPU 加速

  • NVIDIA GPU: Ollama 自动检测并使用 CUDA
  • Apple Silicon: 自动使用 Metal 加速,无需配置
  • AMD GPU: Linux 下支持 ROCm

常见问题

“connection refused” 或 “ECONNREFUSED”

Ollama 没有运行。启动它:

ollama serve

模型下载失败 / 速度慢

国内网络可能需要设置代理:

export https_proxy=http://127.0.0.1:7890
ollama pull qwen2.5:7b

“out of memory”

7B 模型在 8GB 内存的机器上比较紧张。尝试用更小的模型:

ollama pull qwen2.5:3b

macOS 上提示 “not supported on this architecture”

确保下载的是 Apple Silicon 版本,不是 Intel 版本。去 ollama.com/download 重新下载。

集成 ChatCrystal

Ollama 安装好后,可以作为 ChatCrystal 的 LLM 和 Embedding 后端。在 ChatCrystal 设置页面填写:

字段
LLM Provider ollama
LLM Model qwen2.5:7b
LLM Base URL http://localhost:11434
Embedding Provider ollama
Embedding Model nomic-embed-text
Embedding Base URL http://localhost:11434

或者通过环境变量配置:

LLM_PROVIDER=ollama
LLM_MODEL=qwen2.5:7b
LLM_BASE_URL=http://localhost:11434

EMBEDDING_PROVIDER=ollama
EMBEDDING_MODEL=nomic-embed-text
EMBEDDING_BASE_URL=http://localhost:11434

项目地址:github.com/ZengLiangYi/ChatCrystal

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐