--- base_model: codellama/CodeLlama-7b-Instruct-hf library_name: peft pipeline_tag: text-generation tags: - lora - qlora - codellama - python - education - pandas - spanish language: - es license: llama2 --- # Model Card for codellama-edugen-v2 Adapter LoRA/QLoRA para `CodeLlama-7b-Instruct-hf`, especializado en generar ejercicios educativos de Python para ciencia de datos con formato estructurado. ## Model Details ### Model Description Este modelo fue afinado para producir salidas con formato educativo consistente: - `## OBJETIVO` - `## DATASET` - `## CODIGO` - `## EXPLICACION` Enfocado en ejercicios de pandas/numpy/matplotlib, en español, con dataset sintético local (`rows`) y sin lecturas de archivos. - **Developed by:** Proyecto JIA (Pepisxd) - **Model type:** PEFT LoRA adapter (Causal LM) - **Language(s) (NLP):** Español (principal) - **License:** Hereda términos del modelo base (`llama2`) - **Finetuned from model:** `codellama/CodeLlama-7b-Instruct-hf` ### Model Sources - **Repository:** https://github.com/Pepisxd/JIA ## Uses ### Direct Use Generación de ejercicios educativos de Python para práctica guiada en backend/API. ### Out-of-Scope Use - Asistencia legal/médica/financiera de alto riesgo. - Uso como fuente única de verdad factual. - Código para ejecución en entornos inseguros sin validación. ## Bias, Risks, and Limitations - Puede alucinar columnas o instrucciones si no hay validación externa. - Puede requerir repair loop para cumplir completamente formato y calidad educativa. - Calidad depende del prompt y del pipeline de validadores. ### Recommendations - Usar con validadores de formato/ejecución. - Ejecutar código en sandbox. - Aplicar repair loop cuando falle ejecución o criterios educativos. ## How to Get Started with the Model ```python import torch from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig from peft import PeftModel base_model = "codellama/CodeLlama-7b-Instruct-hf" adapter_path = "TU_USUARIO/codellama-edugen-v2" bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_use_double_quant=True, bnb_4bit_compute_dtype=torch.float16, ) tokenizer = AutoTokenizer.from_pretrained(adapter_path) if tokenizer.pad_token is None and tokenizer.eos_token is not None: tokenizer.pad_token = tokenizer.eos_token model = AutoModelForCausalLM.from_pretrained( base_model, device_map="auto", torch_dtype=torch.float16, quantization_config=bnb_config, ) model = PeftModel.from_pretrained(model, adapter_path) model.eval()