deepseek_ocr_lora / README.md
Lacax's picture
Update README.md
7af9f03 verified
---
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.