|
Download README.md from anmolthukral/engineering_model: direct link, hf CLI and curl.
- Browser
- Download file 3.08 kB
-
https://huggingface.co/anmolthukral/engineering_model/resolve/main/README.md
- Command line
-
hf download hf://anmolthukral/engineering_model/README.md
-
curl -L -o README.md https://huggingface.co/anmolthukral/engineering_model/resolve/main/README.md
3.08 kB
| 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}} | |
| } | |
| ``` |