File size: 3,136 Bytes
1a0e33b d0951d2 4afb60d d0951d2 4afb60d d0951d2 50505f3 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 7af9f03 d0951d2 7af9f03 d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b d0951d2 1a0e33b 7af9f03 | 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 | ---
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. |