Skip to main content

lowresource-llm-evaluation

Librería para trabajar con lenguas minoritarias / low‑resource, proporcionando:

  1. Un módulo robusto para preparar y limpiar corpus (LanguageDataset).
  2. Un benchmark multicomponente para evaluar modelos en tareas lingüísticas reales.
  3. Herramientas para generar datasets sintéticos (ortografía, QA, huecos, instructivo).
  4. Módulos de exploración y visualización de resultados (consola, HTML, LaTeX, gráficas).

El objetivo es ofrecer un marco reproducible para investigación y evaluación de LLMs en lenguas con pocos recursos.


1. LanguageDataset

LanguageDataset es el núcleo de la parte de preprocesamiento.

Funcionalidades principales

  • Carga de datos desde:

    • carpetas locales (.txt, .csv, .json)
    • Tatoeba (descarga automática)
    • OPUS monolingüe (streaming .gz)
    • listas de strings
    • dataframes de pandas
    • datasets de HuggingFace
  • Limpieza avanzada:

    • normalización Unicode
    • eliminación de URLs, HTML, hashtags, emojis
    • control de repeticiones
    • filtrado por longitud mínima/máxima
    • anonimización (emails, teléfonos)
    • preservación de etiquetas especiales
  • Filtrado por idioma con FastText LID‑176:

    • batch prediction
    • top‑k para lenguas minoritarias
    • reconstrucción de índices por dataset
  • Preparación para entrenamiento:

    • tokenización en batch
    • división train/test
    • concatenación de líneas respetando el origen del dataset
  • Estadísticas:

    • distribución de tokens
    • media, mediana, percentiles, moda aproximada

2. Benchmark

El benchmark evalúa un modelo en cinco tareas lingüísticas:

2.1. Calidad de lengua (generación)

Evalúa naturalidad y adecuación al idioma objetivo.

Métricas:

  • TTR
  • entropía léxica
  • solapamiento de n‑gramas
  • frecuencia de vocabulario objetivo
  • comparación con lexicones de otras lenguas

2.2. Traducción directa

Traducción desde otra lengua hacia la lengua objetivo.

Métricas:

  • BLEU
  • chrF

2.3. Round‑trip translation

Traducción ida‑y‑vuelta pasando por lenguas intermedias.

Métricas:

  • BLEU
  • chrF

2.4. Vocabulario (huecos)

Predicción de palabras faltantes en frases enmascaradas.

Métricas:

  • accuracy
  • accuracy_lower
  • Levenshtein

2.5. Ortografía (corrección)

Corrección de errores anotados.

Métricas:

  • BLEU
  • chrF
  • Levenshtein
  • precisión, recall, F1
  • errores corregidos, no corregidos y nuevos

Cada tarea devuelve:

  • ejemplos concretos
  • medias agregadas
  • métricas específicas

3. Generación de datasets sintéticos

La librería incluye generadores de datasets para entrenamiento supervisado:

3.1. Dataset ortográfico

generateDatasetOrtografico
Genera frases con errores ortográficos, léxicos o gramaticales.

3.2. Dataset ortográfico anotado

generateDatasetOrtograficoAnotado
Genera errores marcados con etiquetas XML <err t=...>...</err>.

3.3. Dataset de huecos

generateDatasetHuecos
Crea frases con <mask> y la palabra faltante correspondiente.

3.4. Dataset instructivo

generateInstructivoDataset
Genera pares <|user|> ... <|assistant|> ... siguiendo plantillas por idioma.

3.5. Dataset QA instructivo

generateInstructivoQADataset
Genera pares pregunta‑respuesta en formato instructivo.

Todos los generadores permiten:

  • control de número de ejemplos
  • reintentos automáticos
  • guardado opcional en CSV

4. Exploración y visualización de resultados

La librería incluye herramientas para analizar y presentar resultados del benchmark.

4.1. Consola

pretty_print_results
Informe formateado con colores ANSI, tablas y ejemplos.

4.2. HTML

generate_html_report
Informe interactivo con:

  • tablas comparativas
  • ejemplos paralelos por modelo
  • leyendas de errores
  • estilos integrados

4.3. LaTeX

generate_latex_snippet_completo
generate_latex_snippet_compacto
Generación de fragmentos LaTeX para papers.

4.4. Gráficas

generar_grafico_barras
Comparación de métricas entre modelos y lenguas usando:

  • Seaborn
  • Plotly

4.5. Exploración estructural

explorar_estructuras
Muestra un árbol de tareas y métricas disponibles en un JSON de resultados.


Instalación

pip install lowresource-llm-evaluation

Ejemplo mínimo

Preparar un dataset

from lowresource_llm_evaluation import LanguageDataset
from transformers import AutoTokenizer

ds = LanguageDataset(language="asturiano", initializeTatoeba=True)
ds.filter_by_language(0.7)
ds.summary()

tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3-8B-Instruct")
train, test = ds.split(tokenizer=tokenizer, max_length=512)

Ejecutar el benchmark

from lowresource_llm_evaluation import benchmark
resultados = benchmark(
    model=model,
    tokenizer=tokenizer,
    lang_eval="asturiano",
    df_textos=df_pareado,
    list_textos_round=list_textos,
    df_huecos=df_huecos,
    df_anotado=df_errores,
    lexicon_target=lex_ast,
    lexicons_comparison=lex_otros
)

Explorar resultados

from lowresource_llm_evaluation import pretty_print_results
pretty_print_results(resultados)

Generar un dataset sintético

from lowresource_llm_evaluation import generateDatasetHuecos
df_huecos = generateDatasetHuecos(ds)

Licencia

MIT (o la que corresponda en tu repositorio).

Metadata

Release files for lowresource-llm-evaluation 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lowresource-llm-evaluation 1.0.0
File Size Uploaded
lowresource_llm_evaluation-1.0.0.tar.gz 38.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lowresource-llm-evaluation 1.0.0
File Interpreter ABI Platform
lowresource_llm_evaluation-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 77.2 kB

Release files / lowresource_llm_evaluation-1.0.0.tar.gz

Download URL lowresource_llm_evaluation-1.0.0.tar.gz
Size 38.0 kB
Tags Source
SHA-256 checksum
How to use checksums
688bc807411045946c611677b30958e5d91aad8ed787e2052256c26cf240e7ae
BLAKE2b-256 checksum
How to use checksums
dac5ad8442bc0e5297fe16ae44b3472c27c27ba0fdde928930d42afdf434b3c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / lowresource_llm_evaluation-1.0.0-py3-none-any.whl

Download URL lowresource_llm_evaluation-1.0.0-py3-none-any.whl
Size 39.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ff345c05070b1641fe880c5ed138964de8843fe3139c4135ade1a87b979a96a
BLAKE2b-256 checksum
How to use checksums
3a9486a64b4c7f424328ee6cc77efe61c3b73c1201ea340637598517d1aa35cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page