diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 37df5e8..26510e4 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -12,7 +12,6 @@ on: env: PADDLE_VERSION: "3.0.0" - WHEEL_BASE_URL: "https://seryus.ddns.net/api/packages/unir/generic" jobs: essential: @@ -33,22 +32,14 @@ jobs: echo "Version: 1.0.${{ gitea.run_number }}" >> $GITHUB_STEP_SUMMARY echo "Event: ${{ gitea.event_name }}" >> $GITHUB_STEP_SUMMARY - # CPU image: Matrix build for amd64 and arm64 + # PaddleOCR CPU image (amd64 only) build_cpu: runs-on: ubuntu-latest needs: essential - strategy: - matrix: - platform: - - linux/amd64 - - linux/arm64 steps: - name: Checkout uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -59,50 +50,25 @@ jobs: username: username password: ${{ secrets.CI_READWRITE }} - - name: Get arch suffix - id: arch - run: | - if [ "${{ matrix.platform }}" = "linux/amd64" ]; then - echo "suffix=amd64" >> $GITHUB_OUTPUT - else - echo "suffix=arm64" >> $GITHUB_OUTPUT - fi - - - name: Download ARM64 wheel from Gitea packages - if: matrix.platform == 'linux/arm64' - run: | - mkdir -p src/paddle_ocr/wheels - curl -L -o src/paddle_ocr/wheels/paddlepaddle-${{ env.PADDLE_VERSION }}-cp311-cp311-linux_aarch64.whl \ - "${{ env.WHEEL_BASE_URL }}/paddlepaddle-cpu-arm64/${{ env.PADDLE_VERSION }}/paddlepaddle-${{ env.PADDLE_VERSION }}-cp311-cp311-linux_aarch64.whl" - ls -la src/paddle_ocr/wheels/ - - - name: Build and push CPU image (${{ matrix.platform }}) + - name: Build and push CPU image uses: docker/build-push-action@v5 with: context: src/paddle_ocr file: src/paddle_ocr/Dockerfile.cpu - platforms: ${{ matrix.platform }} + platforms: linux/amd64 push: true tags: | - ${{ needs.essential.outputs.image_cpu }}:${{ needs.essential.outputs.Version }}-${{ steps.arch.outputs.suffix }} - ${{ needs.essential.outputs.image_cpu }}:${{ steps.arch.outputs.suffix }} + ${{ needs.essential.outputs.image_cpu }}:${{ needs.essential.outputs.Version }} + ${{ needs.essential.outputs.image_cpu }}:latest - # GPU image: Matrix build for amd64 and arm64 + # PaddleOCR GPU image (amd64 only) build_gpu: runs-on: ubuntu-latest needs: essential - strategy: - matrix: - platform: - - linux/amd64 - - linux/arm64 steps: - name: Checkout uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -113,92 +79,25 @@ jobs: username: username password: ${{ secrets.CI_READWRITE }} - - name: Get arch suffix - id: arch - run: | - if [ "${{ matrix.platform }}" = "linux/amd64" ]; then - echo "suffix=amd64" >> $GITHUB_OUTPUT - else - echo "suffix=arm64" >> $GITHUB_OUTPUT - fi - - - name: Download ARM64 GPU wheel from Gitea packages - if: matrix.platform == 'linux/arm64' - run: | - mkdir -p src/paddle_ocr/wheels - curl -L -o src/paddle_ocr/wheels/paddlepaddle_gpu-${{ env.PADDLE_VERSION }}-cp311-cp311-linux_aarch64.whl \ - "${{ env.WHEEL_BASE_URL }}/paddlepaddle-gpu-arm64/${{ env.PADDLE_VERSION }}/paddlepaddle_gpu-${{ env.PADDLE_VERSION }}-cp311-cp311-linux_aarch64.whl" - ls -la src/paddle_ocr/wheels/ - - - name: Build and push GPU image (${{ matrix.platform }}) + - name: Build and push GPU image uses: docker/build-push-action@v5 with: context: src/paddle_ocr file: src/paddle_ocr/Dockerfile.gpu - platforms: ${{ matrix.platform }} + platforms: linux/amd64 push: true tags: | - ${{ needs.essential.outputs.image_gpu }}:${{ needs.essential.outputs.Version }}-${{ steps.arch.outputs.suffix }} - ${{ needs.essential.outputs.image_gpu }}:${{ steps.arch.outputs.suffix }} + ${{ needs.essential.outputs.image_gpu }}:${{ needs.essential.outputs.Version }} + ${{ needs.essential.outputs.image_gpu }}:latest - # Create multi-arch manifest for CPU image - manifest_cpu: - runs-on: ubuntu-latest - needs: [essential, build_cpu] - steps: - - name: Login to Gitea Registry - uses: docker/login-action@v3 - with: - registry: ${{ needs.essential.outputs.repo }} - username: username - password: ${{ secrets.CI_READWRITE }} - - - name: Create multi-arch manifest (CPU) - run: | - docker buildx imagetools create -t ${{ needs.essential.outputs.image_cpu }}:latest \ - ${{ needs.essential.outputs.image_cpu }}:amd64 \ - ${{ needs.essential.outputs.image_cpu }}:arm64 - docker buildx imagetools create -t ${{ needs.essential.outputs.image_cpu }}:${{ needs.essential.outputs.Version }} \ - ${{ needs.essential.outputs.image_cpu }}:${{ needs.essential.outputs.Version }}-amd64 \ - ${{ needs.essential.outputs.image_cpu }}:${{ needs.essential.outputs.Version }}-arm64 - - # Create multi-arch manifest for GPU image - manifest_gpu: - runs-on: ubuntu-latest - needs: [essential, build_gpu] - steps: - - name: Login to Gitea Registry - uses: docker/login-action@v3 - with: - registry: ${{ needs.essential.outputs.repo }} - username: username - password: ${{ secrets.CI_READWRITE }} - - - name: Create multi-arch manifest (GPU) - run: | - docker buildx imagetools create -t ${{ needs.essential.outputs.image_gpu }}:latest \ - ${{ needs.essential.outputs.image_gpu }}:amd64 \ - ${{ needs.essential.outputs.image_gpu }}:arm64 - docker buildx imagetools create -t ${{ needs.essential.outputs.image_gpu }}:${{ needs.essential.outputs.Version }} \ - ${{ needs.essential.outputs.image_gpu }}:${{ needs.essential.outputs.Version }}-amd64 \ - ${{ needs.essential.outputs.image_gpu }}:${{ needs.essential.outputs.Version }}-arm64 - - # EasyOCR image: Matrix build for amd64 and arm64 + # EasyOCR CPU image (amd64 only) build_easyocr: runs-on: ubuntu-latest needs: essential - strategy: - matrix: - platform: - - linux/amd64 - - linux/arm64 steps: - name: Checkout uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -209,131 +108,25 @@ jobs: username: username password: ${{ secrets.CI_READWRITE }} - - name: Get arch suffix - id: arch - run: | - if [ "${{ matrix.platform }}" = "linux/amd64" ]; then - echo "suffix=amd64" >> $GITHUB_OUTPUT - else - echo "suffix=arm64" >> $GITHUB_OUTPUT - fi - - - name: Build and push EasyOCR image (${{ matrix.platform }}) + - name: Build and push EasyOCR image uses: docker/build-push-action@v5 with: context: src/easyocr_service file: src/easyocr_service/Dockerfile - platforms: ${{ matrix.platform }} + platforms: linux/amd64 push: true tags: | - ${{ needs.essential.outputs.image_easyocr }}:${{ needs.essential.outputs.Version }}-${{ steps.arch.outputs.suffix }} - ${{ needs.essential.outputs.image_easyocr }}:${{ steps.arch.outputs.suffix }} + ${{ needs.essential.outputs.image_easyocr }}:${{ needs.essential.outputs.Version }} + ${{ needs.essential.outputs.image_easyocr }}:latest - # DocTR image: Matrix build for amd64 and arm64 - build_doctr: - runs-on: ubuntu-latest - needs: essential - strategy: - matrix: - platform: - - linux/amd64 - - linux/arm64 - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - 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: Get arch suffix - id: arch - run: | - if [ "${{ matrix.platform }}" = "linux/amd64" ]; then - echo "suffix=amd64" >> $GITHUB_OUTPUT - else - echo "suffix=arm64" >> $GITHUB_OUTPUT - fi - - - name: Build and push DocTR image (${{ matrix.platform }}) - uses: docker/build-push-action@v5 - with: - context: src/doctr_service - file: src/doctr_service/Dockerfile - platforms: ${{ matrix.platform }} - push: true - tags: | - ${{ needs.essential.outputs.image_doctr }}:${{ needs.essential.outputs.Version }}-${{ steps.arch.outputs.suffix }} - ${{ needs.essential.outputs.image_doctr }}:${{ steps.arch.outputs.suffix }} - - # Create multi-arch manifest for EasyOCR image - manifest_easyocr: - runs-on: ubuntu-latest - needs: [essential, build_easyocr] - steps: - - name: Login to Gitea Registry - uses: docker/login-action@v3 - with: - registry: ${{ needs.essential.outputs.repo }} - username: username - password: ${{ secrets.CI_READWRITE }} - - - name: Create multi-arch manifest (EasyOCR) - run: | - docker buildx imagetools create -t ${{ needs.essential.outputs.image_easyocr }}:latest \ - ${{ needs.essential.outputs.image_easyocr }}:amd64 \ - ${{ needs.essential.outputs.image_easyocr }}:arm64 - docker buildx imagetools create -t ${{ needs.essential.outputs.image_easyocr }}:${{ needs.essential.outputs.Version }} \ - ${{ needs.essential.outputs.image_easyocr }}:${{ needs.essential.outputs.Version }}-amd64 \ - ${{ needs.essential.outputs.image_easyocr }}:${{ needs.essential.outputs.Version }}-arm64 - - # Create multi-arch manifest for DocTR image - manifest_doctr: - runs-on: ubuntu-latest - needs: [essential, build_doctr] - steps: - - name: Login to Gitea Registry - uses: docker/login-action@v3 - with: - registry: ${{ needs.essential.outputs.repo }} - username: username - password: ${{ secrets.CI_READWRITE }} - - - name: Create multi-arch manifest (DocTR) - run: | - docker buildx imagetools create -t ${{ needs.essential.outputs.image_doctr }}:latest \ - ${{ needs.essential.outputs.image_doctr }}:amd64 \ - ${{ needs.essential.outputs.image_doctr }}:arm64 - docker buildx imagetools create -t ${{ needs.essential.outputs.image_doctr }}:${{ needs.essential.outputs.Version }} \ - ${{ needs.essential.outputs.image_doctr }}:${{ needs.essential.outputs.Version }}-amd64 \ - ${{ needs.essential.outputs.image_doctr }}:${{ needs.essential.outputs.Version }}-arm64 - - # EasyOCR GPU image: Matrix build for amd64 and arm64 - # PyTorch cu128 has wheels for both architectures + # EasyOCR GPU image (amd64 only) build_easyocr_gpu: runs-on: ubuntu-latest needs: essential - strategy: - matrix: - platform: - - linux/amd64 - - linux/arm64 steps: - name: Checkout uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -344,43 +137,25 @@ jobs: username: username password: ${{ secrets.CI_READWRITE }} - - name: Get arch suffix - id: arch - run: | - if [ "${{ matrix.platform }}" = "linux/amd64" ]; then - echo "suffix=amd64" >> $GITHUB_OUTPUT - else - echo "suffix=arm64" >> $GITHUB_OUTPUT - fi - - - name: Build and push EasyOCR GPU image (${{ matrix.platform }}) + - name: Build and push EasyOCR GPU image uses: docker/build-push-action@v5 with: context: src/easyocr_service file: src/easyocr_service/Dockerfile.gpu - platforms: ${{ matrix.platform }} + platforms: linux/amd64 push: true tags: | - ${{ needs.essential.outputs.image_easyocr_gpu }}:${{ needs.essential.outputs.Version }}-${{ steps.arch.outputs.suffix }} - ${{ needs.essential.outputs.image_easyocr_gpu }}:${{ steps.arch.outputs.suffix }} + ${{ needs.essential.outputs.image_easyocr_gpu }}:${{ needs.essential.outputs.Version }} + ${{ needs.essential.outputs.image_easyocr_gpu }}:latest - # DocTR GPU image: Matrix build for amd64 and arm64 - # PyTorch cu128 has wheels for both architectures - build_doctr_gpu: + # DocTR CPU image (amd64 only) + build_doctr: runs-on: ubuntu-latest needs: essential - strategy: - matrix: - platform: - - linux/amd64 - - linux/arm64 steps: - name: Checkout uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -391,64 +166,42 @@ jobs: username: username password: ${{ secrets.CI_READWRITE }} - - name: Get arch suffix - id: arch - run: | - if [ "${{ matrix.platform }}" = "linux/amd64" ]; then - echo "suffix=amd64" >> $GITHUB_OUTPUT - else - echo "suffix=arm64" >> $GITHUB_OUTPUT - fi + - name: Build and push DocTR image + uses: docker/build-push-action@v5 + with: + context: src/doctr_service + file: src/doctr_service/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ${{ needs.essential.outputs.image_doctr }}:${{ needs.essential.outputs.Version }} + ${{ needs.essential.outputs.image_doctr }}:latest - - name: Build and push DocTR GPU image (${{ matrix.platform }}) + # DocTR GPU image (amd64 only) + build_doctr_gpu: + 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 DocTR GPU image uses: docker/build-push-action@v5 with: context: src/doctr_service file: src/doctr_service/Dockerfile.gpu - platforms: ${{ matrix.platform }} + platforms: linux/amd64 push: true tags: | - ${{ needs.essential.outputs.image_doctr_gpu }}:${{ needs.essential.outputs.Version }}-${{ steps.arch.outputs.suffix }} - ${{ needs.essential.outputs.image_doctr_gpu }}:${{ steps.arch.outputs.suffix }} - - # Create multi-arch manifest for EasyOCR GPU image - manifest_easyocr_gpu: - runs-on: ubuntu-latest - needs: [essential, build_easyocr_gpu] - steps: - - name: Login to Gitea Registry - uses: docker/login-action@v3 - with: - registry: ${{ needs.essential.outputs.repo }} - username: username - password: ${{ secrets.CI_READWRITE }} - - - name: Create multi-arch manifest (EasyOCR GPU) - run: | - docker buildx imagetools create -t ${{ needs.essential.outputs.image_easyocr_gpu }}:latest \ - ${{ needs.essential.outputs.image_easyocr_gpu }}:amd64 \ - ${{ needs.essential.outputs.image_easyocr_gpu }}:arm64 - docker buildx imagetools create -t ${{ needs.essential.outputs.image_easyocr_gpu }}:${{ needs.essential.outputs.Version }} \ - ${{ needs.essential.outputs.image_easyocr_gpu }}:${{ needs.essential.outputs.Version }}-amd64 \ - ${{ needs.essential.outputs.image_easyocr_gpu }}:${{ needs.essential.outputs.Version }}-arm64 - - # Create multi-arch manifest for DocTR GPU image - manifest_doctr_gpu: - runs-on: ubuntu-latest - needs: [essential, build_doctr_gpu] - steps: - - name: Login to Gitea Registry - uses: docker/login-action@v3 - with: - registry: ${{ needs.essential.outputs.repo }} - username: username - password: ${{ secrets.CI_READWRITE }} - - - name: Create multi-arch manifest (DocTR GPU) - run: | - docker buildx imagetools create -t ${{ needs.essential.outputs.image_doctr_gpu }}:latest \ - ${{ needs.essential.outputs.image_doctr_gpu }}:amd64 \ - ${{ needs.essential.outputs.image_doctr_gpu }}:arm64 - docker buildx imagetools create -t ${{ needs.essential.outputs.image_doctr_gpu }}:${{ needs.essential.outputs.Version }} \ - ${{ needs.essential.outputs.image_doctr_gpu }}:${{ needs.essential.outputs.Version }}-amd64 \ - ${{ needs.essential.outputs.image_doctr_gpu }}:${{ needs.essential.outputs.Version }}-arm64 + ${{ needs.essential.outputs.image_doctr_gpu }}:${{ needs.essential.outputs.Version }} + ${{ needs.essential.outputs.image_doctr_gpu }}:latest diff --git a/docs/07_anexo_a.md b/docs/07_anexo_a.md index 4ccb8b6..47b21e4 100644 --- a/docs/07_anexo_a.md +++ b/docs/07_anexo_a.md @@ -8,61 +8,186 @@ El código fuente completo y los datos utilizados en este trabajo están disponi El repositorio incluye: -- **Notebooks de experimentación**: Código completo de los experimentos realizados -- **Scripts de evaluación**: Herramientas para evaluar modelos OCR +- **Servicios OCR dockerizados**: PaddleOCR, DocTR, EasyOCR con soporte GPU +- **Scripts de evaluación**: Herramientas para evaluar y comparar modelos OCR +- **Scripts de ajuste**: Ray Tune con Optuna para optimización de hiperparámetros - **Dataset**: Imágenes y textos de referencia utilizados -- **Resultados**: Archivos CSV con los resultados de los 64 trials de Ray Tune +- **Resultados**: Archivos CSV con los resultados de los 64 trials por servicio ## A.2 Estructura del Repositorio -```mermaid ---- -title: "Estructura del repositorio del proyecto" ---- -flowchart LR - root["MastersThesis/"] --> docs["docs/"] - root --> src["src/"] - root --> instructions["instructions/"] - root --> scripts["Scripts generación"] - - src --> nb1["paddle_ocr_fine_tune_unir_raytune.ipynb"] - src --> py1["paddle_ocr_tuning.py"] - src --> csv["raytune_paddle_subproc_results_*.csv"] - - scripts --> gen1["generate_mermaid_figures.py"] - scripts --> gen2["apply_content.py"] ``` - -**Descripción de componentes:** - -- **docs/**: Capítulos de la tesis en Markdown (estructura UNIR) -- **src/**: Código fuente de experimentación - - `paddle_ocr_fine_tune_unir_raytune.ipynb`: Notebook principal con 64 trials Ray Tune - - `paddle_ocr_tuning.py`: Script CLI para evaluación OCR - - `raytune_paddle_subproc_results_20251207_192320.csv`: Resultados de optimización -- **instructions/**: Plantilla e instrucciones UNIR -- **Scripts de generación**: `generate_mermaid_figures.py` y `apply_content.py` para generar el documento TFM +MastersThesis/ +├── docs/ # Documentación de la tesis +│ └── metrics/ # Métricas de rendimiento OCR +│ ├── metrics.md # Resumen comparativo +│ ├── metrics_paddle.md # Resultados PaddleOCR +│ ├── metrics_doctr.md # Resultados DocTR +│ └── metrics_easyocr.md # Resultados EasyOCR +├── src/ +│ ├── paddle_ocr/ # Servicio PaddleOCR +│ │ ├── Dockerfile.gpu # Imagen Docker GPU +│ │ ├── Dockerfile.cpu # Imagen Docker CPU +│ │ ├── docker-compose.yml # Configuración Docker +│ │ └── main.py # API FastAPI +│ ├── doctr_service/ # Servicio DocTR +│ │ ├── Dockerfile.gpu +│ │ ├── docker-compose.yml +│ │ └── main.py +│ ├── easyocr_service/ # Servicio EasyOCR +│ │ ├── Dockerfile.gpu +│ │ ├── docker-compose.yml +│ │ └── main.py +│ ├── dataset/ # Dataset de evaluación +│ ├── raytune_ocr.py # Utilidades compartidas Ray Tune +│ └── results/ # Resultados de ajuste CSV +└── .gitea/workflows/ci.yaml # Pipeline CI/CD +``` ## A.3 Requisitos de Software -Para reproducir los experimentos se requieren las siguientes dependencias: +### Sistema de Desarrollo + +| Componente | Especificación | +|------------|----------------| +| Sistema Operativo | Ubuntu 24.04.3 LTS | +| CPU | AMD Ryzen 7 5800H | +| RAM | 16 GB DDR4 | +| GPU | NVIDIA RTX 3060 Laptop (5.66 GB VRAM) | +| CUDA | 12.4 | + +### Dependencias | Componente | Versión | |------------|---------| -| Python | 3.11.9 | -| PaddlePaddle | 3.2.2 | -| PaddleOCR | 3.3.2 | -| Ray | 2.52.1 | -| Optuna | 4.6.0 | -| jiwer | (última versión) | -| PyMuPDF | (última versión) | +| Python | 3.11 | +| Docker | 24+ | +| NVIDIA Container Toolkit | Requerido para GPU | +| Ray | 2.52+ | +| Optuna | 4.6+ | -## A.4 Instrucciones de Ejecución +## A.4 Instrucciones de Ejecución de Servicios OCR -1. Clonar el repositorio -2. Instalar dependencias: `pip install -r requirements.txt` -3. Ejecutar el notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb` +### PaddleOCR (Puerto 8002) -## A.5 Licencia +```bash +cd src/paddle_ocr + +# GPU (recomendado) +docker compose up -d + +# CPU (más lento, 126x) +docker compose -f docker-compose.cpu-registry.yml up -d +``` + +### DocTR (Puerto 8003) + +```bash +cd src/doctr_service + +# GPU +docker compose up -d +``` + +### EasyOCR (Puerto 8002) + +```bash +cd src/easyocr_service + +# GPU +docker compose up -d +``` + +### Verificar Estado del Servicio + +```bash +# Verificar salud del servicio +curl http://localhost:8002/health + +# Respuesta esperada: +# {"status": "ok", "model_loaded": true, "gpu_name": "NVIDIA GeForce RTX 3060"} +``` + +## A.5 Uso de la API OCR + +### Evaluar Dataset Completo + +```bash +# PaddleOCR - Evaluación completa +curl -X POST http://localhost:8002/evaluate_full \ + -H "Content-Type: application/json" \ + -d '{ + "pdf_folder": "/app/dataset", + "save_output": true + }' +``` + +### Evaluar con Hiperparámetros Optimizados + +```bash +# PaddleOCR con configuración óptima +curl -X POST http://localhost:8002/evaluate_full \ + -H "Content-Type: application/json" \ + -d '{ + "pdf_folder": "/app/dataset", + "use_doc_orientation_classify": true, + "use_doc_unwarping": false, + "textline_orientation": true, + "text_det_thresh": 0.0462, + "text_det_box_thresh": 0.4862, + "text_det_unclip_ratio": 0.0, + "text_rec_score_thresh": 0.5658, + "save_output": true + }' +``` + +## A.6 Ajuste de Hiperparámetros con Ray Tune + +### Ejecutar Ajuste + +```bash +cd src + +# Activar entorno virtual +source ../.venv/bin/activate + +# PaddleOCR (64 muestras) +python -c " +from raytune_ocr import * + +ports = [8002] +check_workers(ports, 'PaddleOCR') +trainable = create_trainable(ports, paddle_ocr_payload) +results = run_tuner(trainable, PADDLE_OCR_SEARCH_SPACE, num_samples=64) +analyze_results(results, prefix='raytune_paddle', config_keys=PADDLE_OCR_CONFIG_KEYS) +" +``` + +### Servicios y Puertos + +| Servicio | Puerto | Script de Ajuste | +|----------|--------|------------------| +| PaddleOCR | 8002 | `paddle_ocr_payload` | +| DocTR | 8003 | `doctr_payload` | +| EasyOCR | 8002 | `easyocr_payload` | + +## 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) +- [DocTR](metrics/metrics_doctr.md) - Más rápido (0.50s/página) +- [EasyOCR](metrics/metrics_easyocr.md) - Balance intermedio + +### Resumen de Resultados + +| 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% | + +## A.8 Licencia El código se distribuye bajo licencia MIT. diff --git a/docs/metrics.md b/docs/metrics.md deleted file mode 100644 index 3061ab2..0000000 --- a/docs/metrics.md +++ /dev/null @@ -1,289 +0,0 @@ -# PaddleOCR Performance Metrics: CPU vs GPU - -**Benchmark Date:** 2026-01-17 -**Updated:** 2026-01-17 (GPU fix applied) -**Test Dataset:** 5 pages (pages 5-10) -**Platform:** Linux (NVIDIA GB10 GPU, 119.70 GB VRAM) - -## Executive Summary - -| Metric | GPU | CPU | Difference | -|--------|-----|-----|------------| -| **Time per Page** | 0.86s | 84.25s | GPU is **97.6x faster** | -| **Total Time (5 pages)** | 4.63s | 421.59s | 7 min saved | -| **CER (Character Error Rate)** | 100%* | 3.96% | *Recognition issue | -| **WER (Word Error Rate)** | 100%* | 13.65% | *Recognition issue | - -> **UPDATE (2026-01-17):** GPU CUDA support fixed! PaddlePaddle wheel rebuilt with PTX for Blackwell forward compatibility. GPU inference now runs at full speed (0.86s/page vs 84s CPU). However, 100% error rate persists - this appears to be a separate OCR model/recognition issue, not CUDA-related. - -## Performance Comparison - -### Processing Speed (Time per Page) - -```mermaid -xychart-beta - title "Processing Time per Page (seconds)" - x-axis ["GPU", "CPU"] - y-axis "Seconds" 0 --> 90 - bar [0.86, 84.25] -``` - -### Speed Ratio Visualization - -```mermaid -pie showData - title "Relative Processing Time" - "GPU (1x)" : 1 - "CPU (97.6x slower)" : 97.6 -``` - -### Total Benchmark Time - -```mermaid -xychart-beta - title "Total Time for 5 Pages (seconds)" - x-axis ["GPU", "CPU"] - y-axis "Seconds" 0 --> 450 - bar [4.63, 421.59] -``` - -## OCR Accuracy Metrics (CPU Container - Baseline Config) - -```mermaid -xychart-beta - title "OCR Error Rates (CPU Container)" - x-axis ["CER", "WER"] - y-axis "Error Rate %" 0 --> 20 - bar [3.96, 13.65] -``` - -## Architecture Overview - -```mermaid -flowchart TB - subgraph Client - A[Test Script
benchmark.py] - end - - subgraph "Docker Containers" - subgraph GPU["GPU Container :8000"] - B[FastAPI Server] - C[PaddleOCR
CUDA Backend] - D[NVIDIA GB10
119.70 GB VRAM] - end - - subgraph CPU["CPU Container :8002"] - E[FastAPI Server] - F[PaddleOCR
CPU Backend] - G[ARM64 CPU] - end - end - - subgraph Storage - H[(Dataset
45 PDFs)] - end - - A -->|REST API| B - A -->|REST API| E - B --> C --> D - E --> F --> G - C --> H - F --> H -``` - -## Benchmark Workflow - -```mermaid -sequenceDiagram - participant T as Test Script - participant G as GPU Container - participant C as CPU Container - - T->>G: Health Check - G-->>T: Ready (model_loaded: true) - - T->>C: Health Check - C-->>T: Ready (model_loaded: true) - - Note over T,G: GPU Benchmark - T->>G: Warmup (1 page) - G-->>T: Complete - T->>G: POST /evaluate (Baseline) - G-->>T: 4.63s total (0.86s/page) - T->>G: POST /evaluate (Optimized) - G-->>T: 4.63s total (0.86s/page) - - Note over T,C: CPU Benchmark - T->>C: Warmup (1 page) - C-->>T: Complete (~84s) - T->>C: POST /evaluate (Baseline) - C-->>T: 421.59s total (84.25s/page) -``` - -## Performance Timeline - -```mermaid -gantt - title Processing Time Comparison (5 Pages) - dateFormat ss - axisFormat %S s - - section GPU - All 5 pages :gpu, 00, 5s - - section CPU - Page 1 :cpu1, 00, 84s - Page 2 :cpu2, after cpu1, 84s - Page 3 :cpu3, after cpu2, 84s - Page 4 :cpu4, after cpu3, 84s - Page 5 :cpu5, after cpu4, 84s -``` - -## Container Specifications - -```mermaid -mindmap - root((PaddleOCR
Containers)) - GPU Container - Port 8000 - CUDA Enabled - NVIDIA GB10 - 119.70 GB VRAM - 0.86s per page - CPU Container - Port 8002 - ARM64 Architecture - No CUDA - 84.25s per page - 3.96% CER -``` - -## Key Findings - -### Speed Analysis - -1. **GPU Acceleration Impact**: The GPU container processes pages **97.6x faster** than the CPU container -2. **Throughput**: GPU can process ~70 pages/minute vs CPU at ~0.7 pages/minute -3. **Scalability**: For large document batches, GPU provides significant time savings - -### Accuracy Analysis - -| Configuration | CER | WER | Notes | -|--------------|-----|-----|-------| -| CPU Baseline | 3.96% | 13.65% | Working correctly | -| CPU Optimized | Error | Error | Server error (needs investigation) | -| GPU Baseline | 100%* | 100%* | Recognition issue* | -| GPU Optimized | 100%* | 100%* | Recognition issue* | - -> *GPU accuracy metrics require investigation - speed benchmarks are valid - -## Recommendations - -```mermaid -flowchart LR - A{Use Case?} - A -->|High Volume
Speed Critical| B[GPU Container] - A -->|Low Volume
Cost Sensitive| C[CPU Container] - A -->|Development
Testing| D[CPU Container] - - B --> E[0.86s/page
Best for production] - C --> F[84.25s/page
Lower infrastructure cost] - D --> G[No GPU required
Easy local setup] -``` - -## Raw Benchmark Data - -```json -{ - "timestamp": "2026-01-17T17:25:55.541442", - "containers": { - "GPU": { - "url": "http://localhost:8000", - "tests": { - "Baseline": { - "CER": 1.0, - "WER": 1.0, - "PAGES": 5, - "TIME_PER_PAGE": 0.863, - "TOTAL_TIME": 4.63 - } - } - }, - "CPU": { - "url": "http://localhost:8002", - "tests": { - "Baseline": { - "CER": 0.0396, - "WER": 0.1365, - "PAGES": 5, - "TIME_PER_PAGE": 84.249, - "TOTAL_TIME": 421.59 - } - } - } - } -} -``` - -## GPU Issue Analysis - -### Root Cause Identified (RESOLVED) - -The GPU container originally returned 100% error rate due to a **CUDA architecture mismatch**: - -``` -W0117 16:55:35.199092 gpu_resources.cc:106] The GPU compute capability in your -current machine is 121, which is not supported by Paddle -``` - -| Issue | Details | -|-------|---------| -| **GPU** | NVIDIA GB10 (Compute Capability 12.1 - Blackwell) | -| **Original Wheel** | Built for `CUDA_ARCH=90` (sm_90 - Hopper) without PTX | -| **Result** | Detection kernels couldn't execute on Blackwell architecture | - -### Solution Applied ✅ - -**1. Rebuilt PaddlePaddle wheel with PTX forward compatibility:** - -The `Dockerfile.build-paddle` was updated to generate PTX code in addition to cubin: - -```dockerfile --DCUDA_NVCC_FLAGS="-gencode=arch=compute_90,code=sm_90 -gencode=arch=compute_90,code=compute_90" -``` - -This generates: -- `sm_90` cubin (binary for Hopper) -- `compute_90` PTX (portable code for JIT compilation on newer architectures) - -**2. cuBLAS symlinks** (already in Dockerfile.gpu): - -```dockerfile -ln -sf /usr/local/cuda/lib64/libcublas.so.12 /usr/local/cuda/lib64/libcublas.so -``` - -### Verification Results - -``` -PaddlePaddle version: 0.0.0 (custom GPU build) -CUDA available: True -GPU count: 1 -GPU name: NVIDIA GB10 -Tensor on GPU: Place(gpu:0) -GPU OCR: Functional ✅ -``` - -The PTX code is JIT-compiled at runtime for the GB10's compute capability 12.1. - -### Build Artifacts - -- **Wheel**: `paddlepaddle_gpu-3.0.0-cp311-cp311-linux_aarch64.whl` (418 MB) -- **Build time**: ~40 minutes (with ccache) -- **Location**: `src/paddle_ocr/wheels/` - -## Next Steps - -1. ~~**Rebuild GPU wheel**~~ ✅ Done - PTX-enabled wheel built -2. **Re-run benchmarks** - Verify accuracy metrics with fixed GPU -3. **Fix CPU optimized config** - Server error on optimized configuration needs debugging -4. **Memory profiling** - Monitor GPU/CPU memory usage during processing diff --git a/docs/metrics/metrics.md b/docs/metrics/metrics.md new file mode 100644 index 0000000..8f636e5 --- /dev/null +++ b/docs/metrics/metrics.md @@ -0,0 +1,211 @@ +# Métricas de Rendimiento OCR + +**Fecha de Benchmark:** 2026-01-19 +**Dataset de Prueba:** 45 páginas (2 PDFs) + +## Especificaciones del Sistema + +| Componente | Especificación | +|------------|----------------| +| **Sistema Operativo** | Ubuntu 24.04.3 LTS (Noble) | +| **Kernel** | 6.14.0-37-generic | +| **CPU** | AMD Ryzen 7 5800H with Radeon Graphics | +| **RAM** | 16 GB DDR4 | +| **GPU** | NVIDIA GeForce RTX 3060 Laptop GPU | +| **VRAM** | 5.66 GB | +| **CUDA** | 12.4 | + +## Justificación de Ejecución Local vs Cloud + +### Costos de Cloud GPU + +| Plataforma | GPU | Costo/Hora | Costo Mensual | +|------------|-----|------------|---------------| +| **AWS EC2 g4dn.xlarge** | NVIDIA T4 (16 GB) | $0.526 | ~$384 | +| **Google Colab Pro** | T4/P100 | ~$1.30 | $10 + CU extras | +| **Google Colab Pro+** | T4/V100/A100 | ~$1.30 | $50 + CU extras | + +### Análisis de Costos para Este Proyecto + +| Tarea | Tiempo GPU | Costo AWS | Costo Colab Pro | +|-------|------------|-----------|-----------------| +| Ajuste hiperparámetros (64×3 trials) | ~3 horas | ~$1.58 | ~$3.90 | +| Evaluación completa (45 páginas) | ~5 min | ~$0.04 | ~$0.11 | +| Desarrollo/debug (20 horas/mes) | 20 horas | ~$10.52 | ~$26.00 | + +### Ventajas de Ejecución Local + +1. **Costo cero de GPU**: La RTX 3060 ya está disponible en el equipo de desarrollo +2. **Sin límites de tiempo**: AWS y Colab tienen timeouts de sesión +3. **Acceso instantáneo**: Sin tiempo de aprovisionamiento de instancias +4. **Almacenamiento local**: Dataset y resultados en disco sin costos de transferencia +5. **Iteración rápida**: Reinicio inmediato de contenedores Docker + +### Conclusión + +Para un proyecto de investigación con múltiples iteraciones de ajuste de hiperparámetros y desarrollo, **la ejecución local ahorra ~$10-50/mes** comparado con cloud, además de ofrecer mayor flexibilidad y velocidad de iteración + +## Resumen Ejecutivo + +| Servicio | CER | WER | Tiempo/Página | Tiempo Total | VRAM | +|----------|-----|-----|---------------|--------------|------| +| **PaddleOCR (Mobile)** | **7.76%** | **11.62%** | 0.58s | 32.0s | 0.06 GB | +| EasyOCR | 11.23% | 36.36% | 1.88s | 88.5s | ~2 GB | +| DocTR | 12.06% | 42.01% | 0.50s | 28.4s | ~1 GB | + +> **Ganador:** PaddleOCR (Mobile) - Mejor precisión (7.76% CER) con velocidad competitiva. + +## Comparación de Servicios OCR + +### Comparación de Precisión (CER - menor es mejor) + +```mermaid +xychart-beta + title "Tasa de Error de Caracteres por Servicio" + x-axis ["PaddleOCR", "EasyOCR", "DocTR"] + y-axis "CER %" 0 --> 15 + bar [7.76, 11.23, 12.06] +``` + +### Comparación de Velocidad (Tiempo por Página) + +```mermaid +xychart-beta + title "Tiempo de Procesamiento por Página (segundos)" + x-axis ["DocTR", "PaddleOCR", "EasyOCR"] + y-axis "Segundos" 0 --> 2 + bar [0.50, 0.58, 1.88] +``` + +### Flujo de Recomendación de Servicio + +```mermaid +flowchart LR + A{Prioridad?} + A -->|Precisión| B[PaddleOCR] + A -->|Velocidad| C[DocTR] + A -->|Balance| B + B --> D["7.76% CER
0.58s/página"] + C --> E["12.06% CER
0.50s/página"] +``` + +### Hallazgos Clave + +1. **Mejor Precisión**: PaddleOCR logra las tasas de error más bajas (7.76% CER, 11.62% WER) +2. **Mejor Velocidad**: DocTR es el más rápido (0.50s/página), pero 55% menos preciso que PaddleOCR +3. **EasyOCR**: El más lento (3.8x más lento que PaddleOCR) con precisión intermedia +4. **Eficiencia VRAM**: PaddleOCR Mobile usa solo 0.06 GB + +## Análisis de Errores (del debugset) + +### PaddleOCR (Mejor - 7.76% CER) +- **Fortalezas**: Preserva estructura de líneas, maneja bien acentos españoles +- **Problemas**: Errores menores de espaciado, diferencias ocasionales de mayúsculas en acentos +- **Mejorable**: Sí - el ajuste de hiperparámetros probablemente ayude + +### DocTR (Peor WER - 42.01%) +- **Problema Crítico**: Colapsa todo el texto en líneas únicas (pierde estructura) +- **Problema de Acentos**: Omite diacríticos ("Indice" vs "Índice") +- **Mejorable**: Parcialmente - el problema de estructura puede ser a nivel de modelo + +### EasyOCR (36.36% WER) +- **Problema Crítico**: Inserciones espurias de caracteres (";", "g", "0", "1") +- **Pérdida de Estructura**: Saltos de línea no preservados +- **Mejorable**: Sí - umbrales de detección demasiado sensibles + +## Comparación de Modelos PaddleOCR (RTX 3060) + +| Métrica | Modelos Server | Modelos Mobile | Ganador | +|---------|----------------|----------------|---------| +| **Tiempo** | 2.47s | 1.08s | Mobile (2.3x más rápido) | +| **CER** | 1.82% | 1.42% | Mobile | +| **WER** | 16.14% | 12.20% | Mobile | +| **VRAM** | 5.3 GB (OOM en página 2) | 0.06 GB | Mobile | +| **Multi-página** | No (OOM) | Sí | Mobile | + +> **Conclusión:** Se recomiendan los modelos Mobile - más rápidos, más precisos, caben en VRAM. + +## Rendimiento CPU vs GPU (PaddleOCR) + +Datos de `raytune_paddle_subproc_results_20251207_192320.csv` (CPU) vs RTX 3060 (GPU): + +| Métrica | CPU | GPU (RTX 3060) | Aceleración | +|---------|-----|----------------|-------------| +| **Tiempo/Página** | 69.4s | 0.55s | **126x más rápido** | +| **Mejor CER** | 1.15% | 0.79% | GPU mejor | +| **45 páginas** | ~52 min | ~25 seg | **126x más rápido** | + +```mermaid +xychart-beta + title "Tiempo de Procesamiento por Página: CPU vs GPU" + x-axis ["CPU", "GPU (RTX 3060)"] + y-axis "Segundos" 0 --> 80 + bar [69.4, 0.55] +``` + +> **Conclusión:** GPU es esencial para uso práctico de OCR. El procesamiento en CPU es 126x más lento, haciéndolo impráctico para procesamiento por lotes. + +## Datos Crudos del Benchmark + +```json +{ + "timestamp": "2026-01-19T11:00:00.000000", + "platform": { + "gpu": "NVIDIA GeForce RTX 3060 Laptop GPU", + "vram": "5.66 GB", + "cuda": "12.4" + }, + "services": { + "PaddleOCR_Mobile": { + "port": 8002, + "models": {"det": "PP-OCRv5_mobile_det", "rec": "PP-OCRv5_mobile_rec"}, + "vram_used": "0.06 GB", + "results": { + "CER": 0.0776, + "WER": 0.1162, + "PAGES": 45, + "TIME_PER_PAGE": 0.58, + "TOTAL_TIME": 32.0 + } + }, + "DocTR": { + "port": 8003, + "models": {"det": "db_resnet50", "rec": "crnn_vgg16_bn"}, + "vram_used": "~1 GB", + "results": { + "CER": 0.1206, + "WER": 0.4201, + "PAGES": 45, + "TIME_PER_PAGE": 0.50, + "TOTAL_TIME": 28.4 + } + }, + "EasyOCR": { + "port": 8002, + "languages": ["es", "en"], + "vram_used": "~2 GB", + "results": { + "CER": 0.1123, + "WER": 0.3636, + "PAGES": 45, + "TIME_PER_PAGE": 1.88, + "TOTAL_TIME": 88.5 + } + } + } +} +``` + +## Resultados de Ajuste de Hiperparámetros + +Resultados individuales de ajuste por servicio (64 muestras cada uno, páginas 5-10): + +- [Resultados de Ajuste PaddleOCR](metrics_paddle.md) +- [Resultados de Ajuste DocTR](metrics_doctr.md) +- [Resultados de Ajuste EasyOCR](metrics_easyocr.md) + +## Próximos Pasos + +1. ~~Ajuste de Hiperparámetros~~ - Completado (64 muestras por servicio) +2. **Evaluación del Dataset Completo** - Ejecutar mejores configuraciones en las 45 páginas +3. **Comparar** - Rendimiento base vs ajustado en dataset completo diff --git a/docs/metrics/metrics_doctr.md b/docs/metrics/metrics_doctr.md new file mode 100644 index 0000000..6dab47c --- /dev/null +++ b/docs/metrics/metrics_doctr.md @@ -0,0 +1,104 @@ +# Resultados de Ajuste de Hiperparámetros DocTR + +**Fecha de Ajuste:** 2026-01-19 +**Plataforma:** NVIDIA RTX 3060 Laptop GPU +**Muestras:** 64 +**Páginas de Prueba:** 5-10 (primer documento) + +### ¿Por Qué Solo 5 Páginas? + +Usamos solo 5 páginas (páginas 5-10) para el ajuste de hiperparámetros porque: + +1. **Velocidad**: 64 pruebas × 5 páginas = 320 evaluaciones de página. Con 45 páginas, serían 2,880 evaluaciones (~9x más tiempo) +2. **Eficiencia de recursos**: Cada prueba toma ~2-20 segundos en GPU + +**Riesgo de Sobreajuste**: El ajuste de hiperparámetros en un subconjunto pequeño PUEDE causar sobreajuste. Nuestros resultados confirman esto: +- Subconjunto de ajuste: **38% mejora** (7.43% CER) +- Dataset completo: **0% mejora** (12.07% CER) + +La falta total de mejora en el dataset completo indica sobreajuste severo a las páginas 5-10, combinado con limitaciones a nivel de modelo (manejo de diacríticos, estructura de líneas) que los hiperparámetros no pueden corregir. + +## Evaluación del Dataset Completo (45 páginas) + +| Métrica | Base | Ajustado | Mejora | +|---------|------|----------|--------| +| **CER** | 12.06% | 12.07% | **0%** | +| **WER** | 42.01% | 42.26% | **0%** | +| Tiempo/Página | 0.33s | 0.34s | - | + +> **Nota:** El ajuste no generalizó al dataset completo. Los problemas de DocTR parecen ser a nivel de modelo (diacríticos, estructura de líneas). + +## Resultados del Subconjunto de Ajuste (páginas 5-10) + +| Métrica | Base | Ajustado | Mejora | +|---------|------|----------|--------| +| **CER** | 12.06% | **7.43%** | **38%** | +| **WER** | 42.01% | **35.23%** | **16%** | + +> Nota: Las mejoras en el subconjunto de ajuste no se transfirieron al dataset completo. + +## Mejor Configuración Encontrada + +```json +{ + "assume_straight_pages": true, + "straighten_pages": false, + "preserve_aspect_ratio": false, + "symmetric_pad": false, + "disable_page_orientation": true, + "disable_crop_orientation": false, + "resolve_lines": true, + "resolve_blocks": false, + "paragraph_break": 0.0977 +} +``` + +## Hallazgos Clave + +1. **straighten_pages: false** - ¡Crítico! Configurarlo en true causa ~79% CER (catastrófico) +2. **assume_straight_pages: true** - Funciona bien con escaneos de documentos rectos +3. **resolve_lines: true** - Ayuda a mantener la estructura de líneas +4. **disable_page_orientation: true** - Evita rotación innecesaria + +## Impacto de Parámetros + +Parámetros que mejoraron la precisión: +- `straighten_pages=False` absolutamente crítico +- `assume_straight_pages=True` en los mejores resultados +- `resolve_lines=True` mantiene la estructura del texto + +Parámetros que perjudicaron la precisión: +- `straighten_pages=True` catastróficamente malo (~79% CER) +- `resolve_blocks=True` ligeramente peor que False + +## Limitaciones Conocidas + +Incluso con ajuste, DocTR todavía tiene problemas: +- Omite diacríticos (tildes) - probablemente problema a nivel de modelo +- Todavía tiene mayor WER que PaddleOCR debido a problemas de estructura + +## Evaluación del Dataset Completo + +**Estado:** Completado + +```bash +curl -X POST http://localhost:8003/evaluate_full \ + -H "Content-Type: application/json" \ + -d '{ + "pdf_folder": "/app/dataset", + "assume_straight_pages": true, + "straighten_pages": false, + "preserve_aspect_ratio": false, + "symmetric_pad": false, + "disable_page_orientation": true, + "disable_crop_orientation": false, + "resolve_lines": true, + "resolve_blocks": false, + "paragraph_break": 0.0977, + "save_output": true + }' +``` + +**Resultado:** CER 12.07%, WER 42.26%, 0.34s/página (sin mejora sobre la base) + +**Conclusión:** Los problemas de precisión de DocTR son a nivel de modelo, no ajustables por hiperparámetros. diff --git a/docs/metrics/metrics_easyocr.md b/docs/metrics/metrics_easyocr.md new file mode 100644 index 0000000..2c6ab51 --- /dev/null +++ b/docs/metrics/metrics_easyocr.md @@ -0,0 +1,113 @@ +# Resultados de Ajuste de Hiperparámetros EasyOCR + +**Fecha de Ajuste:** 2026-01-19 +**Plataforma:** NVIDIA RTX 3060 Laptop GPU +**Muestras:** 64 +**Páginas de Prueba:** 5-10 (primer documento) + +### ¿Por Qué Solo 5 Páginas? + +Usamos solo 5 páginas (páginas 5-10) para el ajuste de hiperparámetros porque: + +1. **Velocidad**: 64 pruebas × 5 páginas = 320 evaluaciones de página. Con 45 páginas, serían 2,880 evaluaciones (~9x más tiempo) +2. **Eficiencia de recursos**: Cada prueba toma ~10-20 segundos en GPU + +**Riesgo de Sobreajuste**: El ajuste de hiperparámetros en un subconjunto pequeño PUEDE causar sobreajuste. Nuestros resultados confirman esto: +- Subconjunto de ajuste: **48% mejora** (5.83% CER) +- Dataset completo: **0.8% mejora** (11.14% CER) + +La mejora mínima en el dataset completo indica que los hiperparámetros se sobreajustaron a las páginas 5-10. Los problemas de EasyOCR (detecciones espurias, pérdida de estructura) también pueden ser parcialmente a nivel de modelo. + +## Evaluación del Dataset Completo (45 páginas) + +| Métrica | Base | Ajustado | Mejora | +|---------|------|----------|--------| +| **CER** | 11.23% | 11.14% | **0.8%** | +| **WER** | 36.36% | 36.85% | **-1.3%** | +| Tiempo/Página | 1.84s | 1.94s | - | + +> **Nota:** El ajuste mostró mejora mínima en el dataset completo. Los problemas de EasyOCR pueden ser a nivel de modelo. + +## Resultados del Subconjunto de Ajuste (páginas 5-10) + +| Métrica | Base | Ajustado | Mejora | +|---------|------|----------|--------| +| **CER** | 11.23% | **5.83%** | **48%** | +| **WER** | 36.36% | **26.33%** | **28%** | + +> Nota: Las grandes mejoras en el subconjunto de ajuste no se transfirieron al dataset completo. + +## Mejor Configuración Encontrada + +```json +{ + "text_threshold": 0.6647, + "low_text": 0.4247, + "link_threshold": 0.2184, + "slope_ths": 0.1629, + "ycenter_ths": 0.7994, + "height_ths": 0.6437, + "width_ths": 0.6065, + "add_margin": 0.1462, + "contrast_ths": 0.1671, + "adjust_contrast": 0.6416, + "decoder": "greedy", + "beamWidth": 7, + "min_size": 10 +} +``` + +## Hallazgos Clave + +1. **decoder: greedy** - Consistentemente mejor que beamsearch para este dataset +2. **Mayor text_threshold (0.66)** - Reduce detecciones espurias +3. **min_size: 10** - Filtra artefactos de ruido pequeños +4. **Umbrales moderados** - Sensibilidad de detección balanceada + +## Impacto de Parámetros + +Parámetros que mejoraron la precisión: +- `decoder="greedy"` consistentemente superó a beamsearch +- Mayor `text_threshold` (0.6-0.8) redujo el ruido +- `min_size >= 5` ayudó a filtrar artefactos + +Parámetros que perjudicaron la precisión: +- `decoder="beamsearch"` causó ~35-40% CER en muchas pruebas +- `text_threshold` muy bajo (<0.4) detectó demasiado ruido +- `min_size` alto (>15) omitió algo de texto + +## Comparación con Problemas de Base + +Problemas originales identificados en el debugset: +- Inserciones espurias de caracteres - **Mejorado** con umbrales más altos +- Pérdida de estructura - Todavía presente pero menos severa + +## Evaluación del Dataset Completo + +**Estado:** Completado + +```bash +curl -X POST http://localhost:8002/evaluate_full \ + -H "Content-Type: application/json" \ + -d '{ + "pdf_folder": "/app/dataset", + "text_threshold": 0.6647, + "low_text": 0.4247, + "link_threshold": 0.2184, + "slope_ths": 0.1629, + "ycenter_ths": 0.7994, + "height_ths": 0.6437, + "width_ths": 0.6065, + "add_margin": 0.1462, + "contrast_ths": 0.1671, + "adjust_contrast": 0.6416, + "decoder": "greedy", + "beamWidth": 7, + "min_size": 10, + "save_output": true + }' +``` + +**Resultado:** CER 11.14%, WER 36.85%, 1.94s/página (mejora mínima) + +**Conclusión:** El ajuste de EasyOCR proporcionó mejora insignificante en el dataset completo. diff --git a/docs/metrics/metrics_paddle.md b/docs/metrics/metrics_paddle.md new file mode 100644 index 0000000..94b426d --- /dev/null +++ b/docs/metrics/metrics_paddle.md @@ -0,0 +1,91 @@ +# Resultados de Ajuste de Hiperparámetros PaddleOCR + +**Fecha de Ajuste:** 2026-01-19 +**Plataforma:** NVIDIA RTX 3060 Laptop GPU +**Muestras:** 64 +**Páginas de Prueba:** 5-10 (primer documento) + +### ¿Por Qué Solo 5 Páginas? + +Usamos solo 5 páginas (páginas 5-10) para el ajuste de hiperparámetros porque: + +1. **Velocidad**: 64 pruebas × 5 páginas = 320 evaluaciones de página. Con 45 páginas, serían 2,880 evaluaciones (~9x más tiempo) +2. **Eficiencia de recursos**: Cada prueba toma ~3-10 segundos en GPU; el dataset completo tomaría ~1 hora por prueba en CPU + +**Riesgo de Sobreajuste**: El ajuste de hiperparámetros en un subconjunto pequeño PUEDE causar sobreajuste. Nuestros resultados confirman esto: +- Subconjunto de ajuste: **90% mejora** (0.79% CER) +- Dataset completo: **12.8% mejora** (7.72% CER) + +La diferencia dramática muestra que los hiperparámetros se sobreajustaron parcialmente a las páginas 5-10. Un subconjunto de ajuste más grande (ej. 15-20 páginas) podría producir parámetros que generalicen mejor, pero aumentaría el tiempo de ajuste proporcionalmente. + +## Evaluación del Dataset Completo (45 páginas) + +| Métrica | Base | Ajustado | Mejora | +|---------|------|----------|--------| +| **CER** | 8.85% | **7.72%** | **12.8%** | +| **WER** | 13.05% | **11.40%** | **12.6%** | +| Tiempo/Página | 0.51s | 0.55s | - | + +## Resultados del Subconjunto de Ajuste (páginas 5-10) + +| Métrica | Base | Ajustado | Mejora | +|---------|------|----------|--------| +| **CER** | 7.76% | **0.79%** | **90%** | +| **WER** | 11.62% | **7.78%** | **33%** | + +> Nota: El subconjunto de ajuste mostró mayores mejoras, sugiriendo que algunos hiperparámetros son específicos de la página. + +## Mejor Configuración Encontrada + +```json +{ + "use_doc_orientation_classify": true, + "use_doc_unwarping": false, + "textline_orientation": true, + "text_det_thresh": 0.0462, + "text_det_box_thresh": 0.4862, + "text_det_unclip_ratio": 0.0, + "text_rec_score_thresh": 0.5658 +} +``` + +## Hallazgos Clave + +1. **textline_orientation: true** - Crítico para la precisión +2. **use_doc_orientation_classify: true** - Ayuda con la detección de orientación de página +3. **use_doc_unwarping: false** - El enderezamiento de documentos perjudica la precisión en este dataset +4. **Bajo text_det_thresh (0.0462)** - Detección de texto más sensible ayuda +5. **Mayor text_rec_score_thresh (0.5658)** - Filtra reconocimientos de baja confianza + +## Impacto de Parámetros + +Parámetros que mejoraron la precisión: +- `textline_orientation=True` consistentemente en los mejores resultados +- `use_doc_orientation_classify=True` en las mejores pruebas +- Valores más bajos de `text_det_thresh` (0.04-0.10) + +Parámetros que perjudicaron la precisión: +- `use_doc_unwarping=True` aumentó el CER significativamente +- `text_det_box_thresh` muy bajo (<0.01) causó problemas + +## Evaluación del Dataset Completo + +**Estado:** Completado + +```bash +curl -X POST http://localhost:8002/evaluate_full \ + -H "Content-Type: application/json" \ + -d '{ + "pdf_folder": "/app/dataset", + "use_doc_orientation_classify": true, + "use_doc_unwarping": false, + "textline_orientation": true, + "text_det_thresh": 0.0462, + "text_det_box_thresh": 0.4862, + "text_det_unclip_ratio": 0.0, + "text_rec_score_thresh": 0.5658, + "save_output": true + }' +``` + +**Resultado:** CER 7.72%, WER 11.40%, 0.55s/página diff --git a/src/paddle_ocr/docker-compose.gpu-registry.yml b/src/paddle_ocr/docker-compose.gpu-registry.yml index bd9b991..43e6274 100644 --- a/src/paddle_ocr/docker-compose.gpu-registry.yml +++ b/src/paddle_ocr/docker-compose.gpu-registry.yml @@ -17,6 +17,8 @@ services: environment: - PYTHONUNBUFFERED=1 - CUDA_VISIBLE_DEVICES=0 + - PADDLE_DET_MODEL=PP-OCRv5_mobile_det + - PADDLE_REC_MODEL=PP-OCRv5_mobile_rec deploy: resources: reservations: diff --git a/src/raytune_ocr.py b/src/raytune_ocr.py index 1e3fddc..9d608a1 100644 --- a/src/raytune_ocr.py +++ b/src/raytune_ocr.py @@ -16,34 +16,57 @@ from ray import tune from ray.tune.search.optuna import OptunaSearch -def check_workers(ports: List[int], service_name: str = "OCR") -> List[str]: +def check_workers( + ports: List[int], + service_name: str = "OCR", + timeout: int = 180, + interval: int = 5, +) -> List[str]: """ - Verify workers are running and return healthy URLs. + 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 + RuntimeError if no healthy workers found after timeout """ + import time + worker_urls = [f"http://localhost:{port}" for port in ports] healthy_workers = [] for url in worker_urls: - try: - health = requests.get(f"{url}/health", timeout=10).json() - if health.get('status') == 'ok' and health.get('model_loaded'): - healthy_workers.append(url) - gpu = health.get('gpu_name', 'CPU') - print(f"✓ {url}: {health['status']} ({gpu})") - else: - print(f"✗ {url}: not ready yet") - except requests.exceptions.ConnectionError: - print(f"✗ {url}: not reachable") + 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( @@ -51,7 +74,7 @@ def check_workers(ports: List[int], service_name: str = "OCR") -> List[str]: f"Checked ports: {ports}" ) - print(f"\n{len(healthy_workers)}/{len(worker_urls)} workers ready") + print(f"\n{len(healthy_workers)}/{len(worker_urls)} workers ready\n") return healthy_workers @@ -218,8 +241,8 @@ def correlation_analysis(df: pd.DataFrame, param_keys: List[str]) -> None: # OCR-specific payload functions # ============================================================================= -def paddle_ocr_payload(config: Dict, start_page: int = 5, end_page: int = 10, save_output: bool = False) -> Dict: - """Create payload for PaddleOCR API.""" +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), @@ -229,14 +252,14 @@ def paddle_ocr_payload(config: Dict, start_page: int = 5, end_page: int = 10, sa "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": start_page, - "end_page": end_page, - "save_output": save_output, + "start_page": 5, + "end_page": 10, + "save_output": False, } -def doctr_payload(config: Dict, start_page: int = 5, end_page: int = 10, save_output: bool = False) -> Dict: - """Create payload for DocTR API.""" +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), @@ -248,14 +271,14 @@ def doctr_payload(config: Dict, start_page: int = 5, end_page: int = 10, save_ou "resolve_lines": config.get("resolve_lines", True), "resolve_blocks": config.get("resolve_blocks", False), "paragraph_break": config.get("paragraph_break", 0.035), - "start_page": start_page, - "end_page": end_page, - "save_output": save_output, + "start_page": 5, + "end_page": 10, + "save_output": False, } -def easyocr_payload(config: Dict, start_page: int = 5, end_page: int = 10, save_output: bool = False) -> Dict: - """Create payload for EasyOCR API.""" +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), @@ -271,9 +294,9 @@ def easyocr_payload(config: Dict, start_page: int = 5, end_page: int = 10, save_ "decoder": config.get("decoder", "greedy"), "beamWidth": config.get("beamWidth", 5), "min_size": config.get("min_size", 10), - "start_page": start_page, - "end_page": end_page, - "save_output": save_output, + "start_page": 5, + "end_page": 10, + "save_output": False, } diff --git a/src/results/raytune_doctr_results_20260119_121445.csv b/src/results/raytune_doctr_results_20260119_121445.csv new file mode 100644 index 0000000..1f0ae1b --- /dev/null +++ b/src/results/raytune_doctr_results_20260119_121445.csv @@ -0,0 +1,65 @@ +CER,WER,TIME,PAGES,TIME_PER_PAGE,model_reinitialized,worker,timestamp,checkpoint_dir_name,done,training_iteration,trial_id,date,time_this_iter_s,time_total_s,pid,hostname,node_ip,time_since_restore,iterations_since_restore,config/assume_straight_pages,config/straighten_pages,config/preserve_aspect_ratio,config/symmetric_pad,config/disable_page_orientation,config/disable_crop_orientation,config/resolve_lines,config/resolve_blocks,config/paragraph_break,logdir +0.07954940376147028,0.3649854752864963,20.5652813911438,5,3.1847062587738035,True,http://localhost:8003,1768820798,,False,1,c4fcad75,2026-01-19_12-06-38,20.57081699371338,20.57081699371338,154230,sergio-XPS-15-9500,192.168.1.5,20.57081699371338,1,False,False,False,True,True,True,True,False,0.09422103316797548,c4fcad75 +0.7921346697142901,1.0545568452820837,10.610254287719727,5,0.7967870712280274,True,http://localhost:8003,1768820812,,False,1,1c83f678,2026-01-19_12-06-52,10.619899988174438,10.619899988174438,156506,sergio-XPS-15-9500,192.168.1.5,10.619899988174438,1,True,True,False,True,False,True,True,False,0.05901661817569934,1c83f678 +0.7923201620478004,1.0636912186759604,5.9415740966796875,5,0.7310843944549561,True,http://localhost:8003,1768820822,,False,1,9c50442a,2026-01-19_12-07-02,5.945918560028076,5.945918560028076,158305,sergio-XPS-15-9500,192.168.1.5,5.945918560028076,1,True,True,True,True,False,False,True,False,0.011733102672610147,9c50442a +0.7666925478783123,1.0440873928467642,11.626950025558472,5,1.8842015743255616,True,http://localhost:8003,1768820837,,False,1,68ca7089,2026-01-19_12-07-17,11.63136100769043,11.63136100769043,160066,sergio-XPS-15-9500,192.168.1.5,11.63136100769043,1,False,True,True,True,True,False,True,False,0.05057045374185024,68ca7089 +0.07451994486755961,0.3515575293610934,3.9680063724517822,5,0.3743919849395752,True,http://localhost:8003,1768820844,,False,1,8a8806b7,2026-01-19_12-07-24,3.97230863571167,3.97230863571167,162728,sergio-XPS-15-9500,192.168.1.5,3.97230863571167,1,True,False,True,False,True,False,False,False,0.023697921154561794,8a8806b7 +0.7657432112619441,1.0344358563738436,11.93731951713562,5,1.942223310470581,True,http://localhost:8003,1768820859,,False,1,f96be72a,2026-01-19_12-07-39,11.941577672958374,11.941577672958374,163962,sergio-XPS-15-9500,192.168.1.5,11.941577672958374,1,False,True,False,True,True,False,False,False,0.08588425427021348,f96be72a +0.7918824188958541,1.0538014427522018,5.69057035446167,5,0.7088402271270752,True,http://localhost:8003,1768820868,,False,1,a832050e,2026-01-19_12-07-48,5.69484543800354,5.69484543800354,166633,sergio-XPS-15-9500,192.168.1.5,5.69484543800354,1,True,True,True,False,False,True,False,True,0.048746351477152096,a832050e +0.08002835367212643,0.35831740099305937,8.193880081176758,5,1.19890398979187,True,http://localhost:8003,1768820880,,False,1,9719423a,2026-01-19_12-08-00,8.198804140090942,8.198804140090942,168390,sergio-XPS-15-9500,192.168.1.5,8.198804140090942,1,False,False,True,True,True,False,True,True,0.05352825040305834,9719423a +0.7921346697142901,1.0545568452820837,5.68590521812439,5,0.7114005088806152,True,http://localhost:8003,1768820889,,False,1,fddb15d7,2026-01-19_12-08-09,5.691095352172852,5.691095352172852,170482,sergio-XPS-15-9500,192.168.1.5,5.691095352172852,1,True,True,False,False,False,True,True,True,0.07145403499389562,fddb15d7 +0.0743152533045929,0.3522593474791794,3.8518898487091064,5,0.36159796714782716,True,http://localhost:8003,1768820896,,False,1,9a805553,2026-01-19_12-08-16,3.8564491271972656,3.8564491271972656,172258,sergio-XPS-15-9500,192.168.1.5,3.8564491271972656,1,True,False,False,False,True,False,True,False,0.09773705213878954,9a805553 +0.0743152533045929,0.3522593474791794,2.2390947341918945,5,0.361072301864624,False,http://localhost:8003,1768820902,,False,1,791b8e38,2026-01-19_12-08-22,2.2431814670562744,2.2431814670562744,173474,sergio-XPS-15-9500,192.168.1.5,2.2431814670562744,1,True,False,False,False,True,False,False,True,0.09837572708177385,791b8e38 +0.0743152533045929,0.3522593474791794,2.245297431945801,5,0.36272416114807127,False,http://localhost:8003,1768820907,,False,1,7c60350c,2026-01-19_12-08-27,2.2497620582580566,2.2497620582580566,174686,sergio-XPS-15-9500,192.168.1.5,2.2497620582580566,1,True,False,False,False,True,False,False,True,0.09836846418124921,7c60350c +0.0743152533045929,0.3522593474791794,2.276707172393799,5,0.3691234111785889,False,http://localhost:8003,1768820913,,False,1,aa5f6e40,2026-01-19_12-08-33,2.2811028957366943,2.2811028957366943,175886,sergio-XPS-15-9500,192.168.1.5,2.2811028957366943,1,True,False,False,False,True,False,False,True,0.0782267000165494,aa5f6e40 +0.0743152533045929,0.3522593474791794,2.436836004257202,5,0.3974581241607666,False,http://localhost:8003,1768820919,,False,1,be96a2fd,2026-01-19_12-08-39,2.4409751892089844,2.4409751892089844,177093,sergio-XPS-15-9500,192.168.1.5,2.4409751892089844,1,True,False,False,False,True,False,False,True,0.0988530443174727,be96a2fd +0.0743152533045929,0.3522593474791794,6.658028841018677,5,1.2390151023864746,False,http://localhost:8003,1768820930,,False,1,8fd4d954,2026-01-19_12-08-50,7.324350118637085,7.324350118637085,178357,sergio-XPS-15-9500,192.168.1.5,7.324350118637085,1,True,False,False,False,True,False,True,False,0.07133875696594016,8fd4d954 +0.0743152533045929,0.3522593474791794,2.495633840560913,5,0.38510971069335936,False,http://localhost:8003,1768820936,,False,1,8684a874,2026-01-19_12-08-56,2.9056968688964844,2.9056968688964844,179613,sergio-XPS-15-9500,192.168.1.5,2.9056968688964844,1,True,False,False,False,True,False,False,True,0.08646785623262251,8684a874 +0.0743152533045929,0.3522593474791794,2.3146378993988037,5,0.37464404106140137,False,http://localhost:8003,1768820942,,False,1,d70fd3a2,2026-01-19_12-09-02,2.3187525272369385,2.3187525272369385,180827,sergio-XPS-15-9500,192.168.1.5,2.3187525272369385,1,True,False,False,False,True,False,False,True,0.03514348927961332,d70fd3a2 +0.0743152533045929,0.3522593474791794,2.498570680618286,5,0.37261042594909666,False,http://localhost:8003,1768820947,,False,1,abaaebf8,2026-01-19_12-09-07,2.5029470920562744,2.5029470920562744,182032,sergio-XPS-15-9500,192.168.1.5,2.5029470920562744,1,True,False,False,False,True,False,True,False,0.08582540859307525,abaaebf8 +0.07954940376147028,0.3649854752864963,9.604491949081421,5,1.1755133152008057,True,http://localhost:8003,1768820961,,False,1,5d48a7dd,2026-01-19_12-09-21,9.60886025428772,9.60886025428772,183260,sergio-XPS-15-9500,192.168.1.5,9.60886025428772,1,False,False,False,False,False,True,True,False,0.06547108266017204,5d48a7dd +0.0743152533045929,0.3522593474791794,3.8762130737304688,5,0.3647763729095459,True,http://localhost:8003,1768820968,,False,1,d9253804,2026-01-19_12-09-28,3.880464792251587,3.880464792251587,185371,sergio-XPS-15-9500,192.168.1.5,3.880464792251587,1,True,False,False,False,True,False,False,True,0.038626059833236914,d9253804 +0.0743152533045929,0.3522593474791794,2.2411227226257324,5,0.36162853240966797,False,http://localhost:8003,1768820974,,False,1,fdb1a71c,2026-01-19_12-09-34,2.245361566543579,2.245361566543579,186592,sergio-XPS-15-9500,192.168.1.5,2.245361566543579,1,True,False,False,False,True,False,True,True,0.07944221200021404,fdb1a71c +0.0743152533045929,0.3522593474791794,2.248905897140503,5,0.36235270500183103,False,http://localhost:8003,1768820979,,False,1,52a8f206,2026-01-19_12-09-39,2.2539358139038086,2.2539358139038086,187800,sergio-XPS-15-9500,192.168.1.5,2.2539358139038086,1,True,False,False,False,True,False,False,True,0.09978431631107665,52a8f206 +0.0743152533045929,0.3522593474791794,2.3572463989257812,5,0.3830925941467285,False,http://localhost:8003,1768820985,,False,1,02249971,2026-01-19_12-09-45,2.3617091178894043,2.3617091178894043,189026,sergio-XPS-15-9500,192.168.1.5,2.3617091178894043,1,True,False,False,False,True,False,False,True,0.09205180265684457,02249971 +0.0743152533045929,0.3522593474791794,2.3035998344421387,5,0.3717160701751709,False,http://localhost:8003,1768820991,,False,1,c3e1ed25,2026-01-19_12-09-51,2.3079335689544678,2.3079335689544678,190242,sergio-XPS-15-9500,192.168.1.5,2.3079335689544678,1,True,False,False,False,True,False,False,True,0.09144355766189398,c3e1ed25 +0.0743152533045929,0.3522593474791794,2.239521026611328,5,0.3606713771820068,False,http://localhost:8003,1768820996,,False,1,e77efbfe,2026-01-19_12-09-56,2.243769407272339,2.243769407272339,191450,sergio-XPS-15-9500,192.168.1.5,2.243769407272339,1,True,False,False,False,True,False,False,True,0.07895438944798339,e77efbfe +0.0743152533045929,0.3522593474791794,2.289245843887329,5,0.36969733238220215,False,http://localhost:8003,1768821002,,False,1,b63d705d,2026-01-19_12-10-02,2.293459177017212,2.293459177017212,192658,sergio-XPS-15-9500,192.168.1.5,2.293459177017212,1,True,False,False,False,True,False,False,True,0.0979702817184504,b63d705d +0.0813627928214657,0.373642333504444,8.17723536491394,5,1.1997929096221924,True,http://localhost:8003,1768821014,,False,1,c2b49d5f,2026-01-19_12-10-14,8.18145489692688,8.18145489692688,193870,sergio-XPS-15-9500,192.168.1.5,8.18145489692688,1,False,False,True,False,False,True,False,False,0.08848271842661322,c2b49d5f +0.0743152533045929,0.3522593474791794,4.016183137893677,5,0.3882882595062256,True,http://localhost:8003,1768821021,,False,1,751e8805,2026-01-19_12-10-21,4.020460605621338,4.020460605621338,195986,sergio-XPS-15-9500,192.168.1.5,4.020460605621338,1,True,False,False,False,True,False,False,True,0.07226323202056684,751e8805 +0.0743152533045929,0.3522593474791794,2.4951744079589844,5,0.4111031532287598,False,http://localhost:8003,1768821027,,False,1,55997272,2026-01-19_12-10-27,2.4997806549072266,2.4997806549072266,197225,sergio-XPS-15-9500,192.168.1.5,2.4997806549072266,1,True,False,False,False,True,False,True,False,0.0821608621907378,55997272 +0.07954940376147028,0.3649854752864963,7.8914878368377686,5,1.1408625602722169,True,http://localhost:8003,1768821039,,False,1,c72c5c81,2026-01-19_12-10-39,7.895885229110718,7.895885229110718,198438,sergio-XPS-15-9500,192.168.1.5,7.895885229110718,1,False,False,False,True,True,True,True,False,0.09498694151430796,c72c5c81 +0.0743152533045929,0.3522593474791794,3.8655266761779785,5,0.362445068359375,True,http://localhost:8003,1768821046,,False,1,4a75d77c,2026-01-19_12-10-46,3.869797706604004,3.869797706604004,200555,sergio-XPS-15-9500,192.168.1.5,3.869797706604004,1,True,False,False,False,True,False,False,True,0.09294736151174086,4a75d77c +0.0743152533045929,0.3522593474791794,2.3493363857269287,5,0.38149294853210447,False,http://localhost:8003,1768821051,,False,1,c2308a71,2026-01-19_12-10-51,2.353856325149536,2.353856325149536,201775,sergio-XPS-15-9500,192.168.1.5,2.353856325149536,1,True,False,False,False,True,False,False,True,0.07646901408730243,c2308a71 +0.0743152533045929,0.3522593474791794,2.2967300415039062,5,0.37166876792907716,False,http://localhost:8003,1768821057,,False,1,b39b4bbc,2026-01-19_12-10-57,2.300992012023926,2.300992012023926,202985,sergio-XPS-15-9500,192.168.1.5,2.300992012023926,1,True,False,False,False,True,False,False,True,0.06310895025982477,b39b4bbc +0.0743152533045929,0.3522593474791794,2.3306691646575928,5,0.37825717926025393,False,http://localhost:8003,1768821063,,False,1,5c179d0f,2026-01-19_12-11-03,2.3352127075195312,2.3352127075195312,204198,sergio-XPS-15-9500,192.168.1.5,2.3352127075195312,1,True,False,False,False,True,False,False,True,0.09214745705658531,5c179d0f +0.7921346697142901,1.0545568452820837,5.84848165512085,5,0.728736686706543,True,http://localhost:8003,1768821072,,False,1,54b75cc8,2026-01-19_12-11-12,5.8533689975738525,5.8533689975738525,205410,sergio-XPS-15-9500,192.168.1.5,5.8533689975738525,1,True,True,False,True,False,False,False,True,0.09992602021030114,54b75cc8 +0.07451994486755961,0.3515575293610934,3.878021717071533,5,0.3628075122833252,True,http://localhost:8003,1768821080,,False,1,bb5ac038,2026-01-19_12-11-20,3.8829312324523926,3.8829312324523926,207185,sergio-XPS-15-9500,192.168.1.5,3.8829312324523926,1,True,False,True,False,True,False,True,False,0.08279050013235793,bb5ac038 +0.7921346697142901,1.0545568452820837,5.78171968460083,5,0.7050829410552979,True,http://localhost:8003,1768821089,,False,1,f1c7000c,2026-01-19_12-11-29,5.786619186401367,5.786619186401367,208408,sergio-XPS-15-9500,192.168.1.5,5.786619186401367,1,True,True,False,True,True,True,False,False,0.0882484211859766,f1c7000c +0.0813627928214657,0.373642333504444,7.883875608444214,5,1.1401109218597412,True,http://localhost:8003,1768821100,,False,1,5f64114a,2026-01-19_12-11-40,7.887973070144653,7.887973070144653,210166,sergio-XPS-15-9500,192.168.1.5,7.887973070144653,1,False,False,True,False,False,False,True,True,0.09581281484761522,5f64114a +0.7921346697142901,1.0545568452820837,5.837187051773071,5,0.7390849590301514,True,http://localhost:8003,1768821109,,False,1,deb231ab,2026-01-19_12-11-49,5.842226028442383,5.842226028442383,212276,sergio-XPS-15-9500,192.168.1.5,5.842226028442383,1,True,True,False,True,True,False,False,False,0.014903696838843121,deb231ab +0.07451994486755961,0.3515575293610934,3.8521182537078857,5,0.357759428024292,True,http://localhost:8003,1768821116,,False,1,8e1ad60c,2026-01-19_12-11-56,3.856376886367798,3.856376886367798,214039,sergio-XPS-15-9500,192.168.1.5,3.856376886367798,1,True,False,True,False,True,False,False,True,0.07474982974728585,8e1ad60c +0.7657432112619441,1.0344358563738436,11.567106246948242,5,1.8771627426147461,True,http://localhost:8003,1768821131,,False,1,5c7a850a,2026-01-19_12-12-11,11.572225332260132,11.572225332260132,215255,sergio-XPS-15-9500,192.168.1.5,11.572225332260132,1,False,True,False,False,False,True,True,True,0.06667565158056586,5c7a850a +0.0743152533045929,0.3522593474791794,3.854253053665161,5,0.36142959594726565,True,http://localhost:8003,1768821139,,False,1,41600dca,2026-01-19_12-12-19,3.858793020248413,3.858793020248413,217924,sergio-XPS-15-9500,192.168.1.5,3.858793020248413,1,True,False,False,False,True,False,False,True,0.09516963566481865,41600dca +0.0743152533045929,0.3522593474791794,2.2381088733673096,5,0.3609159469604492,False,http://localhost:8003,1768821144,,False,1,55291f18,2026-01-19_12-12-24,2.242400646209717,2.242400646209717,219141,sergio-XPS-15-9500,192.168.1.5,2.242400646209717,1,True,False,False,False,True,False,False,True,0.09955056101622099,55291f18 +0.0743152533045929,0.3522593474791794,2.247992515563965,5,0.3638484477996826,False,http://localhost:8003,1768821150,,False,1,e05da7a3,2026-01-19_12-12-30,2.2522785663604736,2.2522785663604736,220353,sergio-XPS-15-9500,192.168.1.5,2.2522785663604736,1,True,False,False,False,True,False,False,True,0.08881643587450277,e05da7a3 +0.0743152533045929,0.3522593474791794,2.240065336227417,5,0.3607933521270752,False,http://localhost:8003,1768821155,,False,1,6773b6ef,2026-01-19_12-12-35,2.244333267211914,2.244333267211914,221554,sergio-XPS-15-9500,192.168.1.5,2.244333267211914,1,True,False,False,False,True,False,False,True,0.08162246894892994,6773b6ef +0.0743152533045929,0.3522593474791794,2.228623628616333,5,0.3605500221252441,False,http://localhost:8003,1768821161,,False,1,88f82273,2026-01-19_12-12-41,2.233116626739502,2.233116626739502,222761,sergio-XPS-15-9500,192.168.1.5,2.233116626739502,1,True,False,False,False,True,False,False,False,0.0576590087821367,88f82273 +0.0743152533045929,0.3522593474791794,3.8948147296905518,5,0.36910762786865237,True,http://localhost:8003,1768821168,,False,1,122e7c9a,2026-01-19_12-12-48,3.898893356323242,3.898893356323242,223988,sergio-XPS-15-9500,192.168.1.5,3.898893356323242,1,True,False,False,True,True,False,True,True,0.046132117836141115,122e7c9a +0.07451994486755961,0.3515575293610934,3.8418056964874268,5,0.3551186084747314,True,http://localhost:8003,1768821175,,False,1,6944e329,2026-01-19_12-12-55,3.846059799194336,3.846059799194336,225216,sergio-XPS-15-9500,192.168.1.5,3.846059799194336,1,True,False,True,False,True,False,False,True,0.08553768973696241,6944e329 +0.7921346697142901,1.0545568452820837,5.819804906845093,5,0.7136962413787842,True,http://localhost:8003,1768821185,,False,1,65fe9972,2026-01-19_12-13-05,5.825164794921875,5.825164794921875,226432,sergio-XPS-15-9500,192.168.1.5,5.825164794921875,1,True,True,False,False,True,False,False,False,0.09616135139330068,65fe9972 +0.07954940376147028,0.3649854752864963,7.82697319984436,5,1.1294140815734863,True,http://localhost:8003,1768821196,,False,1,e0bb2fe1,2026-01-19_12-13-16,7.831338882446289,7.831338882446289,228191,sergio-XPS-15-9500,192.168.1.5,7.831338882446289,1,False,False,False,False,True,True,True,True,0.09002271724335277,e0bb2fe1 +0.0743152533045929,0.3522593474791794,3.8710319995880127,5,0.36251654624938967,True,http://localhost:8003,1768821203,,False,1,13b36f19,2026-01-19_12-13-23,3.875239849090576,3.875239849090576,230300,sergio-XPS-15-9500,192.168.1.5,3.875239849090576,1,True,False,False,False,False,False,False,True,0.0857237854212837,13b36f19 +0.0743152533045929,0.3522593474791794,3.875215768814087,5,0.36308274269104,True,http://localhost:8003,1768821210,,False,1,9c6b5628,2026-01-19_12-13-30,3.8797342777252197,3.8797342777252197,231521,sergio-XPS-15-9500,192.168.1.5,3.8797342777252197,1,True,False,False,False,True,False,True,False,0.06880465434613751,9c6b5628 +0.0743152533045929,0.3522593474791794,2.2376744747161865,5,0.36208286285400393,False,http://localhost:8003,1768821216,,False,1,4b6d70bb,2026-01-19_12-13-36,2.242083787918091,2.242083787918091,232738,sergio-XPS-15-9500,192.168.1.5,2.242083787918091,1,True,False,False,False,True,False,True,False,0.06024639917014255,4b6d70bb +0.0743152533045929,0.3522593474791794,2.2306642532348633,5,0.359661865234375,False,http://localhost:8003,1768821221,,False,1,ca9acee8,2026-01-19_12-13-41,2.234971046447754,2.234971046447754,233946,sergio-XPS-15-9500,192.168.1.5,2.234971046447754,1,True,False,False,False,True,False,True,False,0.0935005319022256,ca9acee8 +0.0743152533045929,0.3522593474791794,2.229747772216797,5,0.3594185829162598,False,http://localhost:8003,1768821227,,False,1,75b5c78b,2026-01-19_12-13-47,2.2341864109039307,2.2341864109039307,235172,sergio-XPS-15-9500,192.168.1.5,2.2341864109039307,1,True,False,False,False,True,False,True,False,0.05253849882367517,75b5c78b +0.0743152533045929,0.3522593474791794,2.2397162914276123,5,0.3618612289428711,False,http://localhost:8003,1768821233,,False,1,44bf33c9,2026-01-19_12-13-53,2.243781566619873,2.243781566619873,236376,sergio-XPS-15-9500,192.168.1.5,2.243781566619873,1,True,False,False,False,True,False,True,False,0.07878420224854064,44bf33c9 +0.0743152533045929,0.3522593474791794,2.2368643283843994,5,0.36055378913879393,False,http://localhost:8003,1768821238,,False,1,f435b3b2,2026-01-19_12-13-58,2.240933895111084,2.240933895111084,237583,sergio-XPS-15-9500,192.168.1.5,2.240933895111084,1,True,False,False,False,True,False,False,True,0.07116860558400767,f435b3b2 +0.0743152533045929,0.3522593474791794,2.265198230743408,5,0.36513686180114746,False,http://localhost:8003,1768821244,,False,1,8217f139,2026-01-19_12-14-04,2.2695438861846924,2.2695438861846924,238784,sergio-XPS-15-9500,192.168.1.5,2.2695438861846924,1,True,False,False,False,True,False,True,False,0.09707599413052871,8217f139 +0.0743152533045929,0.3522593474791794,2.2422447204589844,5,0.3608452320098877,False,http://localhost:8003,1768821249,,False,1,efe10aca,2026-01-19_12-14-09,2.246490240097046,2.246490240097046,239994,sergio-XPS-15-9500,192.168.1.5,2.246490240097046,1,True,False,False,False,True,False,False,True,0.0391565433402237,efe10aca +0.08002835367212643,0.35831740099305937,8.202797412872314,5,1.1076955318450927,True,http://localhost:8003,1768821261,,False,1,3f085082,2026-01-19_12-14-21,8.2071533203125,8.2071533203125,241216,sergio-XPS-15-9500,192.168.1.5,8.2071533203125,1,False,False,True,True,True,True,True,False,0.0835804142411709,3f085082 +0.0743152533045929,0.3522593474791794,3.885773181915283,5,0.3617554664611816,True,http://localhost:8003,1768821268,,False,1,ca26375b,2026-01-19_12-14-28,3.890075922012329,3.890075922012329,243329,sergio-XPS-15-9500,192.168.1.5,3.890075922012329,1,True,False,False,False,True,False,False,True,0.09060074015212932,ca26375b +0.0743152533045929,0.3522593474791794,2.2462470531463623,5,0.3624699592590332,False,http://localhost:8003,1768821274,,False,1,69643aea,2026-01-19_12-14-34,2.2505128383636475,2.2505128383636475,244551,sergio-XPS-15-9500,192.168.1.5,2.2505128383636475,1,True,False,False,False,True,False,False,True,0.07530859871726936,69643aea +0.0743152533045929,0.3522593474791794,2.263847827911377,5,0.3658243179321289,False,http://localhost:8003,1768821279,,False,1,4cae77fc,2026-01-19_12-14-39,2.267988681793213,2.267988681793213,245765,sergio-XPS-15-9500,192.168.1.5,2.267988681793213,1,True,False,False,False,True,False,False,True,0.08801626009397175,4cae77fc +0.0743152533045929,0.3522593474791794,2.2468783855438232,5,0.3630548000335693,False,http://localhost:8003,1768821285,,False,1,6b987e08,2026-01-19_12-14-45,2.2512388229370117,2.2512388229370117,246985,sergio-XPS-15-9500,192.168.1.5,2.2512388229370117,1,True,False,False,False,True,False,False,True,0.09792932706586027,6b987e08 diff --git a/src/results/raytune_easyocr_results_20260119_120204.csv b/src/results/raytune_easyocr_results_20260119_120204.csv new file mode 100644 index 0000000..0791ded --- /dev/null +++ b/src/results/raytune_easyocr_results_20260119_120204.csv @@ -0,0 +1,65 @@ +CER,WER,TIME,PAGES,TIME_PER_PAGE,worker,timestamp,checkpoint_dir_name,done,training_iteration,trial_id,date,time_this_iter_s,time_total_s,pid,hostname,node_ip,time_since_restore,iterations_since_restore,config/text_threshold,config/low_text,config/link_threshold,config/slope_ths,config/ycenter_ths,config/height_ths,config/width_ths,config/add_margin,config/contrast_ths,config/adjust_contrast,config/decoder,config/beamWidth,config/min_size,logdir +0.3871430382852802,0.5182750384528632,19.13978934288025,5,3.7033697605133056,http://localhost:8002,1768819587,,False,1,0ba51edc,2026-01-19_11-46-27,19.150158882141113,19.150158882141113,137518,sergio-XPS-15-9500,192.168.1.5,19.150158882141113,1,0.5066472683346976,0.3124874041155775,0.2640094851170725,0.11369463817649797,0.47012928436448354,0.7140749654136573,0.643133477191141,0.11910600147231132,0.2722183833676177,0.7684200450221536,beamsearch,3,20,0ba51edc +0.062223201197885825,0.26399044299206303,11.377342224121094,5,2.1752953052520754,http://localhost:8002,1768819602,,False,1,c2ddb294,2026-01-19_11-46-42,11.383038759231567,11.383038759231567,137840,sergio-XPS-15-9500,192.168.1.5,11.383038759231567,1,0.4175797290692802,0.5963231402122613,0.36874666681089985,0.223680908941245,0.459921344533471,0.9160307499007694,0.9279619232072562,0.12298366234684793,0.11516147921112997,0.6668263919581685,greedy,10,20,c2ddb294 +0.39700544361882206,0.5264527267179566,12.552152156829834,5,2.4208834171295166,http://localhost:8002,1768819617,,False,1,e82ff347,2026-01-19_11-46-57,12.557852029800415,12.557852029800415,138037,sergio-XPS-15-9500,192.168.1.5,12.557852029800415,1,0.8540537965666715,0.294588934626999,0.5092574060096554,0.2836712766196415,0.6190202697962148,0.810073297090729,0.955177616687997,0.10497968516826324,0.20957208332268756,0.7475085753710696,beamsearch,7,10,e82ff347 +0.07781775834482615,0.3051087241758982,12.261723279953003,5,2.362420177459717,http://localhost:8002,1768819633,,False,1,532bade0,2026-01-19_11-47-13,12.265946626663208,12.265946626663208,138237,sergio-XPS-15-9500,192.168.1.5,12.265946626663208,1,0.8141250315590343,0.479912630164245,0.2027669826029772,0.11444262905063128,0.7404783620983263,0.301871563170945,0.35514852924629375,0.27832075427107744,0.2643837228077205,0.7950403527209229,greedy,3,10,532bade0 +0.3487860557598165,0.5005453336802469,12.705831289291382,5,2.4508751392364503,http://localhost:8002,1768819649,,False,1,7d15d320,2026-01-19_11-47-29,12.712336301803589,12.712336301803589,138464,sergio-XPS-15-9500,192.168.1.5,12.712336301803589,1,0.3225669850847642,0.2716721665537871,0.26115345621898345,0.2438651926519595,0.6194544051054931,0.5792394844360738,0.4710319694788726,0.13213212713543926,0.1990327712555196,0.3304729155445536,beamsearch,7,10,7d15d320 +0.3356719522269469,0.47356787280835055,13.11896562576294,5,2.5329070568084715,http://localhost:8002,1768819666,,False,1,9d244107,2026-01-19_11-47-46,13.124910593032837,13.124910593032837,138659,sergio-XPS-15-9500,192.168.1.5,13.124910593032837,1,0.34889752108886873,0.39007345640142954,0.22641510809759163,0.17907271838822,0.8644844159597871,0.6275871303293161,0.9722853596788665,0.25555008849029126,0.20043175984558798,0.7707927516030697,beamsearch,7,10,9d244107 +0.2742112621871928,0.43639473613327356,13.743902206420898,5,2.6569590091705324,http://localhost:8002,1768819683,,False,1,f160d61d,2026-01-19_11-48-03,13.750498533248901,13.750498533248901,138904,sergio-XPS-15-9500,192.168.1.5,13.750498533248901,1,0.8392454366146391,0.3155621572041812,0.4873405945675176,0.08582733675720434,0.9790121644393985,0.4062417762545848,0.6466326123022476,0.19715070089301498,0.23503015353761492,0.41517636715917056,beamsearch,10,15,f160d61d +0.09848790101332737,0.32483251468294605,10.20632028579712,5,1.9527865886688232,http://localhost:8002,1768819697,,False,1,1be1e7a5,2026-01-19_11-48-17,10.210542917251587,10.210542917251587,139116,sergio-XPS-15-9500,192.168.1.5,10.210542917251587,1,0.833246186868533,0.22457589994570235,0.32254503276757784,0.23399561843072308,0.30165921403980517,0.8658122652407174,0.47250440785836867,0.2238860017234068,0.1886386486304371,0.4576817046304348,greedy,3,10,1be1e7a5 +0.4136569417819424,0.5311620590036745,14.170307874679565,5,2.746191930770874,http://localhost:8002,1768819714,,False,1,0746a065,2026-01-19_11-48-34,14.175411701202393,14.175411701202393,139318,sergio-XPS-15-9500,192.168.1.5,14.175411701202393,1,0.6782050871534447,0.22844595642210797,0.2858119663327552,0.0823237135063647,0.9612792593924089,0.665348992884313,0.8626670975336155,0.04300909760808497,0.270098820639789,0.45556228770798246,beamsearch,10,5,0746a065 +0.4517379831360281,0.5799232118269153,15.184179544448853,5,2.9479862689971923,http://localhost:8002,1768819733,,False,1,ef6faf9d,2026-01-19_11-48-53,15.188986778259277,15.188986778259277,139517,sergio-XPS-15-9500,192.168.1.5,15.188986778259277,1,0.39558213831954714,0.5599422938176799,0.3313024647230755,0.11634655299660798,0.8823955834187702,0.6660518255567262,0.796016060076042,0.1299041367034449,0.2152856765400713,0.6606446175138574,beamsearch,10,10,ef6faf9d +0.0795526147054266,0.34016478642481734,11.83824896812439,5,2.2789079189300536,http://localhost:8002,1768819748,,False,1,e584ad1a,2026-01-19_11-49-08,11.842672109603882,11.842672109603882,139771,sergio-XPS-15-9500,192.168.1.5,11.842672109603882,1,0.521503445317256,0.5967505351644852,0.4313761698948889,0.18235873322120522,0.425714368894258,0.9959973340677325,0.7683261374584024,0.018826411104235885,0.09775666402707693,0.628476421820741,greedy,5,20,e584ad1a +0.09113684668662517,0.3330104965172591,13.415843725204468,5,2.595126819610596,http://localhost:8002,1768819765,,False,1,933eaf3b,2026-01-19_11-49-25,13.420702457427979,13.420702457427979,139980,sergio-XPS-15-9500,192.168.1.5,13.420702457427979,1,0.6841928895220837,0.4987357892894665,0.3892687916541862,0.013496416992424515,0.7313608327277628,0.30075189594812957,0.32892055287409155,0.2910230441279402,0.12231738001404545,0.6542796585827699,greedy,3,20,933eaf3b +0.07683542859531813,0.29422679092874626,12.476734638214111,5,2.407120943069458,http://localhost:8002,1768819781,,False,1,5cc050c0,2026-01-19_11-49-41,12.481242179870605,12.481242179870605,140188,sergio-XPS-15-9500,192.168.1.5,12.481242179870605,1,0.7076826224292139,0.4751142111109723,0.5719253650216765,0.20726075894486198,0.7574616804022614,0.48759940016947356,0.34266143931551063,0.18447732850058915,0.05055007965981624,0.5684478612561757,greedy,5,15,5cc050c0 +0.06306661910327489,0.2898453031979762,11.470694541931152,5,2.2064542293548586,http://localhost:8002,1768819796,,False,1,d3c4733b,2026-01-19_11-49-56,11.4755117893219,11.4755117893219,140395,sergio-XPS-15-9500,192.168.1.5,11.4755117893219,1,0.6620107715544297,0.46192225302253637,0.5999869164872036,0.22619461913686095,0.5081500315391371,0.475339433636797,0.5106649520736647,0.18343269541739415,0.05344530818183559,0.5503520865389809,greedy,5,15,d3c4733b +0.062270483694448396,0.28136185456156826,11.204349517822266,5,2.1529050350189207,http://localhost:8002,1768819810,,False,1,b45ad82b,2026-01-19_11-50-10,11.209157705307007,11.209157705307007,140574,sergio-XPS-15-9500,192.168.1.5,11.209157705307007,1,0.5677170679516823,0.39248586783769635,0.5772785270028471,0.27599118000336537,0.5077328211777172,0.9804901966926808,0.4977991183990612,0.07239471385409058,0.1374763382905679,0.553666724679821,greedy,5,15,b45ad82b +0.05996048766984661,0.26719903989315885,10.76261305809021,5,2.0644459247589113,http://localhost:8002,1768819824,,False,1,8acf6ec9,2026-01-19_11-50-24,10.767472267150879,10.767472267150879,140781,sergio-XPS-15-9500,192.168.1.5,10.767472267150879,1,0.45865724369035377,0.3694009035940602,0.4151173065881186,0.2983365466960818,0.3631913446659816,0.9980863757691772,0.5845159135795941,0.0721946556655992,0.1459278780476781,0.694791501629087,greedy,5,5,8acf6ec9 +0.06099161461125324,0.2731943754797238,10.691137313842773,5,2.049327087402344,http://localhost:8002,1768819838,,False,1,0551450f,2026-01-19_11-50-38,10.69617772102356,10.69617772102356,140969,sergio-XPS-15-9500,192.168.1.5,10.69617772102356,1,0.4402243626112622,0.3701488279313097,0.40203668237242685,0.2972046540464212,0.33871151213781014,0.8838165530603757,0.7081592028492127,0.0882537861188746,0.15672333775519132,0.701627303389235,greedy,10,5,0551450f +0.061099404730611595,0.2721280502767147,10.488921165466309,5,2.0086814403533935,http://localhost:8002,1768819852,,False,1,e740013a,2026-01-19_11-50-52,10.493494510650635,10.493494510650635,141174,sergio-XPS-15-9500,192.168.1.5,10.493494510650635,1,0.46435985811111974,0.34785224515762775,0.45493529224642276,0.29478569868586896,0.35587921159117397,0.8172744152107332,0.7122588321341333,0.0735916007360217,0.15982046838787856,0.7164721195205754,greedy,5,5,e740013a +0.062362858472938,0.272332407323177,10.604278802871704,5,2.034042978286743,http://localhost:8002,1768819866,,False,1,22c24728,2026-01-19_11-51-06,10.608573198318481,10.608573198318481,141340,sergio-XPS-15-9500,192.168.1.5,10.608573198318481,1,0.579678584169857,0.41597218340706976,0.4252016667747404,0.2679346252767811,0.34868781409745264,0.7747328556811077,0.5639686467419519,0.07445003550177257,0.16554473301217898,0.7073749357717483,greedy,10,5,22c24728 +0.06215767332972164,0.2747475932624559,10.546220541000366,5,2.021405267715454,http://localhost:8002,1768819880,,False,1,d1b611a8,2026-01-19_11-51-20,10.550852060317993,10.550852060317993,141520,sergio-XPS-15-9500,192.168.1.5,10.550852060317993,1,0.4422199064362936,0.3610913124264453,0.512759066575697,0.25795910850742676,0.5611259808565064,0.9053873818686548,0.5976970185172742,0.003121661182585389,0.08700122299695832,0.6200011976268031,greedy,10,5,d1b611a8 +0.06426741821045164,0.27754887165353204,10.526280164718628,5,2.017490863800049,http://localhost:8002,1768819894,,False,1,a1925725,2026-01-19_11-51-34,10.530900001525879,10.530900001525879,141685,sergio-XPS-15-9500,192.168.1.5,10.530900001525879,1,0.5079166883998535,0.44070967935910216,0.3555775923905935,0.2990878745571421,0.31120640343991984,0.9491605272601941,0.721432583570574,0.044062271648251126,0.1572631030161951,0.5962531429630691,greedy,5,5,a1925725 +0.060448802280017165,0.2709457820432465,10.548709630966187,5,2.0212356567382814,http://localhost:8002,1768819907,,False,1,f6248ceb,2026-01-19_11-51-47,10.553314208984375,10.553314208984375,141848,sergio-XPS-15-9500,192.168.1.5,10.553314208984375,1,0.4717256039811322,0.36544351935053254,0.44547752189718304,0.29867816914798173,0.3833038520221923,0.8392790049435077,0.6924094072779299,0.0852529065561854,0.1544529445184886,0.7151769237673308,greedy,5,5,f6248ceb +0.061830952891847354,0.27643497142574114,10.458194017410278,5,2.00508770942688,http://localhost:8002,1768819921,,False,1,9408f008,2026-01-19_11-52-01,10.462894439697266,10.462894439697266,142026,sergio-XPS-15-9500,192.168.1.5,10.462894439697266,1,0.36151386422841214,0.3538388593453238,0.4559692019279934,0.258413183713029,0.39490484466097675,0.8743587585061078,0.7008339670509499,0.08528252345983173,0.1412514911085921,0.7102293742914433,greedy,5,5,9408f008 +0.06426139507144008,0.27969442229397773,10.85228157043457,5,2.0829681873321535,http://localhost:8002,1768819935,,False,1,a0aa078a,2026-01-19_11-52-15,10.856995105743408,10.856995105743408,142190,sergio-XPS-15-9500,192.168.1.5,10.856995105743408,1,0.4624158086714028,0.42040393809756477,0.41520125659911294,0.29032442769565125,0.38480963688924097,0.745502857691457,0.5817045834292819,0.045692170174803245,0.17769522993714032,0.6933972538344093,greedy,5,5,a0aa078a +0.06269459198356074,0.27808950345890404,10.585867643356323,5,2.0289974212646484,http://localhost:8002,1768819949,,False,1,324be6ad,2026-01-19_11-52-29,10.590425252914429,10.590425252914429,142377,sergio-XPS-15-9500,192.168.1.5,10.590425252914429,1,0.39019467846190514,0.372308752898106,0.4640373077177259,0.20167201551181882,0.4408716269770253,0.8406520699713839,0.8098310920672391,0.1579316915947745,0.1384207575445601,0.7454573365368217,greedy,5,5,324be6ad +0.07959827118630344,0.2871382933960637,11.532482385635376,5,2.219746446609497,http://localhost:8002,1768819964,,False,1,e1c26fe1,2026-01-19_11-52-44,11.537264823913574,11.537264823913574,142538,sergio-XPS-15-9500,192.168.1.5,11.537264823913574,1,0.3090429790922413,0.33472186465221,0.39720817790586443,0.0041528793175236445,0.3025883785231392,0.9359865988554746,0.4208565345904826,0.09825579905606344,0.08933198214929214,0.5029113260048625,greedy,5,5,e1c26fe1 +0.06153670825357198,0.2689836062793151,10.684980630874634,5,2.048065185546875,http://localhost:8002,1768819978,,False,1,871a2974,2026-01-19_11-52-58,10.689571142196655,10.689571142196655,142730,sergio-XPS-15-9500,192.168.1.5,10.689571142196655,1,0.6247643595063705,0.2700409637884238,0.523706372392991,0.26010593479118665,0.5419430667470642,0.8772489609968006,0.866157823298259,0.1525272090916175,0.23282983510183955,0.6005045065411087,greedy,10,5,871a2974 +0.06673842132253202,0.2895430656572954,11.181420803070068,5,2.148970937728882,http://localhost:8002,1768819993,,False,1,5aaa2960,2026-01-19_11-53-13,11.186044454574585,11.186044454574585,142902,sergio-XPS-15-9500,192.168.1.5,11.186044454574585,1,0.5312313131533724,0.5274817776501124,0.36246508220473683,0.1487343581575564,0.3926538404095683,0.9516125555915751,0.6733549601019699,0.048249293092278434,0.11205800044575707,0.7992457276130864,greedy,7,5,5aaa2960 +0.06397855317924395,0.27562926342642274,10.582021236419678,5,2.0291433334350586,http://localhost:8002,1768820006,,False,1,21bd3de3,2026-01-19_11-53-26,10.586687564849854,10.586687564849854,143089,sergio-XPS-15-9500,192.168.1.5,10.586687564849854,1,0.4768706082264196,0.4116856094728855,0.47401542881269365,0.24184252961783387,0.6689268585545911,0.7706602741028105,0.6152463359675456,0.02384590208270837,0.14958983968802692,0.6832923394286707,greedy,5,5,21bd3de3 +0.05928688439040566,0.26340764235199676,10.82849907875061,5,2.0774466037750243,http://localhost:8002,1768820021,,False,1,1557acdd,2026-01-19_11-53-41,10.833132982254028,10.833132982254028,143248,sergio-XPS-15-9500,192.168.1.5,10.833132982254028,1,0.7552574004836203,0.44533911204124527,0.31397183762754305,0.2781958432695631,0.4971448247990278,0.702889696463513,0.5563365487128928,0.10957807143315677,0.1792808875596712,0.7431378339011148,greedy,3,5,1557acdd +0.05996751845943706,0.2656487417441341,11.046596050262451,5,2.1210866928100587,http://localhost:8002,1768820035,,False,1,23e5421b,2026-01-19_11-53-55,11.051404476165771,11.051404476165771,143435,sergio-XPS-15-9500,192.168.1.5,11.051404476165771,1,0.7718089675955625,0.4446379405494256,0.3019967059446066,0.27530868169916184,0.48775088657867727,0.7025268307300849,0.5457135094112008,0.10608020395503459,0.17680901565764098,0.7399221495601584,greedy,3,5,23e5421b +0.05943303923556994,0.2621136461900505,10.89347219467163,5,2.090515375137329,http://localhost:8002,1768820049,,False,1,4662a08f,2026-01-19_11-54-09,10.898061990737915,10.898061990737915,143626,sergio-XPS-15-9500,192.168.1.5,10.898061990737915,1,0.7655197786088256,0.4384608011311873,0.2900656349558717,0.2738896956339715,0.4897956878476248,0.7114900186099934,0.5392251925681772,0.11338377422440528,0.18288699118515803,0.7492268780264275,greedy,3,5,4662a08f +0.059764190418310784,0.26498596833223664,11.022373676300049,5,2.11647310256958,http://localhost:8002,1768820064,,False,1,8339cb3e,2026-01-19_11-54-24,11.026973724365234,11.026973724365234,143832,sergio-XPS-15-9500,192.168.1.5,11.026973724365234,1,0.7686099049266422,0.44630560025029414,0.2948219426310189,0.2727084952650962,0.49027990928339404,0.7249036670847477,0.5450468550932773,0.11187079599626384,0.18133138980677752,0.7495335565594098,greedy,3,5,8339cb3e +0.060684238278697525,0.26432483439151866,12.10981273651123,5,2.3338690757751466,http://localhost:8002,1768820079,,False,1,9c9cf542,2026-01-19_11-54-39,12.114561557769775,12.114561557769775,144014,sergio-XPS-15-9500,192.168.1.5,12.114561557769775,1,0.7532180802163942,0.5128327503981508,0.2570950665245929,0.21228601663917626,0.5702886327992472,0.5874866302046862,0.41605423922305346,0.1393125792842351,0.22050576617777679,0.7624824674521864,greedy,3,20,9c9cf542 +0.08014581283242714,0.28932853882106035,10.766591310501099,5,2.0627391815185545,http://localhost:8002,1768820093,,False,1,7b99dc7d,2026-01-19_11-54-53,10.773411512374878,10.773411512374878,144217,sergio-XPS-15-9500,192.168.1.5,10.773411512374878,1,0.8900827816008225,0.43692605130405904,0.28299893768197637,0.25090796326354026,0.45116119804450994,0.7000835777935013,0.5311272120253014,0.10699302785038173,0.2904514002507723,0.7756605791225515,greedy,3,5,7b99dc7d +0.05998922172744085,0.26585145931941695,11.418177604675293,5,2.19525465965271,http://localhost:8002,1768820108,,False,1,889ff391,2026-01-19_11-55-08,11.422764301300049,11.422764301300049,144398,sergio-XPS-15-9500,192.168.1.5,11.422764301300049,1,0.7853225189675154,0.463910613321873,0.23698735272141672,0.27377548391814954,0.6121219754884698,0.551217667291872,0.43571381214714444,0.11657214266943153,0.18871141271799163,0.7335864533748023,greedy,3,5,889ff391 +0.3537681802368841,0.4969864100911835,12.881014823913574,5,2.4865323543548583,http://localhost:8002,1768820124,,False,1,7e811d46,2026-01-19_11-55-24,12.88630223274231,12.88630223274231,144607,sergio-XPS-15-9500,192.168.1.5,12.88630223274231,1,0.7266484292255461,0.5415454213873866,0.3301145976622343,0.1865414523299046,0.47980014672018056,0.7370946863942303,0.6321175664041752,0.16199096365481883,0.24575549479858036,0.7988955477215958,beamsearch,3,5,7e811d46 +0.08668141149396207,0.3195016810538794,12.23897933959961,5,2.3584585189819336,http://localhost:8002,1768820140,,False,1,aad8a433,2026-01-19_11-55-40,12.244789123535156,12.244789123535156,144837,sergio-XPS-15-9500,192.168.1.5,12.244789123535156,1,0.8890784877906777,0.49729149007901785,0.3022378793797936,0.15068002069309427,0.5217560545383055,0.6246570748018311,0.39540672252266484,0.06113992103803731,0.19740387526722958,0.6691724379280026,greedy,3,20,aad8a433 +0.33039603802482187,0.4796702224046533,12.4546537399292,5,2.4026978492736815,http://localhost:8002,1768820156,,False,1,512657a2,2026-01-19_11-55-56,12.45941162109375,12.45941162109375,145063,sergio-XPS-15-9500,192.168.1.5,12.45941162109375,1,0.6232362282312066,0.3918712695091323,0.2051294768906529,0.23628755351196915,0.5886422425865593,0.3680701363856915,0.45704649890130883,0.1172561016305299,0.17265532433475142,0.7657720890343414,beamsearch,3,5,512657a2 +0.06198201775009295,0.2639318510923077,10.336721420288086,5,1.9784754753112792,http://localhost:8002,1768820170,,False,1,1da2591c,2026-01-19_11-56-10,10.341253757476807,10.341253757476807,145258,sergio-XPS-15-9500,192.168.1.5,10.341253757476807,1,0.7945748814752798,0.3074609198039082,0.3512850377909583,0.2803387165565871,0.676034214318366,0.5425759112229473,0.4977769366841911,0.1405039691690697,0.18414358174506226,0.6495146967256282,greedy,3,10,1da2591c +0.23930652997356217,0.4047803085409988,13.96639633178711,5,2.70588903427124,http://localhost:8002,1768820187,,False,1,1fc76c61,2026-01-19_11-56-27,13.971062898635864,13.971062898635864,145448,sergio-XPS-15-9500,192.168.1.5,13.971062898635864,1,0.7298730667959007,0.43128174897306926,0.37543194001483676,0.033557047235571416,0.4227439352044997,0.6369762315598249,0.5720837980668902,0.16989421299763682,0.20357556846664004,0.33606535760084727,beamsearch,7,15,1fc76c61 +0.05916457749009331,0.2603697639812623,10.936553001403809,5,2.099363851547241,http://localhost:8002,1768820201,,False,1,466fabc4,2026-01-19_11-56-41,10.941264390945435,10.941264390945435,145657,sergio-XPS-15-9500,192.168.1.5,10.941264390945435,1,0.7646655943554652,0.4496059489020273,0.3037692280282893,0.27820217212001197,0.4796795208364998,0.7118325937653041,0.5413221047834652,0.10120472780313837,0.16953835385986285,0.7373278953886837,greedy,3,5,466fabc4 +0.06262277504663857,0.2680984132847148,10.939441919326782,5,2.099300193786621,http://localhost:8002,1768820216,,False,1,1d6d1749,2026-01-19_11-56-56,10.943971633911133,10.943971633911133,145853,sergio-XPS-15-9500,192.168.1.5,10.943971633911133,1,0.8234354899576677,0.4593995267054814,0.27033008042371826,0.24452223445450588,0.44951347701495115,0.6907896319414741,0.5324461272026295,0.1235467025491428,0.12932778883432983,0.7317188726093867,greedy,3,5,1d6d1749 +0.05970784035209096,0.258759438956101,10.990158319473267,5,2.1104721069335937,http://localhost:8002,1768820230,,False,1,c82e12e9,2026-01-19_11-57-10,10.994841575622559,10.994841575622559,146026,sergio-XPS-15-9500,192.168.1.5,10.994841575622559,1,0.7435671290019616,0.4902723579691337,0.31030673207841203,0.2821781420999702,0.4743635349095276,0.7868678535393907,0.6534237946773291,0.09810216733901932,0.18818934557100567,0.769000804122876,greedy,3,5,c82e12e9 +0.07399781605809005,0.2901757233837255,11.241674661636353,5,2.159311056137085,http://localhost:8002,1768820245,,False,1,dc4b8ad0,2026-01-19_11-57-25,11.246280431747437,11.246280431747437,146227,sergio-XPS-15-9500,192.168.1.5,11.246280431747437,1,0.8635855881513506,0.5679840217648511,0.3108576081126515,0.26596438861226535,0.4736117661041297,0.7935405923179888,0.6568791745253106,0.09852706108769861,0.22110037713279163,0.7726420509771701,greedy,3,5,dc4b8ad0 +0.059443757821647306,0.2652742693642366,10.932884454727173,5,2.0979042530059813,http://localhost:8002,1768820259,,False,1,dd5c1aa0,2026-01-19_11-57-39,10.937772035598755,10.937772035598755,146415,sergio-XPS-15-9500,192.168.1.5,10.937772035598755,1,0.7497851211362265,0.49340285442914233,0.24486518704295845,0.22169705261942863,0.5344290231994961,0.7343738246174152,0.6273279588084633,0.1401353190181211,0.19391335447188496,0.751931055711065,greedy,3,10,dd5c1aa0 +0.33905839374179186,0.46681630291244874,11.817269086837769,5,2.2754374027252195,http://localhost:8002,1768820274,,False,1,3e431bbc,2026-01-19_11-57-54,11.822028636932373,11.822028636932373,146609,sergio-XPS-15-9500,192.168.1.5,11.822028636932373,1,0.7409469255126825,0.486311604635016,0.2426683920471307,0.22749653812474147,0.5339818816411395,0.7675880896677424,0.6136943680830941,0.22201604923294813,0.2076143561269635,0.7773645815175689,beamsearch,3,10,3e431bbc +0.06022704320482961,0.26313388102560387,10.998746633529663,5,2.1118124961853026,http://localhost:8002,1768820288,,False,1,156758d9,2026-01-19_11-58-08,11.003510475158691,11.003510475158691,146797,sergio-XPS-15-9500,192.168.1.5,11.003510475158691,1,0.6958655352045846,0.5130811270234237,0.3398685649368741,0.281609671843136,0.6188171051225511,0.6619539249830828,0.7621944146375241,0.13722873492512194,0.19541317596404653,0.724668083186668,greedy,3,10,156758d9 +0.0619061941971184,0.2666708599391416,10.721810817718506,5,2.0556752681732178,http://localhost:8002,1768820303,,False,1,98b752e7,2026-01-19_11-58-23,10.726754426956177,10.726754426956177,146994,sergio-XPS-15-9500,192.168.1.5,10.726754426956177,1,0.8065507370753903,0.479579558894321,0.2710803109658562,0.2200369611680297,0.562424006392253,0.6785297866543542,0.6428102120307683,0.17361026837711904,0.25222880963797256,0.6816772979912098,greedy,3,10,98b752e7 +0.060772000212913825,0.2693655727035526,11.828697204589844,5,2.276572847366333,http://localhost:8002,1768820318,,False,1,b76fb991,2026-01-19_11-58-38,11.833409070968628,11.833409070968628,147173,sergio-XPS-15-9500,192.168.1.5,11.833409070968628,1,0.6588562181986706,0.5057274333487476,0.21185595176486843,0.2530909139222912,0.6525256193586906,0.8104014913294882,0.4815502590805036,0.13014894080011688,0.16940039157653397,0.7552923776175787,greedy,3,10,b76fb991 +0.07314038576784788,0.3150308431474841,12.541530132293701,5,2.420142650604248,http://localhost:8002,1768820334,,False,1,2cddab16,2026-01-19_11-58-54,12.546295404434204,12.546295404434204,147391,sergio-XPS-15-9500,192.168.1.5,12.546295404434204,1,0.8467938317793842,0.5454167229484307,0.31221025364961774,0.19484970751487457,0.7101321488954703,0.6066858622923857,0.3883609000553786,0.09428410179254802,0.23303430823510501,0.5028771950032019,greedy,3,20,2cddab16 +0.061126787276099506,0.2754658344456032,12.830697536468506,5,2.4755293846130373,http://localhost:8002,1768820350,,False,1,c5e9c336,2026-01-19_11-59-10,12.835358381271362,12.835358381271362,147587,sergio-XPS-15-9500,192.168.1.5,12.835358381271362,1,0.7742942276856887,0.45602451871204075,0.2906132981749209,0.28249790167048744,0.49285375099310735,0.7281704754203927,0.30136076169570813,0.11215186859095508,0.18604751676297107,0.7485499894558536,greedy,3,10,c5e9c336 +0.059864794050619355,0.2672736064749025,11.629220485687256,5,2.235791301727295,http://localhost:8002,1768820365,,False,1,4746a594,2026-01-19_11-59-25,11.634002208709717,11.634002208709717,147814,sergio-XPS-15-9500,192.168.1.5,11.634002208709717,1,0.7600341581312108,0.4856987064104726,0.25429745004407167,0.23782684371695748,0.5171294186553896,0.7199868218813051,0.5150852975917685,0.1466645033310691,0.21110091695829342,0.7887741773568971,greedy,3,15,4746a594 +0.059687361636187354,0.25915782844539953,10.77558970451355,5,2.0677656650543215,http://localhost:8002,1768820379,,False,1,914de1fb,2026-01-19_11-59-39,10.780381202697754,10.780381202697754,148016,sergio-XPS-15-9500,192.168.1.5,10.780381202697754,1,0.7206799644549393,0.4038298181079831,0.22829349882480535,0.26704100913427425,0.40874625247425306,0.7422689086598406,0.5495893868854069,0.1269079072494077,0.1907921420998867,0.7564991275004229,greedy,3,5,914de1fb +0.05944052289142775,0.2603006035896063,11.235510110855103,5,2.1587305068969727,http://localhost:8002,1768820394,,False,1,67d86f75,2026-01-19_11-59-54,11.240439653396606,11.240439653396606,148208,sergio-XPS-15-9500,192.168.1.5,11.240439653396606,1,0.7181780900634192,0.40619737782309295,0.23858930971427372,0.17036711251144926,0.41028051751847794,0.7619291987754846,0.5944586460638401,0.12680370752155648,0.19408677869066687,0.7340530830475422,greedy,3,5,67d86f75 +0.05864527764234886,0.2576966365837255,10.711666345596313,5,2.054002857208252,http://localhost:8002,1768820408,,False,1,ec233275,2026-01-19_12-00-08,10.71644115447998,10.71644115447998,148394,sergio-XPS-15-9500,192.168.1.5,10.71644115447998,1,0.7119912570829008,0.4067353312041748,0.22290482686450167,0.13876386837316096,0.4216785745225061,0.7449060175492836,0.6189859060561754,0.12837536724587273,0.16720360936555814,0.6490148035375993,greedy,7,5,ec233275 +0.058352281456512646,0.26325850918850957,10.756606340408325,5,2.0632463455200196,http://localhost:8002,1768820422,,False,1,1b85472e,2026-01-19_12-00-22,10.761056900024414,10.761056900024414,148589,sergio-XPS-15-9500,192.168.1.5,10.761056900024414,1,0.6647184009064185,0.42466969296752816,0.21838222053573686,0.1629305080861391,0.7994293119091709,0.6436655189392679,0.6065310919737225,0.14619053351152517,0.1671131734904739,0.6416317933607728,greedy,7,10,1b85472e +0.3660240439441647,0.4947236362577508,13.107557773590088,5,2.53425874710083,http://localhost:8002,1768820439,,False,1,c50724c2,2026-01-19_12-00-39,13.112190961837769,13.112190961837769,148777,sergio-XPS-15-9500,192.168.1.5,13.112190961837769,1,0.6634068628046286,0.4221917610956251,0.22391772412866445,0.1502086057528373,0.7842640466327674,0.6529205282440211,0.5966980952588006,0.18574462350804272,0.16077183234622805,0.6422206751727608,beamsearch,7,5,c50724c2 +0.062152982639591625,0.27540347582693964,10.558995485305786,5,2.022567129135132,http://localhost:8002,1768820452,,False,1,881d9f45,2026-01-19_12-00-52,10.563637018203735,10.563637018203735,148992,sergio-XPS-15-9500,192.168.1.5,10.563637018203735,1,0.6346549144056921,0.3809145239465362,0.2823575989757486,0.1284614307850303,0.8067091565131851,0.8337121990108658,0.567787249051487,0.20829411872710996,0.16721474316062188,0.6282852294207945,greedy,7,5,881d9f45 +0.05856626938126275,0.2581712321259471,10.876498222351074,5,2.087088108062744,http://localhost:8002,1768820467,,False,1,48fc43e4,2026-01-19_12-01-07,10.88118314743042,10.88118314743042,149163,sergio-XPS-15-9500,192.168.1.5,10.88118314743042,1,0.7042086976838686,0.4025170289737934,0.2160231541556799,0.16549335913941385,0.8858930429274254,0.6801565065140187,0.6745339610780225,0.08262987034261617,0.13360114059916128,0.5889319630704115,greedy,7,15,48fc43e4 +0.05976448758711881,0.2592269888370555,10.979224681854248,5,2.107044887542725,http://localhost:8002,1768820481,,False,1,652caf77,2026-01-19_12-01-21,10.983993291854858,10.983993291854858,149348,sergio-XPS-15-9500,192.168.1.5,10.983993291854858,1,0.6988387104713508,0.4289552511338064,0.2166071100318819,0.08342333197598858,0.8547499849878485,0.6078156114278425,0.6796871899662313,0.0591502474857241,0.14761325178795806,0.5982026862890478,greedy,7,15,652caf77 +0.059133090191924254,0.2616872288695368,10.93423843383789,5,2.0975637912750242,http://localhost:8002,1768820495,,False,1,2e85880b,2026-01-19_12-01-35,10.93894910812378,10.93894910812378,149544,sergio-XPS-15-9500,192.168.1.5,10.93894910812378,1,0.6774988511926161,0.4026304656490138,0.20196424213945063,0.16637061772902026,0.9069000290827862,0.6717917525978443,0.607813099351824,0.08607375284532315,0.12816482122073206,0.5836410965708964,greedy,7,15,2e85880b +0.058834943191146474,0.258064666499282,10.712863683700562,5,2.055108594894409,http://localhost:8002,1768820509,,False,1,08c06d24,2026-01-19_12-01-49,10.71783971786499,10.71783971786499,149716,sergio-XPS-15-9500,192.168.1.5,10.71783971786499,1,0.676761107149889,0.3948167640336808,0.20446373408896712,0.1252645275302706,0.928745330628802,0.6772167484136661,0.728934789581864,0.07948320492885358,0.12455482683154301,0.5820049881076059,greedy,7,15,08c06d24 +0.05934167210765926,0.26507859745022083,10.722304821014404,5,2.0554207801818847,http://localhost:8002,1768820524,,False,1,b3f45b00,2026-01-19_12-02-04,10.727020978927612,10.727020978927612,149910,sergio-XPS-15-9500,192.168.1.5,10.727020978927612,1,0.6791241480460476,0.38507960399360586,0.2008675489682369,0.13136654102633838,0.9452093699034901,0.6808870002862947,0.7451721898503598,0.08065678907057289,0.11084582244266457,0.5764033974919818,greedy,7,15,b3f45b00 diff --git a/src/results/raytune_paddle_results_20260119_122609.csv b/src/results/raytune_paddle_results_20260119_122609.csv new file mode 100644 index 0000000..a1a8c89 --- /dev/null +++ b/src/results/raytune_paddle_results_20260119_122609.csv @@ -0,0 +1,65 @@ +CER,WER,TIME,PAGES,TIME_PER_PAGE,worker,timestamp,checkpoint_dir_name,done,training_iteration,trial_id,date,time_this_iter_s,time_total_s,pid,hostname,node_ip,time_since_restore,iterations_since_restore,config/use_doc_orientation_classify,config/use_doc_unwarping,config/textline_orientation,config/text_det_thresh,config/text_det_box_thresh,config/text_det_unclip_ratio,config/text_rec_score_thresh,logdir +0.03506661663316561,0.09890345974963388,11.85569167137146,5,2.223856973648071,http://localhost:8002,1768821470,,False,1,c385d490,2026-01-19_12-17-50,11.864287614822388,11.864287614822388,255694,sergio-XPS-15-9500,192.168.1.5,11.864287614822388,1,False,False,False,0.3694663403739679,0.4296387270337578,0.0,0.1783109083293045,c385d490 +0.03599172786858722,0.09831877575011358,3.6901509761810303,5,0.642470121383667,http://localhost:8002,1768821477,,False,1,28a0a423,2026-01-19_12-17-57,3.6944973468780518,3.6944973468780518,255930,sergio-XPS-15-9500,192.168.1.5,3.6944973468780518,1,True,False,False,0.443249796611768,0.4817558265252385,0.0,0.06237975078446407,28a0a423 +0.07296898422220219,0.13203708321215762,10.501965999603271,5,2.0055192947387694,http://localhost:8002,1768821491,,False,1,f699b826,2026-01-19_12-18-11,10.506679058074951,10.506679058074951,256056,sergio-XPS-15-9500,192.168.1.5,10.506679058074951,1,False,True,False,0.2851409433291632,0.5181201198120159,0.0,0.5402431853279566,f699b826 +0.06341497143231878,0.12432485697376627,10.013647079467773,5,1.9113924980163575,http://localhost:8002,1768821505,,False,1,49e77d45,2026-01-19_12-18-25,10.018975019454956,10.018975019454956,256261,sergio-XPS-15-9500,192.168.1.5,10.018975019454956,1,False,True,False,0.4091020962342421,0.5477675836994064,0.0,0.28125964062929637,49e77d45 +0.06363307378397837,0.11080195018785229,10.315315961837769,5,1.9735893249511718,http://localhost:8002,1768821518,,False,1,08dff189,2026-01-19_12-18-38,10.319286346435547,10.319286346435547,256431,sergio-XPS-15-9500,192.168.1.5,10.319286346435547,1,False,True,True,0.4761569778732009,0.47781667917332393,0.0,0.010287859440038183,08dff189 +0.00927190028988934,0.08293509652512027,3.394526243209839,5,0.5889779567718506,http://localhost:8002,1768821525,,False,1,2808180e,2026-01-19_12-18-45,3.3984148502349854,3.3984148502349854,256622,sergio-XPS-15-9500,192.168.1.5,3.3984148502349854,1,False,False,True,0.49092093640044654,0.16386227611297105,0.0,0.36495336114676485,2808180e +0.06414858633862171,0.1138840355665884,10.091642618179321,5,1.9286378383636475,http://localhost:8002,1768821539,,False,1,8b33e2a2,2026-01-19_12-18-59,10.095749855041504,10.095749855041504,256746,sergio-XPS-15-9500,192.168.1.5,10.095749855041504,1,False,True,False,0.664057104821503,0.380194482697527,0.0,0.0957856258135195,8b33e2a2 +0.04089344159161516,0.11588877886734197,3.399895191192627,5,0.5897929668426514,http://localhost:8002,1768821546,,False,1,2b3b0aad,2026-01-19_12-19-06,3.403998613357544,3.403998613357544,256911,sergio-XPS-15-9500,192.168.1.5,3.403998613357544,1,True,False,False,0.15162885621474814,0.015269709226466177,0.0,0.6005426046606002,2b3b0aad +0.06440335927000067,0.125496108332261,10.158945322036743,5,1.9415269851684571,http://localhost:8002,1768821559,,False,1,8c1998de,2026-01-19_12-19-19,10.162839651107788,10.162839651107788,257030,sergio-XPS-15-9500,192.168.1.5,10.162839651107788,1,True,True,True,0.3692127966881518,0.23308318268023623,0.0,0.3773645637989277,8c1998de +0.0637132502302169,0.11234475429253714,9.987636089324951,5,1.9088503837585449,http://localhost:8002,1768821573,,False,1,52bacbb6,2026-01-19_12-19-33,9.991463661193848,9.991463661193848,257222,sergio-XPS-15-9500,192.168.1.5,9.991463661193848,1,False,True,False,0.6035565410217514,0.21880259661403342,0.0,0.18713153326839937,52bacbb6 +0.008343047226538839,0.08349130431035265,3.386183738708496,5,0.5885046482086181,http://localhost:8002,1768821579,,False,1,08c1ee35,2026-01-19_12-19-39,3.39007830619812,3.39007830619812,257399,sergio-XPS-15-9500,192.168.1.5,3.39007830619812,1,True,False,True,0.15926489447447112,0.017648992877564967,0.0,0.44224480118340653,08c1ee35 +0.007922541795615114,0.07887346048819885,3.468980550765991,5,0.5967342376708984,http://localhost:8002,1768821586,,False,1,d00c4e76,2026-01-19_12-19-46,3.472960948944092,3.472960948944092,257525,sergio-XPS-15-9500,192.168.1.5,3.472960948944092,1,True,False,True,0.07077078342680466,0.004051086507914577,0.0,0.46605997897727297,d00c4e76 +0.016055552163489285,0.08753651728221294,3.3815455436706543,5,0.5863098621368408,http://localhost:8002,1768821593,,False,1,bb72b916,2026-01-19_12-19-53,3.385627031326294,3.385627031326294,257655,sergio-XPS-15-9500,192.168.1.5,3.385627031326294,1,True,False,True,0.00406946269144004,0.024694902295496916,0.0,0.48724120796716147,bb72b916 +0.04101062641443912,0.11434949759329069,3.3144912719726562,5,0.5752715110778809,http://localhost:8002,1768821599,,False,1,c12ba2dc,2026-01-19_12-19-59,3.3184001445770264,3.3184001445770264,257771,sergio-XPS-15-9500,192.168.1.5,3.3184001445770264,1,True,False,True,0.11631707320987289,0.690466345723201,0.0,0.6724394280648069,c12ba2dc +0.00877838333494364,0.08577894245301848,3.401432514190674,5,0.589998722076416,http://localhost:8002,1768821606,,False,1,463a2384,2026-01-19_12-20-06,3.4053428173065186,3.4053428173065186,257879,sergio-XPS-15-9500,192.168.1.5,3.4053428173065186,1,True,False,True,0.22358777119494402,0.11342742897015146,0.0,0.42574884909601923,463a2384 +0.008258946852964685,0.07832593783541303,3.4435582160949707,5,0.5993115901947021,http://localhost:8002,1768821613,,False,1,9ec8a6c5,2026-01-19_12-20-13,3.447549343109131,3.447549343109131,257998,sergio-XPS-15-9500,192.168.1.5,3.447549343109131,1,True,False,True,0.00914625516134962,0.28951184233224014,0.0,0.4822045024114849,9ec8a6c5 +0.016055552163489285,0.08753651728221294,3.357020139694214,5,0.58282470703125,http://localhost:8002,1768821620,,False,1,c5e2ab01,2026-01-19_12-20-20,3.360861301422119,3.360861301422119,258136,sergio-XPS-15-9500,192.168.1.5,3.360861301422119,1,True,False,True,0.003475038037149451,0.29241480396041347,0.0,0.5570331572371645,c5e2ab01 +0.009030183622618133,0.06800810511996136,3.4037389755249023,5,0.5921475410461425,http://localhost:8002,1768821627,,False,1,791ed981,2026-01-19_12-20-27,3.4075520038604736,3.4075520038604736,258252,sergio-XPS-15-9500,192.168.1.5,3.4075520038604736,1,True,False,True,0.08655779066151734,0.3187645875435276,0.0,0.2687428540439976,791ed981 +0.008664940340048574,0.08581798715920706,3.501950263977051,5,0.6108397006988525,http://localhost:8002,1768821633,,False,1,f8442025,2026-01-19_12-20-33,3.5058133602142334,3.5058133602142334,258364,sergio-XPS-15-9500,192.168.1.5,3.5058133602142334,1,True,False,True,0.26385969784523366,0.10646638343274928,0.0,0.6888529567810926,f8442025 +0.013289181242042186,0.08277097527295318,3.2847726345062256,5,0.5695433616638184,http://localhost:8002,1768821640,,False,1,c4cc8356,2026-01-19_12-20-40,3.2885093688964844,3.2885093688964844,258479,sergio-XPS-15-9500,192.168.1.5,3.2885093688964844,1,True,False,True,0.0783907286407576,0.6144374684317566,0.0,0.49431837576833404,c4cc8356 +0.008558844366776789,0.08503058558440392,3.376376152038574,5,0.5869657039642334,http://localhost:8002,1768821647,,False,1,fb7bf10e,2026-01-19_12-20-47,3.380413770675659,3.380413770675659,258615,sergio-XPS-15-9500,192.168.1.5,3.380413770675659,1,True,False,True,0.19290877255165814,0.09975349505857617,0.0,0.6114422209758432,fb7bf10e +0.007997676431652,0.07780877475636923,3.3821396827697754,5,0.5890754699707031,http://localhost:8002,1768821654,,False,1,d2036b54,2026-01-19_12-20-54,3.386087417602539,3.386087417602539,258726,sergio-XPS-15-9500,192.168.1.5,3.386087417602539,1,True,False,True,0.045413006981742665,0.014462040606135707,0.0,0.43172761082245126,d2036b54 +0.009147368445442098,0.06969651955749985,3.374091148376465,5,0.5859436988830566,http://localhost:8002,1768821660,,False,1,50ea7f3b,2026-01-19_12-21-00,3.3778791427612305,3.3778791427612305,258841,sergio-XPS-15-9500,192.168.1.5,3.3778791427612305,1,True,False,True,0.05615414666061707,0.1767564331348277,0.0,0.294181079680786,50ea7f3b +0.008414440034646826,0.07859969916180594,3.3822972774505615,5,0.5889940738677979,http://localhost:8002,1768821667,,False,1,248f11ad,2026-01-19_12-21-07,3.3861117362976074,3.3861117362976074,258958,sergio-XPS-15-9500,192.168.1.5,3.3861117362976074,1,True,False,True,0.037929131718362014,0.08279922744979032,0.0,0.44895447738110594,248f11ad +0.008631855890798765,0.08171378358546351,3.3687093257904053,5,0.5860745429992675,http://localhost:8002,1768821674,,False,1,ed62f7dc,2026-01-19_12-21-14,3.372666835784912,3.372666835784912,259076,sergio-XPS-15-9500,192.168.1.5,3.372666835784912,1,True,False,True,0.1333628019047363,0.2729950555484231,0.0,0.39746071410829,ed62f7dc +0.008664940340048574,0.08499154087821534,3.371145248413086,5,0.5862448215484619,http://localhost:8002,1768821681,,False,1,d8907a1f,2026-01-19_12-21-21,3.375185012817383,3.375185012817383,259206,sergio-XPS-15-9500,192.168.1.5,3.375185012817383,1,True,False,True,0.2765606196671755,0.060003260056553154,0.0,0.5025665425204284,d8907a1f +0.009147368445442098,0.07229696373274716,3.3624093532562256,5,0.5846651554107666,http://localhost:8002,1768821687,,False,1,ebaac043,2026-01-19_12-21-27,3.366320848464966,3.366320848464966,259323,sergio-XPS-15-9500,192.168.1.5,3.366320848464966,1,True,False,True,0.04919576638833845,0.36820782546645486,0.0,0.32312205105133734,ebaac043 +0.008558844366776789,0.08503058558440392,3.3781065940856934,5,0.587260627746582,http://localhost:8002,1768821694,,False,1,a0894bc0,2026-01-19_12-21-34,3.3822152614593506,3.3822152614593506,259443,sergio-XPS-15-9500,192.168.1.5,3.3822152614593506,1,True,False,True,0.1994235733794807,0.15972291414455095,0.0,0.5977644425109412,a0894bc0 +0.008024895940958,0.07962534018744696,3.398592710494995,5,0.5916557788848877,http://localhost:8002,1768821701,,False,1,3498c1b8,2026-01-19_12-21-41,3.4023826122283936,3.4023826122283936,259554,sergio-XPS-15-9500,192.168.1.5,3.4023826122283936,1,True,False,True,0.1046266985888523,0.23508200526753675,0.0,0.5467266950434034,3498c1b8 +0.008024895940958,0.07962534018744696,3.4101011753082275,5,0.5957276344299316,http://localhost:8002,1768821707,,False,1,00fc5f6a,2026-01-19_12-21-47,3.4141347408294678,3.4141347408294678,259689,sergio-XPS-15-9500,192.168.1.5,3.4141347408294678,1,True,False,True,0.09816375424029757,0.40866092341544563,0.0,0.5397528720422529,00fc5f6a +0.008449143199810622,0.08349130431035265,3.4055111408233643,5,0.5931827545166015,http://localhost:8002,1768821714,,False,1,e98c02d1,2026-01-19_12-21-54,3.409532070159912,3.409532070159912,259816,sergio-XPS-15-9500,192.168.1.5,3.409532070159912,1,True,False,True,0.3140290686317056,0.052614998451672106,0.0,0.6465903750193005,e98c02d1 +0.008024895940958,0.07962534018744696,3.3723814487457275,5,0.5866386890411377,http://localhost:8002,1768821721,,False,1,c70f3f43,2026-01-19_12-22-01,3.3762624263763428,3.3762624263763428,259923,sergio-XPS-15-9500,192.168.1.5,3.3762624263763428,1,True,False,True,0.10014126954970229,0.42707748560882025,0.0,0.5502134276128419,c70f3f43 +0.008343047226538839,0.08349130431035265,3.3672409057617188,5,0.5856597900390625,http://localhost:8002,1768821728,,False,1,70400fbe,2026-01-19_12-22-08,3.371093511581421,3.371093511581421,260039,sergio-XPS-15-9500,192.168.1.5,3.371093511581421,1,True,False,True,0.16292741177177594,0.4548418182130589,0.0,0.5302300590456391,70400fbe +0.008664940340048574,0.08499154087821534,3.4183735847473145,5,0.5965535163879394,http://localhost:8002,1768821734,,False,1,4dcb599d,2026-01-19_12-22-14,3.4222280979156494,3.4222280979156494,260159,sergio-XPS-15-9500,192.168.1.5,3.4222280979156494,1,True,False,True,0.23726923927972388,0.4074643735298082,0.0,0.41001202937163644,4dcb599d +0.04068873330092939,0.11438501946884572,3.257974624633789,5,0.5640182018280029,http://localhost:8002,1768821741,,False,1,4228b5e1,2026-01-19_12-22-21,3.261892557144165,3.261892557144165,260291,sergio-XPS-15-9500,192.168.1.5,3.261892557144165,1,True,False,False,0.12333092543339132,0.5239761637260665,0.0,0.5745717593014468,4228b5e1 +0.06275857947195311,0.12652527218853557,9.750442743301392,5,1.8625127792358398,http://localhost:8002,1768821754,,False,1,3588064b,2026-01-19_12-22-34,9.754103899002075,9.754103899002075,260400,sergio-XPS-15-9500,192.168.1.5,9.754103899002075,1,False,True,True,0.10034065797370648,0.34091325083457025,0.0,0.6394382232363077,3588064b +0.040999537564886945,0.11588877886734197,3.285776138305664,5,0.5690357685089111,http://localhost:8002,1768821761,,False,1,11ccb158,2026-01-19_12-22-41,3.289609670639038,3.289609670639038,260569,sergio-XPS-15-9500,192.168.1.5,3.289609670639038,1,True,False,False,0.32864774599403973,0.14086017880721893,0.0,0.46819585706944256,11ccb158 +0.062252142887134154,0.11824393793048431,9.891753673553467,5,1.8906636714935303,http://localhost:8002,1768821774,,False,1,6fc2cbb9,2026-01-19_12-22-54,9.895762920379639,9.895762920379639,260704,sergio-XPS-15-9500,192.168.1.5,9.895762920379639,1,False,True,True,0.059161274748840434,0.21510105294599707,0.0,0.5189526304991655,6fc2cbb9 +0.035476033214537156,0.11817641701000778,3.285740613937378,5,0.5687613487243652,http://localhost:8002,1768821781,,False,1,d915205d,2026-01-19_12-23-01,3.289746046066284,3.289746046066284,260873,sergio-XPS-15-9500,192.168.1.5,3.289746046066284,1,True,False,False,0.4165672741815639,0.0010212040152359678,0.0,0.34076033139687656,d915205d +0.0640894002629319,0.11483863284111936,9.806191444396973,5,1.8735287666320801,http://localhost:8002,1768821794,,False,1,2f6a0de8,2026-01-19_12-23-14,9.809982538223267,9.809982538223267,260993,sergio-XPS-15-9500,192.168.1.5,9.809982538223267,1,False,True,True,0.5305871352962446,0.5562291603129679,0.0,0.19677826870589865,2f6a0de8 +0.008734210036141653,0.08345578243479762,3.3932855129241943,5,0.590654993057251,http://localhost:8002,1768821801,,False,1,75a6f03e,2026-01-19_12-23-21,3.3974790573120117,3.3974790573120117,261182,sergio-XPS-15-9500,192.168.1.5,3.3974790573120117,1,True,False,True,0.17403705065527203,0.05196087574793615,0.0,0.37230135627667593,75a6f03e +0.008024895940958,0.07962534018744696,3.372239828109741,5,0.586278247833252,http://localhost:8002,1768821807,,False,1,59bdf5af,2026-01-19_12-23-27,3.3761444091796875,3.3761444091796875,261290,sergio-XPS-15-9500,192.168.1.5,3.3761444091796875,1,True,False,True,0.0964007218643779,0.4285920164263687,0.0,0.5544150084923888,59bdf5af +0.007884233436756935,0.07784781946255781,3.391608476638794,5,0.5895267486572265,http://localhost:8002,1768821814,,False,1,181fa700,2026-01-19_12-23-34,3.3955013751983643,3.3955013751983643,261408,sergio-XPS-15-9500,192.168.1.5,3.3955013751983643,1,True,False,True,0.04616218689941105,0.4861882831078568,0.0,0.5658024954699784,181fa700 +0.008187554044856696,0.07781229758700277,3.379288911819458,5,0.5891064167022705,http://localhost:8002,1768821821,,False,1,8df7daf7,2026-01-19_12-23-41,3.383202314376831,3.383202314376831,261523,sergio-XPS-15-9500,192.168.1.5,3.383202314376831,1,True,False,True,0.02800972164203512,0.4596234327116702,0.0,0.5894305118437192,8df7daf7 +0.0080286377688869,0.07962181735681341,3.3880317211151123,5,0.5899625778198242,http://localhost:8002,1768821828,,False,1,d427a211,2026-01-19_12-23-48,3.3918912410736084,3.3918912410736084,261651,sergio-XPS-15-9500,192.168.1.5,3.3918912410736084,1,True,False,True,0.060058513373542344,0.4968017369460056,0.0,0.4546749796342963,d427a211 +0.04089344159161516,0.11588877886734197,3.2276556491851807,5,0.5582141876220703,http://localhost:8002,1768821834,,False,1,c83e898d,2026-01-19_12-23-54,3.2317638397216797,3.2317638397216797,261771,sergio-XPS-15-9500,192.168.1.5,3.2317638397216797,1,False,False,False,0.12734972085227625,0.3933923240644007,0.0,0.6218152533645911,c83e898d +0.07289971452610912,0.1312833201534554,8.918929815292358,5,1.6958380699157716,http://localhost:8002,1768821846,,False,1,34bfaecf,2026-01-19_12-24-06,8.923492193222046,8.923492193222046,261885,sergio-XPS-15-9500,192.168.1.5,8.923492193222046,1,True,True,True,0.02983245257805507,0.5541286918768669,0.0,0.5254000761733085,34bfaecf +0.008664940340048574,0.08424318400960076,3.3413267135620117,5,0.5809893608093262,http://localhost:8002,1768821853,,False,1,d28ff6ad,2026-01-19_12-24-13,3.3452816009521484,3.3452816009521484,262045,sergio-XPS-15-9500,192.168.1.5,3.3452816009521484,1,True,False,True,0.15364693264219786,0.5914356505484054,0.0,0.4346147311057641,d28ff6ad +0.00877838333494364,0.08577894245301848,3.4076058864593506,5,0.5933670043945313,http://localhost:8002,1768821860,,False,1,1bd5239a,2026-01-19_12-24-20,3.4112603664398193,3.4112603664398193,262180,sergio-XPS-15-9500,192.168.1.5,3.4112603664398193,1,True,False,True,0.22332206917987685,0.3526810869908701,0.0,0.5730079634012908,1bd5239a +0.03369141887914488,0.11024529401954712,3.2711544036865234,5,0.5658481121063232,http://localhost:8002,1768821867,,False,1,df514085,2026-01-19_12-24-27,3.2749204635620117,3.2749204635620117,262288,sergio-XPS-15-9500,192.168.1.5,3.2749204635620117,1,True,False,False,0.07573375090561205,0.2490247970846971,0.0,0.39959759235219644,df514085 +0.0623615517224065,0.124505989182175,9.822217226028442,5,1.8769143104553223,http://localhost:8002,1768821880,,False,1,05146970,2026-01-19_12-24-40,9.826353549957275,9.826353549957275,262409,sergio-XPS-15-9500,192.168.1.5,9.826353549957275,1,False,True,True,0.01074645265207852,0.13367849913726723,0.0,0.6632577581918868,05146970 +0.008024895940958,0.07962534018744696,3.3825182914733887,5,0.5886817455291748,http://localhost:8002,1768821886,,False,1,b670fd4b,2026-01-19_12-24-46,3.3867027759552,3.3867027759552,262594,sergio-XPS-15-9500,192.168.1.5,3.3867027759552,1,True,False,True,0.09944138895292096,0.44624592238486255,0.0,0.5462963698223894,b670fd4b +0.016572945800740084,0.09518707717328821,3.4130094051361084,5,0.5945035457611084,http://localhost:8002,1768821893,,False,1,be5f9b1d,2026-01-19_12-24-53,3.4169981479644775,3.4169981479644775,262711,sergio-XPS-15-9500,192.168.1.5,3.4169981479644775,1,True,False,True,0.6894923163644786,0.4890742911772068,0.0,0.4855884110840981,be5f9b1d +0.008251781930748131,0.08198754491185642,3.367403745651245,5,0.5863472938537597,http://localhost:8002,1768821900,,False,1,1c75b89c,2026-01-19_12-25-00,3.371392011642456,3.371392011642456,262819,sergio-XPS-15-9500,192.168.1.5,3.371392011642456,1,True,False,True,0.1150745104873075,0.32762735447067737,0.0,0.5208070473970087,1c75b89c +0.007922541795615114,0.07887346048819885,3.387901544570923,5,0.5906172752380371,http://localhost:8002,1768821907,,False,1,6340f2d6,2026-01-19_12-25-07,3.391674041748047,3.391674041748047,262936,sergio-XPS-15-9500,192.168.1.5,3.391674041748047,1,True,False,True,0.07997843641478165,0.4088133874043337,0.0,0.5627391657839758,6340f2d6 +0.007922541795615114,0.07887346048819885,3.368699312210083,5,0.585447120666504,http://localhost:8002,1768821913,,False,1,7ffe088b,2026-01-19_12-25-13,3.372554302215576,3.372554302215576,263058,sergio-XPS-15-9500,192.168.1.5,3.372554302215576,1,True,False,True,0.07055815208796122,0.07907086437131383,0.0,0.46815861739605075,7ffe088b +0.007922541795615114,0.07887346048819885,3.376523733139038,5,0.5873369693756103,http://localhost:8002,1768821920,,False,1,f252a3e6,2026-01-19_12-25-20,3.3803553581237793,3.3803553581237793,263185,sergio-XPS-15-9500,192.168.1.5,3.3803553581237793,1,True,False,True,0.06870328017999491,0.03579995978472439,0.0,0.5047711345804472,f252a3e6 +0.02490382433538609,0.09753449830381603,3.3904788494110107,5,0.5890470027923584,http://localhost:8002,1768821927,,False,1,edee0586,2026-01-19_12-25-27,3.394632577896118,3.394632577896118,263300,sergio-XPS-15-9500,192.168.1.5,3.394632577896118,1,True,False,True,0.0009275348433581271,0.031063654135949786,0.0,0.45979693397354415,edee0586 +0.008414440034646826,0.07859969916180594,3.4424312114715576,5,0.5994386196136474,http://localhost:8002,1768821934,,False,1,ef76bf22,2026-01-19_12-25-34,3.446359395980835,3.446359395980835,263418,sergio-XPS-15-9500,192.168.1.5,3.446359395980835,1,True,False,True,0.03189500271483534,0.0016098696097210721,0.0,0.49583062638649,ef76bf22 +0.007922541795615114,0.07887346048819885,3.445734977722168,5,0.6011210918426514,http://localhost:8002,1768821941,,False,1,f647f452,2026-01-19_12-25-41,3.449845314025879,3.449845314025879,263537,sergio-XPS-15-9500,192.168.1.5,3.449845314025879,1,True,False,True,0.06868764014547389,0.08690693420543298,0.0,0.42607348522409366,f647f452 +0.007922541795615114,0.07887346048819885,3.4003381729125977,5,0.5931215763092041,http://localhost:8002,1768821947,,False,1,92f45b9b,2026-01-19_12-25-47,3.404212713241577,3.404212713241577,263672,sergio-XPS-15-9500,192.168.1.5,3.404212713241577,1,True,False,True,0.0725476612921705,0.08215869338356059,0.0,0.4170900315829183,92f45b9b +0.007922541795615114,0.07887346048819885,3.3902156352996826,5,0.5895231246948243,http://localhost:8002,1768821954,,False,1,7349d65b,2026-01-19_12-25-54,3.3941099643707275,3.3941099643707275,263792,sergio-XPS-15-9500,192.168.1.5,3.3941099643707275,1,True,False,True,0.07327612908475345,0.09511260866628114,0.0,0.42047687042215837,7349d65b +0.008631855890798765,0.08246566328471161,3.3953261375427246,5,0.5909849166870117,http://localhost:8002,1768821961,,False,1,dbe6de3f,2026-01-19_12-26-01,3.39920711517334,3.39920711517334,263908,sergio-XPS-15-9500,192.168.1.5,3.39920711517334,1,True,False,True,0.1407896872320316,0.07713209075208538,0.0,0.38134661262033054,dbe6de3f +0.007922541795615114,0.07887346048819885,3.451122760772705,5,0.6020939826965332,http://localhost:8002,1768821968,,False,1,7d295e31,2026-01-19_12-26-08,3.4549307823181152,3.4549307823181152,264023,sergio-XPS-15-9500,192.168.1.5,3.4549307823181152,1,True,False,True,0.06788051560872134,0.03348309120485185,0.0,0.476817937122221,7d295e31 diff --git a/src/run_tuning.py b/src/run_tuning.py new file mode 100644 index 0000000..7b5a25f --- /dev/null +++ b/src/run_tuning.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +"""Run hyperparameter tuning for OCR services.""" + +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": { + "ports": [8002], + "payload_fn": paddle_ocr_payload, + "search_space": PADDLE_OCR_SEARCH_SPACE, + "config_keys": PADDLE_OCR_CONFIG_KEYS, + "name": "PaddleOCR", + }, + "doctr": { + "ports": [8003], + "payload_fn": doctr_payload, + "search_space": DOCTR_SEARCH_SPACE, + "config_keys": DOCTR_CONFIG_KEYS, + "name": "DocTR", + }, + "easyocr": { + "ports": [8002], + "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("--samples", type=int, default=64, help="Number of samples") + args = parser.parse_args() + + cfg = SERVICES[args.service] + print(f"\n{'='*50}") + print(f"Hyperparameter Tuning: {cfg['name']}") + print(f"Samples: {args.samples}") + print(f"{'='*50}\n") + + # Check workers + healthy = check_workers(cfg["ports"], cfg["name"]) + + # Create trainable and run tuning + trainable = create_trainable(cfg["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()