Jay2003Bhatt commited on
Commit
ec261a6
·
verified ·
1 Parent(s): 51bf43a

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +57 -86
README.md CHANGED
@@ -1,115 +1,86 @@
1
- # Qwen Coder Lab
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
- Starter lab for building a specialized coding assistant on top of:
4
 
5
- `Qwen/Qwen3-Coder-30B-A3B-Instruct`
6
 
7
- This project is set up for three phases:
8
 
9
- 1. Run the base model locally or on a GPU machine.
10
- 2. Prepare high-quality coding instruction data.
11
- 3. Fine-tune with QLoRA, then quantize/deploy.
12
 
13
- ## Hardware Target
 
14
 
15
- For the 30B-A3B model, practical setups are:
16
 
17
- - Inference: 24 GB+ VRAM with 4-bit quantization, or a larger unified-memory machine.
18
- - QLoRA fine-tuning: 24-48 GB+ VRAM depending on sequence length, batch size, and optimizer.
19
- - CPU-only: possible only with GGUF/llama.cpp style inference, but slow.
 
 
 
 
20
 
21
- If your current machine cannot run the model, use the same project on a rented GPU instance.
22
 
23
- ## MacBook M-Series Path
 
 
 
24
 
25
- For a MacBook with 24 GB unified memory, 1 TB SSD, and a 10-core GPU:
26
 
27
- - Run the 30B model through a GGUF runtime such as Ollama, llama.cpp, or LM Studio.
28
- - Prefer Q3 or Q4 quantization for local inference. Higher precision will likely exceed comfortable memory limits.
29
- - Keep context length modest at first, such as 4K-16K tokens. Long context can consume a lot of memory.
30
- - Do not plan to QLoRA fine-tune the 30B model locally. Use a rented NVIDIA GPU for that phase.
31
- - For local fine-tuning experiments, use a smaller model first, such as a 7B coder model.
32
 
33
- Recommended local workflow:
 
 
 
 
34
 
35
- 1. Use the Mac to test prompts, collect examples, validate datasets, and run quantized inference.
36
- 2. Use a cloud GPU to fine-tune Qwen3-Coder-30B-A3B-Instruct with QLoRA.
37
- 3. Bring the resulting adapter or merged/quantized model back to the Mac for local inference.
38
 
39
- Start here: `docs/mac-local-run.md`.
40
-
41
- Training and usage roadmap: `docs/train-and-use-roadmap.md`.
42
-
43
- Specialist dataset strategy: `docs/dataset-strategy.md`.
44
-
45
- Baseline findings: `docs/baseline-findings.md`.
46
-
47
- Light deployment strategy: `docs/light-deployment-strategy.md`.
48
-
49
- Runtime system prompt: `prompts/product_engineer_system.md`.
50
-
51
- Complex benchmark findings: `docs/complex-benchmark-findings.md`.
52
-
53
- Current performance report: `docs/current-performance-report.md`.
54
-
55
- ## Install
56
-
57
- ```bash
58
- cd qwen-coder-lab
59
- python3 -m venv .venv
60
- source .venv/bin/activate
61
- pip install -r requirements.txt
62
- ```
63
-
64
- If macOS reports missing Command Line Tools when running `python3`, install them with `xcode-select --install`, or use a `uv` Python environment instead.
65
-
66
- ## Run Chat Inference
67
 
68
  ```bash
69
- python scripts/run_chat.py \
70
- --model Qwen/Qwen3-Coder-30B-A3B-Instruct \
71
- --load-in-4bit
72
- ```
73
-
74
- Then type coding requests interactively.
75
-
76
- ## Dataset Format
77
-
78
- Training examples use JSONL:
79
-
80
- ```json
81
- {"instruction":"Fix this Python bug.","input":"def add(a,b): return a-b","output":"def add(a, b):\n return a + b"}
82
  ```
83
 
84
- Validate examples:
85
 
86
  ```bash
87
- python scripts/prepare_dataset.py \
88
- --input data/examples.jsonl \
89
- --output data/prepared.jsonl
90
  ```
91
 
92
- ## QLoRA Fine-Tuning
93
 
94
- Start with the config in `configs/qwen3_coder_30b_lora.yaml`.
 
95
 
96
- ```bash
97
- python scripts/train_lora.py \
98
- --config configs/qwen3_coder_30b_lora.yaml
99
  ```
100
 
101
- The default config is intentionally conservative. Increase sequence length and batch size only after a small training run succeeds.
102
-
103
- ## What To Fine-Tune On
104
 
105
- Best data for a coding assistant:
106
 
107
- - issue -> patch examples
108
- - failing test -> fix examples
109
- - compiler/type error -> corrected code
110
- - code review comment -> improved diff
111
- - refactoring requests
112
- - multi-language explanations plus executable solutions
113
- - repo-specific style examples
114
 
115
- Avoid low-quality scraped code. For coding models, clean task/answer pairs beat giant noisy dumps.
 
1
+ ---
2
+ base_model: Qwen/Qwen2.5-Coder-14B-Instruct
3
+ license: apache-2.0
4
+ language:
5
+ - en
6
+ tags:
7
+ - code
8
+ - coding-assistant
9
+ - lora
10
+ - fine-tuned
11
+ - gguf
12
+ - ollama
13
+ pipeline_tag: text-generation
14
+ ---
15
 
16
+ # Alpha-Coder-14B
17
 
18
+ Alpha-Coder-14B is a fine-tuned version of [Qwen2.5-Coder-14B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-14B-Instruct), adapted via LoRA to produce typed, tested Python code. This repo contains both the fused fp16 weights and a Q4_K_M GGUF quant for local inference (e.g. with Ollama or llama.cpp).
19
 
20
+ ## Base model attribution
21
 
22
+ This model is a derivative of **Qwen/Qwen2.5-Coder-14B-Instruct**, released by the Qwen team under the **Apache 2.0 license**. Alpha-Coder-14B is redistributed under the same license, as permitted by Apache 2.0 for derivative/renamed works, with attribution to the original model and authors.
 
 
23
 
24
+ - Base model: [Qwen/Qwen2.5-Coder-14B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-14B-Instruct)
25
+ - License: Apache 2.0
26
 
27
+ ## Training details
28
 
29
+ - **Method:** LoRA fine-tuning
30
+ - **Hardware:** Apple Silicon M5, 24GB unified memory
31
+ - **Framework:** MLX (4-bit base model during training)
32
+ - **LoRA config:** rank = 64, alpha = 128, learning rate = 2e-6
33
+ - **Steps:** 6,160
34
+ - **Validation loss:** 0.383 → 0.252
35
+ - **Post-training:** LoRA adapter fused into the base model, dequantized to fp16 HF safetensors, then converted and quantized to GGUF (Q4_K_M, 8.4GB) via llama.cpp
36
 
37
+ ## Benchmarks
38
 
39
+ | Benchmark | Base (Qwen2.5-Coder-14B-Instruct) | Alpha-Coder-14B |
40
+ |---|---|---|
41
+ | MMLU | 72% | 77% |
42
+ | GSM8K | ~93% (no regression) | 93% |
43
 
44
+ No measurable forgetting was observed on GSM8K after fine-tuning, while MMLU improved by 5 points.
45
 
46
+ ## Files in this repo
 
 
 
 
47
 
48
+ | File | Description |
49
+ |---|---|
50
+ | `*.safetensors` | Fused fp16 weights (LoRA merged into base), full precision |
51
+ | `tokenizer*` / `*.json` | Tokenizer and config files |
52
+ | `alpha-14b-Q4_K_M.gguf` | Q4_K_M quantized GGUF, ~8.4GB, for llama.cpp / Ollama |
53
 
54
+ ## Usage with Ollama
 
 
55
 
56
+ 1. Download `alpha-14b-Q4_K_M.gguf` from this repo.
57
+ 2. Create a `Modelfile` in the same directory (use your actual system prompt from your local Modelfile).
58
+ 3. Build and run:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
  ```bash
61
+ ollama create alpha-coder -f Modelfile
62
+ ollama run alpha-coder
 
 
 
 
 
 
 
 
 
 
 
63
  ```
64
 
65
+ ## Usage with llama.cpp
66
 
67
  ```bash
68
+ ./llama-cli -m alpha-14b-Q4_K_M.gguf -p "Write a Python function that ..."
 
 
69
  ```
70
 
71
+ ## Usage with transformers (fp16 safetensors)
72
 
73
+ ```python
74
+ from transformers import AutoModelForCausalLM, AutoTokenizer
75
 
76
+ model = AutoModelForCausalLM.from_pretrained("Jay2003Bhatt/alpha-coder-14b", torch_dtype="auto", device_map="auto")
77
+ tokenizer = AutoTokenizer.from_pretrained("Jay2003Bhatt/alpha-coder-14b")
 
78
  ```
79
 
80
+ ## Intended use
 
 
81
 
82
+ Alpha-Coder-14B is intended as a coding assistant producing typed, tested Python code. As with any fine-tuned model, evaluate outputs before relying on them in production, particularly for correctness and security-sensitive code.
83
 
84
+ ## License
 
 
 
 
 
 
85
 
86
+ Apache 2.0, inherited from the base model. See the [Qwen2.5-Coder-14B-Instruct license](https://huggingface.co/Qwen/Qwen2.5-Coder-14B-Instruct/blob/main/LICENSE) for details.