跳至主要内容

如何在本地使用 Ollama 安装并运行 QwQ 32B

了解如何在本地通过 Ollama 安装、设置并运行 QwQ-32B,并构建一个简易的 Gradio 应用。
· 12分钟 阅读

使用 AI 探索

QwQ-32B 是 Qwen 面向推理的模型,专为复杂问题求解与推理任务而设计。尽管仅有 320 亿参数,该模型的表现可与参数量高达 DeepSeek-R1 的 6710 亿参数模型相媲美。

在本教程中,我将带您通过使用 Ollama 在本地设置并运行 QwQ-32B。Ollama 是一款简化本地 LLM 推理的工具。本文将涵盖:

  • 通过终端或 IDE 执行:提供精炼的代码片段,帮助您在终端或任意 IDE 中运行 QwQ-32B。
  • 上手演示:构建一个利用 QwQ-32B 结构化思维能力的实操演示项目。

为何要在本地运行 QwQ-32B?

尽管体量不小,QwQ-32B 仍可进行量化,从而在消费级硬件上高效运行。在本地运行 QwQ-32B 能让您完全掌控模型的执行,不依赖外部服务器。优势包括:

  • 隐私与安全:数据不离开您的设备。
  • 不间断访问:不受限流、宕机或服务中断影响。
  • 性能:本地推理响应更快,避免 API 延迟。
  • 自定义:可修改参数、优化提示,并将模型集成到本地应用。
  • 成本效益:本地运行模型,免除 API 费用。
  • 离线可用:模型下载完成后,无网络也可使用。

使用 Ollama 在本地设置 QwQ-32B

Ollama 通过处理模型下载、量化与执行,简化了本地运行 LLM 的流程。

步骤 1:安装 Ollama

从 官方网站下载并安装 Ollama。

Downloading Ollama

下载完成后,像安装其他应用一样安装 Ollama。

步骤 2:下载并运行 QwQ-32B

我们来测试环境并下载模型。启动终端,输入以下命令以下载并运行 QwQ-32B 模型:

ollama run qwq:32b

Downloading Qwen QwQ 32B model via Ollama

QwQ-32B 是一个大型模型。如果您的设备资源有限,可以选择更小的量化版本。比如下面使用的 Q4_K_M 版本,模型大小为 19.85GB,在性能与体积之间取得平衡:

ollama run qwq:Q4_K_M

qwq-32b quantized versions

来源:Hugging Face

更多量化模型可在此处查找。

步骤 3:在后台运行 QwQ-32B

若要持续运行 QwQ-32B 并通过 API 提供服务,请启动 Ollama 服务器:

ollama serve

这样模型就可供下一节中提到的应用程序调用。

在本地使用 QwQ-32B

现在已完成 QwQ-32B 的设置,我们来看看如何与它交互。

步骤 1:通过 CLI 运行推理

模型下载完成后,您可以在终端中直接与 QwQ-32B 交互:

ollama run qwq
How many r's are in the word "strawberry”?

QwQ 32b model running in terminal

模型响应通常会先给出思考过程(包裹在 <think> </think> 标签内),随后给出最终答案。

步骤 2:通过 API 访问 QwQ-32B

要将 QwQ-32B 集成到应用程序中,您可以在 curl 中使用 Ollama API。在终端运行以下 curl 命令。

curl -X POST http://localhost:11434/api/chat -H "Content-Type: application/json" -d '{
  "model": "qwq",
  "messages": [{"role": "user", "content": "Explain Newton second law of motion"}], 
  "stream": false
}'

curl 是 Linux 原生的命令行工具,同样适用于 macOS。它允许用户直接在终端发起 HTTP 请求,是与 API 交互的利器。

Running QwQ 32b model using curl command

注意:请确保引号位置正确、localhost 端口号无误,以避免 dquote 错误。

步骤 3:使用 Python 运行 QwQ-32B

我们可以在任意集成开发环境(IDE)中运行 Ollama。可通过以下代码安装 Ollama 的 Python 包:

pip install ollama

安装完成后,使用以下脚本与模型交互:

import ollama
response = ollama.chat(
    model="qwq",
    messages=[
        {"role": "user", "content": "Explain Newton's second law of motion"},
    ],
)
print(response["message"]["content"])

ollama.chat() 函数接收模型名称与用户提示,将其作为一次会话进行处理。随后脚本提取并打印模型的响应内容。

Running QwQ 32b model using Python

在本地运行基于 QwQ-32B 的逻辑推理应用

我们可以结合 QwQ-32B 与 Gradio 创建一个简易的逻辑推理助手,接收用户提问并生成结构化、合乎逻辑的回答。该应用将利用 QwQ-32B 的逐步思考方式,提供清晰且有理有据的答案,适用于问题求解、教学辅导与 AI 辅助决策等场景。

步骤 1:前置条件

在开始实现之前,请先确保已安装以下工具与库:

  • Python 3.8+
  • Gradio:用于创建用户友好的 Web 界面。
  • Ollama:用于本地访问模型的库

运行以下命令安装所需依赖:

pip install gradio ollama

安装完成后,运行以下导入命令:

import gradio as gr
import ollama
import re

步骤 2:使用 Ollama 查询 QwQ-32B

准备好依赖后,我们来构建一个查询函数,将问题传递给模型,并获得结构化的回复。

def query_qwq(question):
    response = ollama.chat(
        model="qwq",
        messages=[{"role": "user", "content": question}]
    )
    full_response = response["message"]["content"]
    # Extract the <think> part and the final answer
    think_match = re.search(r"<think>(.*?)</think>", full_response, re.DOTALL)
    think_text = think_match.group(1).strip() if think_match else "Thinking process not explicitly provided."
    final_response = re.sub(r"<think>.*?</think>", "", full_response, flags=re.DOTALL).strip()
    return think_text, final_response

query_qwq() 函数通过 Ollama 与 Qwen QwQ-32B 模型交互,发送用户问题并接收结构化回复。它会提取两个关键部分:

  1. 思考过程:包含模型的推理步骤(从 <think>...</think> 标签中提取)。
  2. 最终回复:在推理之后给出的结构化最终答案(不含 <think> 部分)。

这样即可将推理步骤与最终回答分离,清晰展现模型得出结论的过程。

步骤 3:创建 Gradio 界面

核心函数就绪后,我们来构建 Gradio 界面。

interface = gr.Interface(
    fn=query_qwq,
    inputs=gr.Textbox(label="Ask a logical reasoning question"),
    outputs=[gr.Textbox(label="Thinking Process"), gr.Textbox(label="Final Response")],
    title="QwQ-32B Powered: Logical Reasoning Assistant",
    description="Ask a logical reasoning question and the assistant will provide an explanation."
)
interface.launch(debug = True)

该 Gradio 界面构建了一个逻辑推理助手,使用 gr.Textbox() 接收用户的逻辑推理问题,并通过 query_qwq() 函数处理。最后,interface.launch() 启动 Gradio 应用并开启调试,便于实时跟踪错误与日志,辅助排障。

QwQ 32b demo with gradio

结语

在本地结合 Ollama 运行 QwQ-32B,可实现私密、快速且具成本优势的模型推理。通过本教程,您可以实时探索其先进的推理能力。该模型可用于 AI 辅助教学、基于逻辑的问题求解等多种应用场景。

Aashi Dutt

作者

Aashi Dutt

我是一名 Google Developers 机器学习(生成式 AI)领域的专家、Kaggle 三项专家,以及 Women Techmakers 大使,拥有 3 年以上的技术从业经验。2020 年我共同创办了一家健康科技初创公司,目前在佐治亚理工学院攻读计算机科学硕士,专攻机器学习。

主题