Text Generation
Transformers
Safetensors
Arabic
English
qwen2
llama-factory
lora
python
arabic
code
instruction-tuning
fine-tuned
conversational
text-generation-inference
Instructions to use jana-ashraf-ai/python-assistant with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use jana-ashraf-ai/python-assistant with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="jana-ashraf-ai/python-assistant") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("jana-ashraf-ai/python-assistant") model = AutoModelForCausalLM.from_pretrained("jana-ashraf-ai/python-assistant", 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=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use jana-ashraf-ai/python-assistant with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "jana-ashraf-ai/python-assistant" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "jana-ashraf-ai/python-assistant", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/jana-ashraf-ai/python-assistant
- SGLang
How to use jana-ashraf-ai/python-assistant 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 "jana-ashraf-ai/python-assistant" \ --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": "jana-ashraf-ai/python-assistant", "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 "jana-ashraf-ai/python-assistant" \ --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": "jana-ashraf-ai/python-assistant", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use jana-ashraf-ai/python-assistant with Docker Model Runner:
docker model run hf.co/jana-ashraf-ai/python-assistant
File size: 3,083 Bytes
d8d9cba 9a175d2 288967a 9a175d2 288967a d8d9cba 9a175d2 288967a 9a175d2 288967a 9a175d2 d8d9cba 9a175d2 288967a 9a175d2 288967a 9a175d2 d8d9cba 9a175d2 288967a 9a175d2 288967a 9a175d2 d8d9cba 9a175d2 288967a 9a175d2 288967a 9a175d2 288967a 9a175d2 288967a 9a175d2 288967a 9a175d2 288967a 9a175d2 288967a 9a175d2 288967a 9a175d2 d8d9cba 9a175d2 288967a 9a175d2 d8d9cba 9a175d2 288967a 9a175d2 288967a 9a175d2 288967a 9a175d2 288967a 9a175d2 d8d9cba 9a175d2 288967a 9a175d2 288967a | 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 | ---
library_name: transformers
license: apache-2.0
base_model: Qwen/Qwen2.5-1.5B-Instruct
datasets:
- iamtarun/python_code_instructions_18k_alpaca
language:
- ar
- en
pipeline_tag: text-generation
tags:
- llama-factory
- lora
- qwen2
- python
- arabic
- code
- instruction-tuning
- fine-tuned
---
# 🐍 Python Assistant (Arabic)
A fine-tuned version of **Qwen2.5-1.5B-Instruct** that answers Python programming questions in **Arabic**, with structured JSON output. Fine-tuned using LoRA via LLaMA-Factory.
---
## Model Details
- **Developed by:** jana-ashraf-ai
- **Base Model:** [Qwen/Qwen2.5-1.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct)
- **Model type:** Causal Language Model (text-generation)
- **Language(s):** Arabic (answers) + English (questions)
- **License:** Apache 2.0
- **Fine-tuning method:** QLoRA (LoRA rank=32) via LLaMA-Factory
---
## What does this model do?
Given a Python programming question in English, the model returns a structured JSON answer **in Arabic**, explaining the solution step by step.
---
## How to Use
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_id = "jana-ashraf-ai/python-assistant"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.float16,
device_map="auto"
)
system_prompt = """You are a Python expert assistant.
Answer the user's Python question in Arabic following the Output Schema.
Do not add any introduction or conclusion."""
question = "How do I reverse a list in Python?"
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": question}
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```
---
## Training Details
| Parameter | Value |
|-----------|-------|
| Base model | Qwen2.5-1.5B-Instruct |
| Fine-tuning method | LoRA (QLoRA) |
| LoRA rank | 32 |
| LoRA target | all |
| Training samples | 1,000 |
| Epochs | 3 |
| Learning rate | 1e-4 |
| LR scheduler | cosine |
| Warmup ratio | 0.1 |
| Batch size | 1 (grad accum = 8) |
| Precision | fp16 |
| Quantization | 4-bit (nf4) |
| Framework | LLaMA-Factory |
| Hardware | Google Colab T4 GPU |
---
## Training Data
Fine-tuned on a curated subset (1,000 samples) from [iamtarun/python_code_instructions_18k_alpaca](https://huggingface.co/datasets/iamtarun/python_code_instructions_18k_alpaca).
The answers were annotated and structured using GPT to produce Arabic explanations in a JSON schema format.
**Train / Val split:** 90% / 10%
---
## Limitations
- The model is optimized for Python questions only.
- Answers are in Arabic — not suitable for English-only use cases.
- Small model size (1.5B) may struggle with very complex programming problems.
- Output quality depends on the question being clear and specific. |