简介
Ollama 是一款专注于本地化部署和运行大型语言模型(LLM)的开源框架,旨在简化模型的部署与管理流程,同时保障数据隐私与资源高效利用。
安装 Ollama
安装步骤
在 Linux 上安装:
curl -s https://get.ollama.ai | sudo bash
验证:
systemctl status ollama # 查看服务状态
journalctl -u ollama -f # 查看系统日志
在 macOS 上安装:
brew install ollama
在 Windows 上安装:
- 下载 Windows 安装包并按照说明进行安装。
容器方式安装:
# 启动容器(映射端口 11434,数据持久化)
docker run -d -p 11434:11434 --name ollama -v ollama_data:/root/.ollama ollama/ollama
# 下载 DeepSeek R1 模型(以 1.5B 轻量版为例)
docker exec -it ollama ollama run deepseek-r1:1.5b
安装完成后,启动 Ollama 服务:
ollama serve
基础指令
# 基础模型管理,支持的模型可在 Ollama 官网查询
ollama list # 查看已加载的模型列表
ollama run <模型名称>:<版本> # 下载并运行模型(若未下载会自动拉取)
ollama rm <模型名称> # 删除指定模型(需先停止运行)
ollama create <自定义模型名> -f ./Modelfile # 根据配置文件构建模型
ollama show deepseek-r1:7b --modelfile # 查看模型详细信息
# 运行控制
ollama serve # 启动本地服务(默认端口11434)
ollama ps # 显示正在运行的模型及进程ID
ollama stop <模型名称> # 终止指定模型实例
# 系统与调试
ollama -v # 显示当前 Ollama 版本
ollama prune # 删除未使用的模型缓存文件
tail -f ~/.ollama/logs/server.log # 实时查看运行日志(Linux/macOS)
ollama serve --reset # 清除所有配置并重启服务
# 模型优化指令
ollama quantize <输入模型> <输出模型> [量化参数]
# 示例:将 FP16 模型转为 Q4_K_M 量化版本
ollama quantize deepseek-r1:7b deepseek-r1:7b-q4_k_m
# 设置环境变量启用 GPU(需提前安装 CUDA 驱动)
export OLLAMA_GPU_LAYER=auto_split # Linux/macOS
# set OLLAMA_GPU_LAYER=auto_split # Windows
ollama run deepseek-r1:7b --gpu-layers 20 --max-vram 8000 # 限制模型使用的 GPU 显存量(单位 MB)
journalctl -u ollama # 查看日志, 可选-f查看实时日志
查看机器GPU型号
# Windows:通过任务管理器(性能 → GPU)查看型号
dxdiag # directX诊断工具
# Linux/macOS:
lspci | grep -i vga
# 查看GPU使用情况
nvidia-smi # 查看 NVIDIA GPU 信息及使用状态,在Processes中找是否有ollama的服务
nvidia-smi pmon -c 1 -s u # 输出当下 GPU 利用率监控
nvidia-smi -l 1 -f gpu.log # 每秒记录一次 GPU 状态到日志文件
下载 DeepSeek 模型
-
模型类型与版本选择
- 在 Ollama 官网的模型库中搜索 deepseek,可选模型包括:
- DeepSeek-R1(推理模型,参数从 1.5b 到 671b)
- DeepSeek-Coder(代码生成模型)
- DeepSeek-V3(通用模型)
- 根据硬件配置选择参数:低配设备(如 16GB 内存)建议 7b 或更高版本,避免 1.5b 版本因性能不足导致“降智”。
- 在 Ollama 官网的模型库中搜索 deepseek,可选模型包括:
-
下载模型(可直接输入指令)
- 复制模型命令(如
ollama run deepseek-r1:7b
)到终端执行,等待下载完成。 - 模型文件默认存储目录
- Windows:
C:\Users\<用户名>\.ollama\models
- Linux:
/usr/share/ollama/.ollama/models
- macOS:
~/.ollama/models
- 可通过环境变量
OLLAMA_MODELS
修改路径。
- Windows:
- 复制模型命令(如
运行与测试模型
-
启动模型
- 终端输入
ollama run deepseek-r1:7b
启动模型,出现>>> Send a message
提示后即可对话(输入Ctrl+D
退出)。 - 多模型管理:使用
ollama list
查看已安装模型,ollama ps
查看运行实例。
- 终端输入
-
性能优化(可选)
- 量化技术:通过
ollama quantize
命令降低模型显存占用,例如将 7b 模型从 FP16(14GB 显存)压缩为 Q4_K_M(6.8GB 显存),提升推理速度。 - GPU 加速:若支持 NVIDIA 显卡,配置
OLLAMA_GPU_LAYER=auto_split
启用混合计算。
- 量化技术:通过
配置交互界面(可选)
- Chatbox(推荐)
- 下载 Chatbox,安装
# 克隆 Chatbox 官方仓库 git clone https://github.com/Bin-Huang/chatbox.git cd chatbox # 通过 Docker Compose 启动服务(默认端口 8080) docker-compose up -d
- 支持中文界面,提供更直观的对话体验。
- 下载 Chatbox,安装
- Open WebUI
- 通过 Docker 部署 Open WebUI
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
使用网页界面。- 首次进入需注册账号或使用默认管理员权限登录(若未禁用认证)
- 通过 Docker 部署 Open WebUI
OPEN API 调用
- Ollama 默认监听端口为 11434,设置 BaseUrl:
http://localhost:11434/api
- 在本地开发环境下,Ollama 默认不强制要求 API Key 验证。
- 使用 OpenAI 客户端连接时,
api_key
字段可填写任意占位符(例如ollama
),此时无需真实密钥即可访问本地服务。
- 使用 OpenAI 客户端连接时,
- 测试调用
curl http://localhost:11434/api/generate -d '{ "model": "deepseek-r1:7b", "prompt": "解释量子力学", "stream": false }'
模型优化技术介绍
Ollama 作为本地化部署大语言模型的工具,其核心优化策略围绕 显存压缩、计算效率提升 和 硬件资源调度 展开
量化技术优化(显存压缩核心方案)
- 权重量化
- 低精度量化:支持 INT8/INT4 量化,显存占用可压缩至原模型的 1/3。例如 8B 参数的模型,32K 上下文窗口下:FP16 需要 6GB 显存 → Q8_0 量化后仅需 3GB → Q4_0 进一步降至 2GB
- 动态混合量化:对关键层(注意力输出层)保留 4-6bit 精度,非关键层(如 MoE 专家层)压缩至 1.58-2bit,体积缩减至原版 18%。
- KV Cache 优化
- 通过设置环境变量 OLLAMA_KV_CACHE_TYPE=“q8_0” 启用 8-bit 缓存,减少长文本生成时的显存占用。
- 结合分块加载机制,将长文本拆分为 2048 token 的块处理,避免单次显存溢出。
硬件资源调度优化
- GPU/CPU 混合调度
- 显存与内存协同:通过 num_gpu_layers 参数控制加载到 GPU 的层数(如设为 40),剩余层自动分配到 CPU,实现显存-内存动态平衡。
- 多卡并行:支持 CUDA_VISIBLE_DEVICES 指定多 GPU,例如 CUDA_VISIBLE_DEVICES=0,1 ollama run 实现双卡负载均衡。
- 环境变量调优
- 并发处理:设置 OLLAMA_NUM_PARALLEL=2(按 GPU 数量 ×1.5 调整),提升多任务吞吐量。
- 模型驻留:OLLAMA_KEEP_ALIVE=24h 保持模型在内存中,减少重复加载耗时。
- 存储路径迁移:通过 OLLAMA_MODELS=D:\OllamaModels 避免 C 盘空间不足,支持模型文件批量迁移
待办
- 使用动态量化技术部署 DeepSeek 671B 模型
- 模型微调实现