--- language: - es license: apache-2.0 base_model: unsloth/DeepSeek-OCR-2 tags: - ocr - receipt - invoice - vision - fine-tuned - unsloth - lora - json-extraction pipeline_tag: image-text-to-text --- # DeepSeek OCR LoRA — Extracción estructurada de tickets y facturas ## Descripción Este modelo es un **LoRA fine-tuning** sobre [`unsloth/DeepSeek-OCR-2`](https://huggingface.co/unsloth/DeepSeek-OCR-2), entrenado para analizar imágenes de **tickets de compra, recibos y facturas** y devolver su contenido en formato **JSON estructurado**. El objetivo principal del proyecto fue académico: estudiar el comportamiento de un modelo de visión multimodal al ser adaptado para extraer información con una estructura de salida fija. El modelo está diseñado principalmente para documentos en **español**. --- ## Salida esperada Dado una imagen de ticket o factura, el modelo devuelve un JSON con la siguiente estructura: ```json { "comercio": "Nombre del establecimiento", "fecha": "DD/MM/AAAA", "cif": "B12345678", "items": [ { "descripcion": "Nombre del producto", "cantidad": 2, "precio": 3.50 } ], "precio_total": 7.00 } ``` --- ## Uso Este modelo requiere cargar el modelo base por separado y aplicar el LoRA encima: ```python from transformers import AutoModelForCausalLM, AutoProcessor from peft import PeftModel BASE_MODEL_ID = "unsloth/DeepSeek-OCR-2" LORA_ID = "Lacax/deepseek_ocr_lora" processor = AutoProcessor.from_pretrained(BASE_MODEL_ID) model = AutoModelForCausalLM.from_pretrained(BASE_MODEL_ID) model = PeftModel.from_pretrained(model, LORA_ID) ``` > **Nota:** El repo del LoRA es privado. Se requiere un `HF_TOKEN` con acceso al repo `Lacax/deepseek_ocr_lora`. El modelo base `unsloth/DeepSeek-OCR-2` es público. --- ## Datos de entrenamiento - **Tipo:** Imágenes de tickets y facturas reales (fotografías propias) - **Tamaño:** ~100 imágenes - **Formato:** Cada imagen asociada a su JSON ground truth con la estructura descrita arriba - **Idioma:** Español - **Origen:** Dataset propio, no publicado --- ## Estadísticas de entrenamiento | Parámetro | Valor | |------------------------|-------------| | Épocas completadas | 3 | | Duración total | ~4607 s (~77 min) | | Muestras / segundo | 0.40 | | Pérdida final (train) | 0.0399 | | Framework | Unsloth + PEFT | | Plataforma | RunPod (GPU cloud) | --- ## Limitaciones - Dataset pequeño (~100 imágenes): el modelo puede no generalizar bien a formatos de ticket muy distintos a los usados en entrenamiento. - Entrenado únicamente con documentos en español; rendimiento no garantizado en otros idiomas. - Proyecto de carácter académico/experimental, no validado en producción. - La pérdida baja de entrenamiento (0.04) puede indicar cierto sobreajuste al dataset propio. --- ## Modelo base - [`unsloth/DeepSeek-OCR-2`](https://huggingface.co/unsloth/DeepSeek-OCR-2) --- ## Autor **Jonatan Thorpe Plaza** — Proyecto de estudio personal sobre fine-tuning de modelos de visión multimodal.