Ollama 本地部署大模型 + Python API 集成开发完整教程(2026最新版,含 GPU 加速配置)

Ollama 本地部署大模型 + Python API 集成开发完整教程(2026最新版,含 GPU 加速配置)


🌸你好呀!我是 lbb小魔仙
🌟 感谢陪伴~ 小白博主在线求友
🌿 跟着小白学Linux/Java/Python
📖 专栏汇总:
《Linux》专栏 | 《Java》专栏 | 《Python》专栏

  • [Ollama 本地部署大模型 + Python API 集成开发完整教程(2026最新版,含 GPU 加速配置)](#Ollama 本地部署大模型 + Python API 集成开发完整教程(2026最新版,含 GPU 加速配置))
    • 摘要
    • [1. Ollama 简介:为什么选择本地部署](#1. Ollama 简介:为什么选择本地部署)
      • [1.1 Ollama 的核心优势](#1.1 Ollama 的核心优势)
      • [1.2 适用场景](#1.2 适用场景)
    • [2. 安装 Ollama](#2. 安装 Ollama)
      • [2.1 Windows 安装](#2.1 Windows 安装)
      • [2.2 验证安装](#2.2 验证安装)
      • [2.3 检查服务状态](#2.3 检查服务状态)
      • [2.4 配置模型存储路径(可选,推荐)](#2.4 配置模型存储路径(可选,推荐))
    • [3. 模型管理:下载、运行、删除](#3. 模型管理:下载、运行、删除)
      • [3.1 查看可用模型](#3.1 查看可用模型)
      • [3.2 常用模型推荐](#3.2 常用模型推荐)
      • [3.3 下载模型](#3.3 下载模型)
      • [3.4 运行模型(命令行交互)](#3.4 运行模型(命令行交互))
      • [3.5 查看已安装模型](#3.5 查看已安装模型)
      • [3.6 删除模型](#3.6 删除模型)
      • [3.7 查看模型详细信息](#3.7 查看模型详细信息)
    • [4. GPU 加速配置与验证](#4. GPU 加速配置与验证)
      • [4.1 确认 GPU 加速是否生效](#4.1 确认 GPU 加速是否生效)
      • [4.2 GPU 加速不可用的排查](#4.2 GPU 加速不可用的排查)
      • [4.3 显存不足的应对策略](#4.3 显存不足的应对策略)
    • [5. Python 集成开发环境搭建](#5. Python 集成开发环境搭建)
      • [5.1 创建虚拟环境](#5.1 创建虚拟环境)
      • [5.2 安装 Ollama Python SDK](#5.2 安装 Ollama Python SDK)
      • [5.3 安装辅助库](#5.3 安装辅助库)
    • [6. Python 调用 Ollama:同步与流式输出](#6. Python 调用 Ollama:同步与流式输出)
      • [6.1 同步调用(等待完整回复)](#6.1 同步调用(等待完整回复))
      • [6.2 流式输出(逐字输出,体验更好)](#6.2 流式输出(逐字输出,体验更好))
      • [6.3 简单文本生成(非对话模式)](#6.3 简单文本生成(非对话模式))
      • [6.4 带参数的调用](#6.4 带参数的调用)
    • [7. 多轮对话实现](#7. 多轮对话实现)
      • [7.1 基础多轮对话](#7.1 基础多轮对话)
      • [7.2 交互式命令行聊天](#7.2 交互式命令行聊天)
    • [8. LangChain + Ollama 构建 RAG 应用](#8. LangChain + Ollama 构建 RAG 应用)
      • [8.1 安装依赖](#8.1 安装依赖)
      • [8.2 完整 RAG 示例](#8.2 完整 RAG 示例)
      • [8.3 嵌入模型说明](#8.3 嵌入模型说明)
    • [9. 自定义 Modelfile 创建专属模型](#9. 自定义 Modelfile 创建专属模型)
      • [9.1 什么是 Modelfile](#9.1 什么是 Modelfile)
      • [9.2 创建 Modelfile](#9.2 创建 Modelfile)
      • [9.3 构建自定义模型](#9.3 构建自定义模型)
      • [9.4 运行自定义模型](#9.4 运行自定义模型)
      • [9.5 Python 调用自定义模型](#9.5 Python 调用自定义模型)
    • [10. Ollama REST API 直接调用](#10. Ollama REST API 直接调用)
      • [10.1 生成回答](#10.1 生成回答)
      • [10.2 流式生成](#10.2 流式生成)
      • [10.3 查看正在运行的模型](#10.3 查看正在运行的模型)
      • [10.4 列出所有本地模型](#10.4 列出所有本地模型)
      • [10.5 获取文本嵌入向量](#10.5 获取文本嵌入向量)
      • [10.6 Python 使用 requests 库调用](#10.6 Python 使用 requests 库调用)
    • [11. 常见问题与解决方案](#11. 常见问题与解决方案)
      • [11.1 模型下载速度慢或超时](#11.1 模型下载速度慢或超时)
      • [11.2 `Error: could not connect to ollama app`](#11.2 Error: could not connect to ollama app)
      • [11.3 Python 连接 Ollama 报错 `ConnectionError`](#11.3 Python 连接 Ollama 报错 ConnectionError)
      • [11.4 模型回复乱码或截断](#11.4 模型回复乱码或截断)
      • [11.5 GPU 显存不够运行大模型](#11.5 GPU 显存不够运行大模型)
      • [11.6 Windows 下 Ollama 服务占用 C 盘空间过大](#11.6 Windows 下 Ollama 服务占用 C 盘空间过大)
      • [11.7 Python 脚本中模型加载慢(首次调用延迟高)](#11.7 Python 脚本中模型加载慢(首次调用延迟高))
      • [11.8 同时运行多个模型](#11.8 同时运行多个模型)
    • [12. 总结](#12. 总结)
      • [12.1 本文核心要点](#12.1 本文核心要点)
      • [12.2 推荐模型选择指南](#12.2 推荐模型选择指南)
      • [12.3 进阶学习方向](#12.3 进阶学习方向)

摘要

Ollama 是目前最流行的本地大模型部署工具,支持一键运行 Llama 3、Qwen2.5、DeepSeek-R1、Gemma 3 等主流开源大模型,无需复杂的模型下载和依赖配置。本文将从 Ollama 的安装、模型管理、GPU 加速配置,到 Python API 集成开发(同步调用、流式输出、多轮对话、RAG 检索增强),提供完整的实战教程。同时覆盖 Ollama REST API 调用、LangChain 集成、自定义 Modelfile 创建、常见报错排查等进阶内容,帮助开发者快速搭建本地 AI 应用开发环境。所有步骤在 Windows 11 + RTX 4060 环境下实测通过。

🚀 个人主页有点流鼻涕 · CSDN

💬 座右铭 : "向光而行,沐光而生。"


1. Ollama 简介:为什么选择本地部署

1.1 Ollama 的核心优势

特性 说明
一键部署 ollama run qwen2.5 即可下载并运行模型,无需手动配置环境
GPU 自动加速 检测到 NVIDIA GPU 自动启用 CUDA 加速,无需额外配置
REST API 开箱即用 默认启动 HTTP 服务(端口 11434),任何语言都可调用
丰富的模型库 支持 200+ 开源模型,包括 Llama、Qwen、DeepSeek、Mistral 等
多平台支持 Windows、macOS、Linux 全平台覆盖

1.2 适用场景

  • 本地 AI 开发与调试,避免 API 费用
  • 数据隐私要求高的场景(医疗、金融、法律)
  • 离线环境下的 AI 应用部署
  • 学习大模型原理与 Prompt 工程

2. 安装 Ollama

2.1 Windows 安装

方式一:官方安装包(推荐)

前往官网下载:

复制代码
https://ollama.com/download

选择 Windows 版本,下载 OllamaSetup.exe,双击安装。安装路径默认 C:\Users\用户名\AppData\Local\Programs\Ollama

方式二:使用 winget 命令安装

bash 复制代码
winget install Ollama.Ollama

2.2 验证安装

安装完成后,打开新的 CMD 或 PowerShell 窗口:

bash 复制代码
ollama --version

输出示例:

复制代码
ollama version is 0.6.8

2.3 检查服务状态

Ollama 安装后会自动注册为系统服务,在后台运行。确认服务是否启动:

bash 复制代码
# 查看 Ollama 服务状态(PowerShell)
Get-Service ollama

# 或通过 API 检查
curl http://localhost:11434/api/tags

如果服务未启动:

bash 复制代码
# 手动启动服务
ollama serve

2.4 配置模型存储路径(可选,推荐)

默认模型存储在 C 盘用户目录下,大模型文件较大(4-40GB),建议迁移到其他磁盘:

bash 复制代码
# 设置环境变量(PowerShell 管理员模式)
[System.Environment]::SetEnvironmentVariable("OLLAMA_MODELS", "D:\ollama\models", "User")

设置后重启 Ollama 服务生效。


3. 模型管理:下载、运行、删除

3.1 查看可用模型

浏览模型库:

复制代码
https://ollama.com/library

3.2 常用模型推荐

模型 参数量 显存需求 特点
qwen2.5:7b 7B ~5GB 中文能力强,综合表现优秀
deepseek-r1:7b 7B ~5GB 推理能力突出,支持思维链
llama3.1:8b 8B ~5.5GB Meta 开源,英文能力强
gemma3:4b 4B ~3GB Google 出品,轻量高效
qwen2.5:14b 14B ~10GB 中文最强开源模型之一
deepseek-r1:14b 14B ~10GB 推理与代码能力出色

3.3 下载模型

bash 复制代码
# 下载 Qwen2.5 7B 模型(推荐中文用户首选)
ollama pull qwen2.5:7b

# 下载 DeepSeek-R1 7B 模型
ollama pull deepseek-r1:7b

下载速度取决于网络环境,7B 模型约 4.7GB。

3.4 运行模型(命令行交互)

bash 复制代码
ollama run qwen2.5:7b

首次运行会自动下载模型。进入交互界面后直接输入问题:

复制代码
>>> 你好,请用Python写一个快速排序算法

模型会实时流式输出回答。退出对话:

复制代码
>>> /bye

3.5 查看已安装模型

bash 复制代码
ollama list

输出示例:

复制代码
NAME                    ID              SIZE      MODIFIED
qwen2.5:7b             a2w6a2a3b4c5    4.7 GB    2 hours ago
deepseek-r1:7b         b3c7d8e9f0a1    4.8 GB    1 day ago

3.6 删除模型

bash 复制代码
ollama rm llama3.1:8b

3.7 查看模型详细信息

bash 复制代码
ollama show qwen2.5:7b

4. GPU 加速配置与验证

4.1 确认 GPU 加速是否生效

运行模型时,观察 GPU 显存占用:

bash 复制代码
# 在另一个终端窗口执行
nvidia-smi -l 1

如果运行模型后 GPU 显存占用增加(如从 0 跳到 4-5GB),说明 GPU 加速已生效。

也可以通过 API 查看:

bash 复制代码
curl http://localhost:11434/api/ps

如果返回结果中没有 GPU 相关信息,可能存在以下问题。

4.2 GPU 加速不可用的排查

排查 1:确认 NVIDIA 驱动已安装

bash 复制代码
nvidia-smi

如果报错,安装或更新 NVIDIA 驱动。

排查 2:Windows 下的 CUDA 配置

Ollama 在 Windows 上会自动检测 CUDA,无需手动安装 CUDA Toolkit。但需要确保:

  • NVIDIA 驱动版本 ≥ 530(可通过 nvidia-smi 查看)
  • 系统中存在 nvcuda.dll(通常随驱动自动安装)

排查 3:强制指定 GPU

bash 复制代码
# 设置环境变量,指定使用的 GPU
set CUDA_VISIBLE_DEVICES=0
ollama serve

4.3 显存不足的应对策略

如果模型参数量大于显存容量,Ollama 会自动使用 CPU + GPU 混合推理(部分层放在 CPU 上),但速度会显著下降。应对方案:

  • 选择参数量更小的模型(如 7B → 4B)
  • 使用量化版本模型:
bash 复制代码
# Q4_K_M 量化版本(约 1/4 大小)
ollama run qwen2.5:7b-q4_K_M

5. Python 集成开发环境搭建

5.1 创建虚拟环境

bash 复制代码
conda create -n ollama_dev python=3.11 -y
conda activate ollama_dev

5.2 安装 Ollama Python SDK

bash 复制代码
pip install ollama

5.3 安装辅助库

bash 复制代码
pip install langchain langchain-community chromadb sentence-transformers

6. Python 调用 Ollama:同步与流式输出

6.1 同步调用(等待完整回复)

python 复制代码
# sync_chat.py
import ollama

response = ollama.chat(
    model='qwen2.5:7b',
    messages=[
        {
            'role': 'user',
            'content': '请用Python实现一个二分查找算法,并说明时间复杂度',
        }
    ]
)

print(response['message']['content'])

运行:

bash 复制代码
python sync_chat.py

6.2 流式输出(逐字输出,体验更好)

python 复制代码
# stream_chat.py
import ollama

stream = ollama.chat(
    model='qwen2.5:7b',
    messages=[
        {
            'role': 'user',
            'content': '请解释什么是梯度下降算法,用通俗的语言说明',
        }
    ],
    stream=True  # 开启流式输出
)

for chunk in stream:
    print(chunk['message']['content'], end='', flush=True)

print()  # 换行

6.3 简单文本生成(非对话模式)

python 复制代码
# generate.py
import ollama

response = ollama.generate(
    model='qwen2.5:7b',
    prompt='写一首关于编程的五言绝句'
)

print(response['response'])

6.4 带参数的调用

python 复制代码
# advanced_params.py
import ollama

response = ollama.chat(
    model='qwen2.5:7b',
    messages=[
        {'role': 'user', 'content': '生成10个Python变量命名建议'}
    ],
    options={
        'temperature': 0.7,   # 创造性(0-1,越高越随机)
        'top_p': 0.9,         # 核采样参数
        'num_predict': 512,   # 最大生成 token 数
    }
)

print(response['message']['content'])

参数说明:

参数 范围 作用
temperature 0.0 - 2.0 控制随机性,代码生成建议 0.1-0.3,创意写作建议 0.7-1.0
top_p 0.0 - 1.0 核采样,限制候选 token 范围
num_predict 正整数 最大生成 token 数量,防止无限生成
repeat_penalty 1.0 - 2.0 重复惩罚,避免重复内容

7. 多轮对话实现

7.1 基础多轮对话

python 复制代码
# multi_turn_chat.py
import ollama

# 维护对话历史
messages = []

def chat(user_input: str) -> str:
    messages.append({'role': 'user', 'content': user_input})

    response = ollama.chat(
        model='qwen2.5:7b',
        messages=messages
    )

    assistant_msg = response['message']['content']
    messages.append({'role': 'assistant', 'content': assistant_msg})

    return assistant_msg

# 测试多轮对话
print("=== 第一轮 ===")
print(chat("我想学习Python,请给我一个学习路线"))

print("\n=== 第二轮(追问) ===")
print(chat("其中数据分析方向,你推荐哪些库?"))

print("\n=== 第三轮(继续深入) ===")
print(chat("能给我一个pandas读取CSV并做基本统计分析的代码示例吗?"))

# 打印完整对话历史
print("\n=== 完整对话历史 ===")
for msg in messages:
    role = "用户" if msg['role'] == 'user' else "助手"
    print(f"[{role}]: {msg['content'][:100]}...")

7.2 交互式命令行聊天

python 复制代码
# interactive_chat.py
import ollama

messages = [
    {
        'role': 'system',
        'content': '你是一位资深的Python开发工程师,擅长解答编程问题。请给出简洁、专业的回答。'
    }
]

print("Ollama 聊天终端(输入 /quit 退出,输入 /clear 清空历史)")
print("-" * 50)

while True:
    user_input = input("\n你: ").strip()

    if not user_input:
        continue

    if user_input == '/quit':
        print("再见!")
        break

    if user_input == '/clear':
        messages = [messages[0]]  # 保留 system prompt
        print("对话历史已清空")
        continue

    messages.append({'role': 'user', 'content': user_input})

    print("助手: ", end='', flush=True)
    stream = ollama.chat(
        model='qwen2.5:7b',
        messages=messages,
        stream=True
    )

    full_response = ''
    for chunk in stream:
        content = chunk['message']['content']
        print(content, end='', flush=True)
        full_response += content

    print()
    messages.append({'role': 'assistant', 'content': full_response})

8. LangChain + Ollama 构建 RAG 应用

RAG(检索增强生成)是企业级 AI 应用最常用的架构。以下实现一个基于本地文档的问答系统。

8.1 安装依赖

bash 复制代码
pip install langchain langchain-community langchain-text-splitters chromadb sentence-transformers pypdf

8.2 完整 RAG 示例

python 复制代码
# rag_app.py
from langchain_community.document_loaders import TextLoader, PyPDFLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_community.llms import Ollama
from langchain.chains import RetrievalQA

# ===== 第一步:加载文档 =====
# 支持 .txt 和 .pdf 文件
loader = TextLoader("knowledge_base.txt", encoding="utf-8")
documents = loader.load()

# 如果是 PDF 文件
# loader = PyPDFLoader("document.pdf")
# documents = loader.load()

print(f"加载了 {len(documents)} 个文档")

# ===== 第二步:文本分割 =====
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=500,       # 每个文本块的最大字符数
    chunk_overlap=50,     # 相邻文本块的重叠字符数
    separators=["\n\n", "\n", "。", "!", "?", ";", " "]  # 分割优先级
)
chunks = text_splitter.split_documents(documents)
print(f"分割为 {len(chunks)} 个文本块")

# ===== 第三步:创建向量数据库 =====
embeddings = OllamaEmbeddings(model="qwen2.5:7b")

vectorstore = Chroma.from_documents(
    documents=chunks,
    embedding=embeddings,
    persist_directory="./chroma_db"  # 持久化存储路径
)

print("向量数据库创建完成")

# ===== 第四步:构建 RAG 链 =====
llm = Ollama(model="qwen2.5:7b", temperature=0.3)

qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",  # 将检索到的文档拼接到 prompt 中
    retriever=vectorstore.as_retriever(
        search_type="similarity",
        search_kwargs={"k": 3}  # 检索最相关的 3 个文本块
    ),
    return_source_documents=True
)

# ===== 第五步:提问 =====
questions = [
    "文档中提到的核心概念是什么?",
    "请总结文档的主要内容",
]

for q in questions:
    print(f"\n问题: {q}")
    result = qa_chain.invoke({"query": q})
    print(f"回答: {result['result']}")
    print(f"参考来源: {len(result['source_documents'])} 个文本块")

8.3 嵌入模型说明

Ollama 的嵌入模型会将文本转换为向量,用于相似度检索。推荐使用:

模型 维度 说明
qwen2.5:7b 3584 通用,中文效果好
nomic-embed-text 768 轻量级,速度快
mxbai-embed-large 1024 英文场景推荐

9. 自定义 Modelfile 创建专属模型

9.1 什么是 Modelfile

Modelfile 类似 Dockerfile,用于基于已有模型创建自定义模型,可以设置系统提示词、参数、模板等。

9.2 创建 Modelfile

创建文件 my_assistant.modelfile

bash 复制代码
# 基于 qwen2.5:7b 模型
FROM qwen2.5:7b

# 设置系统提示词
SYSTEM """
你是一位专业的Python编程助手,具有以下特点:
1. 回答简洁、直接,不啰嗦
2. 代码示例必须完整可运行
3. 遵循 PEP 8 编码规范
4. 必要时添加类型注解
"""

# 设置生成参数
PARAMETER temperature 0.3
PARAMETER top_p 0.9
PARAMETER num_predict 2048
PARAMETER repeat_penalty 1.1

# 设置模板(Ollama 默认模板已足够,此处仅为演示)
TEMPLATE """
{{- if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{- end }}
<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
{{ .Response }}<|im_end|>
"""

9.3 构建自定义模型

bash 复制代码
ollama create my-python-assistant -f my_assistant.modelfile

9.4 运行自定义模型

bash 复制代码
ollama run my-python-assistant

9.5 Python 调用自定义模型

python 复制代码
import ollama

response = ollama.chat(
    model='my-python-assistant',
    messages=[
        {'role': 'user', 'content': '写一个读取Excel文件并统计各列数据类型的函数'}
    ]
)

print(response['message']['content'])

10. Ollama REST API 直接调用

即使不用 Python SDK,也可以直接通过 HTTP 请求调用 Ollama API,适用于任何编程语言。

10.1 生成回答

bash 复制代码
curl http://localhost:11434/api/chat -d '{
  "model": "qwen2.5:7b",
  "messages": [
    {"role": "user", "content": "什么是机器学习?用一句话解释"}
  ],
  "stream": false
}'

10.2 流式生成

bash 复制代码
curl http://localhost:11434/api/chat -d '{
  "model": "qwen2.5:7b",
  "messages": [
    {"role": "user", "content": "写一个Python冒泡排序"}
  ],
  "stream": true
}'

10.3 查看正在运行的模型

bash 复制代码
curl http://localhost:11434/api/ps

10.4 列出所有本地模型

bash 复制代码
curl http://localhost:11434/api/tags

10.5 获取文本嵌入向量

bash 复制代码
curl http://localhost:11434/api/embeddings -d '{
  "model": "qwen2.5:7b",
  "prompt": "这是一段测试文本"
}'

10.6 Python 使用 requests 库调用

python 复制代码
# rest_api_call.py
import requests
import json

OLLAMA_URL = "http://localhost:11434"

def chat(model: str, messages: list, stream: bool = False) -> str:
    payload = {
        "model": model,
        "messages": messages,
        "stream": stream
    }

    if stream:
        response = requests.post(
            f"{OLLAMA_URL}/api/chat",
            json=payload,
            stream=True
        )
        full_text = ""
        for line in response.iter_lines():
            if line:
                chunk = json.loads(line)
                content = chunk.get("message", {}).get("content", "")
                print(content, end="", flush=True)
                full_text += content
        print()
        return full_text
    else:
        response = requests.post(f"{OLLAMA_URL}/api/chat", json=payload)
        result = response.json()
        return result["message"]["content"]

# 使用示例
answer = chat(
    model="qwen2.5:7b",
    messages=[
        {"role": "user", "content": "用Python实现斐波那契数列,给出三种方式"}
    ],
    stream=True
)

11. 常见问题与解决方案

11.1 模型下载速度慢或超时

bash 复制代码
# 设置环境变量使用代理(如果有)
set HTTPS_PROXY=http://127.0.0.1:7890
ollama pull qwen2.5:7b

# 或使用 Hugging Face 镜像下载(手动导入)
# 从 hf-mirror.com 下载 GGUF 格式模型文件后导入
ollama create my-model -f Modelfile

11.2 Error: could not connect to ollama app

Ollama 服务未启动:

bash 复制代码
# 手动启动服务
ollama serve

# 或检查服务状态
# Windows: 打开"服务"管理器,找到 Ollama,确认状态为"正在运行"

11.3 Python 连接 Ollama 报错 ConnectionError

python 复制代码
# Ollama 默认监听 localhost:11434
# 如果部署在远程服务器,需要配置环境变量
import ollama
ollama.Client(host='http://192.168.1.100:11434')

远程服务器需配置 Ollama 监听所有网卡:

bash 复制代码
# Linux/macOS
OLLAMA_HOST=0.0.0.0 ollama serve

# Windows:设置系统环境变量
# OLLAMA_HOST = 0.0.0.0

11.4 模型回复乱码或截断

python 复制代码
# 降低 temperature,减少重复
response = ollama.chat(
    model='qwen2.5:7b',
    messages=[{'role': 'user', 'content': '...'}],
    options={
        'temperature': 0.3,
        'repeat_penalty': 1.2,
        'num_predict': 4096  # 增大输出长度
    }
)

11.5 GPU 显存不够运行大模型

bash 复制代码
# 使用量化版本(显存占用减少约 70%)
ollama run qwen2.5:7b-q4_K_M

# 或设置仅使用 CPU(调试用)
set OLLAMA_NUM_GPU=0
ollama run qwen2.5:7b

11.6 Windows 下 Ollama 服务占用 C 盘空间过大

bash 复制代码
# 将模型存储迁移到其他盘
# 设置环境变量
set OLLAMA_MODELS=D:\ollama_models

# 或在系统环境变量中永久设置
# 变量名:OLLAMA_MODELS
# 变量值:D:\ollama_models

设置后需重启 Ollama 服务,并将原目录 C:\Users\用户名\.ollama\models 中的文件移动到新目录。

11.7 Python 脚本中模型加载慢(首次调用延迟高)

首次调用时模型需要加载到显存,可能耗时 10-30 秒。可提前预热:

python 复制代码
# warm_up.py
import ollama

# 预热:发送一个简单请求,让模型加载到显存
try:
    ollama.chat(model='qwen2.5:7b', messages=[
        {'role': 'user', 'content': 'hi'}
    ])
    print("模型预热完成")
except Exception as e:
    print(f"预热失败: {e}")

11.8 同时运行多个模型

bash 复制代码
# Ollama 支持同时加载多个模型(取决于显存大小)
# 在不同终端窗口分别运行
ollama run qwen2.5:7b
ollama run deepseek-r1:7b

12. 总结

12.1 本文核心要点

  • Ollama 是本地大模型部署的最优选择:一键安装、GPU 自动加速、REST API 开箱即用。
  • Python 集成非常简单pip install ollama 后即可同步/流式调用,支持多轮对话。
  • LangChain + Ollama 是 RAG 的最佳入门方案:无需 API Key,完全本地运行,数据不出本机。
  • Modelfile 可以定制专属 AI 助手:设置系统提示词和参数,打造特定领域的 AI 助手。

12.2 推荐模型选择指南

使用场景 推荐模型 理由
通用中文问答 qwen2.5:7b 中文能力最强
代码生成 deepseek-r1:7b 代码与推理能力出色
轻量部署(显存小) gemma3:4b 仅需 3GB 显存
高质量推理 deepseek-r1:14b 思维链推理能力强
英文场景 llama3.1:8b Meta 开源,英文表现好

12.3 进阶学习方向

  • Ollama 多模态 :运行支持图片理解的模型(如 llava
  • Function Calling:让模型调用外部工具和 API
  • Ollama + Open WebUI:搭建类似 ChatGPT 的 Web 界面
  • Ollama 集群部署:多机多卡运行超大参数模型
  • 模型微调:基于 Ollama 运行 LoRA 微调后的模型

📌 如果本文对你有帮助,欢迎点赞收藏,关注博主获取更多 Python + AI 实战教程!
📕个人领域 :Linux/C++/java/AI

🚀 个人主页有点流鼻涕 · CSDN

💬 座右铭 : "向光而行,沐光而生。"

相关推荐
DanCheng-studio1 小时前
毕设分享 深度学习遮挡下的人脸识别(源码+论文)
python·毕业设计·毕设
小妖同学学AI1 小时前
告别手动盯盘!开源框架Freqtrade,教你用Python打造“永不下班”的AI交易员
人工智能·python·开源
民乐团扒谱机1 小时前
【微实验】平滑轨迹的数学基石:二次贝塞尔曲线原理、插值逻辑、形态控制与MATLAB全解析
开发语言·matlab
CSCN新手听安1 小时前
【Qt】Qt窗口(七)QColorDialog颜色对话框,QFileDialog文件对话框的使用
开发语言·c++·qt
xxjj998a1 小时前
PHP vs Go vs Python:三大语言终极对比
python·golang·php
A charmer1 小时前
从 C++ 到 Objective-C:零基础平滑转学专栏【总目录】
开发语言·c++·objective-c
cookies_s_s1 小时前
C++ 内存模型与无锁编程:从底层原理到实战
linux·服务器·开发语言·c++
财经资讯数据_灵砚智能2 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年5月5日
人工智能·python·信息可视化·自然语言处理·ai编程
wuyikeer2 小时前
Java进阶——IO 流
java·开发语言·python