跳至主要内容

如何在本地使用 Ollama 安装并运行 Qwen3

学习如何使用 Ollama 在本地安装、设置并运行 Qwen3,并构建一个基于 Gradio 的简单应用。
· 12分钟 阅读

使用 AI 探索

Qwen3 是阿里巴巴最新一代的开源权重大型语言模型。它支持 100 多种语言,并在推理、编程和翻译任务上表现出色,可与当下许多顶尖模型相媲美,包括 DeepSeek-R1、o3-mini 和 Gemini 2.5。

在本教程中,我将一步步讲解如何在本地运行 Qwen3,并使用 Ollama 进行管理。

我们还将使用 Qwen3 构建一个本地轻量级应用。该应用可在 Qwen3 的不同推理模式间切换,并在多种语言之间进行翻译。

我们通过 The Median(每周五免费通讯)为读者带来 AI 前沿动态,梳理一周重点资讯。订阅即可每周用几分钟快速掌握:

为何要在本地运行 Qwen3?

在本地运行 Qwen3 有以下关键优势:

  • 隐私:您的数据不会离开本机。
  • 时延:本地推理无需 API 往返,响应更快。
  • 成本效益:无需令牌费用或云端账单。
  • 可控性:您可以调优提示词、选择模型并配置思考模式。
  • 离线可用:模型下载完成后,无需联网即可使用。

Qwen3 针对深度推理(思考模式)与快速响应(非思考模式)均做了优化,并支持 100 多种语言。下面开始本地设置。

使用 Ollama 在本地设置 Qwen3

Ollama 是一款工具,可通过简单的命令行界面在您的电脑上本地运行诸如 Llama 或 Qwen 等语言模型。

步骤 1:安装 Ollama

从以下页面下载适用于 macOS、Windows 或 Linux 的 Ollama: https://ollama.com/download。

按照安装程序提示完成安装,安装后在终端运行以下命令进行验证:

ollama --version

步骤 2:下载并运行 Qwen3

Ollama 提供日益丰富的 Qwen3 模型,覆盖从轻薄本到高端服务器的多种硬件配置。

ollama run qwen3

上述命令将启动 Ollama 中的默认 Qwen3 模型,目前默认是 qwen3:8b。如果您的资源有限或希望更快启动,可以显式运行更小的变体,例如 4B 模型:

ollama run qwen3:4b

目前 Qwen3 提供多个变体,从最小的 0.6b(523MB)到最大的 235b(142GB)参数模型。尤其在思考模式下,这些小型变体在推理、翻译和代码生成方面也有不俗表现。

MoE 模型(30b-a3b、235b-a22b)尤为有趣,因为它们在每一步推理中仅激活部分专家网络,从而在保持运行成本高效的同时,实现海量总参数量。

通常建议使用您的硬件所能承载的最大模型;在消费者级设备上做本地实验时,可回落到 8B 或 4B 以获得更灵敏的体验。

以下是您可以运行的所有 Qwen3 模型速览:

模型

Ollama 命令

最佳用途

Qwen3-0.6B

ollama run qwen3:0.6b

轻量任务、移动应用与边缘设备

Qwen3-1.7B

ollama run qwen3:1.7b

聊天机器人、助手与低时延应用

Qwen3-4B

ollama run qwen3:4b

通用任务,性能与资源使用平衡

Qwen3-8B

ollama run qwen3:8b

多语言支持与中等推理能力

Qwen3-14B

ollama run qwen3:14b

高级推理、内容创作与复杂问题求解

Qwen3-32B

ollama run qwen3:32b

需要强推理与长上下文处理的高端任务

Qwen3-30B-A3B(MoE)

ollama run qwen3:30b-a3b

活跃参数 3B 的高效性能,适合编程任务

Qwen3-235B-A22B(MoE)

ollama run qwen3:235b-a22b

大规模应用、深度推理与企业级方案

步骤 3:在后台运行 Qwen3(可选)

若要通过 API 提供服务,请在终端运行:

ollama serve

这会让模型可供其他应用在 http://localhost:11434 集成使用。

本地使用 Qwen3

本节将带您了解在本地使用 Qwen3 的多种方式,从基础的命令行交互到与 Python 集成。

方案 1:通过 CLI 运行推理

模型下载完成后,您可以直接在终端与 Qwen3 交互。在终端运行以下命令:

echo "What is the capital of Brazil? /think" | ollama run qwen3:8b

这适用于无需写代码的快速测试或轻量交互。提示结尾的 /think 标签会让模型进行更深入、逐步的推理。您也可将其替换为 /no_think 以获得更快但较浅的回答,或完全省略以使用模型的默认推理模式。

使用 Ollama 在本地运行 Qwen3(推理)

方案 2:通过 API 访问 Qwen3

当 ollama serve 在后台运行时,您可以使用 HTTP API 以编程方式与 Qwen3 交互,非常适合后端集成、自动化或测试 REST 客户端。

curl http://localhost:11434/api/chat -d '{
  "model": "qwen3:8b",
  "messages": [{ "role": "user", "content": "Define entropy in physics. /think" }],
  "stream": false
}'

其工作原理如下:

  • curl 向本地的 Ollama 服务器(localhost:11434)发起 POST 请求(即我们调用 API 的方式)。
  • 请求体是一个 JSON 对象,包含:
    • "model":指定所用模型(此处为 qwen3:8b)。
    • "messages":包含 role 与 content 的聊天消息列表。
    • "stream": false:确保一次性返回完整响应,而非逐 token 流式返回。

通过 API 在本地访问 Qwen3

方案 3:通过 Python 访问 Qwen3

如果您在 Python 环境(如 Jupyter、VSCode 或脚本)中工作,最简单的方式是通过 Ollama Python SDK 进行交互。首先安装 ollama:

pip install ollama

然后使用以下脚本运行 Qwen3 模型(此处使用 qwen3:8b):

import ollama
response = ollama.chat(
    model="qwen3:8b",
    messages=[
        {"role": "user", "content": "Summarize the theory of evolution. /think"}
    ]
)
print(response["message"]["content"])

上述代码要点:

  • ollama.chat(...) 会向本地 Ollama 服务器发送聊天式请求。
  • 您需指定模型(qwen3:8b)以及与 OpenAI API 格式相似的消息列表。
  • /think 标签用于指示模型按步骤进行推理。
  • 最终响应以字典返回,您可通过 ["message"]["content"] 访问模型的答案。

这种方式非常适合本地实验、原型开发,或在不依赖云 API 的情况下构建基于 LLM 的应用。

通过 Python 在本地访问 Qwen3

使用 Qwen3 构建本地推理应用

Qwen3 支持通过 /think(深度推理)与 /no_think(快速响应)标签实现混合推理行为。本节我们将用 Gradio 创建一个包含两个选项卡的交互式本地 Web 应用:

  1. 一个用于切换思考模式的推理界面。
  2. 一个用于不同语言之间翻译或处理文本的多语言界面。

步骤 1:混合推理演示 

此步骤我们用 /think 与 /no_think 标签构建混合推理选项卡。

import gradio as gr
import subprocess
def reasoning_qwen3(prompt, mode):
    prompt_with_mode = f"{prompt} /{mode}"
    result = subprocess.run(
        ["ollama", "run", "qwen3:8b"],
        input=prompt_with_mode.encode(),
        stdout=subprocess.PIPE
    )
    return result.stdout.decode()
reasoning_ui = gr.Interface(
    fn=reasoning_qwen3,
    inputs=[
        gr.Textbox(label="Enter your prompt"),
        gr.Radio(["think", "no_think"], label="Reasoning Mode", value="think")
    ],
    outputs="text",
    title="Qwen3 Reasoning Mode Demo",
    description="Switch between /think and /no_think to control response depth."
)

上述代码说明:

  • 函数 reasoning_qwen3() 接收用户提示与推理模式("think" 或 "no_think")。
  • 将所选模式作为后缀添加到提示中。
  • 随后使用 subprocess.run() 运行 ollama run qwen3:8b 命令,并通过标准输入传入提示。
  • 最后捕获并返回 Qwen3 的输出,解码为字符串。

定义产出函数后,gr.Interface() 将其封装为交互式 Web 界面:指定输入组件——用于输入提示词的 Textbox 和用于选择推理模式的 Radio——并与函数入参进行映射。

步骤 2:多语言应用演示

现在来设置多语言应用选项卡。

import gradio as gr
import subprocess
def multilingual_qwen3(prompt, lang):
    if lang != "English":
        prompt = f"Translate to {lang}: {prompt}"
    result = subprocess.run(
        ["ollama", "run", "qwen3:8b"],
        input=prompt.encode(),
        stdout=subprocess.PIPE
    )
    return result.stdout.decode()
multilingual_ui = gr.Interface(
    fn=multilingual_qwen3,
    inputs=[
        gr.Textbox(label="Enter your prompt"),
        gr.Dropdown(["English", "French", "Hindi", "Chinese"], label="Target Language", value="English")
    ],
    outputs="text",
    title="Qwen3 Multilingual Translator",
    description="Use Qwen3 locally to translate prompts to different languages."
)

与上一步类似,代码逻辑如下:

  • multilingual_qwen3() 接收提示与目标语言。
  • 若目标语言不是英语,会在前面加入指令 “Translate to {lang}:” 以引导模型。
  • 同样通过 subprocess 调用 Ollama 在本地运行模型。
  • 结果以纯文本返回。

步骤 3:在 Gradio 中同时启动两个选项卡

将两个选项卡合并到一个 Gradio 应用中。

demo = gr.TabbedInterface(
    [reasoning_ui, multilingual_ui],
    tab_names=["Reasoning Mode", "Multilingual"]
)
demo.launch(debug = True)

上述代码在做什么:

  • gr.TabbedInterface() 创建包含两个选项卡的界面:
    • 一个用于控制推理深度。
    • 一个用于多语言提示翻译。
  • demo.launch(debug=True) 本地启动应用并在浏览器中打开,同时启用调试。

基于 Qwen3 的本地 Gradio 应用

多语言应用演示结语

借助 Ollama,Qwen3 将高级推理、快速解码与多语言支持带到您的本地机器。

只需少量配置,您即可:

  • 在无需依赖云端的情况下运行本地 LLM 推理
  • 在快速响应与深思熟虑的回答之间自由切换
  • 通过 API 或 Python 构建智能应用

如需进一步了解 Qwen3,建议:

Aashi Dutt

作者

Aashi Dutt

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

主题