vmarcetic commited on
Commit
308c282
·
verified ·
1 Parent(s): 2dad959

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 +90 -0
README.md ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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-8B
16
+ model-index:
17
+ - name: qwen3-8b-rails
18
+ results: []
19
+ ---
20
+
21
+ # qwen3-8b-rails
22
+
23
+ An 8B parameter dense model fine-tuned for **Ruby on Rails code generation**. Trained on 111,000 samples extracted from 45 Rails repositories. Small enough to run on a laptop.
24
+
25
+ Built by [Bytecode](https://bytecode.hr).
26
+
27
+ ## Model Details
28
+
29
+ | Property | Value |
30
+ |---|---|
31
+ | Base model | [Qwen3-8B](https://huggingface.co/Qwen/Qwen3-8B) |
32
+ | Architecture | Qwen3 dense (8B parameters) |
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 | ~$21 (A100 80GB, ~17 hours) |
36
+ | Quantization | GGUF Q4_K_M (5.03 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
+ The 8B model is the lightweight option — fast enough for inline code completion, small enough to run alongside your development server without swapping.
49
+
50
+ ## Usage with Ollama
51
+
52
+ ```bash
53
+ # Download and run
54
+ ollama run bytecodehr/qwen3-8b-rails
55
+
56
+ # Example prompt
57
+ ollama run bytecodehr/qwen3-8b-rails "Write a Rails migration for a subscriptions table with plan, status, and billing cycle"
58
+ ```
59
+
60
+ ### Memory requirements
61
+
62
+ | Format | GGUF Size | Min RAM | Recommended |
63
+ |---|---|---|---|
64
+ | Q4_K_M | 5.03 GB | 8 GB | 16 GB |
65
+
66
+ Fits comfortably on any modern laptop. GGUF file size + 2–3 GB for KV cache.
67
+
68
+ ## Training
69
+
70
+ Trained with LoRA (rank 16, alpha 16) on attention projection layers. Only 0.78% of parameters were trained. The full training run took ~17 hours on a single A100 80GB GPU.
71
+
72
+ The dataset:
73
+ 1. 45 Rails repos (35 private + 10 open-source)
74
+ 2. 15-step cleaning and deduplication pipeline
75
+ 3. 111K final training samples with contrastive pairs
76
+ 4. Source diversity cap at 20% per repository
77
+
78
+ Full details in our blog posts:
79
+ - [Part 1: Dataset Engineering](https://bytecode.hr/posts/training-rails-llms-part-1-dataset-engineering)
80
+ - [Part 2: Training, Quantization, and Deployment](https://bytecode.hr/posts/training-rails-llms-part-2-training-quantization-deployment)
81
+
82
+ ## Why Ruby for LLMs?
83
+
84
+ Ruby uses 42–45% fewer tokens than TypeScript across every major LLM tokenizer. Fewer tokens means more code in the context window, faster generations, and lower costs. 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).
85
+
86
+ ## Other models
87
+
88
+ - [bytecodehr/qwen3-coder-30b-rails](https://huggingface.co/bytecodehr/qwen3-coder-30b-rails) — 31B MoE flagship model (18–21 GB)
89
+ - [bytecodehr/qwen2.5-coder-7b-rails](https://huggingface.co/bytecodehr/qwen2.5-coder-7b-rails) — 7B LoRA adapter
90
+ - [bytecodehr/qwen2.5-coder-3b-rails](https://huggingface.co/bytecodehr/qwen2.5-coder-3b-rails) — 3B LoRA adapter