vmarcetic commited on
Commit
caefeda
·
verified ·
1 Parent(s): defaac4

Add model card

Browse files

Add comprehensive model card with training details, usage instructions, and links to blog posts

Files changed (1) hide show
  1. README.md +92 -0
README.md ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ license: apache-2.0
5
+ library_name: transformers
6
+ tags:
7
+ - ruby
8
+ - rails
9
+ - code-generation
10
+ - gguf
11
+ - fine-tuned
12
+ - lora
13
+ - unsloth
14
+ pipeline_tag: text-generation
15
+ base_model: Qwen/Qwen3-Coder-30B-A3B-Instruct
16
+ model-index:
17
+ - name: qwen3-coder-30b-rails
18
+ results: []
19
+ ---
20
+
21
+ # qwen3-coder-30b-rails
22
+
23
+ A 31B parameter Mixture-of-Experts model fine-tuned for **Ruby on Rails code generation**. Trained on 111,000 samples extracted from 45 Rails repositories — 35 private client projects and 10 open-source codebases.
24
+
25
+ Built by [Bytecode](https://bytecode.hr).
26
+
27
+ ## Model Details
28
+
29
+ | Property | Value |
30
+ |---|---|
31
+ | Base model | [Qwen3-Coder-30B-A3B-Instruct](https://huggingface.co/Qwen/Qwen3-Coder-30B-A3B-Instruct) |
32
+ | Architecture | Qwen3 MoE (31B total, 3B active) |
33
+ | Training method | QLoRA (rank 16) via [Unsloth](https://github.com/unslothai/unsloth) |
34
+ | Training data | 111K samples from 45 Rails repos |
35
+ | Training cost | ~$32 (A100 80GB, ~26 hours) |
36
+ | Quantization | GGUF Q4_K_M (18.6 GB), Q5_K_M (21.7 GB) |
37
+
38
+ ## What it does
39
+
40
+ This model writes idiomatic Ruby on Rails code following specific conventions:
41
+
42
+ - Custom authentication with Identity and MagicLink models (not Devise)
43
+ - Namespaced concerns instead of service objects
44
+ - Solid Queue instead of Sidekiq
45
+ - State-as-records instead of boolean flags
46
+ - DaisyUI drawer layouts instead of ActiveAdmin
47
+
48
+ It generates code that follows these patterns without prompt engineering — the conventions are baked into the weights.
49
+
50
+ ## Usage with Ollama
51
+
52
+ ```bash
53
+ # Download and run
54
+ ollama run bytecodehr/qwen3-coder-30b-rails
55
+
56
+ # Example prompt
57
+ ollama run bytecodehr/qwen3-coder-30b-rails "Write a Rails controller for managing user subscriptions with state transitions"
58
+ ```
59
+
60
+ ### Memory requirements
61
+
62
+ | Format | GGUF Size | Min RAM | Recommended |
63
+ |---|---|---|---|
64
+ | Q5_K_M | 21.7 GB | 24 GB | 32 GB |
65
+ | Q4_K_M | 18.6 GB | 20 GB | 24 GB |
66
+
67
+ Rule of thumb: GGUF file size + 2–4 GB for KV cache and overhead.
68
+
69
+ ## Training
70
+
71
+ Trained with LoRA (rank 16, alpha 16) on attention projection layers (`q_proj`, `k_proj`, `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj`). Only 0.78% of parameters were trained.
72
+
73
+ The dataset pipeline:
74
+ 1. Extracted code from 45 Rails repos (35 private + 10 open-source)
75
+ 2. 15-step cleaning and deduplication pipeline
76
+ 3. 111K final training samples
77
+ 4. Includes 29 contrastive pairs (wrong way vs right way)
78
+ 5. Source diversity cap at 20% per repository
79
+
80
+ Full details in our blog posts:
81
+ - [Part 1: Dataset Engineering](https://bytecode.hr/posts/training-rails-llms-part-1-dataset-engineering)
82
+ - [Part 2: Training, Quantization, and Deployment](https://bytecode.hr/posts/training-rails-llms-part-2-training-quantization-deployment)
83
+
84
+ ## Why Ruby for LLMs?
85
+
86
+ Ruby uses 42–45% fewer tokens than TypeScript across every major LLM tokenizer. That means more code fits in the context window, generations are faster, and costs are lower. Read our analysis: [Why Ruby Is the Better Language for LLM-Powered Development](https://bytecode.hr/posts/why-ruby-is-the-better-language-for-llm-powered-development).
87
+
88
+ ## Other models
89
+
90
+ - [bytecodehr/qwen3-8b-rails](https://huggingface.co/bytecodehr/qwen3-8b-rails) — 8B dense model, runs on laptops (5 GB)
91
+ - [bytecodehr/qwen2.5-coder-7b-rails](https://huggingface.co/bytecodehr/qwen2.5-coder-7b-rails) — 7B LoRA adapter
92
+ - [bytecodehr/qwen2.5-coder-3b-rails](https://huggingface.co/bytecodehr/qwen2.5-coder-3b-rails) — 3B LoRA adapter