引言

Ollama已经成为本地运行LLM最流行的工具。从2023年的简单命令行工具,到2026年的完整生态系统,Ollama让在本地运行大模型变得像安装App一样简单。本文将全面解析2026年的Ollama生态系统。

Ollama 2026核心特性

模型管理

# 拉取模型
ollama pull glm-5:32b
ollama pull qwen3:7b
ollama pull deepseek-v4:671b

# 运行模型
ollama run glm-5:32b

# 查看已安装模型
ollama list

# 创建自定义模型
ollama create my-model -f Modelfile

Modelfile

2026年的Modelfile支持更丰富的配置:

# Modelfile 示例
FROM glm-5:32b

# 系统提示
SYSTEM """
你是一个专业的中文助手,请用中文回复。
"""

# 参数
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 8192
PARAMETER stop "<|im_end|>"

# 适配器(LoRA)
ADAPTER ./my-lora.gguf

# 许可证
LICENSE "MIT"

多模态支持

# 运行视觉模型
ollama run llava:34b

# 在API中发送图像
curl http://localhost:11434/api/chat -d '{
  "model": "llava",
  "messages": [
    {"role": "user", "content": "描述这张图片", "images": ["base64_image_data"]}
  ]
}'

Ollama API

REST API

import requests

# 对话
response = requests.post("http://localhost:11434/api/chat", json={
    "model": "glm-5:32b",
    "messages": [
        {"role": "system", "content": "你是一个助手"},
        {"role": "user", "content": "你好"}
    ],
    "stream": False
})

# 生成
response = requests.post("http://localhost:11434/api/generate", json={
    "model": "glm-5:32b",
    "prompt": "写一首诗",
    "stream": False
})

Python SDK

from ollama import Client

client = Client(host="http://localhost:11434")

# 对话
response = client.chat(
    model="glm-5:32b",
    messages=[{"role": "user", "content": "你好"}]
)

# 流式对话
for chunk in client.chat(
    model="glm-5:32b",
    messages=[{"role": "user", "content": "写一首诗"}],
    stream=True
):
    print(chunk["message"]["content"], end="")

生态工具

Open WebUI

最流行的Ollama前端:

# 安装Open WebUI
docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui \
  ghcr.io/open-webui/open-webui:main

功能:

  • ChatGPT风格的界面
  • 多模型切换
  • 文档对话(RAG)
  • 多用户支持
  • 模型管理

Ollama Hub

模型分享和发现平台:

  • 浏览社区创建的模型
  • 一键安装
  • 查看模型评价
  • 上传自定义模型

Ollama Mobile

移动端应用:

  • iOS/Android原生应用
  • 本地运行小模型
  • 与桌面端同步

集成方案

LangChain集成

from langchain_community.llms import Ollama

llm = Ollama(model="glm-5:32b", base_url="http://localhost:11434")

# 使用
response = llm.invoke("你好")

LlamaIndex集成

from llama_index.llms.ollama import Ollama

llm = Ollama(model="glm-5:32b", request_timeout=60.0)

vLLM兼容

Ollama 2026支持与vLLM互操作:

# 将Ollama模型转换为vLLM格式
ollama export glm-5:32b --format vllm

性能优化

GPU加速

# 指定GPU
CUDA_VISIBLE_DEVICES=0 ollama run glm-5:32b

# 多GPU
ollama run deepseek-v4:671b --gpus 0,1,2,3

量化配置

# Modelfile中指定量化
FROM glm-5:32b
PARAMETER quantize q4_K_M  # INT4量化

批处理

# 批处理请求
import asyncio
import aiohttp

async def batch_generate(prompts, model="glm-5:32b"):
    async with aiohttp.ClientSession() as session:
        tasks = []
        for prompt in prompts:
            tasks.append(generate_one(session, model, prompt))
        return await asyncio.gather(*tasks)

部署方案

单机部署

# 最简单的部署
ollama serve  # 启动服务
# 访问 http://localhost:11434

Docker部署

# docker-compose.yml
version: '3'
services:
  ollama:
    image: ollama/ollama:latest
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
  
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    depends_on:
      - ollama

volumes:
  ollama_data:

集群部署

# Ollama集群配置
cluster:
  nodes:
    - host: gpu-node-1
      gpus: [A100, A100]
      models: [glm-5:32b, qwen3:72b]
    - host: gpu-node-2
      gpus: [A100, A100]
      models: [deepseek-v4:671b]
  
  load_balancer:
    type: round_robin
    health_check: 30s

2026年新特性

1. 模型蒸馏

Ollama支持在本地进行模型蒸馏:

ollama distill glm-5:32b --to 7b --method qat

2. 持续学习

支持在本地进行增量学习:

ollama train my-model --data ./training_data.json

3. 模型路由

根据请求自动选择最合适的模型:

routing:
  rules:
    - condition: "input.length > 8000"
      model: "glm-5:32b"  # 长文本用大模型
    - condition: "input.contains('code')"
      model: "deepseek-coder:33b"
    - default: true
      model: "qwen3:7b"  # 默认用小模型

4. 分布式推理

支持多台机器协作推理大模型:

ollama serve --cluster --nodes node1,node2,node3

使用场景

场景一:开发测试

# 快速启动开发环境
ollama run glm-5:32b
# 在开发中使用,无需API费用

场景二:私有部署

# 企业内网部署
ollama serve --host 0.0.0.0 --port 11434
# 配合Open WebUI提供完整服务

场景三:边缘计算

# 在Jetson上运行
ollama run qwen3:7b --quantize q4

结语

Ollama在2026年已经成为本地LLM部署的事实标准。它简单、强大、生态丰富。无论是个人开发者还是企业用户,Ollama都提供了从开发到生产的完整解决方案。

记住:最好的AI是你可以完全掌控的AI。Ollama让本地LLM变得简单而强大。

加入讨论

这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。

碳基与硅基的智慧碰撞,认知差异创造无限可能。