晴天技术
AI5 min read

本地部署大模型:用 Ollama 在自己电脑上跑 LLM

本地部署大模型:用 Ollama 在自己电脑上跑 LLM

Ollama本地模型LLM隐私

不想把数据发给云端?本地部署大模型是最佳选择。本文介绍如何用 Ollama 在本地运行大模型。

为什么要本地部署?

优势

  • 数据隐私:数据不离开你的电脑
  • 无网络依赖:断网也能用
  • 无限制使用:没有 API 调用限制
  • 免费:不需要付费 API
  • 可定制:可以微调模型

劣势

  • 需要硬件:需要较好的 GPU
  • 模型较小:本地模型比云端小
  • 速度较慢:取决于硬件配置

Ollama 简介

Ollama 是最简单的本地大模型运行工具:

  • 一行命令安装
  • 支持多种模型
  • 提供 API 接口
  • 支持 macOS、Linux、Windows

安装

macOS

brew install ollama

Linux

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

Windows

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

基本使用

下载模型

# Llama 3 (Meta)
ollama pull llama3

# Phi-3 (Microsoft)
ollama pull phi3

# Gemma 2 (Google)
ollama pull gemma2

# Qwen 2 (阿里)
ollama pull qwen2

# DeepSeek
ollama pull deepseek-coder

运行模型

ollama run llama3

直接在终端对话:

>>> 什么是微服务?
微服务是一种架构风格...

查看已下载模型

ollama list

删除模型

ollama rm llama3

模型推荐

通用对话

模型大小特点
llama3:8b4.7GBMeta 出品,综合能力强
qwen2:7b4.4GB阿里出品,中文好
gemma2:9b5.4GBGoogle 出品
phi3:mini2.3GB微软出品,小巧

代码生成

模型大小特点
deepseek-coder:6.7b3.8GB代码能力最强
codellama:7b3.8GBMeta 代码模型
qwen2.5-coder:7b4.4GB代码能力强

中文优化

模型大小特点
qwen2:7b4.4GB中文最好
glm4:9b5.5GB智谱出品
yi:9b5.5GB零一万物

API 使用

Ollama 提供 OpenAI 兼容的 API:

启动服务

ollama serve

调用 API

curl http://localhost:11434/api/chat -d '{
  "model": "llama3",
  "messages": [
    {"role": "user", "content": "你好"}
  ]
}'

Python 调用

import requests

response = requests.post('http://localhost:11434/api/chat', json={
    'model': 'llama3',
    'messages': [
        {'role': 'user', 'content': '什么是微服务?'}
    ]
})

print(response.json()['message']['content'])

Java 调用

// 使用 Spring AI
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.options.model=llama3

硬件要求

最低配置

  • CPU:4 核
  • 内存:8GB
  • 硬盘:10GB
  • GPU:无(CPU 运行,较慢)

推荐配置

  • CPU:8 核+
  • 内存:16GB+
  • 硬盘:50GB+ SSD
  • GPU:NVIDIA 8GB+ VRAM

GPU 支持

# 检查 NVIDIA GPU
nvidia-smi

# Ollama 会自动使用 GPU
ollama run llama3

实际应用

1. 本地代码助手

# 用 deepseek-coder 做代码助手
ollama run deepseek-coder

2. 文档问答

from langchain_community.llms import Ollama
from langchain_community.vectorstores import FAISS

llm = Ollama(model="llama3")
# 配合 RAG 使用

3. 本地 API 服务

# 启动 Ollama 服务
ollama serve

# 其他应用通过 API 调用
curl http://localhost:11434/api/generate -d '{
  "model": "llama3",
  "prompt": "写一个快速排序"
}'

性能优化

1. 使用量化模型

# 4-bit 量化模型更小更快
ollama pull llama3:8b-q4_0

2. 调整上下文长度

OLLAMA_NUM_CTX=4096 ollama run llama3

3. 多 GPU

# Ollama 自动支持多 GPU
CUDA_VISIBLE_DEVICES=0,1 ollama run llama3

和云端 API 对比

维度本地 Ollama云端 API
数据隐私✅ 完全本地❌ 数据上传
费用免费按量付费
模型大小7B-70B数千亿参数
质量中等最高
速度取决于硬件
离线使用

常见问题

1. 内存不足

# 使用更小的模型
ollama pull phi3:mini

# 或量化版本
ollama pull llama3:8b-q4_0

2. 速度太慢

  • 使用 GPU
  • 减少上下文长度
  • 使用量化模型

3. 中文效果不好

使用中文优化模型:

ollama pull qwen2:7b

总结

本地部署大模型适合:

  • 注重隐私:数据不能上传
  • 离线使用:没有网络环境
  • 大量调用:API 费用太高
  • 学习研究:了解模型原理

Ollama 让本地部署变得非常简单,推荐所有开发者尝试。