Proyecto de Investigación

PhinGPT: Un Modelo de Lenguaje Especializado para el Sector Financiero

Los grandes modelos de lenguaje están revolucionando diversos campos del conocimiento. Este trabajo busca entrenar un modelo especializado para el sector financiero optimizando costos computacionales con un entrenamiento eficiente.

FinanzasIALLMsPLNQLoRA
English | Español

Características Principales

Visión General

El análisis de texto financiero presenta desafíos únicos que requieren modelos de lenguaje especializados. PhinGPT aborda esta brecha proporcionando un modelo de lenguaje eficiente y de código abierto específicamente diseñado para aplicaciones financieras.

Aprovechamos QLoRA (Quantized Low-Rank Adaptation), una técnica de fine-tuning de última generación que reduce drásticamente los requisitos de memoria y costos de entrenamiento mientras mantiene el rendimiento del modelo. Este enfoque hace que el PLN avanzado sea accesible para investigadores y profesionales con recursos computacionales limitados.

Motivación

Los modelos de lenguaje tradicionales requieren recursos computacionales sustanciales para el fine-tuning, lo que los hace inaccesibles para muchos grupos de investigación y pequeñas organizaciones. Además, los modelos de propósito general a menudo tienen dificultades con la terminología específica del dominio y los contextos encontrados en documentos financieros.

PhinGPT fue desarrollado para:

Metodología

Arquitectura del Modelo

PhinGPT se basa en una arquitectura transformer con las siguientes características:

Fine-Tuning con QLoRA

QLoRA permite un fine-tuning eficiente a través de:

  1. Cuantización de 4 bits: Reduce la huella de memoria en ~75%
  2. Adaptadores de Bajo Rango: Entrena solo un pequeño subconjunto de parámetros
  3. Cuantización Doble: Compresión adicional sin pérdida de rendimiento
  4. Optimizadores Paginados: Maneja picos de memoria durante el entrenamiento

Esta combinación permite entrenar en GPUs de grado consumidor (ej. RTX 3090, A100 40GB) en lugar de requerir clústeres multi-GPU.

Evaluación

Tareas

PhinGPT fue evaluado en dos tareas principales de PLN financiero:

1. Reconocimiento de Entidades Nombradas (NER)

Identificación y clasificación de entidades en texto financiero:

2. Clasificación de Texto

Categorización de documentos financieros por:

Resultados

TareaPhinGPTBaselineMejora
NER Financiero87.3% F182.1% F1+5.2%
Clasificación de Sentimiento89.5% Acc85.2% Acc+4.3%
Clasificación de Documentos91.2% Acc88.7% Acc+2.5%

Baseline: LLM de propósito general sin fine-tuning financiero

Hallazgos Clave

Aplicaciones

PhinGPT puede aplicarse a varios casos de uso financieros:

Procesamiento Automatizado de Documentos

Inteligencia de Mercado

Gestión de Riesgos

Investigación y Análisis

Implementación Técnica

Detalles de Entrenamiento

# Ejemplo de configuración QLoRA
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM

# Cargar modelo base en 4-bit
model = AutoModelForCausalLM.from_pretrained(
    "base-model",
    load_in_4bit=True,
    device_map="auto"
)

# Configurar LoRA
lora_config = LoraConfig(
    r=16,  # Rango LoRA
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM"
)

# Aplicar LoRA
model = get_peft_model(model, lora_config)

Inferencia

Usar PhinGPT es sencillo con la API de Hugging Face:

from transformers import AutoTokenizer, AutoModelForCausalLM

# Cargar modelo
tokenizer = AutoTokenizer.from_pretrained("RobertGomezDP/phingpt-cls")
model = AutoModelForCausalLM.from_pretrained("RobertGomezDP/phingpt-cls")

# Generar predicciones
text = "Apple Inc. reportó ganancias del Q3 de $1.2B..."
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, max_length=100)
result = tokenizer.decode(outputs[0])

Trabajo Futuro

Estamos desarrollando activamente PhinGPT con mejoras planificadas:

Corto plazo (2024-2025)

Largo plazo

Comunidad y Contribuciones

PhinGPT es un proyecto de código abierto, y damos la bienvenida a contribuciones:

Cita

Si usas PhinGPT en tu investigación, por favor cita:

@article{phingpt2024,
  title={PhinGPT: Fine-Tuning Eficiente de Modelos de Lenguaje para Aplicaciones Financieras},
  author={Peña, Tuli and Gomez, Robert and Gutiérrez, Francisco José},
  journal={En Revisión},
  year={2024}
}

Agradecimientos

Este trabajo fue apoyado por la Universidad Nacional de Colombia a través del programa semillero de investigación SIMG (Semillero de Investigación en Modelos Generativos). Agradecemos a la comunidad de código abierto por las herramientas y conjuntos de datos que hicieron posible este proyecto.

Agradecimientos especiales a:


¿Quieres aprender más o colaborar? Contáctanos a través del sitio web de SIMG o únete a nuestras discusiones comunitarias en Hugging Face.

Publicaciones

PhinGPT: Fine-Tuning Eficiente de Modelos de Lenguaje para Aplicaciones Financieras

Tuli Peña, Robert Gomez, Francisco José Gutiérrez

En Revisión 20 de junio de 2024 preprint

Recursos

Equipo y Colaboradores

Investigadores

  • Tuli Peña
  • Robert Gomez
  • Francisco José Gutiérrez

Colaboradores

Grupo de Investigación SIMG

Universidad Nacional de Colombia

Con el apoyo de