← 返回首页
🖥️ Ollama · 本地LLM完整指南 2025

Ollama完整指南2025
本地免费运行Llama 3/Mistral/Gemma

零API费用 · 数据完全私密 · 离线可用 · 50+模型支持 · 含Python API和LangChain集成

📅 2025年5月更新 ⏱ 阅读时长约14分钟 👁 41.3k 次阅读 💻 含完整代码
$0
API费用(本地运行,完全免费)
100%
数据隐私(不上传任何数据)
50+
支持模型数量
5min
从安装到第一次对话

🖥️ Ollama是什么?

Ollama是一个开源工具,让你可以在自己的电脑上一行命令运行各种大语言模型,无需云端API、无需付费、数据完全留在本地。它解决了本地运行LLM最大的技术门槛:复杂的安装配置、CUDA/ROCm环境、量化参数调整等。

为什么要本地运行LLM?

💡 Ollama vs 直接运行模型

Ollama相比直接使用HuggingFace运行模型的优势:自动量化(4bit/8bit节省显存)、统一API接口(OpenAI兼容格式)、模型管理系统(pull/push/rm)、自动GPU/CPU调度,以及内置的REST服务,相当于在你电脑上运行了一个"本地版OpenAI API"。

💻 硬件要求与模型选择

本地LLM对硬件要求主要在于显存(VRAM)或内存(RAM)。以下是推荐配置:

✅ 理想配置(GPU运行)

  • NVIDIA GPU 16GB+ VRAM
  • (RTX 4080/4090,A10/A100)
  • 32GB+ 系统内存
  • 可运行:70B模型(量化版)
  • 速度:30-60 tokens/秒

⚡ 主流配置

  • NVIDIA GPU 8GB VRAM
  • (RTX 4060 Ti / RTX 3080)
  • 16GB 系统内存
  • 可运行:8B-13B模型
  • 速度:20-40 tokens/秒

⚠️ 最低配置(CPU运行)

  • 无独显,仅CPU
  • 16GB+ 系统内存
  • Apple Silicon(M系列)也可
  • 可运行:3B-7B模型
  • 速度:3-10 tokens/秒(慢)

🍎 Apple Silicon用户特别说明

MacBook Pro M3/M4 Max(64GB统一内存)是运行本地LLM的最佳便携硬件——统一内存架构使GPU可访问全部64GB,可流畅运行70B量化模型,速度约20 tokens/秒。性价比远超同价位PC+GPU方案。M2 Pro(16GB)可流畅运行13B模型。

根据显存选择模型规格

⚙️ 安装与快速开始

# macOS / Linux 一行安装
curl -fsSL https://ollama.com/install.sh | sh

# Windows:下载安装包
# https://ollama.com/download/windows

# 验证安装
ollama --version
bash
# 下载并运行模型(自动下载+启动对话)
ollama run llama3.1        # Meta Llama 3.1 8B(4.7GB)
ollama run mistral         # Mistral 7B(4.1GB)
ollama run gemma2          # Google Gemma 2 9B(5.4GB)
ollama run qwen2.5         # Qwen 2.5 7B,中文最强(4.4GB)
ollama run codellama       # Meta Code Llama(代码专精)
ollama run phi3.5          # Microsoft Phi-3.5 Mini(2.2GB)轻量
ollama run llama3.1:70b    # Llama 3.1 70B(需24GB+ VRAM)

# 下载完成后直接进入对话模式
# 输入 /bye 退出,Ctrl+D 也可
bash - 下载并运行模型
# 常用管理命令
ollama list              # 查看已下载的模型
ollama ps               # 查看正在运行的模型
ollama rm llama3.1      # 删除模型(释放磁盘空间)
ollama pull mistral     # 仅下载不运行
ollama show llama3.1    # 查看模型详情
bash - 模型管理

🤖 2025年推荐模型列表

模型 参数量 大小 最低VRAM 特长 命令
Llama 3.1 8B 8B 4.7GB 6GB 通用最强 ollama run llama3.1
Llama 3.1 70B 70B 40GB 24GB 高质量推理 ollama run llama3.1:70b
Mistral 7B 7B 4.1GB 6GB 代码 欧洲语言 ollama run mistral
Qwen2.5 7B 7B 4.4GB 6GB 中文最强 ollama run qwen2.5
Qwen2.5 72B 72B 47GB 32GB 中文顶尖 ollama run qwen2.5:72b
Gemma 2 9B 9B 5.4GB 8GB 推理 安全 ollama run gemma2
CodeLlama 13B 13B 7.3GB 10GB 代码专精 ollama run codellama:13b
Phi-3.5 Mini 3.8B 2.2GB 4GB 轻量高效 ollama run phi3.5
Mixtral 8x7B 47B MoE 26GB 24GB 高速 多语言 ollama run mixtral
DeepSeek-R1 7B 7B 4.7GB 6GB 推理 数学 ollama run deepseek-r1:7b

🇨🇳 中文用户首选

如果你主要使用中文,强烈推荐 Qwen2.5(通义千问,阿里巴巴出品)系列。Qwen2.5 7B中文理解和生成能力远超同参数量的Llama/Mistral,7B版本只需6GB显存,在低配机器上也能流畅运行。ollama run qwen2.5

⌨️ 命令行使用完全指南

# 单次问答(不进入对话模式)
ollama run llama3.1 "用Python写一个冒泡排序"

# 管道输入(处理文件内容)
cat report.txt | ollama run llama3.1 "总结这份报告的关键点"

# 指定参数运行
ollama run llama3.1 --verbose  # 显示详细输出(token速度等)

# 在对话模式中的特殊命令
# /help     显示帮助
# /show info  显示模型信息
# /set system "你是..." 设置系统提示词
# /set temperature 0.8  设置创意度
# /set num_ctx 8192  设置上下文长度
# /save mysession  保存对话
# /bye  退出
bash

🔌 REST API与Python调用

Ollama运行后会在 http://localhost:11434 提供REST API,兼容OpenAI API格式,现有OpenAI代码几乎无需修改即可切换到本地模型:

# 方法1:使用Ollama原生API(curl测试)
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.1",
  "prompt": "为什么天空是蓝色的?",
  "stream": false
}'

# 方法2:使用ollama Python库
pip install ollama
bash
import ollama

# 简单对话
response = ollama.chat(
    model='llama3.1',
    messages=[{'role': 'user', 'content': '用Python写一个简单的HTTP服务器'}]
)
print(response['message']['content'])

# 流式输出
stream = ollama.chat(
    model='llama3.1',
    messages=[{'role': 'user', 'content': '写一首关于编程的诗'}],
    stream=True
)
for chunk in stream:
    print(chunk['message']['content'], end='', flush=True)

# 多轮对话(维护历史)
messages = [{'role': 'system', 'content': '你是一个Python专家,简洁地回答问题。'}]

while True:
    user_input = input('你: ')
    if user_input == 'exit': break
    messages.append({'role': 'user', 'content': user_input})
    response = ollama.chat(model='llama3.1', messages=messages)
    reply = response['message']['content']
    messages.append({'role': 'assistant', 'content': reply})
    print(f'AI: {reply}')
Python - ollama库
# 方法3:OpenAI兼容API(现有代码几乎不需要改)
from openai import OpenAI

client = OpenAI(
    base_url='http://localhost:11434/v1',  # 指向本地Ollama
    api_key='ollama'  # 随意填,本地不验证
)

response = client.chat.completions.create(
    model='llama3.1',  # 改成你想用的本地模型
    messages=[{'role': 'user', 'content': 'Hello!'}]
)
print(response.choices[0].message.content)
Python - OpenAI兼容API

🖥️ Open WebUI:ChatGPT级别的本地界面

Open WebUI是为Ollama设计的开源Web界面,功能媲美ChatGPT Plus,完全本地运行:

# 使用Docker一键安装(推荐)
docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

# 访问:http://localhost:3000
# 首次访问需要创建管理员账户(本地,无需联网)
bash

Open WebUI核心功能

🦜 与LangChain集成

# 安装
pip install langchain-ollama

# 在LangChain中使用本地Ollama模型
from langchain_ollama import ChatOllama, OllamaEmbeddings
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

# 替换远程LLM,其他代码完全不变
llm = ChatOllama(model="llama3.1", temperature=0.7)

prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个有帮助的AI助手,用中文回答。"),
    ("human", "{question}")
])

chain = prompt | llm | StrOutputParser()
print(chain.invoke({"question": "用三句话解释机器学习"}))

# 本地嵌入(用于RAG,无需OpenAI embeddings API费用)
embeddings = OllamaEmbeddings(model="nomic-embed-text")
# 下载嵌入模型:ollama pull nomic-embed-text
Python - LangChain + Ollama

💡 完全免费的本地RAG系统

结合Ollama + LangChain + ChromaDB,可以构建完全本地、完全免费的RAG文档问答系统:Ollama提供LLM推理(无API费用)+ nomic-embed-text提供嵌入向量(替代OpenAI text-embedding,免费)+ ChromaDB本地向量存储。适合处理敏感文件(医疗/法律/财务文档)。

📝 自定义Modelfile

Modelfile类似Docker的Dockerfile,让你可以创建具有特定角色、参数和知识的专属AI:

# 创建文件:Modelfile
FROM llama3.1

# 设置系统提示词(角色定义)
SYSTEM """
你是一位专业的Python代码审查专家,有10年大型项目经验。
你的任务是审查代码质量,你会:
1. 指出潜在的bug和安全漏洞
2. 建议性能优化方案
3. 检查代码规范(PEP 8)
4. 推荐更Pythonic的写法
回答简洁专业,直接指出问题,不需要额外解释。
"""

# 调整模型参数
PARAMETER temperature 0.3      # 低温度 = 更一致
PARAMETER num_ctx 8192          # 上下文长度
PARAMETER top_p 0.9
Modelfile
# 从Modelfile创建自定义模型
ollama create code-reviewer -f Modelfile

# 使用自定义模型
ollama run code-reviewer

# 查看所有模型(包括自定义)
ollama list
bash

⚡ 性能优化技巧

显存优化

速度优化

# 设置并发请求数(默认1)
export OLLAMA_NUM_PARALLEL=2

# 保持模型常驻内存(避免每次重载)
export OLLAMA_KEEP_ALIVE=24h  # 保持24小时不卸载

# Linux用户:增加显存带宽(如果有多GPU)
export CUDA_VISIBLE_DEVICES=0,1
bash

Flash Attention(速度提升)

# 在Modelfile中启用Flash Attention(支持的模型)
PARAMETER flash_attn true    # 速度提升20-40%,内存更高效
Modelfile

🎯 最佳使用场景

🔒 隐私敏感文档处理

合同分析、医疗记录摘要、财务报告解读。数据不离开本机,完全合规。搭配Open WebUI可团队内部共享使用。

💻 代码补全与审查

Codellama/Deepseek-Coder做IDE集成代码补全(Continue.dev插件),零延迟,成本仅为GitHub Copilot的0%。

🔬 研究与实验

测试不同模型在特定任务上的表现,微调参数,评估开源模型效果,无需担心API费用。

📦 离线/边缘部署

工厂、医院、军事等无互联网环境;或客户数据不能出境的合规要求场景。

🌐 本地RAG知识库

结合LangChain构建企业内部知识问答系统,文档不上传云端,索引和推理全部本地完成。

🎓 学习与研究LLM

深入理解LLM工作原理,可修改temperature/top_p等参数观察效果,最好的学习沙箱。

⚠️ 本地LLM的局限性

本地模型相比商业API的劣势:质量差距(7B模型与GPT-4o仍有明显差距)、速度较慢(没有专业推理芯片加速)、无实时搜索(知识截止到训练数据)、多模态有限(文生图等需要额外配置)。建议:本地处理隐私/低频任务,云端API处理高质量/高频任务,两者结合最佳。

🔗 相关教程

Hugging Face入门指南 LangChain入门指南 Llama 3本地部署指南 2025最佳免费AI工具 DeepSeek完整评测