Text Generation
Transformers
Safetensors
English
qwen2
qwen2.5
qwen
code-generation
python
python-code-generation
dpo
direct-preference-optimization
preference-learning
lora
parameter-efficient-fine-tuning
conversational
text-generation-inference
Instructions to use ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B") model = AutoModelForCausalLM.from_pretrained("ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B
- SGLang
How to use ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B 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 "ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B" \ --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": "ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B", "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 "ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B" \ --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": "ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B with Docker Model Runner:
docker model run hf.co/ranjanrajib/DPO-trained-Qwen2.5-Python-Coder-7B
Update README.md
Browse files
README.md
CHANGED
|
@@ -116,7 +116,101 @@ model = PeftModel.from_pretrained(
|
|
| 116 |
```
|
| 117 |
|
| 118 |
---
|
|
|
|
| 119 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
## Why Use This Model?
|
| 121 |
|
| 122 |
If your primary use case is **Python code generation**, this model is intended to be a stronger alternative to the original Qwen2.5-Coder-7B-Instruct model based on the evaluation performed in this project.
|
|
|
|
| 116 |
```
|
| 117 |
|
| 118 |
---
|
| 119 |
+
## A worked example: a prompt in, code out
|
| 120 |
|
| 121 |
+
The prompt
|
| 122 |
+
|
| 123 |
+
PROMPT = """You are an expert Python programmer.
|
| 124 |
+
|
| 125 |
+
Solve the following programming problem.
|
| 126 |
+
|
| 127 |
+
Problem:
|
| 128 |
+
Calculate factorials for a list of numbers in parallel using multiprocessing.
|
| 129 |
+
|
| 130 |
+
It should return:
|
| 131 |
+
dict[int, int]: A dictionary with numbers as keys and their factorial as values.
|
| 132 |
+
|
| 133 |
+
It should raise:
|
| 134 |
+
ValueError: If any element in the input list is not an integer or is negative.
|
| 135 |
+
|
| 136 |
+
It may use:
|
| 137 |
+
multiprocessing.Pool
|
| 138 |
+
math.factorial.
|
| 139 |
+
|
| 140 |
+
Write a function with this exact signature:
|
| 141 |
+
|
| 142 |
+
def task_func(numbers: list) -> dict:
|
| 143 |
+
|
| 144 |
+
It must satisfy:
|
| 145 |
+
|
| 146 |
+
>>> factorials = task_func([5, 6, 7, 8, 9])
|
| 147 |
+
>>> factorials[5] == 120 and factorials[9] == 362880
|
| 148 |
+
True
|
| 149 |
+
|
| 150 |
+
Required function signature:
|
| 151 |
+
def task_func(numbers: list) -> dict:
|
| 152 |
+
|
| 153 |
+
Requirements:
|
| 154 |
+
- Implement the requested function.
|
| 155 |
+
- Follow the function signature.
|
| 156 |
+
- Handle the specified edge cases.
|
| 157 |
+
- Use Python.
|
| 158 |
+
- Return only the implementation.
|
| 159 |
+
- Do not provide an explanation.
|
| 160 |
+
- Do not use eval().
|
| 161 |
+
- Do not use exec().
|
| 162 |
+
- Do not perform network operations.
|
| 163 |
+
- Do not read or write files.
|
| 164 |
+
"""
|
| 165 |
+
|
| 166 |
+
### Generating
|
| 167 |
+
|
| 168 |
+
|
| 169 |
+
import re
|
| 170 |
+
import torch
|
| 171 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer, set_seed
|
| 172 |
+
|
| 173 |
+
MODEL = "ranjanrajib/DPO-trained-Qwen2.5-Coder-7B"
|
| 174 |
+
|
| 175 |
+
model = AutoModelForCausalLM.from_pretrained(MODEL, dtype=torch.bfloat16, device_map="auto")
|
| 176 |
+
tok = AutoTokenizer.from_pretrained(MODEL)
|
| 177 |
+
|
| 178 |
+
text = tok.apply_chat_template(
|
| 179 |
+
[{"role": "user", "content": PROMPT}], tokenize=False, add_generation_prompt=True)
|
| 180 |
+
inputs = tok(text, return_tensors="pt").to(model.device)
|
| 181 |
+
|
| 182 |
+
set_seed(159000) # the seed this particular sample was drawn with
|
| 183 |
+
out = model.generate(
|
| 184 |
+
**inputs,
|
| 185 |
+
do_sample=True,
|
| 186 |
+
temperature=0.2,
|
| 187 |
+
top_p=0.95,
|
| 188 |
+
max_new_tokens=512,
|
| 189 |
+
pad_token_id=tok.eos_token_id,
|
| 190 |
+
)
|
| 191 |
+
|
| 192 |
+
response = tok.decode(out[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True)
|
| 193 |
+
code = re.search(r"```python\n(.*?)```", response, re.S).group(1)
|
| 194 |
+
print(code)
|
| 195 |
+
|
| 196 |
+
### What the model returned
|
| 197 |
+
|
| 198 |
+
84 generated tokens, reproduced verbatim:
|
| 199 |
+
|
| 200 |
+
import multiprocessing
|
| 201 |
+
import math
|
| 202 |
+
|
| 203 |
+
def factorial_task(number):
|
| 204 |
+
if not isinstance(number, int) or number < 0:
|
| 205 |
+
raise ValueError(f"Invalid input: {number}")
|
| 206 |
+
return number, math.factorial(number)
|
| 207 |
+
|
| 208 |
+
def task_func(numbers: list) -> dict:
|
| 209 |
+
with multiprocessing.Pool() as pool:
|
| 210 |
+
results = pool.map(factorial_task, numbers)
|
| 211 |
+
return dict(results)
|
| 212 |
+
|
| 213 |
+
---
|
| 214 |
## Why Use This Model?
|
| 215 |
|
| 216 |
If your primary use case is **Python code generation**, this model is intended to be a stronger alternative to the original Qwen2.5-Coder-7B-Instruct model based on the evaluation performed in this project.
|