These three models suit different local setups. Qwen3 8B has a smaller common compressed download; gpt-oss 20B offers a text reasoning model with adjustable reasoning effort; Gemma 4 12B adds image and audio capabilities at the model level. The useful choice depends on the exact file, the memory available after other apps, and the input features your model runner supports.
This comparison suits readers who already have Ollama or LM Studio installed and want a next model for text, coding, or document work. If your machine has only 8GB of RAM or 6GB of GPU memory, begin with the smaller-model setup instead of treating all three as suitable first downloads.
Pick a candidate for the task
| Your task | Candidate to try | Condition that changes the answer |
|---|---|---|
| Text chat or writing on a machine with limited spare memory | Qwen3 8B in a supported compressed package | Its download must still leave room for conversation memory and the app. A smaller Qwen model can be more practical. |
| Reasoning or a tool-using text workflow with more memory | gpt-oss 20B | The runner and client must handle its Harmony format and reasoning correctly; tools need separate permissions. |
| Screenshots, page images, or mixed text and image input | Gemma 4 12B | Confirm image input works in the selected app and package. A model card's audio support does not establish desktop audio support. |
| Extracted text from a normal PDF | Any of the three that fits | Text extraction and document retrieval matter. The chat model does not need vision when it receives accurate text. |
| A coding task in an editor | A candidate that fits and supports the client's required format | Try the same small task and run its tests. A larger parameter count or a benchmark headline does not establish better code for your repository. |
Qwen3 8B is the first candidate here when download size is the main constraint. Gemma 4 12B is a candidate when image input is required. gpt-oss 20B is a candidate when you specifically want its reasoning controls and have memory for the larger package. These are starting choices, not a measured quality ranking.
For task-specific instructions, use the coding model guide, writing model guide, or local document guide.
Compare the model with its download
| Detail | gpt-oss 20B | Original Qwen3 8B | Gemma 4 12B |
|---|---|---|---|
| Architecture | Mixture of Experts: about 21B total parameters, 3.6B active per token | Dense: 8.2B parameters | Dense, encoder-free unified model: about 11.95B parameters |
| Model-level input | Text | Text | Text, image, and audio |
| Published context limit | 128K | 32,768 native; 131,072 with suitable YaRN extension | 256K |
| Example local package | Ollama gpt-oss:20b, about 14GB, MXFP4 | Official Qwen3-8B-Q4_K_M.gguf, about 5.03GB; Ollama packages can differ | Ollama gemma4:12b-it-q4_K_M, about 8.0GB |
| License on the cited model | Apache 2.0 | Apache 2.0 | Apache 2.0 |
The model cards explain architecture and intended uses. The named files and tags identify downloads. File size is disk storage, not total working memory. Tags and packages can change; inspect the current download before reserving space or choosing hardware.
gpt-oss uses compressed expert weights, but its active-parameter count is not the amount of weights you need to load. Qwen3 is dense, so it does not have the same active-expert distinction. Gemma's image processing and long conversations require resources beyond its text weights. Compare the actual package and selected context rather than multiplying the model's marketing name by a bit count.
On a Mac, the operating system, CPU, GPU, and model share unified memory. On a Windows computer with a dedicated GPU, RAM and GPU memory are separate. A 16GB RAM PC with a 6GB GPU is not the same setup as a 16GB GPU or a 16GB unified-memory Mac. CPU offloading can allow a model to run, but can also make responses much slower.
Use the hardware checker and memory calculator as planning aids. Then check the real runner's load and memory use.
Make one short chat work first
Choose one model that fits. Install a current supported runner through the Ollama guide or LM Studio guide.
In Ollama, these are separate choices; you do not need all three:
ollama run qwen3:8b
ollama run gpt-oss:20b
ollama run gemma4:12b-it-q4_K_M
After a chat opens, use a modest starting context:
/set parameter num_ctx 4096
That is a starting setting for a short check, not the model's maximum capacity. In a second terminal, run ollama ps while the model is loaded. Inspect the processor allocation and selected context. A model partially running on the CPU has not achieved full GPU loading merely because its first reply appeared.
In LM Studio, search the exact model and select a compatible package. Use supported GGUF on Windows, Linux, or Apple Silicon; MLX packages require Apple Silicon and a matching engine. Check the download's publisher, compression option, and required engine. Load one model at a modest context before attaching files or enabling tools. Use GGUF vs MLX if the choices are unclear.
Give each candidate the same harmless source:
Use only this passage:
The review meeting is scheduled for Friday at 10:30.
It will move to Monday only if the draft is not ready.
No fee amount has been agreed.
Return the scheduled time, the condition for moving it,
and the agreed fee. Say "not stated" for missing information.
The answer should preserve Friday at 10:30, retain the conditional move, and avoid inventing a fee. This is a check you can perform, not a reported result for any of these models. Restart the app and repeat a new short chat to confirm the setup still works.
For coding, use a disposable folder and a small function with tests you understand. Ask for a function that removes repeated values while preserving their first appearance; include empty-input and repeated-value cases. Inspect and run the tests before letting an agent modify a real project.
Reasoning and context need model-specific settings
gpt-oss supports low, medium, and high reasoning effort. Its model card requires the Harmony format; use a runner and client that implement it. Extra reasoning can consume more output and time. Reasoning text is not evidence that the final answer is correct.
The original Qwen3 8B supports thinking and non-thinking modes through its chat template. Its extended context uses YaRN; changing a context slider alone does not establish correct extended-context configuration. Do not transfer settings from a newer Qwen checkpoint solely because the family name matches.
Gemma 4 has its own thinking controls and prompt format. Let a compatible runner apply them. Do not paste raw control tokens from another model into its chat. For image work, first try one clear, harmless page or screenshot and check a known detail. Audio capability requires an audio-enabled implementation of the package.
All three have a published context limit above the 4096-token starting check. Their practical context on your machine can be much smaller. The selected conversation must fit its instructions, source text, history, and output. See context length and the token counter; a count using another model's tokenizer is an estimate.
When the first choice fails
| Symptom | Next check |
|---|---|
| File downloads but will not load | Check architecture and engine support, compression, free memory, and selected context. Use LM Studio loading help or Ollama loading help. |
| Short chat works, document chat fails | Inspect extracted text, document-search settings, image support, and conversation length before choosing a bigger model. |
| Answer invents a date, fee, or source | Repeat a short source-only task in a new chat and inspect the provided passage. Use incorrect-answer guidance. |
| Responses become slow | Check CPU offloading, memory pressure, other loaded models, and reasoning effort. Smaller weights or context can help if they still cover the task. |
| Tool call is malformed or never executes | Confirm the runner and client support the model's tool format. A chat reply containing JSON does not establish a working tool integration. |
Local execution and licenses
Downloaded local weights can run without a per-token cloud API bill. They still use storage, electricity, time, and finite memory. They can generate incorrect information, and a local model can be connected to remote embeddings, web tools, or a cloud-synced folder.
Keep document parsing, embeddings, provider URLs, tools, and stored history in the intended local workflow. Download models and engine components before testing offline. The privacy guide and offline guide cover those checks.
The cited checkpoints use Apache 2.0. Read the license attached to the exact download and preserve required notices when distributing it. Open weights do not establish that the training data and full training process are open. A model license does not license another app, a dataset, or third-party material supplied to the model.