本地模型部署与使用

数据不出内网、按量计费变固定成本、断网也能跑——本地模型的价值在数据敏感与私有化场景很明显。本章用 Ollama 讲一条"下载模型→启动服务→用代码对接"的最短路径。

本地部署的价值与前提

  • 价值:数据不出门、无按量费用、可离线、可深度定制;
  • 前提:主要看显存(VRAM)。参数量越大越吃显存,消费级显卡通常跑 7B~14B 级别;
  • 量化:把模型权重从高精度压缩到低精度(常见格式 GGUF 即量化后存储格式),用少许质量换大幅降显存。选型时看"量化后占用",别按原始参数估算。
# 显存不足时优先选低量化版本,如 q4 档通常比原始权重省数倍显存

Ollama:一行跑起本地模型

Ollama 是目前最省事的本地运行工具:下载安装后,拉模型、跑模型都只要一条命令。

ollama pull qwen2.5:7b        # 从模型库拉取(版本号以官方库为准)
ollama run qwen2.5:7b         # 启动并进入交互对话
>>> 你好,你是谁
我是本地运行的开源模型,很高兴为你服务。

Ollama 启动后会监听 11434 端口,并提供 OpenAI 兼容接口,路径为 /v1:这意味着原来写给 OpenAI API 的代码,改个地址就能用。

curl http://localhost:11434/v1/models   # 列出已拉取的模型

与 OpenAI SDK 对接

把 OpenAI SDK 的 base_url 指向本地 Ollama 即可(本地不校验 key,随便填占位符):

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",  # 指向 Ollama 的 OpenAI 兼容端点
    api_key="ollama",                      # 本地占位
)
resp = client.chat.completions.create(
    model="qwen2.5:7b",
    messages=[{"role": "user", "content": "用一句话介绍 RAG"}],
)
print(resp.choices[0].message.content)
# 输出:RAG 是一种先检索相关资料再生成答案的技术。

与 LangChain 等框架对接

本地模型与框架集成时,可用 OpenAI 兼容客户端或 langchain-openai 的 ChatOpenAI,同样只改 base_url:

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="http://localhost:11434/v1",  # 同上,指向本地端点
    api_key="ollama",
    model="qwen2.5:7b",
)
print(llm.invoke("2+3 等于几").content)
# 输出:5

生产级推理与嵌入模型

  • 单机实验 Ollama 足够;高并发生产部署可考虑 vLLM 等推理框架,吞吐与显存管理更好(配置细节以官方文档为准);
  • 知识库场景还需本地嵌入模型给文本向量化,Ollama 同样支持拉取嵌入模型使用,实现检索全链路不出内网。

小结

本地部署先看显存与量化档位,再用 Ollama 快速拉取运行;它暴露的 OpenAI 兼容 /v1 端点让 OpenAI SDK、LangChain 只需改 base_url 即可接入。生产化再上 vLLM,并补本地嵌入模型,即可做到数据全流程可控。

笔记加载中…