File size: 3,757 Bytes
c14069c
 
 
92a02e3
 
 
c14069c
92a02e3
 
c14069c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27ac0d4
c14069c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a353dd1
c14069c
 
92a02e3
c14069c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
---
base_model: Qwen/Qwen2.5-Coder-32B-Instruct
tags:
- Rust
- Hyperswitch
- LoRA
- CPT
- Fine-Tuned
- Causal-LM
pipeline_tag: text-generation
language:
- en
---

# Qwen2.5-Coder-32B-Instruct-CPT-LoRA-Adapter-HyperSwitch

A LoRA fine-tuned model based on **Qwen/Qwen2.5-Coder-32B-Instruct** specialized for the [Hyperswitch](https://github.com/juspay/hyperswitch) Rust codebase. This model excels at understanding payment processing patterns, Hyperswitch architecture, and Rust development practices.

## 🎯 Model Description

This LoRA adapter was trained on **16,731 samples** extracted from the Hyperswitch codebase to enhance code understanding, explanation, and generation within the payment processing domain.

- **Base Model**: Qwen/Qwen2.5-Coder-32B-Instruct
- **Training Type**: Causal Language Modeling (CLM) with LoRA
- **Domain**: Payment Processing, Rust Development
- **Specialization**: Hyperswitch codebase patterns and architecture

## πŸ“Š Training Details

### Dataset Composition
- **Total Samples**: 16,731
  - **File-level samples**: 2,120 complete files
  - **Granular samples**: 14,611 extracted components
    - Functions: 4,121
    - Structs: 5,710  
    - Traits: 223
    - Implementations: 4,296
    - Modules: 261

### LoRA Configuration
```yaml
r: 64                   # LoRA rank
alpha: 128              # LoRA alpha (2*r)
dropout: 0.05           # LoRA dropout
target_modules:         # Applied to all linear layers
  - q_proj, k_proj, v_proj, o_proj
  - gate_proj, up_proj, down_proj
```

### Training Hyperparameters
- **Epochs**: 5
- **Batch Size**: 2 per device (16 effective with gradient accumulation)
- **Learning Rate**: 5e-5 (cosine schedule)
- **Max Context**: 8,192 tokens
- **Hardware**: 2x NVIDIA H200 (80GB each)
- **Training Time**: ~4 hours (2,355 steps)

### Training Results
```
Final Loss: 0.48 (from 1.63)
Perplexity: 1.59 (from 5.12)  
Accuracy: 89% (from 61%)
```

## πŸš€ Usage

### Quick Start
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch

# Load base model
base_model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen2.5-Coder-32B-Instruct",
    dtype=torch.bfloat16,
    device_map="auto"
)

# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-Coder-32B-Instruct")

# Load LoRA adapter
model = PeftModel.from_pretrained(base_model, "juspay/Qwen2.5-Coder-32B-Instruct-CPT-LoRA-Adapter-HyperSwitch")

# Generate code
prompt = """// Hyperswitch payment processing
pub fn validate_payment_method("""

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
    **inputs,
    max_new_tokens=200,
    temperature=0.2,  # Lower temperature for code generation
    do_sample=True,
    pad_token_id=tokenizer.eos_token_id
)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```

### Recommended Settings
- **Temperature**: 0.2-0.3 for code generation
- **Temperature**: 0.5-0.7 for explanations and documentation
- **Max tokens**: 512-1024 for most tasks

## πŸ› οΈ Technical Specifications

- **Context Window**: 8,192 tokens
- **Precision**: bfloat16
- **Memory Usage**: ~78GB VRAM (32B base model)
- **Inference Speed**: Optimized with Flash Attention 2



## πŸ™ Acknowledgments

- **Qwen Team** for the excellent Qwen2.5-Coder base model
- **Hyperswitch Team** for the open-source payment processing platform
- **Hugging Face** for the transformers and PEFT libraries

## πŸ“ž Citation

```bibtex
@misc{hyperswitch-qwen-lora-2024,
  title={Qwen2.5-Coder-32B-Instruct-CPT-LoRA-Adapter-HyperSwitch},
  author={Juspay},
  year={2024},
  publisher={Hugging Face},
  url={https://huggingface.co/juspay/Qwen2.5-Coder-32B-Instruct-CPT-LoRA-Adapter-HyperSwitch}
}
```