使用 Ollama 部署 Qwen3-235B-A22B 模型

使用 Ollama 部署 Qwen3-235B-A22B 模型

1. 概述

受限于硬件资源,考虑通过 Ollama 部署 Qwen3-235B-A22B 大模型的 2-bit 量化版本。由于 Ollama 官方只提供了 4-bit 量化版本的模型,没有直接提供 2-bit 量化版的模型,将采用手动下载、合并 GGUF 文件并自定义 Modelfile 的方式完成部署。

2. 环境条件

确保环境满足以下条件:

  • Ollama 已安装: 系统已经安装并运行 Ollama 服务。
  • llama.cpp 工具: 需要 llama.cpp 项目编译出的工具集,特别是 llama-gguf-split 工具。确保该工具已编译并在系统中可用。
  • 存储空间: 需要足够的磁盘空间来存储下载的 GGUF 文件(合集 85.7 GB)以及合并后的单个 GGUF 文件(85.7 GB)。

3. 部署步骤

部署步骤如下:

3.1 下载 2-bit 量化模型文件

从 Hugging Face 下载 Qwen3-235B-A22B 的 Q2_K 量化 GGUF 文件。

  1. 模型仓库:
    Hugging Face 上的 unsloth/Qwen3-235B-A22B-GGUF 仓库。

    https://huggingface.co/unsloth/Qwen3-235B-A22B-GGUF/tree/main/Q2_K

  2. 下载 GGUF 文件:
    下载该目录下所有 .gguf 文件。它们是分片文件,如下:

    • Qwen3-235B-A22B-Q2_K-00001-of-00002.gguf
    • Qwen3-235B-A22B-Q2_K-00002-of-00002.gguf

    将这两个文件下载到本地工作目录的同一文件夹下。

3.2 合并 GGUF 文件

由于下载的模型文件是分片的,需要使用 llama.cpp 提供的 llama-gguf-split 工具将它们合并成一个单独的 GGUF 文件,以便 Ollama 使用。

  1. 执行合并命令:

    llama-gguf-split --merge Qwen3-235B-A22B-Q2_K-00001-of-00002.gguf Qwen3-235B-A22B-Q2_K.gguf
    

    等待命令执行完成。完成后,将在当前目录下得到新生成的 Qwen3-235B-A22B-Q2_K.gguf 文件。

3.3 创建 Modelfile

Ollama 使用 Modelfile 文件来定义如何加载和配置模型。创建一个 Modelfile 来指定使用刚刚合并的 GGUF 文件,并设置相应的模板和参数。

  1. 创建文件:
    在包含合并后的 Qwen3-235B-A22B-Q2_K.gguf 文件的同一目录下,创建一个名为 Modelfile 的文本文件。

  2. 编辑内容:

    FROM ./Qwen3-235B-A22B-Q2_K.gguf
    
    TEMPLATE """{{- if .Messages }}
    {{- if or .System .Tools }}<|im_start|>system
    {{- if .System }}
    {{ .System }}
    {{- end }}
    {{- if .Tools }}
    
    # Tools
    
    You may call one or more functions to assist with the user query.
    
    You are provided with function signatures within <tools></tools> XML tags:
    <tools>
    {{- range .Tools }}
    {"type": "function", "function": {{ .Function }}}
    {{- end }}
    </tools>
    
    For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
    <tool_call>
    {"name": <function-name>, "arguments": <args-json-object>}
    </tool_call>
    {{- end }}<|im_end|>
    {{ end }}
    {{- range $i, $_ := .Messages }}
    {{- $last := eq (len (slice $.Messages $i)) 1 -}}
    {{- if eq .Role "user" }}<|im_start|>user
    {{ .Content }}<|im_end|>
    {{ else if eq .Role "assistant" }}<|im_start|>assistant
    {{ if .Content }}{{ .Content }}
    {{- else if .ToolCalls }}<tool_call>
    {{ range .ToolCalls }}{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}
    {{ end }}</tool_call>
    {{- end }}{{ if not $last }}<|im_end|>
    {{ end }}
    {{- else if eq .Role "tool" }}<|im_start|>user
    <tool_response>
    {{ .Content }}
    </tool_response><|im_end|>
    {{ end }}
    {{- if and (ne .Role "assistant") $last }}<|im_start|>assistant
    {{ end }}
    {{- end }}
    {{- else }}
    {{- if .System }}<|im_start|>system
    {{ .System }}<|im_end|>
    {{ end }}{{ if .Prompt }}<|im_start|>user
    {{ .Prompt }}<|im_end|>
    {{ end }}<|im_start|>assistant
    {{ end }}{{ .Response }}{{ if .Response }}<|im_end|>{{ end }}
    """
    
    PARAMETER repeat_penalty 1
    PARAMETER temperature 0.6
    PARAMETER top_k 20
    PARAMETER top_p 0.95
    PARAMETER stop "<|im_start|>"
    PARAMETER stop "<|im_end|>"
    

3.4 使用 Ollama 创建模型

使用 Ollama 命令行工具根据 Modelfile 创建自定义模型。

  1. 执行创建命令:

    ollama create Qwen3-235B-A22B -f ./Modelfile
    
  2. 等待创建过程:
    Ollama 将读取 Modelfile,找到 GGUF 文件,并将其添加到 Ollama 的模型库中。这个过程需要一些时间,终端会显示导入进度。

4. 验证

模型创建成功后,验证它是否能正常工作。

  1. 使用 Open WebUI:

  1. 模型运行状态:

受限于硬件资源,Ollama 以 GPU+CPU 混合推理模式运行。

ollama ps

18 个赞

感谢分享!我一般直接找现成的GUFF下载,省事 :sweat_smile:

这个有点大,没有现成的单一 GUFF 文件:downcast_face_with_sweat:

1 个赞

:downcast_face_with_sweat: :sweat_smile:hh

1 个赞

太大了:tieba_027:

1 个赞

2bit智商怎么样?速度快不快

Open WebUI 截图上有性能数据,速度还可以, 8.45T/s
智商没具体测试,初步主观感觉,也还不错:grinning_face_with_smiling_eyes:

1 个赞

vllm和sglang也来点

硬件资源不够,这个无法作为主力模型,vLLM 和 SGLang 就算了 :bili_017:

感谢佬友分享

1 个赞

占用多少内存+显存呀

1 个赞

总计 98GB 显存+内存,大概 71GB 左右的显存,27 GB 的内存,会有浮动,多的时候总计会超过 100GB。

你好强!

1 个赞

哪有大帅哥强

感谢分享

1 个赞

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。