Instructions to use tel1980/qwen-python-slm with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use tel1980/qwen-python-slm with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="tel1980/qwen-python-slm") 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("tel1980/qwen-python-slm") model = AutoModelForCausalLM.from_pretrained("tel1980/qwen-python-slm", 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 tel1980/qwen-python-slm with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "tel1980/qwen-python-slm" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "tel1980/qwen-python-slm", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/tel1980/qwen-python-slm
- SGLang
How to use tel1980/qwen-python-slm 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 "tel1980/qwen-python-slm" \ --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": "tel1980/qwen-python-slm", "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 "tel1980/qwen-python-slm" \ --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": "tel1980/qwen-python-slm", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use tel1980/qwen-python-slm with Docker Model Runner:
docker model run hf.co/tel1980/qwen-python-slm
Model Card: qwen-python-slm
Visรฃo geral
qwen-python-slm รฉ um modelo de linguagem pequeno (SLM) especializado em gerar cรณdigo para o ecossistema de Engenharia de Dados, Data Science, Machine Learning, Deep Learning, LLMs, Agentes de IA, DataOps e MLOps.
O modelo รฉ um ajuste fino (SFT com QLoRA) do Qwen/Qwen2.5-Coder-1.5B-Instruct, mantendo a arquitetura de 1,5 bilhรฃo de parรขmetros e adicionando adaptadores LoRA treinados para responder a instruรงรตes tรฉcnicas de dados/IA em Python, SQL e PySpark.
- Tipo de modelo: Causal LM para geraรงรฃo de cรณdigo
- Idioma: Portuguรชs (instruรงรตes) + cรณdigo multilรญngue (Python/SQL/PySpark)
- Licenรงa: Apache 2.0
- Formatos disponรญveis:
- Pesos completos (merged, FP16) no Hugging Face Hub
- GGUF quantizado em Q4_K_M para uso local via Ollama / llama.cpp / Continue.dev
Uso pretendido
- Geraรงรฃo de scripts Python para ETL/ELT, anรกlise de dados e ML.
- Escrita de consultas SQL compatรญveis com SQLite/PostgreSQL.
- Geraรงรฃo de cรณdigo PySpark para processamento distribuรญdo.
- Prototipagem de agentes de IA com LangChain, LlamaIndex, CrewAI etc.
- Automaรงรฃo de pipelines de MLOps/DataOps (Airflow, dbt, MLflow).
- Uso educacional e produtividade de desenvolvedores de dados.
Nรฃo recomendado para: produรงรฃo crรญtica sem revisรฃo humana; geraรงรฃo de cรณdigo com dados sensรญveis sem validaรงรฃo de seguranรงa; substituiรงรฃo de engenheiros especialistas.
Comandos de linguagem
O modelo reconhece prefixos no prompt para forรงar a linguagem/domรญnio desejado:
/python Cรณdigo Python genรฉrico
/sql Consultas SQL
/pyspark Cรณdigo PySpark
/ml Machine Learning (scikit-learn, PyTorch, etc.)
/llm LLMs e fine-tuning (transformers, peft, vLLM, etc.)
/agent Agentes de IA (LangChain, LlamaIndex, CrewAI, etc.)
/dataops Pipelines/DataOps/MLOps (Airflow, dbt, MLflow, etc.)
Exemplo:
ollama run tel1980/qwen-python-slm "/sql Liste os 10 produtos mais vendidos no รบltimo trimestre."
Detalhes do treinamento
- Modelo base:
Qwen/Qwen2.5-Coder-1.5B-Instruct - Tรฉcnica: Supervised Fine-Tuning (SFT) com QLoRA (4-bit NF4)
- Tamanho de contexto: 1024 tokens
- Hardware de treino: NVIDIA GeForce RTX 5050 (8 GB VRAM)
- Hiperparรขmetros LoRA:
r = 16alpha = 32dropout = 0.05- Mรณdulos alvo:
q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj
- Hiperparรขmetros de treino:
- Batch size efetivo: 16 (1 ร 16 gradient accumulation)
- Learning rate: 2e-4
- Max steps: 500
- Warmup steps: 30
- Otimizador:
paged_adamw_8bit
- Resultado do treino: ~1h10min de GPU, loss mรฉdio 0,578, loss final 0,508
- Parรขmetros treinรกveis: 18,4M (1,18% do total)
Dados de treino
Dataset final combinado: 98.180 amostras.
- Dataset principal:
iamtarun/python_code_instructions_18k_alpaca(Python, filtrado por keywords de dados/IA) - Datasets Python extras:
flytech/python-codes-25k,m-a-p/CodeFeedback-Filtered-Instruction(filtrado para Python, subamostrado para 30k) - Dataset SQL:
b-mc2/sql-create-context(subamostrado para 15k) - Dataset PySpark: curadoria prรณpria de 1.500 amostras no formato Alpaca (
datasets/pyspark_instructions.json) - Filtro de domรญnio: amostras sรฃo mantidas apenas se contiverem palavras-chave do ecossistema de dados/IA (pandas, sklearn, PyTorch, Spark, Airflow, MLflow, LangChain etc.)
- Prompt de sistema: engenheiro de dados/ML sรชnior, especializado em Python/SQL/PySpark para dados e IA.
Mรฉtricas de avaliaรงรฃo
Avaliaรงรฃo executada com src/evaluate.py (Python) e src/evaluate_extended.py (SQL e PySpark), 30 amostras por linguagem.
Ressalva: as amostras de avaliaรงรฃo vรชm dos mesmos datasets usados no treino, entรฃo os nรบmeros tendem a ser otimistas. Servem como sanity check de formato e gramรกtica.
| Mรฉtrica | Valor |
|---|---|
| Taxa de compilaรงรฃo Python vรกlida | 96,67% |
| Taxa de execuรงรฃo Python sem erros | 83,33% |
| Taxa de parse SQL vรกlido | 100,00% |
| Taxa de sintaxe PySpark vรกlida | 100,00% |
| BLEU mรฉdio โ Python | 0,175 |
| BLEU mรฉdio โ SQL | 0,917 |
| BLEU mรฉdio โ PySpark | 0,353 |
Observaรงรตes:
- Os erros de execuรงรฃo Python foram principalmente ambientais (biblioteca externa ausente,
input()sem stdin, arquivo local inexistente), nรฃo falhas de sintaxe. - BLEU alto em SQL reflete o forte padrรฃo do dataset
sql-create-context; BLEU mede similaridade com a referรชncia, nรฃo correรงรฃo semรขntica.
Futuramente, recomenda-se adicionar pass@1 em benchmarks como HumanEval, MBPP e Spider/BIRD (SQL), com dados nunca vistos no treino.
Limitaรงรตes
- O modelo foi treinado com recursos limitados (RTX 5050 8 GB, 500 steps), entรฃo pode apresentar alucinaรงรตes ou cรณdigo nรฃo executรกvel.
- SQL รฉ validado sintaticamente, mas nรฃo executado contra um banco real โ a semรขntica depende do schema fornecido.
- PySpark รฉ tratado como Python; a execuรงรฃo real exige ambiente Spark configurado.
- O domรญnio รฉ voltado para dados/IA; cรณdigo fora desse escopo (frontend, mobile, etc.) pode ter qualidade inferior.
- O modelo pode reproduzir vieses presentes nos dados de treino.
Como usar
Ollama (GGUF)
ollama run tel1980/qwen-python-slm "/python Crie uma DAG do Airflow que baixe um CSV e salve no S3."
Transformers (pesos merged)
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "tel1980/qwen-python-slm"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
messages = [
{"role": "system", "content": "Vocรช รฉ um engenheiro de dados e Machine Learning sรชnior."},
{"role": "user", "content": "/sql Liste os clientes com mais de 5 pedidos."},
]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(model.device)
outputs = model.generate(inputs, max_new_tokens=512, temperature=0.2)
print(tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True))
Licenรงa
Este modelo รฉ distribuรญdo sob a licenรงa Apache 2.0, a mesma do modelo base Qwen2.5-Coder-1.5B-Instruct.
Citaรงรฃo
Se vocรช usar este modelo em trabalhos acadรชmicos, cite o modelo base:
@article{qwen2.5,
title={Qwen2.5 Technical Report},
author={Qwen Team},
journal={arXiv preprint arXiv:2409.12186},
year={2024}
}
Links
- Cรณdigo-fonte:
https://github.com/tel1980/SLM_python - Pesos merged (FP16):
https://huggingface.co/tel1980/qwen-python-slm - GGUF quantizado:
https://huggingface.co/tel1980/qwen-python-slm-gguf
- Downloads last month
- 26
Model tree for tel1980/qwen-python-slm
Base model
Qwen/Qwen2.5-1.5B