Text Generation
PEFT
Safetensors
Transformers
English
lora
code-generation
python
reasoning
synthetic-data
conversational
Instructions to use vrachit/Qwen-1.5-1.8b-PythonCOT-coder with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use vrachit/Qwen-1.5-1.8b-PythonCOT-coder with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen1.5-1.8B") model = PeftModel.from_pretrained(base_model, "vrachit/Qwen-1.5-1.8b-PythonCOT-coder") - Transformers
How to use vrachit/Qwen-1.5-1.8b-PythonCOT-coder with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="vrachit/Qwen-1.5-1.8b-PythonCOT-coder") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("vrachit/Qwen-1.5-1.8b-PythonCOT-coder", dtype="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use vrachit/Qwen-1.5-1.8b-PythonCOT-coder with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "vrachit/Qwen-1.5-1.8b-PythonCOT-coder" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "vrachit/Qwen-1.5-1.8b-PythonCOT-coder", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/vrachit/Qwen-1.5-1.8b-PythonCOT-coder
- SGLang
How to use vrachit/Qwen-1.5-1.8b-PythonCOT-coder with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "vrachit/Qwen-1.5-1.8b-PythonCOT-coder" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "vrachit/Qwen-1.5-1.8b-PythonCOT-coder", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "vrachit/Qwen-1.5-1.8b-PythonCOT-coder" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "vrachit/Qwen-1.5-1.8b-PythonCOT-coder", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use vrachit/Qwen-1.5-1.8b-PythonCOT-coder with Docker Model Runner:
docker model run hf.co/vrachit/Qwen-1.5-1.8b-PythonCOT-coder
| base_model: Qwen/Qwen1.5-1.8B | |
| library_name: peft | |
| pipeline_tag: text-generation | |
| tags: | |
| - base_model:adapter:Qwen/Qwen1.5-1.8B | |
| - lora | |
| - transformers | |
| - code-generation | |
| - python | |
| - reasoning | |
| - synthetic-data | |
| language: | |
| - en | |
| license: apache-2.0 | |
| # Qwen 1.5 1.8B - Python Code Generation with Step-by-Step Reasoning | |
| A fine-tuned version of Qwen 1.5 1.8B that generates Python code with detailed step-by-step reasoning explanations. This model teaches users how to solve programming problems by explaining its thought process before writing code. | |
| ## Model Details | |
| ### Model Description | |
| This model is fine-tuned using QLoRA on a synthetic dataset of 1,000 Python programming problems enriched with step-by-step reasoning. The model learns to explain its problem-solving approach before generating code, making it ideal for educational purposes and transparent code generation. | |
| - **Developed by:** [Your Name/Organization] | |
| - **Model type:** Causal Language Model (Fine-tuned with LoRA adapters) | |
| - **Language(s):** English (code generation in Python) | |
| - **License:** Apache 2.0 | |
| - **Finetuned from model:** Qwen/Qwen1.5-1.8B | |
| ### Model Sources | |
| - **Base Model:** [Qwen/Qwen1.5-1.8B](https://huggingface.co/Qwen/Qwen1.5-1.8B) | |
| - **Training Data:** Synthetic dataset generated from MBPP and CodeAlpaca using Llama 3.1 8B | |
| ## Uses | |
| ### Direct Use | |
| This model is designed for: | |
| - **Educational code generation**: Teaching programming concepts through explained solutions | |
| - **Transparent AI coding assistants**: Understanding how the model approaches problems | |
| - **Code explanation**: Generating step-by-step breakdowns of problem-solving strategies | |
| - **Learning tool**: Helping beginners understand algorithmic thinking | |
| ### Example Usage | |
| ```python | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| from peft import PeftModel | |
| # Load base model and tokenizer | |
| base_model = AutoModelForCausalLM.from_pretrained( | |
| "Qwen/Qwen1.5-1.8B", | |
| device_map="auto" | |
| ) | |
| tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-1.8B") | |
| # Load LoRA adapter | |
| model = PeftModel.from_pretrained(base_model, "[YOUR_MODEL_PATH]") | |
| # Generate code with reasoning | |
| prompt = "Write a Python function to find the longest common prefix in a list of strings." | |
| inputs = tokenizer(prompt, return_tensors="pt").to(model.device) | |
| outputs = model.generate(**inputs, max_new_tokens=512) | |
| print(tokenizer.decode(outputs[0], skip_special_tokens=True)) | |
| ``` | |
| ### Out-of-Scope Use | |
| - **Production-critical systems**: This model is fine-tuned on a limited dataset and should not be used for safety-critical applications | |
| - **Non-Python languages**: The model is specifically trained on Python problems | |
| - **Complex software architecture**: Best suited for algorithm-level problems, not large-scale system design | |
| - **Security-sensitive code**: Should not be used for generating cryptographic or security-critical code without expert review | |
| ## Bias, Risks, and Limitations | |
| ### Limitations | |
| 1. **Dataset size**: Trained on only 1,000 examples, may not generalize to all problem types | |
| 2. **Teacher model quality**: Synthetic data generated by Llama 3.1 8B may contain errors | |
| 3. **Small test set**: Evaluated on only 7 problems, true generalization unknown | |
| 4. **Potential overfitting**: High accuracy on test set may indicate memorization rather than true learning | |
| 5. **No code validation**: Training data was not validated for correctness before fine-tuning | |
| ### Recommendations | |
| - Always review and test generated code before using in production | |
| - Use as a learning tool rather than a replacement for human expertise | |
| - Validate outputs against test cases and edge cases | |
| - Consider the model's explanations as one perspective, not absolute truth | |
| ## Training Details | |
| ### Training Data | |
| - **Source datasets**: MBPP (Mostly Basic Programming Problems) and CodeAlpaca | |
| - **Dataset size**: 1,000 Python programming problems | |
| - **Data generation**: Synthetic step-by-step reasoning generated using Llama 3.1 8B Instant via Groq API | |
| - **Data structure**: Each example contains: | |
| - Original programming problem | |
| - Step-by-step reasoning (problem understanding, algorithm design, implementation strategy) | |
| - Python solution | |
| ### Training Procedure | |
| #### Fine-tuning Method | |
| - **Technique**: QLoRA (Quantized Low-Rank Adaptation) | |
| - **Quantization**: 4-bit quantization for memory efficiency | |
| - **LoRA Configuration**: | |
| - Rank (r): 8 | |
| - Alpha: 16 | |
| - Target modules: q_proj, k_proj, v_proj, o_proj (attention layers) | |
| - Dropout: 0.05 | |
| #### Training Hyperparameters | |
| - **Training epochs**: 3 | |
| - **Learning rate**: 2e-4 | |
| - **Optimizer**: paged_adamw_8bit | |
| - **Batch size**: [Specify if known] | |
| - **Training regime**: Mixed precision (4-bit quantization) | |
| - **Hardware**: Google Colab T4 GPU (free tier) | |
| - **Framework**: PEFT 0.17.1, Transformers, bitsandbytes | |
| #### Training Time | |
| - Approximately [X hours] on Google Colab T4 GPU | |
| ## Evaluation | |
| ### Testing Data & Metrics | |
| #### Testing Data | |
| - **Test set size**: 7 diverse Python programming problems | |
| - **Problem types**: Mix of algorithmic challenges from the training distribution | |
| #### Metrics | |
| - **Primary metric**: Pass@1 (functional correctness - does the generated code execute correctly?) | |
| - **Secondary metric**: Reasoning structure presence (does output include step-by-step explanation?) | |
| ### Results | |
| | Metric | Base Model (Qwen 1.5 1.8B) | Fine-tuned Model | | |
| |--------|---------------------------|------------------| | |
| | Pass@1 | 75% | 100% | | |
| | Reasoning Structure | Inconsistent | 100% | | |
| **Key Findings**: | |
| - **+25 percentage point improvement** in functional correctness | |
| - **100% of outputs** now include structured step-by-step reasoning | |
| - All 7 test cases passed successfully | |
| **Important Note**: Results are based on a small test set (7 examples). Larger-scale evaluation needed to confirm generalization. | |
| ## Environmental Impact | |
| - **Hardware Type**: NVIDIA T4 GPU (Google Colab) | |
| - **Hours used**: ~[X hours for fine-tuning] | |
| - **Cloud Provider**: Google Cloud Platform | |
| - **Compute Region**: [Specify if known] | |
| - **Carbon Emitted**: Minimal due to use of QLoRA on single T4 GPU | |
| Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute). | |
| ## Technical Specifications | |
| ### Model Architecture | |
| - **Base architecture**: Qwen 1.5 1.8B (Transformer decoder) | |
| - **Fine-tuning method**: LoRA adapters on attention layers | |
| - **Total parameters**: 1.8B (base) + ~4.7M (LoRA adapters) | |
| - **Trainable parameters**: ~4.7M (0.26% of total) | |
| ### Compute Infrastructure | |
| #### Hardware | |
| - GPU: NVIDIA T4 (16GB VRAM) | |
| - Platform: Google Colab (free tier) | |
| #### Software | |
| - PEFT 0.17.1 | |
| - Transformers | |
| - bitsandbytes (for 4-bit quantization) | |
| - PyTorch | |
| - Groq API (for synthetic data generation) | |
| ## Project Insights | |
| ### What Worked Well | |
| - Cross-model knowledge distillation (8B teacher → 1.8B student) | |
| - QLoRA enabled fine-tuning on free-tier GPU | |
| - Structured prompts for synthetic data generation | |
| - Teaching reasoning process alongside code generation | |
| ### Future Improvements | |
| 1. **Better teacher model**: Use Llama 3.1 70B for higher-quality synthetic data | |
| 2. **Data validation**: Verify all generated code executes correctly before training | |
| 3. **Larger dataset**: Scale to 5,000-10,000 examples | |
| 4. **Robust evaluation**: Test on 50-100 problems from benchmarks like HumanEval | |
| 5. **Higher LoRA rank**: Experiment with rank 16 or 32 for more capacity | |
| ## Citation | |
| If you use this model, please cite: | |
| ```bibtex | |
| @misc{qwen15-code-reasoning, | |
| author = {[Rachit Verma]}, | |
| title = {Qwen 1.5 1.8B Fine-tuned for Python Code Generation with Reasoning}, | |
| year = {2025}, | |
| publisher = {HuggingFace}, | |
| } | |
| ``` | |
| ## Model Card Authors | |
| [Rachit Verma] | |