--- license: apache-2.0 base_model: Qwen/Qwen3.8-27B tags: - qwen - finetune - engineering - code-generation language: - en --- # engineering_model Fine-tuned **Qwen3.8-27B** for engineering tasks: code generation, debugging, architecture design, and technical Q&A. ## Base model [Qwen/Qwen3.8-27B](https://huggingface.co/Qwen/Qwen3.8-27B) ## Datasets used - `open-vdb/glove-100-angular` - `open-vdb/nytimes-16-angular` - `open-vdb/nytimes-256-angular` - `rsh-raj/angular-cli-commits` - `rsh-raj/angular-commits` - `lone17/angular-steering-artifacts` ## Usage ### With transformers (full model) ```python from transformers import AutoModelForCausalLM, AutoTokenizer import torch model_id = "anmolthukral/engineering_model" tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True ) prompt = "### User:\nWrite a Python function to detect cycles in a directed graph.\n### Assistant:\n" inputs = tokenizer(prompt, return_tensors="pt").to(model.device) with torch.no_grad(): outputs = model.generate( **inputs, max_new_tokens=512, temperature=0.7, top_p=0.9, do_sample=True, repetition_penalty=1.1 ) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` ### With 4-bit quantization (recommended for 27B) ```python from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig import torch bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_use_double_quant=True ) model = AutoModelForCausalLM.from_pretrained( "anmolthukral/engineering_model", quantization_config=bnb_config, device_map="auto", trust_remote_code=True ) ``` ### Chat template (Qwen format) ```python messages = [ {"role": "user", "content": "Explain the difference between mutex and semaphore"}, {"role": "assistant", "content": "..."}, {"role": "user", "content": "Show me a C++ example"} ] prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) inputs = tokenizer(prompt, return_tensors="pt").to(model.device) # ... generate ``` ## Hardware requirements | Precision | VRAM (single GPU) | Notes | |-----------|-------------------|-------| | bfloat16 | ~54 GB | 2×A100 80GB or 4×A10G | | 4-bit (NF4) | ~16 GB | 1×A10G / A100 40GB | | 8-bit | ~28 GB | 1×A100 40GB | ## Limitations - Trained on Angular/engineering data — may be biased toward frontend/web patterns - 27B parameters requires significant compute for inference - Not evaluated on safety benchmarks — use with caution in production ## Citation ```bibtex @misc{engineering_model, author = {Anmol Thukral}, title = {engineering_model: Qwen3.8-27B fine-tuned for engineering tasks}, year = {2025}, publisher = {Hugging Face}, howpublished = {\url{https://huggingface.co/anmolthukral/engineering_model}} } ```