File size: 2,814 Bytes
d65ad3b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
---
license: apache-2.0
base_model:
- Qwen/Qwen3.6-27B
library_name: mlx
tags:
- mlx
- qwen3.6
- qwen3_5
- apple-silicon
- tool-calling
- go
- golang
---

# Qwen3.6-27B-go-v1 MTP BF16 MLX

A Go-focused Qwen3.6-27B model for Apple Silicon, packaged in MLX.

Use it as a coding assistant for Go projects: generating focused patches, explaining diffs, tightening tests, reading command output, and making small repo-aware edits. It is tuned for tool-calling workflows where the assistant has to inspect files, run commands, and keep changes narrow.

This is the native-MTP BF16 full-precision variant. This native-MTP package includes the model's MTP weights for runtimes that support the Qwen3.6 dense MTP layout, such as oMLX. If a loader rejects MTP weights, use the matching plain repo instead.

## Which Variant Should I Use?

- **Use this repo** if your runtime supports native MTP for dense Qwen3.6 MLX models and you want the native-MTP BF16 full-precision package.
- Use [`jedisct1/Qwen3.6-27B-go-v1-MTP-4bit.mlx`](https://huggingface.co/jedisct1/Qwen3.6-27B-go-v1-MTP-4bit.mlx) for the native-MTP 4-bit OptIQ sibling.
- Use [`jedisct1/Qwen3.6-27B-go-v1-MTP-8bit.mlx`](https://huggingface.co/jedisct1/Qwen3.6-27B-go-v1-MTP-8bit.mlx) for the native-MTP 8-bit sibling.
- Use [`jedisct1/Qwen3.6-27B-go-v1-bf16.mlx`](https://huggingface.co/jedisct1/Qwen3.6-27B-go-v1-bf16.mlx) if your runtime does not support native MTP weights.

## Usage

Requires [mlx-lm](https://github.com/ml-explore/mlx-lm):

```bash
pip install mlx-lm
```

```python
from mlx_lm import load, generate

model, tokenizer = load("jedisct1/Qwen3.6-27B-go-v1-MTP-bf16.mlx")

messages = [
    {"role": "system", "content": "You are an expert Go developer."},
    {"role": "user", "content": "Generate a focused patch that replaces panic() in loadConfig() with returned errors and table-driven tests."},
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
response = generate(model, tokenizer, prompt=prompt, max_tokens=500)
print(response)
```

## What It Is Good At

- Writing idiomatic Go patches from a concise change request.
- Explaining Go diffs in commit-message style.
- Following tool-calling workflows where it needs to inspect files before editing.
- Keeping changes focused instead of turning small fixes into broad rewrites.
- Working with tests, compiler errors, command output, and repository context.

## Limitations

- Outputs should be reviewed before use, especially concurrency code, unsafe/cgo code, and changes that affect security boundaries.
- The model works best on focused Go changes, tests, and explanations. Very large refactors may need to be split into smaller steps.
- Tool calling depends on the runtime and client preserving the chat template and tool schema format.