在本地运行大语言模型:使用 Ollama 导入模型详解
在本地运行大语言模型:使用 Ollama 导入模型详解 🚀
原文整理自:ollama导入本地模型(发布于 2025‑04‑10)
1. 什么是 Ollama?
Ollama 是一个开源的大语言模型(LLM)本地管理工具,它提供:
- 本地运行:支持 DeepSeek、Qwen2、Llama3、Phi3、Gemma2 等多种开源大型语言模型;
- 环境统一:通过命令行和 API,简化模型的下载、导入、管理和部署流程;
- 开发者友好:适合研究人员、开发者、AI 爱好者进行本地测试与项目构建。
2. 安装与环境配置
2.1 安装步骤
- 从 Ollama 官网 下载支持 Windows/Mac/Linux 的安装包;
- 常规安装即可,无需额外配置。
2.2 环境变量设置建议
配置建议如下,以提升本地使用体验:
| 变量名称 | 功能说明 |
|---|---|
OLLAMA_MODELS |
模型文件存放目录,避免塞满系统盘 |
OLLAMA_HOST |
设置为 0.0.0.0 可接收局域网访问 |
OLLAMA_PORT |
默认端口 11434,冲突时可替换 |
OLLAMA_ORIGINS |
设置访问权限,如 * 支持任意来源 |
OLLAMA_KEEP_ALIVE |
模型缓存存活时间(如 24h) |
OLLAMA_NUM_PARALLEL |
并发请求数量,建议 >1 |
OLLAMA_MAX_QUEUE |
最大请求队列长度,默认 512 |
OLLAMA_DEBUG |
调试模式开关,输出详细日志 |
OLLAMA_MAX_LOADED_MODELS |
最大同时加载模型数,避免超载 |
3. 常用命令指南
ollama --version # 查看版本
ollama serve # 启动服务(默认本地 11434 端口)
ollama list # 显示已下载模型
ollama ps # 列出运行中的模型
ollama pull <模型名称>[:规格] # 从仓库下载模型
ollama run <模型名称> # 启动模型
ollama stop <模型名称> # 停止模型运行
ollama show <模型名称> # 查看模型信息
ollama create <名称> -f <文档> # 导入自定义模型
ollama rm <模型名称> # 删除本地模型
ollama cp <旧名> <新名> # 复制并重命名模型
4. 三种本地模型导入方式
4.1 方式一:直接从远程仓库拉取(推荐)
ollama pull qwen2:0.5b
ollama pull qwen2 # 默认同等于 qwen2:latest
将完整模型下载到本地,或者更新已存在模型。
4.2 方式二:从 GGUF 权重文件导入
适用于手头已下载 GGUF 权重(如 Meta‑Llama‑3‑8B‑Instruct.Q4_K_M.gguf):
- 在模型目录创建
Modelfile文件,内容:FROM ./Meta‑Llama‑3‑8B‑Instruct.Q4_K_M.gguf - 执行导入:
ollama create Llama‑3‑8B -f ./Modelfile ollama list
4.3 方式三:从 safetensors 文件导入
适用于来自 HuggingFace/ModelScope 的 safetensors 文件(如量化后的 Mistral):
- 转换并量化成 bin 格式:
python convert.py … –outfile Mistral‑7B‑v0.3.bin llama.cpp/quantize … Mistral‑7B‑v0.3_Q4.bin q4_0 - 模型目录创建
Modelfile:FROM Mistral‑7B‑v0.3_Q4.bin - 导入执行:
ollama create Mistral‑7B‑v0.3 -f ./Modelfile
导入后可通过 ollama list 查看。
5. Web 可视化界面部署
默认 CLI 界面较简陋,可使用第三方 WebUI 提升体验:
git clone https://github.com/ollama-webui/ollama-webui-lite
cd ollama-webui
npm config set registry http://mirrors.cloud.tencent.com/npm/
npm install
npm run dev
浏览器访问 http://localhost:3000/ 即可使用 Web 对话界面。
6. API 使用示例
6.1 HTTP 接口
- generate
curl http://localhost:11434/api/generate -d '{"model":"qwen:0.5b","prompt":"为什么天空是蓝色的?"}' - chat
curl http://localhost:11434/api/chat -d '{"model":"qwen:7b","messages":[{"role":"user","content":"为什么天空是蓝色的?"}]}'
6.2 Python 接入
import ollama
# 流式输出方式
def api_generate(text: str):
print(f"提问:{text}")
stream = ollama.generate(stream=True, model='qwen:7b', prompt=text)
for chunk in stream:
if not chunk['done']:
print(chunk['response'], end='', flush=True)
else:
print("\n【耗时】", chunk['total_duration'])
# 非流式调用
response = ollama.generate(model='qwen:0.5b', prompt='天空为什么是蓝色的?')
6.3 OpenAI SDK 调用
from openai import OpenAI
# 创建 OpenAI 客户端,指向 Ollama 本地服务
client = OpenAI(
base_url="http://localhost:11434/v1", # Ollama 本地服务地址
api_key="ollama-local" # 必填,但随便填(Ollama 不验证)
)
response = client.chat.completions.create(
model="qwen:7b", # 替换为你本地已有的模型名称
messages=[
{"role": "user", "content": "讲一个程序员的冷笑话"}
]
)
print(response.choices[0].message.content)
⚠️ 注意事项
- base_url 一定要写成 http://localhost:11434/v1,注意结尾的 /v1;
- api_key 虽然是必填字段,但 Ollama 并不会验证,随便写即可;
- 模型名请确保是 ollama list 中可用的本地模型;
- 该方式适合已有使用 OpenAI SDK 的项目快速适配本地部署场景。

浙公网安备 33010602011771号