Downloads · 30 days
38
9% of all-time downloads
jagalindo/uvl-qwen2.5-coder-7b-sft
uvl-qwen2.5-coder-7b-sft is a text generation model from jagalindo. Use it when you need the model to write or continue text. It is set up for mlx. The card lists the license as apache-2.0.
A standalone, MLX 4-bit quantized model (Qwen2.5-Coder-7B-Instruct) fine-tuned to generate UVL (Universal Variability Language) feature models from a domain description and structural constraints (feature count, cross…
Downloads · 30 days
38
9% of all-time downloads
All-time downloads
434
Public
Parameters
7.6B
4.3 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors4.3 GB · 100%
How the weights are stored.
U327.6B · 100%
From the Hugging Face model README
A standalone, MLX 4-bit quantized model (Qwen2.5-Coder-7B-Instruct) fine-tuned to generate UVL (Universal Variability Language) feature models from a domain description and structural constraints (feature count, cross-tree constraints, depth, UVL level).
This is the fused model: the SFT LoRA adapter has been merged into the base, so it runs directly with mlx-lm on Apple Silicon — no separate adapter or base download needed. For a portable adapter you can apply to the full-precision base, use the LoRA repos linked below.
Trained with fine-tunning-uvl on
the good/bad generations of the UVL_LLM_Guided_Generation benchmark, supervised
on the valid (flamapy-parseable) outputs with prompt masking.
Valid-UVL rate on a 62-prompt held-out test set (flamapy validator):
pip install mlx-lm
from mlx_lm import load, generate
model, tokenizer = load("jagalindo/uvl-qwen2.5-coder-7b-sft")
messages = [
{"role": "system", "content": "You are an expert in Software Product Lines ... generate valid UVL ..."},
{"role": "user", "content": "## Your task\nGenerate a valid UVL feature model for ..."},
]
prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True)
print(generate(model, tokenizer, prompt=prompt, max_tokens=1536, verbose=True))
For best results, sample a few candidates and keep the first that parses with flamapy (retry-until-valid), then apply the project's light post-processing.
Small/medium model on a niche DSL; not every generation parses on the first try. Use retry-until-valid + the project's light post-processing (dedup feature names, drop dangling constraints, quote non-identifier namespaces) to reach the headline rate. The 4-bit quantization trades a little fidelity for size/speed; the full-precision LoRA adapter is available if you need it.
Part of the fine-tunning-uvl
project — three artifacts from the same training run, all based on
Qwen/Qwen2.5-Coder-7B-Instruct:
jagalindo/uvl-qwen2.5-coder-7b-sft — this model: fused full model (MLX 4-bit, runs standalone via mlx-lm)jagalindo/uvl-qwen2.5-coder-7b-sft-merged — merged bf16 full model (CUDA-ready, transformers)jagalindo/uvl-qwen2.5-coder-7b-sft-lora — SFT LoRA adapter (apply on the full-precision base; recommended checkpoint)jagalindo/uvl-qwen2.5-coder-7b-dpo-lora — DPO LoRA adapter (experimental; regressed vs SFT)