Ollama + ModelScope:本地大模型极简部署
前言
随着开源大模型的爆发,越来越多开发者希望在本地运行和调试模型,既能保护数据隐私,又能低成本验证想法。但传统部署方式往往涉及复杂的依赖编译、显存调优,劝退了不少初学者。
本文将介绍 Ollama 这一开箱即用的本地大模型运行框架,并结合 ModelScope(魔搭社区) 的 GGUF 模型库,实现一条命令拉起主流大模型。同时提供 Python 调用代码、常用工具对比以及一个“模型输出自动发邮件”的小彩蛋,助你快速上手本地 AI 应用开发。
一、Ollama:一条命令搞定本地大模型
1.1 什么是 Ollama?
Ollama 是一个面向终端用户的本地大模型运行框架,它在底层封装了 llama.cpp 推理引擎,屏蔽了复杂的编译和配置过程。支持 macOS / Windows / Linux / Docker,真正做到开箱即用。
核心优势:无需手动下载权重、无需配置 CUDA 环境变量,一条命令即可运行主流开源模型。
1.2 安装与常用命令
Linux 一键安装
curl -fsSL https://ollama.com/install.sh | bash
Docker 运行方式
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
常用命令速查
| 命令 | 说明 |
|---|---|
ollama run 模型名 |
下载并运行模型 |
ollama list |
查看已安装模型列表 |
ollama rm 模型名 |
删除指定模型 |
ollama pull 模型名 |
仅下载模型不运行 |
ollama serve |
启动 API 服务 |
1.3 一键运行 ModelScope 上的 GGUF 模型
Ollama 官方模型库已与 ModelScope 打通,可以直接拉取魔搭社区的量化模型:
# 通义千问 2.5 - 3B 指令版
ollama run modelscope.cn/Qwen/Qwen2.5-3B-Instruct-GGUF
# DeepSeek-R1 蒸馏版(1.5B)
ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF
下载完成后会自动进入交互式对话界面,直接提问即可。
二、调用大模型接口的三种方式
Ollama 默认在 http://localhost:11434 提供 HTTP API,兼容 OpenAI 风格和原生格式,方便集成到各类应用中。
2.1 Python 调用(OpenAI 兼容风格)
如果你的项目已经使用了 OpenAI SDK,只需修改 base_url 即可无缝切换至本地模型。
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # 任意非空字符串均可
)
response = client.chat.completions.create(
model="qwen3.5:2b",
messages=[{"role": "user", "content": "天空为什么是蓝色的?"}],
stream=False
)
print(response.choices[0].message.content)
2.2 Python 调用(Ollama 原生 Client)
安装 Ollama Python 库:pip install ollama
from ollama import Client
client = Client(host="http://localhost:11434")
response = client.chat(
model="qwen3.5:2b",
messages=[{"role": "user", "content": "你叫什么名字?"}]
)
print(response.message.content)
2.3 直接使用 HTTP 接口测试
通过 curl 调用 /api/generate 端点,适合脚本测试或非 Python 环境。
curl http://localhost:11434/api/generate -d '{
"model": "modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF",
"prompt": "为什么天空是蓝色?",
"stream": false
}'
返回的 JSON 中 response 字段即为模型生成的文本。
三、三大本地部署工具对比速览
目前主流的本地推理工具有 Ollama、vLLM 和 llama.cpp,它们各有侧重,下表可帮你快速决策。
| 维度 | Ollama | vLLM | llama.cpp |
|---|---|---|---|
| 核心定位 | 开箱即用 | 高性能推理服务 | 极致轻量底层引擎 |
| 上手难度 | ⭐ 极简 | ⭐⭐⭐ 需配置环境 | ⭐⭐⭐⭐⭐ 硬核编译调参 |
| 运行格式 | GGUF | HuggingFace (Safetensors) | GGUF |
| 硬件依赖 | CPU / GPU 自动调度 | NVIDIA GPU(强依赖 CUDA) | CPU / Apple Silicon / 低配GPU |
| 并发能力 | 弱(单用户友好) | 极强(高并发服务) | 弱(单线程) |
| 适用场景 | 个人开发、快速验证、本地 RAG | 企业级 API 服务、多卡并行推理 | 边缘计算、旧电脑、树莓派 |
选型建议
-
普通用户/开发者 → Ollama(省心,专注应用逻辑)
-
企业服务/N卡环境 → vLLM(吞吐量王者,支持 PagedAttention)
-
低配硬件/嵌入式 → llama.cpp(纯 CPU 推理也不在话下)
四、彩蛋:模型输出自动发邮件
将模型生成的内容通过邮件发送,可以用在定时报告、内容推送等场景。以下示例使用 163 邮箱的 SMTP 服务。
import smtplib
from email.mime.text import MIMEText
from ollama import chat
# 调用模型生成信件内容
res = chat(
model="modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest",
messages=[{"role": "user", "content": "给你的朋友写一封信"}]
)
# 配置邮件内容
msg = MIMEText(res.message.content, 'plain', 'utf-8')
msg["From"] = "your_email@163.com"
msg["To"] = "receiver@qq.com"
msg["Subject"] = "AI 写给你的信"
# SMTP 发送(163 邮箱示例,请替换为实际账号和授权码)
smtp = smtplib.SMTP()
smtp.connect("smtp.163.com", 25)
smtp.login("your_email@163.com", "授权码") # 授权码在邮箱设置中生成
smtp.sendmail(msg["From"], msg["To"], msg.as_string())
smtp.quit()
print("邮件发送成功")
注意:不同邮箱服务商的 SMTP 地址和端口可能不同,25 端口在云服务器上可能被禁用,可换用 465 或 587 端口并启用 TLS。
结语
本地部署大模型的技术门槛已大大降低,Ollama + ModelScope 的组合让开发者能在几分钟内跑起主流模型。根据自身场景(开发调试 / 生产服务 / 边缘设备)选择合适的推理工具,即可高效开启 AI 应用之旅。
参考链接
-
Ollama 官网:https://ollama.com
-
ModelScope 模型库:https://modelscope.cn
-
llama.cpp GitHub:https://github.com/ggerganov/llama.cpp
-
vLLM 官方文档:https://docs.vllm.ai
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)