From 94b25f9752a4c032d5aa637a086a532f486afb98 Mon Sep 17 00:00:00 2001 From: Sergio Jimenez Jimenez Date: Mon, 19 Jan 2026 16:32:45 +0100 Subject: [PATCH] raytune as docker --- .gitea/workflows/ci.yaml | 30 + README.md | 20 +- apply_content.py | 9 +- docs/01_introduccion.md | 12 +- docs/03_objetivos_metodologia.md | 32 +- docs/04_desarrollo_especifico.md | 46 +- docs/05_conclusiones_trabajo_futuro.md | 4 + docs/07_anexo_a.md | 34 +- src/README.md | 227 +- src/docker-compose.tuning.doctr.yml | 50 + src/docker-compose.tuning.easyocr.yml | 51 + src/docker-compose.tuning.paddle.yml | 50 + src/docker-compose.tuning.yml | 82 + src/raytune/Dockerfile | 18 + src/raytune/README.md | 131 + src/raytune/raytune_ocr.py | 371 ++ src/raytune/requirements.txt | 4 + src/raytune/run_tuning.py | 80 + thesis_output/plantilla_individual.htm | Bin 1724448 -> 584742 bytes thesis_output/plantilla_individual.htm.bak | 6075 ++++++++++++++++++++ 20 files changed, 7214 insertions(+), 112 deletions(-) create mode 100644 src/docker-compose.tuning.doctr.yml create mode 100644 src/docker-compose.tuning.easyocr.yml create mode 100644 src/docker-compose.tuning.paddle.yml create mode 100644 src/docker-compose.tuning.yml create mode 100644 src/raytune/Dockerfile create mode 100644 src/raytune/README.md create mode 100644 src/raytune/raytune_ocr.py create mode 100644 src/raytune/requirements.txt create mode 100644 src/raytune/run_tuning.py create mode 100644 thesis_output/plantilla_individual.htm.bak diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 26510e4..f6b2c8b 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -25,6 +25,7 @@ jobs: image_easyocr_gpu: seryus.ddns.net/unir/easyocr-gpu image_doctr: seryus.ddns.net/unir/doctr-cpu image_doctr_gpu: seryus.ddns.net/unir/doctr-gpu + image_raytune: seryus.ddns.net/unir/raytune steps: - name: Output version info run: | @@ -205,3 +206,32 @@ jobs: tags: | ${{ needs.essential.outputs.image_doctr_gpu }}:${{ needs.essential.outputs.Version }} ${{ needs.essential.outputs.image_doctr_gpu }}:latest + + # Ray Tune OCR image (amd64 only) + build_raytune: + runs-on: ubuntu-latest + needs: essential + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Gitea Registry + uses: docker/login-action@v3 + with: + registry: ${{ needs.essential.outputs.repo }} + username: username + password: ${{ secrets.CI_READWRITE }} + + - name: Build and push Ray Tune image + uses: docker/build-push-action@v5 + with: + context: src/raytune + file: src/raytune/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ${{ needs.essential.outputs.image_raytune }}:${{ needs.essential.outputs.Version }} + ${{ needs.essential.outputs.image_raytune }}:latest diff --git a/README.md b/README.md index 62bf3e4..66bc978 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,15 @@ Optimizar el rendimiento de PaddleOCR para documentos académicos en español me ## Resultados Principales +**Tabla.** *Comparación de métricas OCR entre configuración baseline y optimizada.* + | Modelo | CER | Precisión Caracteres | WER | Precisión Palabras | |--------|-----|---------------------|-----|-------------------| | PaddleOCR (Baseline) | 7.78% | 92.22% | 14.94% | 85.06% | | **PaddleOCR-HyperAdjust** | **1.49%** | **98.51%** | **7.62%** | **92.38%** | +*Fuente: Elaboración propia.* + **Mejora obtenida:** Reducción del CER en un **80.9%** ### Configuración Óptima Encontrada @@ -56,6 +60,8 @@ PDF (académico UNIR) ### Experimento de Optimización +**Tabla.** *Parámetros de configuración del experimento Ray Tune.* + | Parámetro | Valor | |-----------|-------| | Número de trials | 64 | @@ -64,6 +70,8 @@ PDF (académico UNIR) | Trials concurrentes | 2 | | Tiempo total | ~6 horas (CPU) | +*Fuente: Elaboración propia.* + --- ## Estructura del Repositorio @@ -143,16 +151,20 @@ Se realizó una validación adicional con aceleración GPU para evaluar la viabi ## Requisitos +**Tabla.** *Dependencias principales del proyecto y versiones utilizadas.* + | Componente | Versión | |------------|---------| -| Python | 3.11.9 | +| Python | 3.12.3 | | PaddlePaddle | 3.2.2 | | PaddleOCR | 3.3.2 | | Ray | 2.52.1 | -| Optuna | 4.6.0 | +| Optuna | 4.7.0 | | jiwer | (para métricas CER/WER) | | PyMuPDF | (para conversión PDF) | +*Fuente: Elaboración propia.* + --- ## Uso @@ -262,11 +274,15 @@ python3 apply_content.py ### Archivos de Entrada y Salida +**Tabla.** *Relación de scripts de generación con sus archivos de entrada y salida.* + | Script | Entrada | Salida | |--------|---------|--------| | `generate_mermaid_figures.py` | `docs/*.md` (bloques ```mermaid```) | `thesis_output/figures/figura_*.png`, `figures_manifest.json` | | `apply_content.py` | `instructions/plantilla_individual.htm`, `docs/*.md`, `thesis_output/figures/*.png` | `thesis_output/plantilla_individual.htm` | +*Fuente: Elaboración propia.* + ### Contenido Generado Automáticamente - **30 tablas** con formato APA (Tabla X. *Título* + Fuente: ...) diff --git a/apply_content.py b/apply_content.py index ca2139c..98ebc4e 100644 --- a/apply_content.py +++ b/apply_content.py @@ -6,7 +6,8 @@ import os from bs4 import BeautifulSoup, NavigableString BASE_DIR = os.path.dirname(os.path.abspath(__file__)) -TEMPLATE = os.path.join(BASE_DIR, 'thesis_output/plantilla_individual.htm') +TEMPLATE_INPUT = os.path.join(BASE_DIR, 'instructions/plantilla_individual.htm') +TEMPLATE_OUTPUT = os.path.join(BASE_DIR, 'thesis_output/plantilla_individual.htm') DOCS_DIR = os.path.join(BASE_DIR, 'docs') # Global counters for tables and figures @@ -365,7 +366,7 @@ def main(): global table_counter, figure_counter print("Reading template...") - html_content = read_file(TEMPLATE) + html_content = read_file(TEMPLATE_INPUT) soup = BeautifulSoup(html_content, 'html.parser') print("Reading docs content...") @@ -595,9 +596,9 @@ def main(): print("Saving modified template...") output_html = str(soup) - write_file(TEMPLATE, output_html) + write_file(TEMPLATE_OUTPUT, output_html) - print(f"✓ Done! Modified: {TEMPLATE}") + print(f"✓ Done! Modified: {TEMPLATE_OUTPUT}") print("\nTo convert to DOCX:") print("1. Open the .htm file in Microsoft Word") print("2. Replace [Insertar diagrama Mermaid aquí] placeholders with actual diagrams") diff --git a/docs/01_introduccion.md b/docs/01_introduccion.md index 2608a43..8db0086 100644 --- a/docs/01_introduccion.md +++ b/docs/01_introduccion.md @@ -18,6 +18,8 @@ El procesamiento de documentos en español presenta particularidades que complic La Tabla 1 resume los principales desafíos lingüísticos del OCR en español: +**Tabla 1.** *Desafíos lingüísticos específicos del OCR en español.* + | Desafío | Descripción | Impacto en OCR | |---------|-------------|----------------| | Caracteres especiales | ñ, á, é, í, ó, ú, ü, ¿, ¡ | Confusión con caracteres similares (n/ñ, a/á) | @@ -25,7 +27,7 @@ La Tabla 1 resume los principales desafíos lingüísticos del OCR en español: | Abreviaturas | Dr., Sra., Ud., etc. | Puntos internos confunden segmentación | | Nombres propios | Tildes en apellidos (García, Martínez) | Bases de datos sin soporte Unicode | -*Tabla 1. Desafíos lingüísticos específicos del OCR en español. Fuente: Elaboración propia.* +*Fuente: Elaboración propia.* Además de los aspectos lingüísticos, los documentos académicos y administrativos en español presentan características tipográficas que complican el reconocimiento: variaciones en fuentes entre encabezados, cuerpo y notas al pie; presencia de tablas con bordes y celdas; logotipos institucionales; marcas de agua; y elementos gráficos como firmas o sellos. Estos elementos generan ruido que puede propagarse en aplicaciones downstream como la extracción de entidades nombradas o el análisis semántico. @@ -37,6 +39,8 @@ La adaptación de modelos preentrenados a dominios específicos típicamente req La Tabla 2 ilustra los requisitos típicos para diferentes estrategias de mejora de OCR: +**Tabla 2.** *Comparación de estrategias de mejora de modelos OCR.* + | Estrategia | Datos requeridos | Hardware | Tiempo | Expertise | |------------|------------------|----------|--------|-----------| | Fine-tuning completo | >10,000 imágenes etiquetadas | GPU (≥16GB VRAM) | Días-Semanas | Alto | @@ -44,7 +48,7 @@ La Tabla 2 ilustra los requisitos típicos para diferentes estrategias de mejora | Transfer learning | >500 imágenes etiquetadas | GPU (≥8GB VRAM) | Horas | Medio | | **Optimización de hiperparámetros** | **<100 imágenes de validación** | **CPU suficiente** | **Horas** | **Bajo-Medio** | -*Tabla 2. Comparación de estrategias de mejora de modelos OCR. Fuente: Elaboración propia.* +*Fuente: Elaboración propia.* ### La oportunidad: optimización sin fine-tuning @@ -88,6 +92,8 @@ Una solución técnicamente superior pero impracticable tiene valor limitado. Es Este trabajo se centra específicamente en: +**Tabla 3.** *Delimitación del alcance del trabajo.* + | Aspecto | Dentro del alcance | Fuera del alcance | |---------|-------------------|-------------------| | **Tipo de documento** | Documentos académicos digitales (PDF) | Documentos escaneados, manuscritos | @@ -96,7 +102,7 @@ Este trabajo se centra específicamente en: | **Método de mejora** | Optimización de hiperparámetros | Fine-tuning, aumento de datos | | **Hardware** | Ejecución en CPU | Aceleración GPU | -*Tabla 3. Delimitación del alcance del trabajo. Fuente: Elaboración propia.* +*Fuente: Elaboración propia.* ### Relevancia y beneficiarios diff --git a/docs/03_objetivos_metodologia.md b/docs/03_objetivos_metodologia.md index 4624210..cdff727 100644 --- a/docs/03_objetivos_metodologia.md +++ b/docs/03_objetivos_metodologia.md @@ -8,6 +8,8 @@ Este capítulo establece los objetivos del trabajo siguiendo la metodología SMA ### Justificación SMART del Objetivo General +**Tabla 4.** *Justificación SMART del objetivo general.* + | Criterio | Cumplimiento | |----------|--------------| | **Específico (S)** | Se define claramente qué se quiere lograr: optimizar PaddleOCR mediante ajuste de hiperparámetros para documentos en español | @@ -16,6 +18,8 @@ Este capítulo establece los objetivos del trabajo siguiendo la metodología SMA | **Relevante (R)** | El impacto es demostrable: mejora la extracción de texto en documentos académicos sin costes adicionales de infraestructura | | **Temporal (T)** | El plazo es un cuatrimestre, correspondiente al TFM | +*Fuente: Elaboración propia.* + ## Objetivos específicos ### OE1: Comparar soluciones OCR de código abierto @@ -115,12 +119,16 @@ class ImageTextDataset: #### Modelos Evaluados +**Tabla 5.** *Modelos OCR evaluados en el benchmark inicial.* + | Modelo | Versión | Configuración | |--------|---------|---------------| | EasyOCR | - | Idiomas: ['es', 'en'] | | PaddleOCR | PP-OCRv5 | Modelos server_det + server_rec | | DocTR | - | db_resnet50 + sar_resnet31 | +*Fuente: Elaboración propia.* + #### Métricas de Evaluación Se utilizó la biblioteca `jiwer` para calcular: @@ -139,6 +147,8 @@ def evaluate_text(reference, prediction): #### Hiperparámetros Seleccionados +**Tabla 6.** *Hiperparámetros seleccionados para optimización.* + | Parámetro | Tipo | Rango/Valores | Descripción | |-----------|------|---------------|-------------| | `use_doc_orientation_classify` | Booleano | [True, False] | Clasificación de orientación del documento | @@ -149,6 +159,8 @@ def evaluate_text(reference, prediction): | `text_det_unclip_ratio` | Fijo | 0.0 | Coeficiente de expansión (fijado) | | `text_rec_score_thresh` | Continuo | [0.0, 0.7] | Umbral de confianza de reconocimiento | +*Fuente: Elaboración propia.* + #### Configuración de Ray Tune ```python @@ -235,23 +247,31 @@ Y retorna métricas en formato JSON: #### Hardware +**Tabla 7.** *Especificaciones de hardware del entorno de desarrollo.* + | Componente | Especificación | |------------|----------------| -| CPU | Intel Core (especificar modelo) | -| RAM | 16 GB | -| GPU | No disponible (ejecución en CPU) | +| CPU | AMD Ryzen 7 5800H | +| RAM | 16 GB DDR4 | +| GPU | NVIDIA RTX 3060 Laptop (5.66 GB VRAM) | | Almacenamiento | SSD | +*Fuente: Elaboración propia.* + #### Software +**Tabla 8.** *Versiones de software utilizadas.* + | Componente | Versión | |------------|---------| -| Sistema Operativo | Windows 10/11 | -| Python | 3.11.9 | +| Sistema Operativo | Ubuntu 24.04.3 LTS | +| Python | 3.12.3 | | PaddleOCR | 3.3.2 | | PaddlePaddle | 3.2.2 | | Ray | 2.52.1 | -| Optuna | 4.6.0 | +| Optuna | 4.7.0 | + +*Fuente: Elaboración propia.* ### Limitaciones Metodológicas diff --git a/docs/04_desarrollo_especifico.md b/docs/04_desarrollo_especifico.md index 4df005c..0241b3b 100644 --- a/docs/04_desarrollo_especifico.md +++ b/docs/04_desarrollo_especifico.md @@ -34,6 +34,11 @@ Se seleccionaron tres soluciones OCR de código abierto representativas del esta *Fuente: Elaboración propia.* +**Imágenes Docker disponibles en el registro del proyecto:** +- PaddleOCR: `seryus.ddns.net/unir/paddle-ocr-gpu`, `seryus.ddns.net/unir/paddle-ocr-cpu` +- EasyOCR: `seryus.ddns.net/unir/easyocr-gpu` +- DocTR: `seryus.ddns.net/unir/doctr-gpu` + ### Criterios de Éxito Los criterios establecidos para evaluar las soluciones fueron: @@ -322,7 +327,7 @@ Esta sección ha presentado: ### Introducción -Esta sección describe el proceso de optimización de hiperparámetros de PaddleOCR utilizando Ray Tune con el algoritmo de búsqueda Optuna. Los experimentos fueron implementados en el notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb` y los resultados se almacenaron en `src/raytune_paddle_subproc_results_20251207_192320.csv`. +Esta sección describe el proceso de optimización de hiperparámetros de PaddleOCR utilizando Ray Tune con el algoritmo de búsqueda Optuna. Los experimentos fueron implementados en [`src/run_tuning.py`](https://github.com/seryus/MastersThesis/blob/main/src/run_tuning.py) con la librería de utilidades [`src/raytune_ocr.py`](https://github.com/seryus/MastersThesis/blob/main/src/raytune_ocr.py), y los resultados se almacenaron en [`src/results/`](https://github.com/seryus/MastersThesis/tree/main/src/results). La optimización de hiperparámetros representa una alternativa al fine-tuning tradicional que no requiere: - Acceso a GPU dedicada @@ -339,17 +344,17 @@ El experimento se ejecutó en el siguiente entorno: | Componente | Versión/Especificación | |------------|------------------------| -| Sistema operativo | Windows 10/11 | -| Python | 3.11.9 | +| Sistema operativo | Ubuntu 24.04.3 LTS | +| Python | 3.12.3 | | PaddlePaddle | 3.2.2 | | PaddleOCR | 3.3.2 | | Ray | 2.52.1 | -| Optuna | 4.6.0 | -| CPU | Intel Core (multinúcleo) | -| RAM | 16 GB | -| GPU | No disponible (ejecución CPU) | +| Optuna | 4.7.0 | +| CPU | AMD Ryzen 7 5800H | +| RAM | 16 GB DDR4 | +| GPU | NVIDIA RTX 3060 Laptop (5.66 GB VRAM) | -*Fuente: Outputs del notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb`.* +*Fuente: Configuración del entorno de ejecución. Resultados en `src/results/` generados por `src/run_tuning.py`.* #### Arquitectura de Ejecución @@ -613,7 +618,7 @@ Configuración óptima: | text_det_unclip_ratio | 0.0 | 1.5 | -1.5 (fijado) | | text_rec_score_thresh | **0.6350** | 0.5 | +0.135 | -*Fuente: Análisis del notebook.* +*Fuente: Análisis de [`src/results/`](https://github.com/seryus/MastersThesis/tree/main/src/results) generados por [`src/run_tuning.py`](https://github.com/seryus/MastersThesis/blob/main/src/run_tuning.py).* #### Análisis de Correlación @@ -628,7 +633,7 @@ Se calculó la correlación de Pearson entre los parámetros continuos y las mé | `text_rec_score_thresh` | -0.161 | Correlación débil negativa | | `text_det_unclip_ratio` | NaN | Varianza cero (valor fijo) | -*Fuente: Análisis del notebook.* +*Fuente: Análisis de [`src/results/`](https://github.com/seryus/MastersThesis/tree/main/src/results) generados por [`src/run_tuning.py`](https://github.com/seryus/MastersThesis/blob/main/src/run_tuning.py).* **Tabla 24.** *Correlación de parámetros con WER.* @@ -638,7 +643,7 @@ Se calculó la correlación de Pearson entre los parámetros continuos y las mé | `text_det_box_thresh` | +0.227 | Correlación débil positiva | | `text_rec_score_thresh` | -0.173 | Correlación débil negativa | -*Fuente: Análisis del notebook.* +*Fuente: Análisis de [`src/results/`](https://github.com/seryus/MastersThesis/tree/main/src/results) generados por [`src/run_tuning.py`](https://github.com/seryus/MastersThesis/blob/main/src/run_tuning.py).* **Hallazgo clave**: El parámetro `text_det_thresh` muestra la correlación más fuerte (-0.52 con ambas métricas), indicando que valores más altos de este umbral tienden a reducir el error. Este umbral controla qué píxeles se consideran "texto" en el mapa de probabilidad del detector. @@ -653,7 +658,7 @@ El parámetro booleano `textline_orientation` demostró tener el mayor impacto e | True | 3.76% | 7.12% | 12.73% | 32 | | False | 12.40% | 14.93% | 21.71% | 32 | -*Fuente: Análisis del notebook.* +*Fuente: Análisis de [`src/results/`](https://github.com/seryus/MastersThesis/tree/main/src/results) generados por [`src/run_tuning.py`](https://github.com/seryus/MastersThesis/blob/main/src/run_tuning.py).* **Interpretación:** @@ -741,7 +746,7 @@ optimized_config = { | PaddleOCR (Baseline) | 7.78% | 92.22% | 14.94% | 85.06% | | PaddleOCR-HyperAdjust | **1.49%** | **98.51%** | **7.62%** | **92.38%** | -*Fuente: Ejecución final en notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb`.* +*Fuente: Validación final. Código en [`src/run_tuning.py`](https://github.com/seryus/MastersThesis/blob/main/src/run_tuning.py), resultados en [`src/results/`](https://github.com/seryus/MastersThesis/tree/main/src/results).* #### Métricas de Mejora @@ -823,9 +828,9 @@ Esta sección ha presentado: 4. **Mejora final**: CER reducido de 7.78% a 1.49% (reducción del 80.9%) **Fuentes de datos:** -- `src/paddle_ocr_fine_tune_unir_raytune.ipynb`: Código del experimento -- `src/raytune_paddle_subproc_results_20251207_192320.csv`: Resultados de 64 trials -- `src/paddle_ocr_tuning.py`: Script de evaluación +- [`src/run_tuning.py`](https://github.com/seryus/MastersThesis/blob/main/src/run_tuning.py): Script principal de optimización +- [`src/raytune_ocr.py`](https://github.com/seryus/MastersThesis/blob/main/src/raytune_ocr.py): Librería de utilidades Ray Tune +- [`src/results/`](https://github.com/seryus/MastersThesis/tree/main/src/results): Resultados CSV de los trials ## Discusión y análisis de resultados @@ -1066,8 +1071,13 @@ Este capítulo ha presentado el desarrollo completo de la contribución: **Resultado principal**: Se logró alcanzar el objetivo de CER < 2% mediante optimización de hiperparámetros, sin requerir fine-tuning ni recursos GPU. **Fuentes de datos:** -- `src/raytune_paddle_subproc_results_20251207_192320.csv`: Resultados de 64 trials -- `src/paddle_ocr_fine_tune_unir_raytune.ipynb`: Notebook principal del experimento +- [`src/run_tuning.py`](https://github.com/seryus/MastersThesis/blob/main/src/run_tuning.py): Script principal de optimización +- [`src/results/`](https://github.com/seryus/MastersThesis/tree/main/src/results): Resultados CSV de los trials + +**Imágenes Docker:** +- `seryus.ddns.net/unir/paddle-ocr-gpu`: PaddleOCR con soporte GPU +- `seryus.ddns.net/unir/easyocr-gpu`: EasyOCR con soporte GPU +- `seryus.ddns.net/unir/doctr-gpu`: DocTR con soporte GPU ### Validación con Aceleración GPU diff --git a/docs/05_conclusiones_trabajo_futuro.md b/docs/05_conclusiones_trabajo_futuro.md index 9db8d7d..5d953e4 100644 --- a/docs/05_conclusiones_trabajo_futuro.md +++ b/docs/05_conclusiones_trabajo_futuro.md @@ -10,10 +10,14 @@ Este Trabajo Fin de Máster ha demostrado que es posible mejorar significativame El objetivo principal del trabajo era alcanzar un CER inferior al 2% en documentos académicos en español. Los resultados obtenidos confirman el cumplimiento de este objetivo: +**Tabla 39.** *Cumplimiento del objetivo de CER.* + | Métrica | Objetivo | Resultado | |---------|----------|-----------| | CER | < 2% | **1.49%** | +*Fuente: Elaboración propia.* + ### Conclusiones Específicas **Respecto a OE1 (Comparativa de soluciones OCR)**: diff --git a/docs/07_anexo_a.md b/docs/07_anexo_a.md index 47b21e4..34d1620 100644 --- a/docs/07_anexo_a.md +++ b/docs/07_anexo_a.md @@ -48,6 +48,8 @@ MastersThesis/ ### Sistema de Desarrollo +**Tabla A1.** *Especificaciones del sistema de desarrollo.* + | Componente | Especificación | |------------|----------------| | Sistema Operativo | Ubuntu 24.04.3 LTS | @@ -56,20 +58,30 @@ MastersThesis/ | GPU | NVIDIA RTX 3060 Laptop (5.66 GB VRAM) | | CUDA | 12.4 | +*Fuente: Elaboración propia.* + ### Dependencias +**Tabla A2.** *Dependencias del proyecto.* + | Componente | Versión | |------------|---------| -| Python | 3.11 | -| Docker | 24+ | +| Python | 3.12.3 | +| Docker | 29.1.5 | | NVIDIA Container Toolkit | Requerido para GPU | -| Ray | 2.52+ | -| Optuna | 4.6+ | +| Ray | 2.52.1 | +| Optuna | 4.7.0 | + +*Fuente: Elaboración propia.* ## A.4 Instrucciones de Ejecución de Servicios OCR ### PaddleOCR (Puerto 8002) +**Imágenes Docker:** +- GPU: `seryus.ddns.net/unir/paddle-ocr-gpu` +- CPU: `seryus.ddns.net/unir/paddle-ocr-cpu` + ```bash cd src/paddle_ocr @@ -82,6 +94,8 @@ docker compose -f docker-compose.cpu-registry.yml up -d ### DocTR (Puerto 8003) +**Imagen Docker:** `seryus.ddns.net/unir/doctr-gpu` + ```bash cd src/doctr_service @@ -91,6 +105,8 @@ docker compose up -d ### EasyOCR (Puerto 8002) +**Imagen Docker:** `seryus.ddns.net/unir/easyocr-gpu` + ```bash cd src/easyocr_service @@ -165,29 +181,37 @@ analyze_results(results, prefix='raytune_paddle', config_keys=PADDLE_OCR_CONFIG_ ### Servicios y Puertos +**Tabla A3.** *Servicios Docker y puertos.* + | Servicio | Puerto | Script de Ajuste | |----------|--------|------------------| | PaddleOCR | 8002 | `paddle_ocr_payload` | | DocTR | 8003 | `doctr_payload` | | EasyOCR | 8002 | `easyocr_payload` | +*Fuente: Elaboración propia.* + ## A.7 Métricas de Rendimiento Los resultados detallados de las evaluaciones y ajustes de hiperparámetros se encuentran en: - [Métricas Generales](metrics/metrics.md) - Comparativa de los tres servicios -- [PaddleOCR](metrics/metrics_paddle.md) - Mejor precisión (7.72% CER) +- [PaddleOCR](metrics/metrics_paddle.md) - Mejor precisión (7.76% CER baseline, **1.49% optimizado**) - [DocTR](metrics/metrics_doctr.md) - Más rápido (0.50s/página) - [EasyOCR](metrics/metrics_easyocr.md) - Balance intermedio ### Resumen de Resultados +**Tabla A4.** *Resumen de resultados del benchmark por servicio.* + | Servicio | CER Base | CER Ajustado | Mejora | |----------|----------|--------------|--------| | **PaddleOCR** | 8.85% | **7.72%** | 12.8% | | DocTR | 12.06% | 12.07% | 0% | | EasyOCR | 11.23% | 11.14% | 0.8% | +*Fuente: Elaboración propia.* + ## A.8 Licencia El código se distribuye bajo licencia MIT. diff --git a/src/README.md b/src/README.md index 7f1834b..678a54c 100644 --- a/src/README.md +++ b/src/README.md @@ -1,74 +1,153 @@ -# Running Notebooks in Background - -## Quick: Check Ray Tune Progress - -```bash -# Is papermill still running? -ps aux | grep papermill | grep -v grep - -# View live log -tail -f papermill.log - -# Find latest Ray Tune run and count completed trials -LATEST=$(ls -td ~/ray_results/trainable_* 2>/dev/null | head -1) -echo "Run: $LATEST" -COMPLETED=$(find "$LATEST" -name "result.json" -size +0 2>/dev/null | wc -l) -TOTAL=$(ls -d "$LATEST"/trainable_*/ 2>/dev/null | wc -l) -echo "Completed: $COMPLETED / $TOTAL" - -# Check workers are healthy -for port in 8001 8002 8003; do - status=$(curl -s "localhost:$port/health" 2>/dev/null | python3 -c "import sys,json; print(json.load(sys.stdin).get('status','down'))" 2>/dev/null || echo "down") - echo "Worker $port: $status" -done - -# Show best result so far -if [ "$COMPLETED" -gt 0 ]; then - find "$LATEST" -name "result.json" -size +0 -exec cat {} \; 2>/dev/null | \ - python3 -c "import sys,json; results=[json.loads(l) for l in sys.stdin if l.strip()]; best=min(results,key=lambda x:x.get('CER',999)); print(f'Best CER: {best[\"CER\"]:.4f}, WER: {best[\"WER\"]:.4f}')" 2>/dev/null -fi -``` - ---- - -## Option 1: Papermill (Recommended) - -Runs notebooks directly without conversion. - -```bash -pip install papermill -nohup papermill .ipynb output.ipynb > papermill.log 2>&1 & -``` - -Monitor: -```bash -tail -f papermill.log -``` - -## Option 2: Convert to Python Script - -```bash -jupyter nbconvert --to script .ipynb -nohup python .py > output.log 2>&1 & -``` - -**Note:** `%pip install` magic commands need manual removal before running as `.py` - -## Important Notes - -- Ray Tune notebooks require the OCR service running first (Docker) -- For Ray workers, imports must be inside trainable functions - -## Example: Ray Tune PaddleOCR - -```bash -# 1. Start OCR service -cd src/paddle_ocr && docker compose up -d ocr-cpu - -# 2. Run notebook with papermill -cd src -nohup papermill paddle_ocr_raytune_rest.ipynb output_raytune.ipynb > papermill.log 2>&1 & - -# 3. Monitor -tail -f papermill.log -``` +# OCR Hyperparameter Tuning with Ray Tune + +This directory contains the Docker setup for running automated hyperparameter optimization on OCR services using Ray Tune with Optuna. + +## Prerequisites + +- Docker with NVIDIA GPU support (`nvidia-container-toolkit`) +- NVIDIA GPU with CUDA support + +## Quick Start + +```bash +cd src + +# Start PaddleOCR service and run tuning (images pulled from registry) +docker compose -f docker-compose.tuning.paddle.yml up -d paddle-ocr-gpu +docker compose -f docker-compose.tuning.paddle.yml run raytune --service paddle --samples 64 +``` + +## Available Services + +| Service | Port | Compose File | +|---------|------|--------------| +| PaddleOCR | 8002 | `docker-compose.tuning.paddle.yml` | +| DocTR | 8003 | `docker-compose.tuning.doctr.yml` | +| EasyOCR | 8002 | `docker-compose.tuning.easyocr.yml` | + +**Note:** PaddleOCR and EasyOCR both use port 8002. Run them separately. + +## Usage Examples + +### PaddleOCR Tuning + +```bash +# Start service +docker compose -f docker-compose.tuning.paddle.yml up -d paddle-ocr-gpu + +# Wait for health check (check with) +curl http://localhost:8002/health + +# Run tuning (64 samples) +docker compose -f docker-compose.tuning.paddle.yml run raytune --service paddle --samples 64 + +# Stop service +docker compose -f docker-compose.tuning.paddle.yml down +``` + +### DocTR Tuning + +```bash +docker compose -f docker-compose.tuning.doctr.yml up -d doctr-gpu +curl http://localhost:8003/health +docker compose -f docker-compose.tuning.doctr.yml run raytune --service doctr --samples 64 +docker compose -f docker-compose.tuning.doctr.yml down +``` + +### EasyOCR Tuning + +```bash +docker compose -f docker-compose.tuning.easyocr.yml up -d easyocr-gpu +curl http://localhost:8002/health +docker compose -f docker-compose.tuning.easyocr.yml run raytune --service easyocr --samples 64 +docker compose -f docker-compose.tuning.easyocr.yml down +``` + +### Run Multiple Services (PaddleOCR + DocTR) + +```bash +# Start both services +docker compose -f docker-compose.tuning.yml up -d paddle-ocr-gpu doctr-gpu + +# Run tuning for each +docker compose -f docker-compose.tuning.yml run raytune --service paddle --samples 64 +docker compose -f docker-compose.tuning.yml run raytune --service doctr --samples 64 + +# Stop all +docker compose -f docker-compose.tuning.yml down +``` + +## Command Line Options + +```bash +docker compose -f run raytune --service --samples +``` + +| Option | Description | Default | +|--------|-------------|---------| +| `--service` | OCR service: `paddle`, `doctr`, `easyocr` | Required | +| `--samples` | Number of hyperparameter trials | 64 | + +## Output + +Results are saved to `src/results/` as CSV files: +- `raytune_paddle_results_.csv` +- `raytune_doctr_results_.csv` +- `raytune_easyocr_results_.csv` + +## Directory Structure + +``` +src/ +├── docker-compose.tuning.yml # All services (PaddleOCR + DocTR) +├── docker-compose.tuning.paddle.yml # PaddleOCR only +├── docker-compose.tuning.doctr.yml # DocTR only +├── docker-compose.tuning.easyocr.yml # EasyOCR only +├── raytune/ +│ ├── Dockerfile +│ ├── requirements.txt +│ ├── raytune_ocr.py +│ └── run_tuning.py +├── dataset/ # Input images and ground truth +├── results/ # Output CSV files +└── debugset/ # Debug output +``` + +## Docker Images + +All images are pre-built and pulled from registry: +- `seryus.ddns.net/unir/raytune:latest` - Ray Tune tuning service +- `seryus.ddns.net/unir/paddle-ocr-gpu:latest` - PaddleOCR GPU +- `seryus.ddns.net/unir/doctr-gpu:latest` - DocTR GPU +- `seryus.ddns.net/unir/easyocr-gpu:latest` - EasyOCR GPU + +### Build locally (development) + +```bash +# Build raytune image locally +docker build -t seryus.ddns.net/unir/raytune:latest ./raytune +``` + +## Troubleshooting + +### Service not ready +Wait for the health check to pass before running tuning: +```bash +# Check service health +curl http://localhost:8002/health +# Expected: {"status": "ok", "model_loaded": true, ...} +``` + +### GPU not detected +Ensure `nvidia-container-toolkit` is installed: +```bash +nvidia-smi # Should show your GPU +docker run --rm --gpus all nvidia/cuda:12.4.1-base nvidia-smi +``` + +### Port already in use +Stop any running OCR services: +```bash +docker compose -f docker-compose.tuning.paddle.yml down +docker compose -f docker-compose.tuning.easyocr.yml down +``` diff --git a/src/docker-compose.tuning.doctr.yml b/src/docker-compose.tuning.doctr.yml new file mode 100644 index 0000000..31233a8 --- /dev/null +++ b/src/docker-compose.tuning.doctr.yml @@ -0,0 +1,50 @@ +# docker-compose.tuning.doctr.yml - Ray Tune with DocTR GPU +# Usage: +# docker compose -f docker-compose.tuning.doctr.yml up -d doctr-gpu +# docker compose -f docker-compose.tuning.doctr.yml run raytune --service doctr --samples 64 +# docker compose -f docker-compose.tuning.doctr.yml down + +services: + raytune: + image: seryus.ddns.net/unir/raytune:latest + command: ["--service", "doctr", "--host", "doctr-gpu", "--port", "8000", "--samples", "64"] + volumes: + - ./results:/app/results:rw + environment: + - PYTHONUNBUFFERED=1 + depends_on: + doctr-gpu: + condition: service_healthy + + doctr-gpu: + image: seryus.ddns.net/unir/doctr-gpu:latest + container_name: doctr-gpu-tuning + ports: + - "8003:8000" + volumes: + - ./dataset:/app/dataset:ro + - ./debugset:/app/debugset:rw + - doctr-cache:/root/.cache/doctr + environment: + - PYTHONUNBUFFERED=1 + - CUDA_VISIBLE_DEVICES=0 + - DOCTR_DET_ARCH=db_resnet50 + - DOCTR_RECO_ARCH=crnn_vgg16_bn + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: 1 + capabilities: [gpu] + restart: unless-stopped + healthcheck: + test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 180s + +volumes: + doctr-cache: + name: doctr-model-cache diff --git a/src/docker-compose.tuning.easyocr.yml b/src/docker-compose.tuning.easyocr.yml new file mode 100644 index 0000000..082e0cf --- /dev/null +++ b/src/docker-compose.tuning.easyocr.yml @@ -0,0 +1,51 @@ +# docker-compose.tuning.easyocr.yml - Ray Tune with EasyOCR GPU +# Usage: +# docker compose -f docker-compose.tuning.easyocr.yml up -d easyocr-gpu +# docker compose -f docker-compose.tuning.easyocr.yml run raytune --service easyocr --samples 64 +# docker compose -f docker-compose.tuning.easyocr.yml down +# +# Note: EasyOCR uses port 8002 (same as PaddleOCR). Cannot run simultaneously. + +services: + raytune: + image: seryus.ddns.net/unir/raytune:latest + command: ["--service", "easyocr", "--host", "easyocr-gpu", "--port", "8000", "--samples", "64"] + volumes: + - ./results:/app/results:rw + environment: + - PYTHONUNBUFFERED=1 + depends_on: + easyocr-gpu: + condition: service_healthy + + easyocr-gpu: + image: seryus.ddns.net/unir/easyocr-gpu:latest + container_name: easyocr-gpu-tuning + ports: + - "8002:8000" + volumes: + - ./dataset:/app/dataset:ro + - ./debugset:/app/debugset:rw + - easyocr-cache:/root/.EasyOCR + environment: + - PYTHONUNBUFFERED=1 + - CUDA_VISIBLE_DEVICES=0 + - EASYOCR_LANGUAGES=es,en + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: 1 + capabilities: [gpu] + restart: unless-stopped + healthcheck: + test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 120s + +volumes: + easyocr-cache: + name: easyocr-model-cache diff --git a/src/docker-compose.tuning.paddle.yml b/src/docker-compose.tuning.paddle.yml new file mode 100644 index 0000000..bddf2c5 --- /dev/null +++ b/src/docker-compose.tuning.paddle.yml @@ -0,0 +1,50 @@ +# docker-compose.tuning.paddle.yml - Ray Tune with PaddleOCR GPU +# Usage: +# docker compose -f docker-compose.tuning.paddle.yml up -d paddle-ocr-gpu +# docker compose -f docker-compose.tuning.paddle.yml run raytune --service paddle --samples 64 +# docker compose -f docker-compose.tuning.paddle.yml down + +services: + raytune: + image: seryus.ddns.net/unir/raytune:latest + command: ["--service", "paddle", "--host", "paddle-ocr-gpu", "--port", "8000", "--samples", "64"] + volumes: + - ./results:/app/results:rw + environment: + - PYTHONUNBUFFERED=1 + depends_on: + paddle-ocr-gpu: + condition: service_healthy + + paddle-ocr-gpu: + image: seryus.ddns.net/unir/paddle-ocr-gpu:latest + container_name: paddle-ocr-gpu-tuning + ports: + - "8002:8000" + volumes: + - ./dataset:/app/dataset:ro + - ./debugset:/app/debugset:rw + - paddlex-cache:/root/.paddlex + environment: + - PYTHONUNBUFFERED=1 + - CUDA_VISIBLE_DEVICES=0 + - PADDLE_DET_MODEL=PP-OCRv5_mobile_det + - PADDLE_REC_MODEL=PP-OCRv5_mobile_rec + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: 1 + capabilities: [gpu] + restart: unless-stopped + healthcheck: + test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + +volumes: + paddlex-cache: + name: paddlex-model-cache diff --git a/src/docker-compose.tuning.yml b/src/docker-compose.tuning.yml new file mode 100644 index 0000000..796d4d0 --- /dev/null +++ b/src/docker-compose.tuning.yml @@ -0,0 +1,82 @@ +# docker-compose.tuning.yml - Ray Tune with all OCR services (PaddleOCR + DocTR) +# Usage: +# docker compose -f docker-compose.tuning.yml up -d paddle-ocr-gpu doctr-gpu +# docker compose -f docker-compose.tuning.yml run raytune --service paddle --samples 64 +# docker compose -f docker-compose.tuning.yml run raytune --service doctr --samples 64 +# docker compose -f docker-compose.tuning.yml down +# +# Note: EasyOCR uses port 8002 (same as PaddleOCR). Use docker-compose.tuning.easyocr.yml separately. + +services: + raytune: + image: seryus.ddns.net/unir/raytune:latest + network_mode: host + shm_size: '5gb' + volumes: + - ./results:/app/results:rw + environment: + - PYTHONUNBUFFERED=1 + + paddle-ocr-gpu: + image: seryus.ddns.net/unir/paddle-ocr-gpu:latest + container_name: paddle-ocr-gpu-tuning + ports: + - "8002:8000" + volumes: + - ./dataset:/app/dataset:ro + - ./debugset:/app/debugset:rw + - paddlex-cache:/root/.paddlex + environment: + - PYTHONUNBUFFERED=1 + - CUDA_VISIBLE_DEVICES=0 + - PADDLE_DET_MODEL=PP-OCRv5_mobile_det + - PADDLE_REC_MODEL=PP-OCRv5_mobile_rec + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: 1 + capabilities: [gpu] + restart: unless-stopped + healthcheck: + test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + + doctr-gpu: + image: seryus.ddns.net/unir/doctr-gpu:latest + container_name: doctr-gpu-tuning + ports: + - "8003:8000" + volumes: + - ./dataset:/app/dataset:ro + - ./debugset:/app/debugset:rw + - doctr-cache:/root/.cache/doctr + environment: + - PYTHONUNBUFFERED=1 + - CUDA_VISIBLE_DEVICES=0 + - DOCTR_DET_ARCH=db_resnet50 + - DOCTR_RECO_ARCH=crnn_vgg16_bn + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: 1 + capabilities: [gpu] + restart: unless-stopped + healthcheck: + test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 180s + +volumes: + paddlex-cache: + name: paddlex-model-cache + doctr-cache: + name: doctr-model-cache diff --git a/src/raytune/Dockerfile b/src/raytune/Dockerfile new file mode 100644 index 0000000..a276510 --- /dev/null +++ b/src/raytune/Dockerfile @@ -0,0 +1,18 @@ +FROM python:3.12-slim + +WORKDIR /app + +# Install dependencies +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +# Copy application files +COPY raytune_ocr.py . +COPY run_tuning.py . + +# Create results directory +RUN mkdir -p /app/results + +ENV PYTHONUNBUFFERED=1 + +ENTRYPOINT ["python", "run_tuning.py"] diff --git a/src/raytune/README.md b/src/raytune/README.md new file mode 100644 index 0000000..a94dd44 --- /dev/null +++ b/src/raytune/README.md @@ -0,0 +1,131 @@ +# Ray Tune OCR Hyperparameter Optimization + +Docker-based hyperparameter tuning for OCR services using Ray Tune with Optuna search. + +## Structure + +``` +raytune/ +├── Dockerfile # Python 3.12-slim with Ray Tune + Optuna +├── requirements.txt # Dependencies +├── raytune_ocr.py # Shared utilities and search spaces +├── run_tuning.py # CLI entry point +└── README.md +``` + +## Quick Start + +```bash +cd src + +# Build the raytune image +docker compose -f docker-compose.tuning.paddle.yml build raytune + +# Or pull from registry +docker pull seryus.ddns.net/unir/raytune:latest +``` + +## Usage + +### PaddleOCR Tuning + +```bash +# Start PaddleOCR service +docker compose -f docker-compose.tuning.paddle.yml up -d paddle-ocr-gpu + +# Wait for health check, then run tuning +docker compose -f docker-compose.tuning.paddle.yml run raytune --service paddle --samples 64 + +# Stop when done +docker compose -f docker-compose.tuning.paddle.yml down +``` + +### DocTR Tuning + +```bash +docker compose -f docker-compose.tuning.doctr.yml up -d doctr-gpu +docker compose -f docker-compose.tuning.doctr.yml run raytune --service doctr --samples 64 +docker compose -f docker-compose.tuning.doctr.yml down +``` + +### EasyOCR Tuning + +```bash +# Note: EasyOCR uses port 8002 (same as PaddleOCR). Cannot run simultaneously. +docker compose -f docker-compose.tuning.easyocr.yml up -d easyocr-gpu +docker compose -f docker-compose.tuning.easyocr.yml run raytune --service easyocr --samples 64 +docker compose -f docker-compose.tuning.easyocr.yml down +``` + +## CLI Options + +``` +python run_tuning.py --service {paddle,doctr,easyocr} --samples N +``` + +| Option | Description | Default | +|------------|--------------------------------------|---------| +| --service | OCR service to tune (required) | - | +| --samples | Number of hyperparameter trials | 64 | + +## Search Spaces + +### PaddleOCR +- `use_doc_orientation_classify`: [True, False] +- `use_doc_unwarping`: [True, False] +- `textline_orientation`: [True, False] +- `text_det_thresh`: uniform(0.0, 0.7) +- `text_det_box_thresh`: uniform(0.0, 0.7) +- `text_rec_score_thresh`: uniform(0.0, 0.7) + +### DocTR +- `assume_straight_pages`: [True, False] +- `straighten_pages`: [True, False] +- `preserve_aspect_ratio`: [True, False] +- `symmetric_pad`: [True, False] +- `disable_page_orientation`: [True, False] +- `disable_crop_orientation`: [True, False] +- `resolve_lines`: [True, False] +- `resolve_blocks`: [True, False] +- `paragraph_break`: uniform(0.01, 0.1) + +### EasyOCR +- `text_threshold`: uniform(0.3, 0.9) +- `low_text`: uniform(0.2, 0.6) +- `link_threshold`: uniform(0.2, 0.6) +- `slope_ths`: uniform(0.0, 0.3) +- `ycenter_ths`: uniform(0.3, 1.0) +- `height_ths`: uniform(0.3, 1.0) +- `width_ths`: uniform(0.3, 1.0) +- `add_margin`: uniform(0.0, 0.3) +- `contrast_ths`: uniform(0.05, 0.3) +- `adjust_contrast`: uniform(0.3, 0.8) +- `decoder`: ["greedy", "beamsearch"] +- `beamWidth`: [3, 5, 7, 10] +- `min_size`: [5, 10, 15, 20] + +## Output + +Results are saved to `src/results/` as CSV files: +- `raytune_paddle_results_YYYYMMDD_HHMMSS.csv` +- `raytune_doctr_results_YYYYMMDD_HHMMSS.csv` +- `raytune_easyocr_results_YYYYMMDD_HHMMSS.csv` + +Each row contains: +- Configuration parameters (prefixed with `config/`) +- Metrics: CER, WER, TIME, PAGES, TIME_PER_PAGE +- Worker URL used for the trial + +## Network Mode + +The raytune container uses `network_mode: host` to access OCR services on localhost ports: +- PaddleOCR: port 8002 +- DocTR: port 8003 +- EasyOCR: port 8002 (conflicts with PaddleOCR) + +## Dependencies + +- ray[tune]==2.52.1 +- optuna==4.7.0 +- requests>=2.28.0 +- pandas>=2.0.0 diff --git a/src/raytune/raytune_ocr.py b/src/raytune/raytune_ocr.py new file mode 100644 index 0000000..40d3969 --- /dev/null +++ b/src/raytune/raytune_ocr.py @@ -0,0 +1,371 @@ +# raytune_ocr.py +# Shared Ray Tune utilities for OCR hyperparameter optimization +# +# Usage: +# from raytune_ocr import check_workers, create_trainable, run_tuner, analyze_results +# +# Environment variables: +# OCR_HOST: Host for OCR services (default: localhost) + +import os +from datetime import datetime +from typing import List, Dict, Any, Callable + +import requests +import pandas as pd + +import ray +from ray import tune +from ray.tune.search.optuna import OptunaSearch + + +def check_workers( + ports: List[int], + service_name: str = "OCR", + timeout: int = 180, + interval: int = 5, +) -> List[str]: + """ + Wait for workers to be fully ready (model + dataset loaded) and return healthy URLs. + + Args: + ports: List of port numbers to check + service_name: Name for error messages + timeout: Max seconds to wait for each worker + interval: Seconds between retries + + Returns: + List of healthy worker URLs + + Raises: + RuntimeError if no healthy workers found after timeout + """ + import time + + host = os.environ.get("OCR_HOST", "localhost") + worker_urls = [f"http://{host}:{port}" for port in ports] + healthy_workers = [] + + for url in worker_urls: + print(f"Waiting for {url}...") + start = time.time() + + while time.time() - start < timeout: + try: + health = requests.get(f"{url}/health", timeout=10).json() + model_ok = health.get('model_loaded', False) + dataset_ok = health.get('dataset_loaded', False) + + if health.get('status') == 'ok' and model_ok: + gpu = health.get('gpu_name', 'CPU') + print(f"✓ {url}: ready ({gpu})") + healthy_workers.append(url) + break + + elapsed = int(time.time() - start) + print(f" [{elapsed}s] model={model_ok}") + except requests.exceptions.RequestException: + elapsed = int(time.time() - start) + print(f" [{elapsed}s] not reachable") + + time.sleep(interval) + else: + print(f"✗ {url}: timeout after {timeout}s") + + if not healthy_workers: + raise RuntimeError( + f"No healthy {service_name} workers found.\n" + f"Checked ports: {ports}" + ) + + print(f"\n{len(healthy_workers)}/{len(worker_urls)} workers ready\n") + return healthy_workers + + +def create_trainable(ports: List[int], payload_fn: Callable[[Dict], Dict]) -> Callable: + """ + Factory to create a trainable function for Ray Tune. + + Args: + ports: List of worker ports for load balancing + payload_fn: Function that takes config dict and returns API payload dict + + Returns: + Trainable function for Ray Tune + + Note: + Ray Tune 2.x API: tune.report(metrics_dict) - pass dict directly, NOT kwargs. + See: https://docs.ray.io/en/latest/tune/api/doc/ray.tune.report.html + """ + def trainable(config): + import os + import random + import requests + from ray.tune import report # Ray 2.x: report(dict), not report(**kwargs) + + host = os.environ.get("OCR_HOST", "localhost") + api_url = f"http://{host}:{random.choice(ports)}" + payload = payload_fn(config) + + try: + response = requests.post(f"{api_url}/evaluate", json=payload, timeout=None) + response.raise_for_status() + metrics = response.json() + metrics["worker"] = api_url + report(metrics) # Ray 2.x API: pass dict directly + except Exception as e: + report({ # Ray 2.x API: pass dict directly + "CER": 1.0, + "WER": 1.0, + "TIME": 0.0, + "PAGES": 0, + "TIME_PER_PAGE": 0, + "worker": api_url, + "ERROR": str(e)[:500] + }) + + return trainable + + +def run_tuner( + trainable: Callable, + search_space: Dict[str, Any], + num_samples: int = 64, + num_workers: int = 1, + metric: str = "CER", + mode: str = "min", +) -> tune.ResultGrid: + """ + Initialize Ray and run hyperparameter tuning. + + Args: + trainable: Trainable function from create_trainable() + search_space: Dict of parameter names to tune.* search spaces + num_samples: Number of trials to run + num_workers: Max concurrent trials + metric: Metric to optimize + mode: "min" or "max" + + Returns: + Ray Tune ResultGrid + """ + ray.init( + ignore_reinit_error=True, + include_dashboard=False, + configure_logging=False, + _metrics_export_port=0, # Disable metrics export to avoid connection warnings + ) + print(f"Ray Tune ready (version: {ray.__version__})") + + tuner = tune.Tuner( + trainable, + tune_config=tune.TuneConfig( + metric=metric, + mode=mode, + search_alg=OptunaSearch(), + num_samples=num_samples, + max_concurrent_trials=num_workers, + ), + param_space=search_space, + ) + + return tuner.fit() + + +def analyze_results( + results: tune.ResultGrid, + output_folder: str = "results", + prefix: str = "raytune", + config_keys: List[str] = None, +) -> pd.DataFrame: + """ + Analyze and save tuning results. + + Args: + results: Ray Tune ResultGrid + output_folder: Directory to save CSV + prefix: Filename prefix + config_keys: List of config keys to show in best result (without 'config/' prefix) + + Returns: + Results DataFrame + """ + os.makedirs(output_folder, exist_ok=True) + df = results.get_dataframe() + + # Save to CSV + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + filename = f"{prefix}_results_{timestamp}.csv" + filepath = os.path.join(output_folder, filename) + df.to_csv(filepath, index=False) + print(f"Results saved: {filepath}") + + # Best configuration + best = df.loc[df["CER"].idxmin()] + print(f"\nBest CER: {best['CER']:.6f}") + print(f"Best WER: {best['WER']:.6f}") + + if config_keys: + print(f"\nOptimal Configuration:") + for key in config_keys: + col = f"config/{key}" + if col in best: + val = best[col] + if isinstance(val, float): + print(f" {key}: {val:.4f}") + else: + print(f" {key}: {val}") + + return df + + +def correlation_analysis(df: pd.DataFrame, param_keys: List[str]) -> None: + """ + Print correlation of numeric parameters with CER/WER. + + Args: + df: Results DataFrame + param_keys: List of config keys (without 'config/' prefix) + """ + param_cols = [f"config/{k}" for k in param_keys if f"config/{k}" in df.columns] + numeric_cols = [c for c in param_cols if df[c].dtype in ['float64', 'int64']] + + if not numeric_cols: + print("No numeric parameters for correlation analysis") + return + + corr_cer = df[numeric_cols + ["CER"]].corr()["CER"].sort_values(ascending=False) + corr_wer = df[numeric_cols + ["WER"]].corr()["WER"].sort_values(ascending=False) + + print("Correlation with CER:") + print(corr_cer) + print("\nCorrelation with WER:") + print(corr_wer) + + +# ============================================================================= +# OCR-specific payload functions +# ============================================================================= + +def paddle_ocr_payload(config: Dict) -> Dict: + """Create payload for PaddleOCR API. Uses pages 5-10 (first doc) for tuning.""" + return { + "pdf_folder": "/app/dataset", + "use_doc_orientation_classify": config.get("use_doc_orientation_classify", False), + "use_doc_unwarping": config.get("use_doc_unwarping", False), + "textline_orientation": config.get("textline_orientation", True), + "text_det_thresh": config.get("text_det_thresh", 0.0), + "text_det_box_thresh": config.get("text_det_box_thresh", 0.0), + "text_det_unclip_ratio": config.get("text_det_unclip_ratio", 1.5), + "text_rec_score_thresh": config.get("text_rec_score_thresh", 0.0), + "start_page": 5, + "end_page": 10, + "save_output": False, + } + + +def doctr_payload(config: Dict) -> Dict: + """Create payload for DocTR API. Uses pages 5-10 (first doc) for tuning.""" + return { + "pdf_folder": "/app/dataset", + "assume_straight_pages": config.get("assume_straight_pages", True), + "straighten_pages": config.get("straighten_pages", False), + "preserve_aspect_ratio": config.get("preserve_aspect_ratio", True), + "symmetric_pad": config.get("symmetric_pad", True), + "disable_page_orientation": config.get("disable_page_orientation", False), + "disable_crop_orientation": config.get("disable_crop_orientation", False), + "resolve_lines": config.get("resolve_lines", True), + "resolve_blocks": config.get("resolve_blocks", False), + "paragraph_break": config.get("paragraph_break", 0.035), + "start_page": 5, + "end_page": 10, + "save_output": False, + } + + +def easyocr_payload(config: Dict) -> Dict: + """Create payload for EasyOCR API. Uses pages 5-10 (first doc) for tuning.""" + return { + "pdf_folder": "/app/dataset", + "text_threshold": config.get("text_threshold", 0.7), + "low_text": config.get("low_text", 0.4), + "link_threshold": config.get("link_threshold", 0.4), + "slope_ths": config.get("slope_ths", 0.1), + "ycenter_ths": config.get("ycenter_ths", 0.5), + "height_ths": config.get("height_ths", 0.5), + "width_ths": config.get("width_ths", 0.5), + "add_margin": config.get("add_margin", 0.1), + "contrast_ths": config.get("contrast_ths", 0.1), + "adjust_contrast": config.get("adjust_contrast", 0.5), + "decoder": config.get("decoder", "greedy"), + "beamWidth": config.get("beamWidth", 5), + "min_size": config.get("min_size", 10), + "start_page": 5, + "end_page": 10, + "save_output": False, + } + + +# ============================================================================= +# Search spaces +# ============================================================================= + +PADDLE_OCR_SEARCH_SPACE = { + "use_doc_orientation_classify": tune.choice([True, False]), + "use_doc_unwarping": tune.choice([True, False]), + "textline_orientation": tune.choice([True, False]), + "text_det_thresh": tune.uniform(0.0, 0.7), + "text_det_box_thresh": tune.uniform(0.0, 0.7), + "text_det_unclip_ratio": tune.choice([0.0]), + "text_rec_score_thresh": tune.uniform(0.0, 0.7), +} + +DOCTR_SEARCH_SPACE = { + "assume_straight_pages": tune.choice([True, False]), + "straighten_pages": tune.choice([True, False]), + "preserve_aspect_ratio": tune.choice([True, False]), + "symmetric_pad": tune.choice([True, False]), + "disable_page_orientation": tune.choice([True, False]), + "disable_crop_orientation": tune.choice([True, False]), + "resolve_lines": tune.choice([True, False]), + "resolve_blocks": tune.choice([True, False]), + "paragraph_break": tune.uniform(0.01, 0.1), +} + +EASYOCR_SEARCH_SPACE = { + "text_threshold": tune.uniform(0.3, 0.9), + "low_text": tune.uniform(0.2, 0.6), + "link_threshold": tune.uniform(0.2, 0.6), + "slope_ths": tune.uniform(0.0, 0.3), + "ycenter_ths": tune.uniform(0.3, 1.0), + "height_ths": tune.uniform(0.3, 1.0), + "width_ths": tune.uniform(0.3, 1.0), + "add_margin": tune.uniform(0.0, 0.3), + "contrast_ths": tune.uniform(0.05, 0.3), + "adjust_contrast": tune.uniform(0.3, 0.8), + "decoder": tune.choice(["greedy", "beamsearch"]), + "beamWidth": tune.choice([3, 5, 7, 10]), + "min_size": tune.choice([5, 10, 15, 20]), +} + + +# ============================================================================= +# Config keys for results display +# ============================================================================= + +PADDLE_OCR_CONFIG_KEYS = [ + "use_doc_orientation_classify", "use_doc_unwarping", "textline_orientation", + "text_det_thresh", "text_det_box_thresh", "text_det_unclip_ratio", "text_rec_score_thresh", +] + +DOCTR_CONFIG_KEYS = [ + "assume_straight_pages", "straighten_pages", "preserve_aspect_ratio", "symmetric_pad", + "disable_page_orientation", "disable_crop_orientation", "resolve_lines", "resolve_blocks", + "paragraph_break", +] + +EASYOCR_CONFIG_KEYS = [ + "text_threshold", "low_text", "link_threshold", "slope_ths", "ycenter_ths", + "height_ths", "width_ths", "add_margin", "contrast_ths", "adjust_contrast", + "decoder", "beamWidth", "min_size", +] diff --git a/src/raytune/requirements.txt b/src/raytune/requirements.txt new file mode 100644 index 0000000..0e76c4e --- /dev/null +++ b/src/raytune/requirements.txt @@ -0,0 +1,4 @@ +ray[tune]==2.52.1 +optuna==4.7.0 +requests>=2.28.0 +pandas>=2.0.0 diff --git a/src/raytune/run_tuning.py b/src/raytune/run_tuning.py new file mode 100644 index 0000000..a3396ad --- /dev/null +++ b/src/raytune/run_tuning.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 +"""Run hyperparameter tuning for OCR services.""" + +import os +import sys +import argparse +from raytune_ocr import ( + check_workers, create_trainable, run_tuner, analyze_results, + paddle_ocr_payload, doctr_payload, easyocr_payload, + PADDLE_OCR_SEARCH_SPACE, DOCTR_SEARCH_SPACE, EASYOCR_SEARCH_SPACE, + PADDLE_OCR_CONFIG_KEYS, DOCTR_CONFIG_KEYS, EASYOCR_CONFIG_KEYS, +) + +SERVICES = { + "paddle": { + "payload_fn": paddle_ocr_payload, + "search_space": PADDLE_OCR_SEARCH_SPACE, + "config_keys": PADDLE_OCR_CONFIG_KEYS, + "name": "PaddleOCR", + }, + "doctr": { + "payload_fn": doctr_payload, + "search_space": DOCTR_SEARCH_SPACE, + "config_keys": DOCTR_CONFIG_KEYS, + "name": "DocTR", + }, + "easyocr": { + "payload_fn": easyocr_payload, + "search_space": EASYOCR_SEARCH_SPACE, + "config_keys": EASYOCR_CONFIG_KEYS, + "name": "EasyOCR", + }, +} + +def main(): + parser = argparse.ArgumentParser(description="Run OCR hyperparameter tuning") + parser.add_argument("--service", choices=["paddle", "doctr", "easyocr"], required=True) + parser.add_argument("--host", type=str, default="localhost", help="OCR service host") + parser.add_argument("--port", type=int, default=8000, help="OCR service port") + parser.add_argument("--samples", type=int, default=64, help="Number of samples") + args = parser.parse_args() + + # Set environment variable for raytune_ocr module + os.environ["OCR_HOST"] = args.host + + cfg = SERVICES[args.service] + ports = [args.port] + + print(f"\n{'='*50}") + print(f"Hyperparameter Tuning: {cfg['name']}") + print(f"Host: {args.host}:{args.port}") + print(f"Samples: {args.samples}") + print(f"{'='*50}\n") + + # Check workers + healthy = check_workers(ports, cfg["name"]) + + # Create trainable and run tuning + trainable = create_trainable(ports, cfg["payload_fn"]) + results = run_tuner( + trainable=trainable, + search_space=cfg["search_space"], + num_samples=args.samples, + num_workers=len(healthy), + ) + + # Analyze results + df = analyze_results( + results, + output_folder="results", + prefix=f"raytune_{args.service}", + config_keys=cfg["config_keys"], + ) + + print(f"\n{'='*50}") + print("Tuning complete!") + print(f"{'='*50}") + +if __name__ == "__main__": + main() diff --git a/thesis_output/plantilla_individual.htm b/thesis_output/plantilla_individual.htm index 21af3cfb51d09cc075bd3485bd1678c0c066100e..8b544dcc3eb31f016650a0e62ba1467985210d3e 100644 GIT binary patch literal 584742 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

7E155Y9XBYZp^G)j12pJPZsK=2u3wQD^E+I9It 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

G%CqGJ(tg(w_g_)8c4w82;O3-@4Rt19#V|o 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 literal 1724448 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 diff --git a/thesis_output/plantilla_individual.htm.bak b/thesis_output/plantilla_individual.htm.bak new file mode 100644 index 0000000..138698c --- /dev/null +++ b/thesis_output/plantilla_individual.htm.bak @@ -0,0 +1,6075 @@ + + + + + + + + + + + + + + + + + + + + + + + +

+ +

 

+ +

+ +

Universidad +Internacional de La Rioja

+ +

Escuela +Superior de Ingeniería y

+ +

Tecnología

+ +

 

+ +

 

+ +

 

+ +

 

+ +

Máster Universitario +en Inteligencia artificial

+ +

Optimización de Hiperparámetros OCR +con Ray Tune para Documentos Académicos en Español

+ + + +

 

+ +

           

+ + + + + + + + + + + + + + + + + + +
+

Trabajo fin de + estudio presentado por:

+
+

Sergio Jiménez Jiménez

+
+

Tipo de + trabajo:

+
+

Desarrollo + Software

+
+

Director/a:

+
+

Javier Rodrigo + Villazón Terrazas

+
+

Fecha:

+
+

06.10.2025

+
+ +

 

+ +
+
+ +

Resumen

+ +

En este +apartado se introducirá un breve resumen en español del trabajo realizado +(extensión entre 150 y 300 palabras). Este resumen debe incluir el objetivo o +propósito de la investigación, la metodología, los resultados y las +conclusiones.

+ +

El resumen +debe contener lo qué se ha pretendido realizar (objetivo o propósito de la +investigación), cómo se ha realizado (método o proceso desarrollado) y para qué +se ha realizado (resultados y conclusiones).

+ +

 

+ +
+ +

Importante: La extensión mínima en un TFE individual es de 50 páginas, sin contar +portada, resumen, abstract, índices y anexos.

+ +
+ +

 

+ +

Palabras clave: (De 3 a 5 palabras) Descriptores +del trabajo que lo enmarcan en unas temáticas determinadas. Serán los +utilizados para localizar tu trabajo si llega a ser publicado.

+ +

 

+ +

 

+ +
+
+ +

 

+ +

Abstract

+ +

En +este apartado se introducirá un breve resumen en inglés del trabajo +realizado (extensión entre 150 y 300 palabras). Este resumen debe incluir el +objetivo o propósito de la investigación, la metodología, los resultados y las +conclusiones.

+ +

 

+ +

Keywords: (De 3 a 5 palabras en inglés)

+ +

 

+ +

 

+ +
+
+ +

 

+ + + +

Índice de contenidos

+ +

1.    Introducción. 1

+ +

1.1.      Motivación. 1

+ +

1.2.      Planteamiento +del trabajo. 3

+ +

1.3.      Estructura +del trabajo. 3

+ +

2.    Contexto +y estado del arte. 4

+ +

2.1.      Contexto +del problema. 4

+ +

2.2.      Estado +del arte. 4

+ +

2.3.      Conclusiones. 5

+ +

3.    Objetivos +concretos y metodología de trabajo. 6

+ +

3.1.      Objetivo +general 6

+ +

3.2.      Objetivos +específicos. 7

+ +

3.3.      Metodología +del trabajo. 8

+ +

4.    Desarrollo específico de la contribución. 9

+ +

5.    Conclusiones +y trabajo futuro. 13

+ +

5.1.      Conclusiones. 13

+ +

5.2.      Líneas +de trabajo futuro. 13

+ +

Referencias bibliográficas. 14

+ +

Anexo A.     Código +fuente y datos analizados 15

+ +


+Índice de figuras

+ +

Figura 1. Ejemplo +de figura realizada para nuestro trabajo. 2

+ +


+Índice de tablas

+ +

Tabla 1. Ejemplo +de tabla con sus principales elementos. 2

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ +
+
+ +
+ +

1.   +Introducción

+ +

El primer capítulo es siempre +una introducción. En ella debes resumir de forma esquemática pero +suficientemente clara lo esencial de cada una de las partes del trabajo. La +lectura de este primer capítulo ha de dar una primera idea clara de lo que se +pretendía, las conclusiones a las que se ha llegado y del procedimiento +seguido.

+ +

Como tal, es uno de los +capítulos más importantes de la memoria. Las ideas +principales a transmitir son la identificación del problema a tratar, la +justificación de su importancia, los objetivos generales (a grandes rasgos) y +un adelanto de la contribución que esperas hacer.

+ +

Típicamente una introducción +tiene tres apartados: Motivación, Planteamiento del trabajo, Estructura del +trabajo. (Texto Normal del menú de estilos.)

+ +

Ejemplo de nota al pie[1].

+ +

 

+ +

1.1. Motivación

+ +

En este apartado se deberá +presentar el problema de estudio al que se quiere dar solución y justificar su +importancia para la comunidad educativa y científica.

+ +

La lectura de este apartado +debe dar una idea clara de las razones, motivos e intereses que han llevado a +la elección de este tema. Recuerda que para poder justificar este trabajo debe +haber referencias a la investigación previa sobre el tema objeto de estudio, +independientemente de que luego se profundice en otros apartados.

+ +

Las siguientes preguntas +puedan ayudar a la redacción de este apartado:

+ +

  ¿Cuál es el problema que quieres tratar?

+ +

  ¿Cuáles crees que son las causas?

+ +

  ¿Por qué es relevante el problema?

+ +

 

+ +

A continuación, se indica con +un ejemplo cómo deben introducirse los títulos y las fuentes en Tablas y Figuras.

+ +

 

+ +

Tabla 1. Ejemplo de tabla con sus principales +elementos.

+ +
+ +

+ +
+ +

Fuente: American Psychological Association, +2020a.

+ + + +

 

+ +

Figura 1. Ejemplo de figura realizada para nuestro +trabajo.

+ +

+ +

Fuente: +American Psychological Association, 2020b.

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

1.2. Planteamiento del trabajo

+ +

Se debe plantear, de forma +breve, el problema / necesidad detectada de la que se parte para proponer la +propuesta y la finalidad del TFE. Los objetivos se van a plantear +posteriormente, pero en este apartado debe quedar claro qué te planteas con la +intervención.

+ +

Es necesario que los temas +escogidos tengan una vinculación directa con la ingeniería de software, el +desarrollo web y/o la ciberseguridad y, por tanto, el tema trabajado debe estar +en consonancia con la titulación.

+ +

Las siguientes preguntas +puedan ayudar a la redacción de este apartado:

+ +

  ¿Cómo se podría solucionar el problema?

+ +

  +¿Qué es lo que se propone? Aquí +describes tus objetivos en términos generales.

+ +

 

+ +

1.3. Estructura del trabajo

+ +

Aquí describes brevemente lo +que vas a contar en cada uno de los capítulos siguientes.

+ +

 

+ +
+
+ +

 

+ +

2.   +Contexto +y estado del arte

+ +

Después de la introducción, se suele describir el contexto de +aplicación. Suele ser un capítulo (o dos en ciertos casos) en el que se estudia +a fondo el dominio de aplicación, citando numerosas referencias. Debe aportar +un buen resumen del conocimiento que ya existe en el campo de los problemas +habituales identificados.

+ +

Es conveniente que revises los estudios actuales publicados en la línea +elegida, y deberás consultar diferentes fuentes. No es suficiente con la +consulta on-line, es necesario acudir a la biblioteca y consultar manuales +técnicos.

+ +

Hay que tener presente los autores de referencia en la temática del +trabajo de investigación. Si se ha excluido a alguno de los relevantes hay que +justificar adecuadamente su exclusión. Si por la extensión del trabajo no se +puede señalar a todos los autores, habrá que justificar por qué se han elegido +unos y se ha prescindido de otros.

+ +

La organización específica en +secciones dependerá estrechamente el trabajo concreto que vayas a realizar. En +este punto será fundamental la colaboración con tu DIRECTOR, él podrá +asesorarte y guiarte, aunque siempre debes tener claro que el trabajo fundamental +es tuyo.

+ +

El capítulo debería concluir +con una última sección de resumen de conclusiones, resumiendo las principales +averiguaciones del estudio del dominio y cómo van a afectar al desarrollo +específico del trabajo.

+ +

Recuerda que para citar trabajos de diferentes autores es fundamental e +imprescindible seguir el formato APA, según se describe en +el documento Normativa_APA.pdf disponible en el apartado de Documentación del +Aula de información general del Máster Universitario en Inteligencia Artificial +(MIA). No se debe mencionar, ni utilizar ninguna fuente, sin citarla apropiadamente.

+ +

2.1. Contexto del problema

+ +

2.2. Estado del arte

+ +

Estado del arte (base +teórica): antecedentes, estudios actuales, comparativa de herramientas +existentes, etc.

+ +

2.3. Conclusiones

+ +

Conclusiones (nexo de unión de lo investigado con el trabajo a realizar).

+ +

 

+ +
+
+ +

 

+ +

3.   +Objetivos +concretos y metodología de trabajo

+ +

Este tercer capítulo es el +puente entre el estudio del dominio y la contribución a realizar. Según el +trabajo concreto, el bloque se puede organizar de distintas formas, pero hay +tres elementos que deben estar presentes con mayor o menor detalle: (1) objetivo +general, (2) objetivos específicos y (3) metodología de trabajo.

+ +

Es muy importante, por no +decir imprescindible, que los objetivos (general y específicos) sean SMART +(Doran, 1981) según la idea de George T. Doran que utilizó la palabra smart (inteligente en inglés) para definir las +características de un objetivo:

+ +

          S: Specific / Específico: que +exprese claramente qué es exactamente +lo que se quiere conseguir.

+ +

          M: Measurable / Medible: que se +puedan establecer medidas que determinen el éxito o fracaso y también el +progreso en la consecución del objetivo.

+ +

          A: Attainable / Alcanzable: que +sea viable su consecución en base al esfuerzo, tiempo y recursos disponibles +para conseguirlo.

+ +

          R: Relevant / Relevante: que +tenga un impacto demostrable, es decir que sea útil para un propósito concreto.

+ +

          T: Time-Related / Con un tiempo +determinado: que se pueda llevar a cabo en una fecha determinada.

+ +

3.1. Objetivo general

+ +

Los trabajos aplicados se +centran en conseguir un impacto concreto, demostrando la efectividad de una +tecnología, proponiendo una nueva metodología o aportando nuevas herramientas +tecnológicas. El objetivo por tanto no debe ser sin más “crear una herramienta” +o “proponer una metodología”, sino que debe centrarse en conseguir un efecto +observable. Además, como se ha dicho antes el objetivo general debe ser SMART

+ +

Ejemplo de objetivo general +SMART: Mejorar el servicio de audio guía de un museo convirtiéndolo en una guía +interactiva controlada por voz y valorada positivamente, un mínimo 4 sobre 5, +por los visitantes del museo.

+ +

Este objetivo descrito +anteriormente podría dar lugar a un trabajo de tipo 2 (desarrollo de software) +que plantease el desarrollo de un bot conversacional +que procesara la señal de voz recogida a través del micrófono y a través de +técnicas de procesamiento del lenguaje natural fuera capaz de mantener una +conversación con el visitante para determinar el contenido en el que está +interesado o resolver las posibles dudas o preguntas que pudiera tener a lo +largo de su visita.

+ +

3.2. Objetivos específicos

+ +

Independientemente del tipo de +trabajo, la hipótesis o el objetivo general típicamente se dividirán en un +conjunto de objetivos más específicos analizables por separado. Estos objetivos +específicos suelen ser explicaciones de los diferentes pasos o tareas a seguir +en la consecución del objetivo general.

+ +

Con los objetivos específicos +has de concretar qué pretendes conseguir. Estos objetivos que deben ser SMART +se formulan con un verbo en infinitivo más el contenido del objeto de estudio. +Se suelen usar viñetas para cada uno de los objetivos. Se pueden utilizar +fórmulas verbales, como las siguientes:

+ +
    +
  • Analizar
  • +
  • Calcular
  • +
  • Clasificar
  • +
  • Comparar
  • +
  • Conocer
  • +
  • Cuantificar
  • +
  • Desarrollar
  • +
  • Describir
  • +
  • Descubrir
  • +
  • Determinar
  • +
  • Establecer
  • +
  • Explorar
  • +
  • Identificar
  • +
  • Indagar
  • +
  • Medir
  • +
  • Sintetizar
  • +
  • Verificar
  • +
+ +

Los objetivos específicos +suelen ser alrededor de 5. Normalmente uno o dos sobre el marco teórico o +estado del arte y dos o tres sobre el desarrollo específico de la contribución.

+ +

En un trabajo como el anterior +se incluirían objetivos específicos tales como:

+ +
    +
  • Identificar + las tecnologías disponibles para crear un chatbot
  • +
+ +
    +
  • Explorar + recursos lingüísticos online que describan el dominio de los muesos en + español
  • +
  • Diseñar + e implementar el módulo de gestión del dialogo
  • +
  • Evaluar + el agente conversacional con 10 visitantes del museo.
  • +
+ +

 

+ +

3.3. Metodología del trabajo

+ +

De cara a alcanzar los objetivos específicos (y con ellos el objetivo +general o la validación/refutación de la hipótesis), será necesario realizar +una serie de pasos. La metodología del trabajo debe describir qué pasos se van +a dar, el porqué de cada paso, qué instrumentos se van a utilizar, cómo se van +a analizar los resultados, etc.

+ +
+
+ +

 

+ +

4.   Desarrollo +específico de la contribución

+ +

En este +apartado debes desarrollar la descripción de tu contribución. Es muy +dependiente del tipo de trabajo concreto, y puedes contar con la ayuda de tu +director para estudiar cómo comunicar los detalles de tu contribución. A +continuación, te presentamos la estructura habitual para cada uno de los tipos +de trabajo, aunque suele ser común desarrollar los apartados en función de las +fases o actividades que se hayan establecido en la metodología de trabajo.

+ +

 

+ +

Tipo 1. Piloto experimental

+ +

 

+ +

Este +tipo de trabajos suelen seguir la estructura típica al describir experimentos +científicos, dividida en descripción del experimento, presentación de los +resultados y discusión de los resultados.

+ +

 

+ +

Capítulo 4 - Descripción +detallada del experimento

+ +

En el capítulo de Objetivos y Metodología del Trabajo ya habrás +descrito a grandes rasgos la metodología experimental que vas a seguir. Pero si +tu trabajo se centra en describir un piloto, deberás dedicar un capítulo a +describir con todo detalle las características del piloto. Como mínimo querrás +mencionar:

+ +

+Qué tecnologías se utilizaron +(incluyendo justificación de por qué se emplearon y descripciones detalladas de +las mismas).

+ +

+Cómo se organizó el piloto

+ +

+Qué personas participaron (con +datos demográficos)

+ +

+Qué técnicas de evaluación +automática se emplearon.

+ +

+Cómo transcurrió el experimento.

+ +

+Qué instrumentos de seguimiento y +evaluación se utilizaron.

+ +

+Qué tipo de análisis estadísticos +se ha empleado (si procede).

+ +

 

+ +

Capítulo 5 - Descripción de +los resultados

+ +

En el siguiente capítulo deberás detallar los resultados obtenidos, con +tablas de resumen, gráficas de resultados, identificación de datos relevantes, +etc. Es una exposición objetiva, sin valorar los resultados ni justificarlos.

+ +

 

+ +

Capítulo 6 - Discusión

+ +

Tras la presentación objetiva de los resultados, querrás aportar una +discusión de los mismos. En este capítulo puedes +discutir la relevancia de los resultados, presentar posibles explicaciones para +los datos anómalos y resaltar aquellos datos que sean particularmente +relevantes para el análisis del experimento.

+ +

 

+ +

Tipo 2. Desarrollo de +software

+ +

 

+ +

En un trabajo de desarrollo de software es importante justificar los +criterios de diseño seguidos para desarrollar el programa, seguido de la +descripción detallada del producto resultante y finalmente una evaluación de la +calidad y aplicabilidad del producto. Esto suele verse reflejado en la +siguiente estructura de capítulos:

+ +

 

+ +

Capítulo 4 - Identificación +de requisitos

+ +

En este capítulo se debe indicar el trabajo previo realizado para guiar +el desarrollo del software. Esto debería incluir la identificación adecuada del +problema a tratar, así como del contexto habitual de uso o funcionamiento de la +aplicación. Idealmente, la identificación de requisitos se debería hacer +contando con expertos en la materia a tratar.

+ +

 

+ +

Capítulo 5 - Descripción de +la herramienta software desarrollada

+ +

En el caso de desarrollos de +software, deberían aportarse detalles del proceso de desarrollo, incluyendo +las fases e hitos del proceso. También deben presentarse diagramas explicativos +de la arquitectura o funcionamiento, así como capturas de pantalla que permitan +al lector entender el funcionamiento del programa.

+ +

 

+ +

Capítulo 6 - Evaluación

+ +

La evaluación debería cubrir por lo menos una mínima evaluación de la +usabilidad de la herramienta, así como de su aplicabilidad para resolver el +problema propuesto. Estas evaluaciones suelen realizarse con usuarios expertos.

+ +

 

+ +

Tipo 3. Comparativa de +soluciones

+ +

 

+ + + +

Este tipo de trabajos suelen +seguir la estructura típica de un estudio comparativo, parten de plantear la +comparativa a realizar, describen el desarrollo de la misma +y analizan los resultados.

+ +

 

+ +

Capítulo 4 - Planteamiento de la comparativa

+ +

En este capítulo se debe +indicar el trabajo previo realizado para identificar el problema concreto a +tratar, así como las posibles soluciones alternativas que se van a evaluar. +También se deben identificar los criterios de éxito para la comparativa, las medidas +que se van a tomar, etc.

+ +

 

+ +

Capítulo 5 - Desarrollo de la comparativa

+ +

En este capítulo se debería +desarrollar con todo detalle la comparativa realizada, con todos los resultados +y mediciones obtenidos. Puede ser útil acompañar las descripciones con +gráficas, tablas y otros instrumentos para plasmar los datos obtenidos.

+ +

 

+ +

Capítulo 6 - Discusión y análisis de resultados

+ +

Mientras que el capítulo +anterior se centraría en informar de los resultados y comparaciones obtenidos, +en este capítulo se abordará la discusión sobre su posible significado, así +como el análisis de las ventajas y desventajas de las distintas soluciones +evaluadas.

+ +

 

+ +

En +el capítulo de Objetivos y Metodología del Trabajo ya habrás descrito a grandes +rasgos la metodología experimental que vas a seguir. Pero si tu trabajo se +centra en describir un piloto, deberás dedicar un capítulo a describir con todo +detalle las características del piloto. Como mínimo querrás mencionar:

+ +

·       Qué tecnologías se utilizaron +(incluyendo justificación de por qué se emplearon y descripciones +detalladas de las mismas).

+ +

·       Cómo se organizó el piloto

+ +

·       Qué personas participaron (con +datos demográficos)

+ +

·       Qué técnicas de evaluación +automática se emplearon.

+ +

·       Cómo transcurrió́ el experimento.

+ +

·       Qué instrumentos de seguimiento y +evaluación se utilizaron.

+ +

·       +Qué +tipo de análisis estadísticos se ha empleado (si procede).

+ +

 

+ +

.
+

+ + + +

5.   +Conclusiones +y trabajo futuro

+ +

5.1.  Conclusiones

+ +

Este último capítulo (en ocasiones, +dos capítulos complementarios) es habitual en todos los tipos de trabajos y presenta +el resumen final de tu trabajo y debe servir para informar del alcance y +relevancia de tu aportación.

+ +

Suele estructurarse empezando con un +resumen del problema tratado, de cómo se ha abordado y de por qué la solución +sería válida.

+ +

Es +recomendable que incluya también un resumen de las contribuciones del trabajo, +en el que relaciones las contribuciones y los resultados obtenidos con los +objetivos que habías planteado para el trabajo, discutiendo hasta qué punto has +conseguido resolver los objetivos planteados.

+ +

5.2.  Líneas de trabajo futuro

+ +

Finalmente, se suele dedicar una última sección a hablar de líneas de +trabajo futuro que podrían aportar valor añadido al TFE realizado. La sección +debería señalar las perspectivas de futuro que abre el trabajo desarrollado +para el campo de estudio definido. En el fondo, debes justificar de qué modo +puede emplearse la aportación que has desarrollado y en qué campos.

+ +

 

+ +

 

+ +

 

+ +
+
+ +

 

+ +

Referencias +bibliográficas

+ +

Según la normativa APA debe ponerse +con sangría francesa y debe estar ordenado por orden alfabético según el +apellido del primer autor.

+ +

Toda la bibliografía que aparezca en +este apartado debe estar citada en el trabajo. La mayor parte de las citas +deben aparecer en el capítulo 2, que es donde se realiza el estudio del estado +del arte. Además, se recomienda evitar citas que hagan referencia a Wikipedia y +que no todas las referencias sean solo enlaces de internet, es decir, que se +vea alguna variabilidad entre libros, congresos, artículos y enlaces puntuales +de internet.

+ +

Se recomienda encarecidamente +utilizar el gestor de bibliografía de Word para gestionar la bibliografía.

+ +

Ejemplo:

+ +

Doran, G. T. +(1981). There's a S.M.A.R.T. way to write management's goals and objectives. Management Review (AMA FORUM), 70, 35-36.

+ +


+ 

+ +

Anexo A.    +Código fuente y datos analizados

+ +

Es recomendable que el estudiante incluya en +su memoria la URL del repositorio donde tiene alojado el código fuente +desarrollado durante el TFE. El estudiante debe ser el único autor del código y +único propietario del repositorio. En el repositorio no debe haber commit de ningún otro usuario del repositorio.

+ +

De igual forma, los datos que hayan utilizado +para el análisis, siempre que así se considere oportuno, también deberían están +alojamos en el mismo repositorio.

+ +

Si el TFE está asociado a una actividad o +proyecto de Empresa, se debe justificar en la memoria que, por temas de +confidencialidad, no se deja disponible ni el código fuente ni los datos +utilizados.

+ +

 

+ +

 

+ +

 

+ +
+ +

+ +
+ + + +
+ +

[1] Ejemplo de nota al pie.

+ +
+ +
+ + + +