For a new Mac setup, neither model is an automatic winner. Gemma 4 26B A4B combines a mixture-of-experts (MoE) text-and-image model with roughly 3.8 billion active parameters per token. Qwen3.6 27B is a dense text-and-image model aimed at coding and agent tasks. Both have specific, downloadable Q4_K_M tags in Ollama. Compare your own workloads rather than treating model-family marketing or another checkpoint’s benchmark as a head-to-head result.

Updated October 13, 2026: Qwen3.6 is no longer the newest baseline. For a fresh Mac setup, test the official Qwen3.8 27B Q4_K_M tag as an optional third contender. Ollama lists an 18 GB download, 256K model context, and digest 25b843619e94. These are not measured throughput or peak memory figures. Keep 3.6 as a legacy comparison for existing installations; see the newer model guide.

What the two models actually require

CheckGemma 4 26B A4BQwen3.6 27B
ArchitectureMoE: 25.2B total, 3.8B activeDense model, branded 27B
Input modalitiesText and imageText and image
Ollama Q4_K_M taggemma4:26b-a4b-it-q4_K_Mqwen3.6:27b-q4_K_M
Ollama package size18 GB17 GB
Listed model contextUp to 256K tokensUp to 256K tokens
Local Mac RAMUsually plan around 32 GB or more for these quantizations; verify with your own context, image input and running apps.Same qualification.

Package sizes and tag modalities come from the exact Gemma 4 Ollama tag listing and Qwen3.6 Ollama tag listing, checked October 11, 2026. Gemma’s total/active parameter counts are from Google’s model card; Qwen’s dense architecture and image support are documented in the Qwen3.6-27B model card.

Why you may see different sizes elsewhere: This page deliberately compares older, explicit Q4_K_M tags: gemma4:26b-a4b-it-q4_K_M (18 GB, listed digest 5571076f3d70) and qwen3.6:27b-q4_K_M (17 GB, listed digest 3a40c32f1450). The current family pages list 16–19 GB for the different gemma4:26b default and 18–19 GB for qwen3.6:27b. These are different artifacts or quantizations, not contradictory measurements of the same pinned file. Before a RAM or speed comparison, record exact downloaded model digests using ollama show and ollama list. See the current family-level ranges in the Mac open-LLM guide. Package size is never a measured peak-RAM figure.

Ollama Q4_K_M package comparison: Gemma 4 26B A4B is 18 GB and Qwen3.6 27B is 17 GB. Both support text and image input; package sizes do not equal runtime memory use.
Two explicitly pinned Q4_K_M packages, compared on the same size scale. This is a download-size comparison, not a measured RAM or tokens-per-second benchmark.

Third candidate for new installs: Qwen3.8 27B

Ollama’s official model tags list qwen3.8:27b-q4_K_M at 18 GB, with a 256K model-context ceiling and text/image input. Retain Qwen3.6 as your older reference, and test Qwen3.8 separately. Product claims of improved coding are not independent Mac measurements.

Exact Ollama tagDownloadWhy include it?
gemma4:26b-a4b-it-q4_K_M18 GBDifferent MoE architecture
qwen3.6:27b-q4_K_M17 GBExisting installed baseline
qwen3.8:27b-q4_K_M18 GBCurrent Qwen candidate for new installs

Adding the three listed package sizes gives 53 GB; shared Ollama blobs may reduce actual disk use, so 53 GB is not a measured installation footprint. Only download Qwen3.8 if you need a three-way comparison. An 18 GB model package is not a RAM requirement, and reasoning defaults may differ between models.

Three specific Ollama Q4_K_M downloads: Gemma 4 26B A4B 18 GB, Qwen3.6 27B 17 GB and Qwen3.8 27B 18 GB. Not runtime RAM or measured performance.
Vendor/registry values for explicit Ollama tags; **not original runtime measurements**. [Official Qwen3.8 tag](https://ollama.com/library/qwen3.8:27b-q4_K_M).

Architecture: what the active-parameter number means

Gemma 4 26B A4B stores about 25.2 billion parameters but activates a smaller portion for each token. That can reduce computation, not the need to store the experts and other model weights. Google’s model card identifies the 26B variant as supporting text and images, not audio; audio input is available on other Gemma 4 sizes.

Qwen3.6 27B is dense. Its weights participate in inference differently from an MoE model. The original Qwen model card and Ollama’s qwen3.6:27b family both document image input. Whether a specific third-party runtime supports that input still depends on its build and model conversion.

The two architectures alone cannot establish which model is faster on your Mac. Decode speed, prompt processing and model quality change with runtime, quantization, prompt type and chip.

Install a specific quantization, not a floating default

With Ollama for macOS installed, use these explicit tags:

ollama pull gemma4:26b-a4b-it-q4_K_M
ollama pull qwen3.6:27b-q4_K_M
# Optional additional model download for new installs:
# ollama pull qwen3.8:27b-q4_K_M
ollama show gemma4:26b-a4b-it-q4_K_M
ollama show qwen3.6:27b-q4_K_M

Run them separately:

ollama run gemma4:26b-a4b-it-q4_K_M
ollama run qwen3.6:27b-q4_K_M

These model IDs make the quantization reproducible. A tag can still be updated; record the digest reported by your local Ollama installation when a strict experiment requires immutable provenance. Do not compare one of these GGUF-based Q4_K_M tags with an MLX/NVFP4 variant and attribute any speed difference to the model architecture alone.

24 GB, 32 GB or 48 GB unified memory?

An 18 GB model package does not mean it consumes exactly 18 GB while answering. Model weights, KV cache, vision processing, runtime buffers, macOS and your browser/IDE share unified memory. At 24 GB, either model may become swap-bound depending on context and workload; do not buy a new Mac on the assumption that the model will be comfortable. 32 GB is a more realistic starting tier for short to moderate contexts, while 48 GB leaves more room for long sessions and concurrent development tools.

Both Ollama listings advertise up to 256K context. That is a model capability, not proof that 256K will be useful on a 32 GB machine. Start small, measure memory pressure in Activity Monitor, and use ollama ps to see loaded models. For model-specific estimates, use the Mac LLM memory calculator.

About the reported Gemma 4 MLX speedup

Ollama’s June 29, 2026 multi-token prediction report describes an approximately 90% output-speed gain on its Aider polyglot coding-agent benchmark. The displayed setup is Gemma 4 12B NVFP4 on an M5 Max. It is a vendor-reported, different-checkpoint measurement and not evidence that gemma4:26b-a4b-it-q4_K_M is 90% faster, or faster than Qwen3.6 27B.

The article also explains that MTP’s benefit depends on the workload. If you need an MLX-specific benchmark, use the exact MLX tag and Ollama version stated in the test, and record whether MTP was active.

A comparison you can reproduce

Use five to ten real tasks: repository changes with tests, multi-step tool use and verifiable images where relevant. Keep context, sampling, quantization and background load as consistent as possible. Record load time, prompt processing duration, decode tokens/second, memory pressure and, above all, successful tasks. The non-streaming API below does not measure true time to first token (TTFT); that requires a separate streaming measurement. Record Ollama version and model digests. The code reads the local model identity from /api/tags, but receiving a valid API response is not proof of answer quality. Qwen3.8 has different thinking defaults, so matching temperature does not standardize reasoning budgets.

For a coding assistant, failed edits, retries and broken tests matter more than a vendor throughput chart. For image work, compare incorrect readings as well as successful descriptions. Neither model has a published, independent Mac head-to-head benchmark verified in third-party testing.

Reproducible Mac check: two baselines plus optional Qwen3.8

This example uses only Python’s standard library and Ollama’s local model inventory /api/tags and Generate /api/generate endpoints. It checks all selected exact model tags before generating any output and records their local digests and quantization; a missing download produces a clear error instead of an incomplete comparison. Start Ollama and pull the two baseline tags first. Set INCLUDE_QWEN38=1 to add the successor (pull qwen3.8:27b-q4_K_M first). Set RUNS=3 for three runs per model. Calls are sequential and keep_alive: 0 requests model unloading after each response. This records per-request model loading, not a fully cold operating-system file cache; previously resident models and other processes can affect timings. It does not send data to a cloud inference API. Model text stays hidden unless SHOW_OUTPUT=1 is set for manual grading.

python3 - <<'PY'
import json
import os
from urllib.error import HTTPError, URLError
from urllib.request import Request, urlopen

models = ["gemma4:26b-a4b-it-q4_K_M", "qwen3.6:27b-q4_K_M"]
if os.environ.get("INCLUDE_QWEN38") == "1":
    models.append("qwen3.8:27b-q4_K_M")
repeats = max(1, min(5, int(os.environ.get("RUNS", "1"))))
prompt = "Explain two concrete race conditions in a Python producer-consumer queue and show a corrected short code example."
base = "http://127.0.0.1:11434"
if any(tag.endswith(":cloud") for tag in models):
    raise SystemExit("Cloud models are not eligible for this local comparison")
try:
    with urlopen(base + "/api/tags", timeout=15) as response:
        installed = {entry["name"]: entry for entry in json.load(response)["models"]}
except (HTTPError, URLError, KeyError, ValueError) as error:
    raise SystemExit("Local Ollama model inventory unavailable: " + str(error))
missing = [tag for tag in models if tag not in installed]
if missing:
    raise SystemExit("Download these exact local model tags first: " + ", ".join(missing))

for model in models:
    entry = installed[model]
    print(json.dumps({
        "model_identity": model,
        "digest": entry.get("digest"),
        "quantization": (entry.get("details") or {}).get("quantization_level"),
        "listed_package_bytes": entry.get("size"),
        "requested_runs": repeats,
    }))
    for run in range(1, repeats + 1):
        payload = {
            "model": model,
            "prompt": prompt,
            "stream": False,
            "keep_alive": 0,
            "options": {"num_ctx": 4096, "num_predict": 512, "temperature": 0},
        }
        request = Request(
            base + "/api/generate",
            data=json.dumps(payload).encode("utf-8"),
            headers={"Content-Type": "application/json"},
        )
        try:
            with urlopen(request, timeout=900) as response:
                result = json.load(response)
        except (HTTPError, URLError, ValueError) as error:
            raise SystemExit(f"{model} run {run}: local generation failed: {error}")
        count = result.get("eval_count", 0)
        duration = result.get("eval_duration", 0)
        print(json.dumps({
            "model": model,
            "run": run,
            "output_tokens": count,
            "tokens_per_second": round(count * 1e9 / duration, 2) if duration else None,
            "prompt_seconds": round(result.get("prompt_eval_duration", 0) / 1e9, 2),
            "load_seconds": round(result.get("load_duration", 0) / 1e9, 2),
            "total_seconds": round(result.get("total_duration", 0) / 1e9, 2),
            "done_reason": result.get("done_reason"),
            "response_chars": len(result.get("response") or ""),
        }))
        if os.environ.get("SHOW_OUTPUT") == "1":
            print((result.get("response") or "")[:1500])
PY

eval_count / eval_duration gives output decode tokens per second, not TTFT. The Ollama fields load_duration, prompt_eval_duration and total_duration are separate nanosecond timings converted to seconds by the script. To repeat, prefix the first line of the code block with RUNS=3, as in RUNS=3 python3 - <<'PY'; for all three use RUNS=3 INCLUDE_QWEN38=1 python3 - <<'PY'. Record macOS Activity Monitor → Memory pressure and swap, and mark done_reason: "length" as truncated. Generation is intentionally capped at 512 tokens, which may be insufficient for long thinking outputs. One run cannot establish a quality ranking.

Check whether the answer actually identifies two valid race conditions and provides code that passes your tests; record failures as well as successes. No original measured Mac results are asserted here. The fields are documented in the Ollama API reference; keep model digests with your results for reproducibility.

Which one should you keep?

Try Gemma 4 26B A4B when a lower active-parameter MoE path or multimodal general assistance is central to the task. Try Qwen3.6 27B when maintaining an established Qwen coding/agent integration. For new coding setups, test Qwen3.8 alongside it before selecting a default. Keep the option that completes your own jobs within your memory budget; don’t award a universal winner without comparable evidence.

Sources checked October 12, 2026: Gemma 4 model card · Qwen3.6-27B model card · Ollama Gemma tags · Ollama Qwen tags · Ollama MTP report · Qwen3.8 Q4_K_M.

Frequently Asked Questions

Is Qwen3.6 27B still a sensible choice?

It may be worth keeping for an established deployment. New installs should also test the newer Qwen3.8 27B on the same tasks instead of assuming 3.6 is the latest option.

Which model wins for coding?

This guide contains no independent Mac head-to-head benchmark. Test both on the same repository tasks and measure successful edits and retries rather than assuming that coding-focused positioning proves a win.

How much unified memory do these Q4 versions need?

The specific Ollama Q4_K_M downloads are 18 GB for Gemma 4 26B A4B and 17 GB for Qwen3.6 27B. KV cache, runtime and macOS need extra memory; 32 GB is a more realistic starting tier than 24 GB, and 48 GB provides headroom.

Do both models accept images?

Yes. Both model cards and Ollama tags document text and image input. The Gemma 4 26B variant does not offer audio input, and support in a third-party conversion must be checked separately.

Does Ollama's 90% MTP figure prove Gemma 4 26B is faster?

No. The reported Aider-polyglot setup used Gemma 4 12B NVFP4 on an M5 Max. It is a vendor measurement of a different checkpoint, not a 26B Q4_K_M versus Qwen3.6 result.

Researched and written with AI, sources cited, original measurements marked. AI transparency

Published: May 13, 2026 Updated: October 13, 2026

About the author