1. Ollama基础与架构概览
大家好,我是这次课程的主讲。今天咱们聊聊Ollama——这个在本地跑大模型的神器。
说实话,我第一次接触Ollama的时候,心里还犯嘀咕:这玩意儿能有多好用?结果用了一个下午,我就把团队里好几个同事都拉下水了。为什么?因为它真的太省事了。
Ollama是什么
Ollama,说白了就是一个本地大模型运行框架。你不需要折腾CUDA、Python环境、各种依赖库。装好它,一条命令就能把Llama、Mistral、Qwen这些模型拉下来跑。
我个人的理解是:Ollama = 模型下载器 + 推理引擎 + API服务。三个角色合为一体。
核心定位:让开发者像使用Docker一样使用大模型。你想想看,docker pull、docker run,Ollama也是ollama pull、ollama run,是不是很熟悉?
Ollama的架构组件
咱们来看看Ollama内部到底长什么样。我画了一张架构图,帮你快速理解。
从这张图你能看到,Ollama分了五层。最上层是CLI,你敲命令的地方。中间是API服务,供程序调用。再往下是调度层,负责分配资源。然后是模型存储,最后是推理引擎。
我在项目中遇到过一个问题:同时跑两个模型,结果第二个模型加载时第一个模型被挤掉了。后来才发现,Ollama默认的调度策略是「后进先出」。嗯,这个坑咱们后面章节会详细讲。
Ollama的安装与配置
安装Ollama,其实就三步。我习惯用Linux服务器,所以先讲Linux的安装方式。
Linux 安装
curl -fsSL https://ollama.com/install.sh | sh
就这么一行。它会自动检测你的系统,装好依赖,配置好服务。我第一次装的时候,全程不到两分钟。
小提示:如果你在macOS上,直接去官网下载安装包就行。Windows用户目前用预览版,或者用WSL2跑Linux版本。
验证安装
ollama --version
# 输出类似:ollama version 0.1.32
看到版本号,说明装好了。接下来启动服务:
ollama serve
默认监听在 127.0.0.1:11434。你可以用浏览器或者curl测试一下:
curl http://localhost:11434
返回 Ollama is running,就对了。
配置环境变量
Ollama有几个关键环境变量,我建议你提前配好:
| 变量名 | 作用 | 我的建议值 |
|---|---|---|
OLLAMA_HOST |
监听地址 | 0.0.0.0(允许远程访问) |
OLLAMA_MODELS |
模型存储路径 | /data/ollama/models(大磁盘目录) |
OLLAMA_KEEP_ALIVE |
模型驻留时间 | 5m(5分钟无请求则卸载) |
OLLAMA_NUM_PARALLEL |
并行请求数 | 1(默认,后续章节会调优) |
注意:我曾经在生产环境忘了配 OLLAMA_HOST,结果只能本机访问。排查了半天才发现默认绑定的是127.0.0.1。这个坑你千万别踩。
Ollama的模型管理基础
模型管理,是Ollama最让我省心的地方。咱们从拉模型开始。
拉取模型
# 拉取Llama 3.1 8B
ollama pull llama3.1:8b
# 拉取Qwen 2.5 7B
ollama pull qwen2.5:7b
# 拉取Mistral
ollama pull mistral
它会自动下载模型文件,存到 ~/.ollama/models/ 目录下。你想想看,以前跑大模型要配Python环境、装PyTorch、下载模型权重、写推理代码……现在一条命令搞定。
查看已安装的模型
ollama list
输出类似这样:
NAME ID SIZE MODIFIED
llama3.1:8b 123abc... 4.9 GB 2 days ago
qwen2.5:7b 456def... 4.5 GB 1 day ago
mistral:latest 789ghi... 4.1 GB 5 hours ago
运行模型
# 交互式对话
ollama run llama3.1:8b
# 单次推理
ollama run llama3.1:8b "请用中文介绍一下Ollama"
我个人习惯用API方式调用,方便集成到系统里:
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1:8b",
"prompt": "请用中文介绍一下Ollama",
"stream": false
}'
删除模型
ollama rm llama3.1:8b
模型文件占磁盘空间,不用的就删掉。我有一台测试机,经常拉各种模型做对比,隔段时间就得清理一次。
核心要点:Ollama的模型管理,本质上就是「拉取-运行-删除」三个操作。但底层涉及模型格式转换、量化版本选择、显存适配等问题。这些咱们后面章节会逐个深入。
小结
这一章咱们把Ollama的底牌翻了个遍。从它是什么,到架构怎么分层,再到怎么装、怎么配、怎么管模型。说白了,Ollama就是让你用最少的精力,把大模型跑起来。
下一章,我会带你深入模型调度层。为什么同时跑两个模型会互相影响?怎么让多个模型和平共处?这些问题,咱们到时候一个一个拆解。