[PR #15224] create: fix parser/renderer mapping for qwen3 variants #61784

Open
opened 2026-04-29 16:48:06 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/ollama/ollama/pull/15224
Author: @dhirajlochib
Created: 4/2/2026
Status: 🔄 Open

Base: mainHead: create/fix-qwen3-variant-parser-mapping


📝 Commits (3)

  • 6474431 create: fix parser/renderer mapping for qwen3 variants
  • 1fce399 create: fix gofmt formatting in test file
  • 568e16b Merge branch 'main' into create/fix-qwen3-variant-parser-mapping

📊 Changes

2 files changed (+82 additions, -0 deletions)

View changed files

📝 x/create/client/create.go (+32 -0)
📝 x/create/client/create_test.go (+50 -0)

📄 Description

Summary

Fixes the wrong parser/renderer being assigned to Qwen3.5 and Qwen3-Coder models during ollama create from safetensors.

Problem

getParserName() and getRendererName() in x/create/client/create.go used strings.Contains(archLower, "qwen3") which matches all Qwen3 variants indiscriminately. This caused:

  • Qwen3.5 models (Qwen3_5ForConditionalGeneration) to get parser "qwen3" instead of "qwen3.5"
  • Qwen3-Coder models (Qwen3NextForCausalLM) to get parser "qwen3" instead of "qwen3-coder"
  • Qwen3-VL models to get the wrong parser/renderer

This results in broken tool calling for these models since each variant uses a different tool-call format (Hermes JSON for Qwen3, XML for Qwen3-Coder/Qwen3.5).

Fix

Add specific checks for each Qwen3 variant before the generic qwen3 fallback:

HF Architecture Parser Renderer
Qwen3_5* qwen3.5 qwen3.5
Qwen3Next* (Coder) qwen3-coder qwen3-coder
Qwen3VL* qwen3-vl-instruct qwen3-vl-instruct
Qwen3* (plain) qwen3 qwen3-coder (unchanged)

Tests

Added TestGetParserName and TestGetRendererName covering all Qwen3 variants plus fallback cases.

Fixes #14493


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/ollama/ollama/pull/15224 **Author:** [@dhirajlochib](https://github.com/dhirajlochib) **Created:** 4/2/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `create/fix-qwen3-variant-parser-mapping` --- ### 📝 Commits (3) - [`6474431`](https://github.com/ollama/ollama/commit/6474431a205e7c3a35a1c099005368d89f112552) create: fix parser/renderer mapping for qwen3 variants - [`1fce399`](https://github.com/ollama/ollama/commit/1fce39991dc1295fde67a9b1abb6eee3e184d82e) create: fix gofmt formatting in test file - [`568e16b`](https://github.com/ollama/ollama/commit/568e16bbfb3e8eccb6d804cdfcee8927b495a3b8) Merge branch 'main' into create/fix-qwen3-variant-parser-mapping ### 📊 Changes **2 files changed** (+82 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `x/create/client/create.go` (+32 -0) 📝 `x/create/client/create_test.go` (+50 -0) </details> ### 📄 Description ## Summary Fixes the wrong parser/renderer being assigned to Qwen3.5 and Qwen3-Coder models during `ollama create` from safetensors. ## Problem `getParserName()` and `getRendererName()` in `x/create/client/create.go` used `strings.Contains(archLower, "qwen3")` which matches **all** Qwen3 variants indiscriminately. This caused: - **Qwen3.5** models (`Qwen3_5ForConditionalGeneration`) to get parser `"qwen3"` instead of `"qwen3.5"` - **Qwen3-Coder** models (`Qwen3NextForCausalLM`) to get parser `"qwen3"` instead of `"qwen3-coder"` - **Qwen3-VL** models to get the wrong parser/renderer This results in broken tool calling for these models since each variant uses a different tool-call format (Hermes JSON for Qwen3, XML for Qwen3-Coder/Qwen3.5). ## Fix Add specific checks for each Qwen3 variant **before** the generic `qwen3` fallback: | HF Architecture | Parser | Renderer | |---|---|---| | `Qwen3_5*` | `qwen3.5` | `qwen3.5` | | `Qwen3Next*` (Coder) | `qwen3-coder` | `qwen3-coder` | | `Qwen3VL*` | `qwen3-vl-instruct` | `qwen3-vl-instruct` | | `Qwen3*` (plain) | `qwen3` | `qwen3-coder` (unchanged) | ## Tests Added `TestGetParserName` and `TestGetRendererName` covering all Qwen3 variants plus fallback cases. Fixes #14493 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-29 16:48:06 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/ollama#61784