--- license: mit datasets: - sahil2801/CodeAlpaca-20k - code_instructions_122k base_model: - mistralai/Mistral-7B-Instruct-v0.3 tags: - code --- # Code Specialist 7B [![Hugging Face](https://img.shields.io/badge/🤗-Model%20Card-yellow.svg)](https://huggingface.co/) [![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/) [![Transformers](https://img.shields.io/badge/Transformers-4.56.0+-purple.svg)](https://huggingface.co/docs/transformers) ## Descripción **Code Specialist 7B** es un modelo de lenguaje basado en **Mistral-7B-Instruct-v0.3**, adaptado mediante **SFT (Supervised Fine-Tuning)** con datasets especializados en **Python y SQL**. El entrenamiento fue realizado por **Ricardo Urdaneta**, con el objetivo de mejorar la capacidad del modelo en **resolución de problemas de programación, data science y desarrollo de software**. Este modelo mantiene la arquitectura original de **7B parámetros**, pero incorpora un ajuste fino orientado a código, lo que lo hace más robusto en generación de funciones, queries SQL y respuestas técnicas. --- ## Modelo base - [Mistral-7B-Instruct-v0.3](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.3) - Arquitectura: Transformer Decoder-only - Parámetros: ~7B --- ## Dataset utilizado para SFT - [CodeAlpaca-20k](https://huggingface.co/datasets/sahil2801/CodeAlpaca-20k) - [code_instructions_122k (alpaca-style)](https://huggingface.co/datasets/TokenBender/code_instructions_122k_alpaca_style) Ambos datasets fueron **filtrados a ejemplos de Python y SQL**, con formato de prompts estilo **Alpaca/Mistral**. Ejemplo de formato aplicado: ``` [INST] Escribe una función en Python que sume dos números. [/INST] def add(a, b): return a + b ``` --- ## Entrenamiento - **Método:** LoRA + QLoRA → Merge final de pesos (merge_and_unload) - **Frameworks:** transformers, trl, peft, bitsandbytes - **Hardware:** GPU 12GB VRAM (cuantización en 4-bit para entrenamiento) - **Hiperparámetros principales:** - per_device_train_batch_size=2 - gradient_accumulation_steps=4 - learning_rate=2e-4 - num_train_epochs=1 - max_seq_length=1024 --- ## Uso ```python from transformers import AutoTokenizer, AutoModelForCausalLM model_id = "Ricardouchub/Code-Specialist-7B" tok = AutoTokenizer.from_pretrained(model_id) mdl = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto") prompt = "[INST] Escribe una función en Python que calcule la media de una lista. [/INST]" inputs = tok(prompt, return_tensors="pt").to(mdl.device) out = mdl.generate(**inputs, max_new_tokens=256) print(tok.decode(out[0], skip_special_tokens=True)) ``` --- ## Benchmarks iniciales - **Eval simple (Python tasks):** mejora en tareas básicas de programación comparado con el modelo base. - Diseñado para uso en **data analysis, SQL queries y snippets Python**. - Se recomienda evaluar en HumanEval / MBPP para métricas reproducibles. --- ## Autor **Ricardo Urdaneta** - [LinkedIn](https://www.linkedin.com/in/ricardourdanetacastro/) - [GitHub](https://github.com/Ricardouchub) --- ## Limitaciones - El modelo **no garantiza exactitud 100%** en código complejo. - Puede generar respuestas incoherentes en prompts ambiguos. - No ha sido entrenado para seguridad/ciberseguridad. --- ## Licencia El modelo se publica con la misma licencia que **Mistral-7B-Instruct-v0.3**: **MIT**