Run Qwen3.5-35B-A3B text chat on a 64 GiB Intel desktop
Run Unsloth’s exact 22.02 GB Q4_K_M derivative of Qwen3.5-35B-A3B with pinned llama.cpp 0.7.0. This MoE has 35B total parameters and 3B active per token; the full expert-weight artifact is still required. Use an owned Intel Core i5-12400 desktop. Allocate 64 GiB RAM, eight inference threads and 80 GiB disk, with one sequence and a 4,096-token non-thinking text workload. The private authenticated recipe is documented; full fit and speed remain unmeasured.
- Hardware
- Intel Core i5-12400 desktop, 8 inference threads, 64 GiB RAM
- Runtime
- llama.cpp v0.7.0 (620d2225cc436ab0b001e3200e590e3b286ef9ab) · CPU
- Model format
- GGUF · GGUF Q4_K_M mixed quantization · Q4_K_M post-training GGUF derivative published by Unsloth
- Workload
- 4,096 token context · 1 concurrent
Based on source documentation; this setup has not been executed by OpenTools. Memory: unknown. No compatible measurement available.
Read the complete setup guide
Before you start
- Use an Intel Core i5-12400 desktop (6 cores / 12 threads, AVX2) with Ubuntu 24.04 x86_64, 64 GiB installed RAM and 80 GiB free disk. Allocate eight inference threads. Before a RAM upgrade, confirm motherboard, DIMM and OS compatibility; Intel’s 128 GB CPU maximum depends on memory type and does not validate a particular desktop. Build and run natively on this same CPU.
- 64 GiB RAM, 80 GiB free/root disk and eight threads are chosen resource allocations with room beyond the 22.02 GB GGUF. They are not measured minimums, a full-fit guarantee or a derived compatibility claim. Actual process peak, latency and speed are unknown.
- Read Apache License 2.0 and Unsloth’s explicit base-model/license linkage. This artifact is an Unsloth quantization, not a Qwen-published GGUF.
- Text only: no mmproj, image/video preprocessing or multimodal requests. No tools, retrieval or MTP draft model is installed. This deliberately bounded guide selects non-thinking general chat rather than long-context reasoning.
- Download the whole routed/shared-expert model. Three billion active parameters is a compute-activation description, not a three-billion-parameter storage or memory allowance. This 35B-A3B is a different architecture from the dense 27B sibling.
Exact model and requirements
- Artifact:
- Unsloth (GGUF quantization); Qwen (base model) / Qwen3.5-35B-A3B Q4_K_M, Unsloth derivative · checkpoint unsloth/Qwen3.5-35B-A3B-GGUF
- Publisher revision:
- bc014a17be43adabd7066b7a86075ff935c6a4e2
- Artifact digest:
- sha256:3b46d1066bc91cc2d613e3bc22ce691dd77e6f0d33c9060690d24ce6de494375
- Download size:
- 20.5 GiB
- Memory requirement (unknown):
- Unknown — No exact CPU process peak for this complete MoE GGUF and hybrid cache configuration.
- System RAM / disk:
- Unknown / Unknown
- Placement:
- single device. One CPU host; no tensor/pipeline sharding. CPU-only execution; --device none and zero GPU layers. No disk or accelerator offload.
- KV cache:
- F16 attention K/V cache; Gated DeltaNet recurrent state is separately runtime-managed, with no claimed state precision or full-cache byte estimate.
- Workload:
- 4,096 token context; Unknown; Unknown; concurrency 1; batch 1; cache unknown; repetitions Unknown.
- Tokenizer:
- Qwen3.5-35B-A3B GGUF tokenizer with separately pinned native 35B-A3B Jinja template · bc014a17be43adabd7066b7a86075ff935c6a4e2; template 59d61f3ce65a6d9863b86d2e96597125219dc754
- Sampling / reasoning:
- Qwen non-thinking general-task preset: temperature 0.7, top_p 0.8, top_k 20, min_p 0.0, presence_penalty 1.5, repeat_penalty 1.0. Validation max_tokens 512. Non-thinking text-only mode, independently supported by this 35B-A3B native template: enable_thinking=false and --reasoning off. No /nothink soft switch, vision projector, tool parser or MTP.
- Runtime prerequisites:
- Ubuntu 24.04 x86_64; See prerequisites above.
Qwen publishes Qwen3.5-35B-A3B under Apache License 2.0; Unsloth’s derivative metadata explicitly links that base and Apache-2.0 license. Read the full license, retain applicable license/copyright/attribution notices and mark modifications when redistributing covered work. Public access is not a substitute for license compliance. No provider inference subscription is required for the public artifact.
- qwen35-chat-template.jinja · 0 GiB · revision 59d61f3ce65a6d9863b86d2e96597125219dc754
- The complete 22,016,023,168-byte model plus attention/recurrent state, buffers, OS and setup files needs resources. Three billion active parameters does not shrink full model storage to a 3B model.
- No transformer-only KV estimate or dense/LFM sibling observation is used. Full working-memory fit, latency and speed remain unknown.
One-time setup and hardware
- hardware
- Unknown — Existing desktop purchase price and incremental hardware cost depend on the reader; unknown.
- Existing desktop purchase price and incremental hardware cost depend on the reader; unknown. Tax: unknown.
- setup
- Unknown — Initial provisioning/build time and labor cost are unknown.
- Initial provisioning/build time and labor cost are unknown. Tax: unknown.
Recurring costs
- electricity
- Unknown — Actual wall power, electricity rate and powered hours are unknown; no TDP-to-wall-power conversion.
- Actual wall power, electricity rate and powered hours are unknown; no TDP-to-wall-power conversion. Tax: unknown.
- storage
- Unknown — Incremental cost of local disk capacity is unknown. The 80 GiB free-disk walkthrough allocation is an author choice, not a measured requirement.
- Incremental cost of local disk capacity is unknown. The 80 GiB free-disk walkthrough allocation is an author choice, not a measured requirement. Tax: unknown.
- egress
- Unknown — Data transfer price, allowances and traffic volume are unknown.
- Data transfer price, allowances and traffic volume are unknown. Tax: unknown.
- administration
- Unknown — Maintenance labor rate and hours are unknown.
- Maintenance labor rate and hours are unknown. Tax: unknown.
Install the runtime
1. Build the pinned CPU server
Install build dependencies and compile the exact official source revision. These packages are system shared dependencies; no CUDA/GPU driver is required. GGML_NATIVE=ON selects -march=native for this GNU/Linux x86 build, compiling for the host CPU. Build and run on the same machine; no AVX-512 requirement is imposed on the i5-12400.
Commandsudo apt-get update sudo apt-get install -y build-essential cmake git curl ca-certificates openssl mkdir -p "$HOME/qwen35-35ba3b-hosting/models" cd "$HOME/qwen35-35ba3b-hosting" git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp git checkout --detach 620d2225cc436ab0b001e3200e590e3b286ef9ab cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGGML_METAL=OFF -DGGML_NATIVE=ON cmake --build build --config Release -j 8 ./build/bin/llama-server --versionExpected result: Build succeeds and server version identifies pinned source. Stop if checkout or build fails.
Download the model
1. Download the pinned Unsloth GGUF and Qwen template
Verify both public immutable inputs. Qwen base/template and Unsloth quantization have separate revisions and authors. Use the explicit native Jinja template so non-thinking control does not depend on an uninspected embedded-template version. Stop on either hash mismatch.
Commandcd "$HOME/qwen35-35ba3b-hosting" curl --fail --location --output models/Qwen3.5-35B-A3B-Q4_K_M.gguf 'https://huggingface.co/unsloth/Qwen3.5-35B-A3B-GGUF/resolve/bc014a17be43adabd7066b7a86075ff935c6a4e2/Qwen3.5-35B-A3B-Q4_K_M.gguf' curl --fail --location --output models/qwen35-chat-template.jinja 'https://huggingface.co/Qwen/Qwen3.5-35B-A3B/raw/59d61f3ce65a6d9863b86d2e96597125219dc754/chat_template.jinja' sha256sum --check <<'SHA256' 3b46d1066bc91cc2d613e3bc22ce691dd77e6f0d33c9060690d24ce6de494375 models/Qwen3.5-35B-A3B-Q4_K_M.gguf a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715 models/qwen35-chat-template.jinja SHA256Expected result: Both files report OK. Full expert-weight GGUF is 22,016,023,168 bytes; native 35B-A3B template 7756 bytes. Stop on mismatch; no active-weight subset or sibling file is substituted.
Configure
1. Create a private service credential
Generate this only on your own host when following the guide. It is a local service password, not an OpenAI/provider credential. Keep it private and never paste it into tickets. Create it only when absent; preserve an existing key so a repeated setup does not silently rotate access. It is not created during this documentation run.
Commandcd "$HOME/qwen35-35ba3b-hosting" umask 077 if [ ! -e .api-key ]; then openssl rand -hex 32 > .api-key fi test -s .api-key || { echo 'Existing .api-key is empty; restore it before continuing.'; exit 1; } chmod 600 .api-keyExpected result: A non-empty private .api-key file exists; existing key preserved. No secret is printed.
Start the model
1. Start one CPU-only sequence
Run the exact 40-layer Qwen3.5-35B-A3B MoE GGUF and native template. Pinned qwen35moe.cpp explicitly recognizes 40 layers as 35B_A3B and loads routed/shared experts plus Gated DeltaNet/full attention. CPU dispatch includes indexed expert matrix multiplication and Gated DeltaNet operations. This is documented support, not measured startup/fit. Keep one sequence, eight inference threads and 4,096 total context with room for 512 output tokens. Disable thinking with native enable_thinking=false and --reasoning off. No mmproj, tools or MTP.
Commandcd "$HOME/qwen35-35ba3b-hosting" export QWEN35_35BA3B_SERVICE_KEY="$(cat .api-key)" ./llama.cpp/build/bin/llama-server -m models/Qwen3.5-35B-A3B-Q4_K_M.gguf --alias qwen35-35ba3b --host 127.0.0.1 --port 8080 --api-key "$QWEN35_35BA3B_SERVICE_KEY" --device none -ngl 0 -t 8 -c 4096 -np 1 --cache-type-k f16 --cache-type-v f16 --jinja --chat-template-file models/qwen35-chat-template.jinja --chat-template-kwargs '{"enable_thinking":false}' --reasoning off --reasoning-format none --skip-chat-parsing --temp 0.7 --top-p 0.8 --top-k 20 --min-p 0.0 --presence-penalty 1.5 --repeat-penalty 1.0Expected result: Model initializes and listener starts. Pass health and authenticated chat checks before relying on the service. Command-line credentials may be visible to privileged/local users; trusted host required.
Connect to your endpoint
http://127.0.0.1:8080/v1
Same desktop loopback only; no LAN/public listener. Use on a trusted single-user host.
Access: loopback. Reader-generated private service key in Authorization: Bearer header for chat; /health is public on loopback. Run the client on this same desktop. Keep the key private; this is not an OpenAI API key.
Verify the setup
1. Check readiness and authenticated text generation
Use a second server terminal and the private service key. Send only plain text. Check final response against the supplied source passage and verify finish_reason is not length; no exact wording is guaranteed. Do not expect reasoning_content in raw mode. If extended thinking appears, non-thinking setup validation failed.
Commandcd "$HOME/qwen35-35ba3b-hosting" export QWEN35_35BA3B_SERVICE_KEY="$(cat .api-key)" curl --fail http://127.0.0.1:8080/health curl --fail http://127.0.0.1:8080/v1/chat/completions -H "Authorization: Bearer $QWEN35_35BA3B_SERVICE_KEY" -H 'Content-Type: application/json' -d '{"model":"qwen35-35ba3b","messages":[{"role":"user","content":"Summarize this supplied passage in one sentence without adding facts: The community library opens at 9am on weekdays and closes at 6pm. On Saturday it opens at 10am and closes at 4pm. It is closed on Sunday."}],"max_tokens":512,"temperature":0.7,"top_k":20,"top_p":0.8,"min_p":0.0,"presence_penalty":1.5,"repeat_penalty":1.0}' curl -o /dev/null -s -w '%{http_code}\n' http://127.0.0.1:8080/v1/chat/completions -H 'Content-Type: application/json' -d '{"model":"qwen35-35ba3b","messages":[{"role":"user","content":"Hello"}]}'Expected result: Health HTTP 200 when ready; authenticated response contains non-empty choices[0].message.content with an accurate final summary and finish_reason not length, without a generated extended thinking trace. Unauthenticated chat returns HTTP 401. Verify facts yourself; output can be wrong.
Performance evidence
No compatible measurement available. Documented support and estimated memory do not establish response speed.
Limits and troubleshooting
- Documented configuration only. No weights, build, inference, full-fit, throughput or latency benchmark was executed by OpenTools.
- Unsloth’s complete Q4_K_M artifact is 22,016,023,168 bytes. The model card reports 35B total parameters and 3B active per token. All expert weights are part of the download; active parameter count does not establish storage, working RAM, compatibility or measured performance.
- This guide is text-only. No mmproj/projector is provided and image/video requests are outside its configuration. The model’s multimodal capability is not a claim that this text recipe validates vision.
- Qwen thinks by default. This guide pins its native template and disables thinking via enable_thinking=false plus --reasoning off. /think and /nothink are not officially supported soft switches. A 4K non-thinking recipe does not preserve/validate full thinking capability; the publisher advises at least 128K context for that purpose.
- The publisher advertises 262,144 native context with extension options. This recipe configures 4,096 total prompt and output, one active sequence and 512 validation output tokens. Longer context, thinking, concurrent users and another cache policy create different configurations.
- Use Qwen’s non-thinking general-task sampler (temperature 0.7, top-p 0.8, top-k 20, min-p 0, presence penalty 1.5 and repetition penalty 1.0). The model card gives conflicting non-thinking reasoning presets in two sections; this recipe avoids that task/mode and uses the consistent general-task preset.
- Summarization validation checks a short text request only. It does not establish coding, multilingual, long-context, retrieval, agentic, structured-output or multimodal quality; generated answers can be wrong.
- Operating system packages and build tool dependencies resolve when installed. Save tool versions/build logs with any actual execution. Local hardware is Intel Core i5-12400 with eight inference threads allocated; no exact-hardware benchmark is claimed.
- Loopback and a service key do not isolate the service from privileged local users. A shared/public service needs separately designed TLS, authentication and operations.
- The native checkpoint is Qwen3_5MoeForConditionalGeneration: 40 layers, hidden size 2,048, 256 routed experts with eight selected per token, plus a shared expert. It alternates three Gated DeltaNet layers per full-attention layer; linear key heads 16, value heads 32 and full-attention KV heads two. Do not copy dense 27B or LFM MoE cache assumptions.
- Native config mamba_ssm_dtype float32 does not establish llama.cpp recurrent-state precision or peak memory. F16 cache flags specify attention K/V only; routed/shared expert weights and hybrid recurrent state add distinct requirements.
- The unchanged 64 GiB / 80 GiB allocation is an author resource choice, not a measured fit result. No dense-model or sibling benchmark, confidence, speed or memory observation is transferred.
- Download or checksum failure
- Verify exact uppercase filename and pinned URL; remove only the incomplete dedicated model file and retry. Do not run a mismatching file.
- Architecture unsupported or build fails
- Confirm exact pinned source commit, Ubuntu compiler/CMake dependencies and GGUF. Do not substitute an older packaged llama.cpp silently.
- Out of memory or context overflow
- Stop server, free/provision RAM or reduce context and restart; shorten input/output within configured total. Allocation is not a measured guarantee; record any changed configuration.
- Connection refused or HTTP 401
- Check foreground server logs, 8080 binding, matching private key and Bearer header. Run the client on this same desktop and keep the loopback listener.
- Unexpected thinking trace, template error or image request failure
- Confirm both exact GGUF/template hashes, --jinja, enable_thinking=false and --reasoning off. Do not use /nothink as a substitute. Send only text; this recipe has no mmproj and does not support images/videos. If template or architecture loading fails, confirm exact pinned runtime and stop rather than substituting a different checkpoint.
- MoE loader error or unexpectedly large download/memory use
- Verify the exact full 35B-A3B file SHA and pinned qwen35moe runtime, not the dense qwen35 path. All routed/shared expert weights are needed. Do not use the 3B active label to size disk/RAM or substitute a dense sibling. Stop on load failure and retain logs; resource changes create a different configuration.
Stop the model
1. Stop the service
Press Ctrl+C in server terminal. Unset key in each shell. Confirm this desktop localhost:8080 no longer serves the model.
Commandunset QWEN35_35BA3B_SERVICE_KEYExpected result: Server stops and localhost:8080 stops serving.
Uninstall
1. Remove dedicated model, build and credential files
Back up wanted logs/files first. Remove only this walkthrough directory after confirming its path. Shared apt packages can remain; do not remove other workloads.
Commandrm -r -- "$HOME/qwen35-35ba3b-hosting"Expected result: Dedicated files and local service credential removed; shared system dependencies remain.
Sources and verification
Sources checked Oct 16, 2026. Verification source
- https://huggingface.co/api/models/Qwen/Qwen3.5-35B-A3Bpublisher · retrieved Oct 16, 2026
- https://huggingface.co/Qwen/Qwen3.5-35B-A3B/raw/59d61f3ce65a6d9863b86d2e96597125219dc754/README.mdpublisher · retrieved Oct 16, 2026 · revision 59d61f3ce65a6d9863b86d2e96597125219dc754
- https://huggingface.co/Qwen/Qwen3.5-35B-A3B/raw/59d61f3ce65a6d9863b86d2e96597125219dc754/config.jsonpublisher · retrieved Oct 16, 2026 · revision 59d61f3ce65a6d9863b86d2e96597125219dc754
- https://huggingface.co/Qwen/Qwen3.5-35B-A3B/raw/59d61f3ce65a6d9863b86d2e96597125219dc754/chat_template.jinjapublisher · retrieved Oct 16, 2026 · revision 59d61f3ce65a6d9863b86d2e96597125219dc754
- https://huggingface.co/Qwen/Qwen3.5-35B-A3B/raw/59d61f3ce65a6d9863b86d2e96597125219dc754/LICENSEpublisher · retrieved Oct 16, 2026 · revision 59d61f3ce65a6d9863b86d2e96597125219dc754
- https://huggingface.co/api/models/unsloth/Qwen3.5-35B-A3B-GGUFpublisher · retrieved Oct 16, 2026
- https://huggingface.co/unsloth/Qwen3.5-35B-A3B-GGUF/raw/bc014a17be43adabd7066b7a86075ff935c6a4e2/README.mdpublisher · retrieved Oct 16, 2026 · revision bc014a17be43adabd7066b7a86075ff935c6a4e2
- https://huggingface.co/api/models/unsloth/Qwen3.5-35B-A3B-GGUF/tree/bc014a17be43adabd7066b7a86075ff935c6a4e2?recursive=false&expand=falsepublisher · retrieved Oct 16, 2026
- https://raw.githubusercontent.com/ggml-org/llama.cpp/620d2225cc436ab0b001e3200e590e3b286ef9ab/src/models/qwen35moe.cppruntime maintainer · retrieved Oct 16, 2026 · revision 620d2225cc436ab0b001e3200e590e3b286ef9ab
- https://raw.githubusercontent.com/ggml-org/llama.cpp/620d2225cc436ab0b001e3200e590e3b286ef9ab/ggml/src/ggml-cpu/ggml-cpu.cruntime maintainer · retrieved Oct 16, 2026 · revision 620d2225cc436ab0b001e3200e590e3b286ef9ab
- https://docs.liquid.ai/lfm/inference/llama-cppruntime maintainer · retrieved Oct 16, 2026
- https://raw.githubusercontent.com/ggml-org/llama.cpp/620d2225cc436ab0b001e3200e590e3b286ef9ab/docs/build.mdruntime maintainer · retrieved Oct 16, 2026 · revision 620d2225cc436ab0b001e3200e590e3b286ef9ab
- https://www.intel.com/content/www/us/en/products/sku/134586/intel-core-i512400-processor-18m-cache-up-to-4-40-ghz/specifications.htmlmanufacturer · retrieved Oct 16, 2026
- https://raw.githubusercontent.com/ggml-org/llama.cpp/620d2225cc436ab0b001e3200e590e3b286ef9ab/tools/server/README.mdruntime maintainer · retrieved Oct 16, 2026 · revision 620d2225cc436ab0b001e3200e590e3b286ef9ab
- https://raw.githubusercontent.com/ggml-org/llama.cpp/620d2225cc436ab0b001e3200e590e3b286ef9ab/common/arg.cppruntime maintainer · retrieved Oct 16, 2026 · revision 620d2225cc436ab0b001e3200e590e3b286ef9ab
- https://api.github.com/repos/ggml-org/llama.cpp/releases/latestruntime maintainer · retrieved Oct 16, 2026
- https://huggingface.co/api/models/Qwen/Qwen3.5-27Bpublisher · retrieved Oct 16, 2026
- https://huggingface.co/Qwen/Qwen3.5-27B/raw/fc05daec18b0a78c049392ed2e771dde82bdf654/README.mdpublisher · retrieved Oct 16, 2026 · revision fc05daec18b0a78c049392ed2e771dde82bdf654
- https://huggingface.co/Qwen/Qwen3.5-27B/raw/fc05daec18b0a78c049392ed2e771dde82bdf654/config.jsonpublisher · retrieved Oct 16, 2026 · revision fc05daec18b0a78c049392ed2e771dde82bdf654
- https://huggingface.co/Qwen/Qwen3.5-27B/raw/fc05daec18b0a78c049392ed2e771dde82bdf654/chat_template.jinjapublisher · retrieved Oct 16, 2026 · revision fc05daec18b0a78c049392ed2e771dde82bdf654
- https://huggingface.co/Qwen/Qwen3.5-27B/raw/fc05daec18b0a78c049392ed2e771dde82bdf654/LICENSEpublisher · retrieved Oct 16, 2026 · revision fc05daec18b0a78c049392ed2e771dde82bdf654
- https://huggingface.co/api/models/unsloth/Qwen3.5-27B-GGUFpublisher · retrieved Oct 16, 2026
- https://huggingface.co/unsloth/Qwen3.5-27B-GGUF/raw/3221f178a6b842d04f1fb42f1c413534adcc0a6a/README.mdpublisher · retrieved Oct 16, 2026 · revision 3221f178a6b842d04f1fb42f1c413534adcc0a6a
- https://huggingface.co/api/models/unsloth/Qwen3.5-27B-GGUF/tree/3221f178a6b842d04f1fb42f1c413534adcc0a6a?recursive=false&expand=falsepublisher · retrieved Oct 16, 2026
- https://raw.githubusercontent.com/ggml-org/llama.cpp/620d2225cc436ab0b001e3200e590e3b286ef9ab/src/models/qwen35.cppruntime maintainer · retrieved Oct 16, 2026 · revision 620d2225cc436ab0b001e3200e590e3b286ef9ab
- https://raw.githubusercontent.com/ggml-org/llama.cpp/620d2225cc436ab0b001e3200e590e3b286ef9ab/ggml/src/ggml-cpu/CMakeLists.txtruntime maintainer · retrieved Oct 16, 2026 · revision 620d2225cc436ab0b001e3200e590e3b286ef9ab