本地模型部署与使用
数据不出内网、按量计费变固定成本、断网也能跑——本地模型的价值在数据敏感与私有化场景很明显。本章用 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,并补本地嵌入模型,即可做到数据全流程可控。