Ollama本地大模型安装配置完整流程教学
Ollama介绍和特性
如果你正在寻找一个轻量级、易于上手的大模型管理工具,那么Ollama大概率会进入你的视野。它设计的初衷,就是让开发者能够快速加载、管理、调用各种主流大模型,并且支持本地化部署。听起来是不是挺方便的?那么,它到底强在哪里?
核心特点一览:
- 轻量化设计——体积小巧,安装简单,个人开发者和小型团队都能轻松上手。
- 多模型支持——支持的模型种类相当丰富:从Meta的Llama系列,到阿里的Qwen系列,再到DeepSeek系列,基本你能想到的主流选择都能运行。
- 资源优化——通过量化技术大幅降低模型显存占用,对高性能GPU的依赖自然减了下来,普通硬件也能用。
- 易用性——提供了命令行工具和图形化界面,不管你是命令行党还是图形界面爱好者,都能找到舒服的用法。
- 扩展性强——可以与Kubernetes、Docker等工具结合,实现分布式部署和管理,灵活性非常高。
Ollama与其它工具对比
Ollama
官网:https://ollama.com/
安装简单,提供CLI和WebUI,对初学者和开发人员来说非常友好。支持量化技术降低内存占用,普通硬件也能跑。支持Linux、macOS和Windows三大主流系统,而且覆盖了大部分主流模型。不过需要注意的是,Ollama在并发性能上不如vLLM。
vLLM
官网:https://vllm.ai/
vLLM主打高效的大模型推理和服务,特别是多GPU环境下,性能表现相当抢眼,更适合大规模在线推理服务。但代价是什么?部署复杂度偏高,需要一定的技术基础,而且主要面向Linux,跨平台支持比较有限。
LocalAI
官网:https://localai.io/
LocalAI和Ollama定位很相似,也是一个轻量级的本地大模型服务框架,开箱即用、无需复杂配置。但它在性能优化上不如vLLM和Ollama,功能也相对薄弱,比如不支持多线程加速等高级特性。
Ollama安装部署
Linux 手动安装 Ollama
下载并安装Ollama的步骤如下,直接复制执行即可:
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz sudo tar -C /usr -xzf ollama-linux-amd64.tgz
创建Ollama专用用户:
sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama sudo usermod -a -G ollama $(whoami)
创建模型存储目录:
mkdir /data/ollama/models chown -R ollama.ollama /data/ollama/
创建Ollama启动Service,将以下配置保存到 /etc/systemd/system/ollama.service:
[Unit] Description=Ollama Service After=network-online.target [Service] ExecStart=/usr/bin/ollama serve User=ollama Group=ollama Restart=always RestartSec=3 Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="OLLAMA_MODELS=/data/ollama/models" [Install] WantedBy=default.target
启动Ollama服务:
systemctl daemon-reload systemctl enable --now ollama
查看启动状态:
systemctl status ollama
如果一切正常,你会看到类似下面的输出:
● ollama.service - Ollama Service Loaded: loaded (/etc/systemd/system/ollama.service; enabled; vendor preset: disabled) Active: active (running) since ...
最后测试一下端口是否正常:
curl 127.0.0.1:11434
预期返回:
Ollama is running
Ollama 常用命令详解
下载模型
以deepseek-r1:1.5b为例,一行命令搞定:
ollama pull deepseek-r1:1.5b
下载过程很直观,会显示进度条:
pulling manifest
pulling aabd4debf0c8... 100% ▕██████████████████████████████████████████████████████████████████████████▏ 1.1 GB
pulling 369ca498f347... 100% ▕██████████████████████████████████████████████████████████████████████████▏ 387 B
pulling 6e4c38e1172f... 100% ▕██████████████████████████████████████████████████████████████████████████▏ 1.1 KB
pulling f4d24e9138dd... 100% ▕██████████████████████████████████████████████████████████████████████████▏ 148 B
pulling a85fe2a2e58e... 100% ▕██████████████████████████████████████████████████████████████████████████▏ 487 B
verifying sha256 digest
writing manifest
success
查看本地模型列表
ollama list
输出示例:
NAME ID SIZE MODIFIED
deepseek-r1:1.5b a42b25d8c10a 1.1 GB 3 minutes ago
phi:latest e2fd6321a5fe 1.6 GB 27 minutes ago
查看模型详情
ollama show deepseek-r1:1.5b
输出包含架构、参数量、上下文长度等信息:
architecture qwen2
parameters 1.8B
context length 131072
embedding length 1536
quantization Q4_K_M
Parameters
stop "<|begin▁of▁sentence|>"
stop "<|end▁of▁sentence|>"
stop "<|User|>"
stop "<|Assistant|>"
License
MIT License
Copyright (c) 2023 DeepSeek
启动一个模型并进入交互模式
ollama run phi
启动后直接可以像聊天一样和模型对话:
>>> who are you?
I am Phi, a large language model trained by Microsoft. I'm here to help you with any questions or tasks you ha ve. What can I assist you with today?
查看当前正在运行的模型
ollama ps
输出示例:
NAME ID SIZE PROCESSOR UNTIL
phi:latest e2fd6321a5fe 5.4 GB 100% GPU 4 minutes from now
deepseek-r1:1.5b a42b25d8c10a 2.0 GB 100% GPU About a minute from now
停止一个运行中的模型
ollama stop phi:latest
停止后再查看,就能看到只剩其他模型还在运行:
ollama ps
NAME ID SIZE PROCESSOR UNTIL
deepseek-r1:1.5b a42b25d8c10a 2.0 GB 100% GPU 17 seconds from now
删除一个本地模型
ollama rm phi:latest
确认删除后再查看:
ollama list
NAME ID SIZE MODIFIED
deepseek-r1:1.5b a42b25d8c10a 1.1 GB 42 hours ago
Ollama WebUI 部署
注意:WebUI需要依赖Docker启动,如果服务器上没有Docker,得先装好。
创建数据目录:
mkdir -p /data/ollama/webui
一行docker命令就能搞定部署:
docker run -d -p 3000:8080 -e ENABLE_OPENAI_API=false -e OLLAMA_BASE_URL=http://[OLLAMA_HOST]:11434 -e HF_HUB_OFFLINE=1 -v /data/ollama/models:/root/.ollama -v /data/ollama/webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
启动后通过宿主机的3000端口访问即可。
Ollama 服务端常用配置
启动服务端:
ollama serve
如果需要自定义端口:
OLLAMA_HOST=0.0.0.0:11435 ollama serve
常用环境变量一览:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
OLLAMA_DEBUG | 启用调试模式,设为1开启 | - |
OLLAMA_HOST | 指定服务绑定的IP和端口 | 127.0.0.1:11434 |
OLLAMA_KEEP_ALIVE | 模型在内存中保持加载的时间 | 5m |
OLLAMA_MAX_LOADED_MODELS | 每块GPU上同时加载的最大模型数量 | - |
OLLAMA_MAX_QUEUE | 请求队列最大长度,超限会拒绝新请求 | - |
OLLAMA_MODELS | 模型文件存储目录 | ~/.ollama/models |
OLLAMA_NUM_PARALLEL | 同时处理的最大并行请求数 | - |
OLLAMA_NOPRUNE | 禁用启动时模型清理 | - |
OLLAMA_ORIGINS | 允许跨域访问的来源列表(逗号分隔) | - |
OLLAMA_SCHED_SPREAD | 强制将模型均匀调度到所有可用GPU上 | - |
OLLAMA_FLASH_ATTENTION | 启用Flash Attention(硬件不支持可能报错) | - |
OLLAMA_KV_CACHE_TYPE | K/V缓存的量化类型 | f16 |
OLLAMA_GPU_OVERHEAD | 预留显存,防止其他进程崩溃 | - |
OLLAMA_LOAD_TIMEOUT | 模型加载最大超时时间(分钟) | 5m |
限制使用指定GPU
默认情况下,Ollama可以使用所有可用的GPU进行推理。如果想控制它只使用某几块显卡,可以通过CUDA_VISIBLE_DEVICES来搞定。
假设你想限制Ollama只使用GPU 0和1,编辑/etc/systemd/system/ollama.service,在Environment中加上:
[Unit] Description=Ollama Service After=network-online.target [Service] ExecStart=/usr/bin/ollama serve User=ollama Group=ollama Restart=always RestartSec=3 Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="OLLAMA_MODELS=/data/ollama/models" Environment="CUDA_VISIBLE_DEVICES=0,1" [Install] WantedBy=default.target
修改完后,重新加载并重启:
systemctl daemon-reload systemctl restart ollama
进阶说明
如果机器上有多张NVIDIA显卡,可以通过编号或UUID来指定:
- 数字编号:直接用数字标识显卡,但编号顺序可能变化。
- UUID(推荐):使用UUID更可靠,硬件变更也不会影响。
查看显卡UUID的命令:
nvidia-smi -L
强制使用CPU运算:如果想完全忽略显卡,直接设一个无效编号:
Environment="CUDA_VISIBLE_DEVICES=-1"
