|
|
本地部署大模型的方案越来越多,但真正能用的无非就那么几个。本文选两个最常见的开源方案做直接对比:Ollama 和 LocalAI。不吹不黑,只看实际表现。
## 两个方案的定位差异
Ollama 走的是极简路线,下载即用,CLI 体验几乎对标 ChatGPT 的交互方式。Model Library 直接托管模型列表,一条命令拉取运行,技术门槛接近于零。
LocalAI 则是另一个思路——它把自己定位成 OpenAI API 的本地替代品,通过 REST API 暴露接口,兼容 OpenAI 的 `/v1/chat/completions`、`/v1/embeddings` 等主流端点。适合已有应用需要迁移到本地的场景。
定位不同,决定了用户群体的差异。
## 安装与部署体验
先说安装。Ollama 的安装包 macOS 和 Windows 均有官方Installer,Linux 一行脚本搞定:
```bash
```bash
curl -fsSL https://ollama.com/install.sh | sh
```
装完之后不需要任何配置文件,直接 `ollama run llama3` 就能跑起来。GPU 支持靠的是 llama.cpp 的 CUDA 集成,自动检测 NVIDIA 显卡,没有独显也能跑——只是慢一些。Ollama 还支持模型的热加载,切换模型不需要重启服务,这在调试 prompt 的时候非常实用。
LocalAI 的安装相对复杂一些。官方提供 Docker 镜像、预编译二进制和从源码编译三种方式。最干净的做法是 Docker:
```bash
docker run -p 8080:8080 \
-v $PWD/models:/models \
quay.io/go-skynet/local-ai:latest
```
但这只是把服务跑起来。LocalAI 需要手动下载模型文件(通常是 GGUF 格式),然后编写 YAML 配置文件来声明每个模型的端点和参数。配置文件里要指定模型路径、上下文长度、线程数、GPU 层数等十来个参数,一个坑没填上就会报 500。对没有经验的用户来说,这个初始成本不低。
从部署体验来说,Ollama 的开箱即用优势非常明显。LocalAI 则更适合有 Docker 经验、已经熟悉 OpenAI API 格式、准备做应用层迁移的开发者。
## GPU 利用率与性能表现
这是最关键的部分。测试环境:RTX 4070 SUPER(12GB VRAM),Intel i7-13700K,32GB DDR4,Ubuntu 22.04。
Ollama 在检测到 CUDA 环境后,会自动将模型层分配到 GPU 显存。测试 Llama 3.1 8B Instruct,上下文长度 2048tok,Ollama 的 throughput 稳定在 35-42 tok/s。切换到 70B 参数版本(需要 Q4_K_M 量化),GPU 显存占用约 14GB(因为系统会借用部分内存作为 vRAM 扩展),throughput 降到 8-12 tok/s。这个数字在消费级硬件上已经相当可观。
Ollama 底层调用的是 llama.cpp 的 Go bindings,GGUF 格式支持非常好,Q2_K 到 Q8_0 的各种量化级别都能识别。GPU 层数的分配可以通过 `OLLAMA_GPU_LAYERS` 环境变量控制,默认是全部加载到 GPU。
LocalAI 的 GPU 配置则需要手动在 YAML 里写明 `gpubuilder: true` 并设置 `layers` 数量。如果不配置,默认全跑在 CPU 上。配置正确的前提下,同等硬件条件 LocalAI 的 throughput 与 Ollama 差距不大,基本在 5% 以内——因为两者底层都跑的是 llama.cpp 或者 gpt4all 的后端。
但有一个值得注意的差异:Ollama 对 AMD ROCm 的支持在 2024 年之后有明显改善,Linux AMD 显卡用户用 Ollama 的体验已经接近 NVIDIA 用户。而 LocalAI 的 ROCm 支持相对滞后,社区反馈问题较多。如果你的机器装的是 AMD 卡,Ollama 是更稳妥的选择。
内存占用方面,Ollama 默认会启动一个 HTTP 服务器在端口 11434 上,这个进程本身只占用几十 MB 内存。LocalAI 默认占用端口 8080,在没有请求的时候内存占用也相近。真正的内存消耗来自模型本身,这部分两者没有本质区别。
## API 兼容性与扩展能力
这是两者分叉最明显的地方。
LocalAI 的强项是 API 兼容层。它模拟了 OpenAI 的完整端点列表,包括 `/v1/models`、`/v1/chat/completions`、`/v1/completions`、`/v1/embeddings`、`/v1/images/generations` 等等。已有应用如果写的是 OpenAI SDK,只需要把 `base_url` 改成 `http://localhost:8080/v1`,在大多数情况下不需要改业务代码。这意味着它可以直接作为 LangChain、AutoGen、RAG 系统等 AI 应用的后端。
LocalAI 还支持语音转文字(Whisper 模型)、图片生成(Stable Diffusion)、音视频处理等多种模型,形成了一个相对完整的本地 AI 能力矩阵。不过实际测试中,多模态能力的稳定性和模型支持度不如专业的单模型部署方案。
---
【标签】
Thinkpad, IBM, X1 Carbon, AI开发, Ollama部署, 本地大语言模型, VSCode配置, AI编程助手, 机器学习, Thinkpad使用技巧, 华强北, 选购指南
【相关阅读】
- Thinkpad T14 深度评测:商务本的性能极限在哪里
- OpenClaw多模型集成配置指南
- 华强北Thinkpad港版购买防坑指南
|
|