Run Qwen3.5-27B text chat on a 64 GiB Intel desktop
Use Unsloth’s exact 16.74 GB Q4_K_M derivative of Qwen3.5-27B with pinned llama.cpp 0.7.0. Use an owned Intel Core i5-12400 desktop with 64 GiB installed RAM and eight inference threads. Choose 80 GiB free/root disk, one sequence and 4,096 total context tokens. The guide explicitly disables thinking and serves plain text through a private authenticated endpoint. Full memory fit, latency and speed remain unmeasured; vision/video are not configured.
- 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 16.74 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.
Exact model and requirements
- Artifact:
- Unsloth (GGUF quantization); Qwen (base model) / Qwen3.5-27B Q4_K_M, Unsloth derivative · checkpoint unsloth/Qwen3.5-27B-GGUF
- Publisher revision:
- 3221f178a6b842d04f1fb42f1c413534adcc0a6a
- Artifact digest:
- sha256:84b5f7f112156d63836a01a69dc3f11a6ba63b10a23b8ca7a7efaf52d5a2d806
- Download size:
- 15.59 GiB
- Memory requirement (unknown):
- Unknown — No exact 27B hybrid-state/process peak memory evidence for this 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-27B GGUF tokenizer with separately pinned Qwen 27B native Jinja template · 3221f178a6b842d04f1fb42f1c413534adcc0a6a; template fc05daec18b0a78c049392ed2e771dde82bdf654
- 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: native Qwen Jinja template, enable_thinking=false, --reasoning off. No /think or /nothink soft switch. Raw output mode; no tool parser, MTP drafter or vision projector.
- Runtime prerequisites:
- Ubuntu 24.04 x86_64; See prerequisites above.
Qwen publishes Qwen3.5-27B under Apache License 2.0; Unsloth’s derivative metadata explicitly names this base model, declares Apache-2.0 and links its license. Read the full license, retain applicable license/copyright/attribution notices and mark modifications when redistributing covered work. Public ungated metadata is not a substitute for license compliance. No provider API subscription is required for the public download.
- qwen35-chat-template.jinja · 0 GiB · revision fc05daec18b0a78c049392ed2e771dde82bdf654
- The full 16,740,812,704-byte GGUF plus attention cache, recurrent state, buffers, OS and setup artifacts need resources. File bytes alone do not prove fit.
- 64 GiB RAM and 80 GiB disk were selected for headroom, not as exact required-memory estimates. No transformer-only KV formula or sibling observations are used.
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-27b-hosting/models" cd "$HOME/qwen35-27b-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-27b-hosting" curl --fail --location --output models/Qwen3.5-27B-Q4_K_M.gguf 'https://huggingface.co/unsloth/Qwen3.5-27B-GGUF/resolve/3221f178a6b842d04f1fb42f1c413534adcc0a6a/Qwen3.5-27B-Q4_K_M.gguf' curl --fail --location --output models/qwen35-chat-template.jinja 'https://huggingface.co/Qwen/Qwen3.5-27B/raw/fc05daec18b0a78c049392ed2e771dde82bdf654/chat_template.jinja' sha256sum --check <<'SHA256' 84b5f7f112156d63836a01a69dc3f11a6ba63b10a23b8ca7a7efaf52d5a2d806 models/Qwen3.5-27B-Q4_K_M.gguf a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715 models/qwen35-chat-template.jinja SHA256Expected result: Both files report OK. Exact Q4_K_M GGUF is 16,740,812,704 bytes and native 27B template 7756 bytes. No weights from another size and no projector are 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-27b-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
Serve the exact 64-layer Qwen3.5 dense/hybrid 27B GGUF with the separately pinned native 27B template. The pinned qwen35 runtime explicitly recognizes 64 layers as its 27B variant, and CPU dispatch includes Gated DeltaNet and SSM operations. Documented support does not prove this allocation starts or fits. Use enable_thinking=false and --reasoning off; no soft /nothink switch. Keep one sequence, 4,096 total context tokens, and room for 512 output tokens. No mmproj, tools or MTP.
Commandcd "$HOME/qwen35-27b-hosting" export QWEN35_27B_SERVICE_KEY="$(cat .api-key)" ./llama.cpp/build/bin/llama-server -m models/Qwen3.5-27B-Q4_K_M.gguf --alias qwen35-27b --host 127.0.0.1 --port 8080 --api-key "$QWEN35_27B_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-27b-hosting" export QWEN35_27B_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_27B_SERVICE_KEY" -H 'Content-Type: application/json' -d '{"model":"qwen35-27b","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-27b","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.
- Exact Unsloth Q4_K_M artifact is 16,740,812,704 bytes, derived from Qwen/Qwen3.5-27B at separate revisions. Quantization does not guarantee full-precision quality. No weight-size-only memory fit is claimed.
- The native 27B checkpoint is a dense language backbone with a vision encoder, 64 layers and hidden size 5,120. Its config alternates three Gated DeltaNet layers per full-attention layer; it has 16 linear key heads, 48 linear value heads and four full-attention KV heads. Family MoE claims do not make this checkpoint sparse. Hybrid recurrent state and full-attention cache must not be reduced to a transformer-only memory formula.
- 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 Transformers config names mamba_ssm_dtype float32, but that does not establish llama.cpp recurrent-state precision or peak memory. This recipe explicitly sets only F16 attention K/V cache; runtime-managed recurrent state remains unmeasured.
- The four-thread, 32 GiB 9B sibling setup is not evidence for this eight-thread, 64 GiB 27B configuration. No throughput, memory or quality observation is transferred from it.
- 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.
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_27B_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-27b-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-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/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://raw.githubusercontent.com/ggml-org/llama.cpp/620d2225cc436ab0b001e3200e590e3b286ef9ab/ggml/src/ggml-cpu/CMakeLists.txtruntime maintainer · retrieved Oct 16, 2026 · revision 620d2225cc436ab0b001e3200e590e3b286ef9ab