Cómo Azercell entrenó un modelo en azerbaiyano con Amazon SageMaker AI

Azercell trabajó con AWS para adaptar un modelo base a azerbaiyano, resolviendo retos de tokenización y uso eficiente de GPU. La solución combinó un tokenizador monolingüe, CPT sobre Llama 3.2 1B y fine-tuning con LoRA.

Por Redaccion TD
Cómo Azercell entrenó un modelo en azerbaiyano con Amazon SageMaker AI

Contexto y desafío

Azercell Telecom LLC, el principal operador de telecomunicaciones de Azerbaiyán, buscó desarrollar un modelo de lenguaje grande (LLM) en azerbaiyano para casos de uso en telecomunicaciones y un chatbot orientado al cliente. El reto principal fue adaptar modelos base (foundation models) a una lengua morfológicamente rica y con datos de entrenamiento limitados, sin una guía previa para entrenamientos eficientes en azerbaiyano.

En una colaboración de seis semanas con el AWS Generative AI Innovation Center, Azercell y AWS montaron un marco de entrenamiento en Amazon SageMaker AI que integró optimizaciones de kernel y mejoras en tokenización, logrando aumentos notables en eficiencia y reducción de uso de memoria.

Resumen de la solución

La solución se estructuró en tres etapas secuenciales, cada una generando artefactos que alimentan la siguiente:

  • Tokenizer development: creación de un tokenizador eficiente especializado en azerbaiyano.
  • Continued pre-training (CPT): adaptación de un FM (Llama 3.2 1B) al idioma azerbaiyano usando entrenamiento distribuido y optimizaciones de Liger Kernels en SageMaker AI.
  • Supervised fine-tuning con LoRA: afinamiento para convertir el modelo preentrenado en un asistente conversacional usando Low-Rank Adaptation (LoRA).

Cada etapa se ejecutó como un trabajo de entrenamiento de Amazon SageMaker AI lanzado desde SageMaker Unified Studio; los jobs aprovisionan instancias Amazon EC2 que se terminan al finalizar, lo que evita costos por clúster inactivo. Los datos y artefactos se almacenaron en Amazon S3, las métricas de entrenamiento se siguieron con TensorBoard en SageMaker AI y las métricas de sistema con Amazon CloudWatch.

Por qué la tokenización importó tanto

Lenguas como el azerbaiyano son morfológicamente ricas: una sola palabra puede incorporar sufijos que en inglés se expresan con varias palabras. Los tokenizadores optimizados para inglés tienden a fragmentar esas formas complejas, reduciendo la cantidad de información real que cabe en una ventana de contexto fija.

Para mitigarlo, el equipo entrenó un tokenizador monolingüe usando Byte-Level Byte-Pair Encoding (BBPE). Empezar desde bytes en lugar de conjuntos de caracteres predefinidos permitió cubrir caracteres propios del azerbaiyano sin necesitar definiciones manuales del alfabeto. Se exploraron tamaños de vocabulario entre 50k y 100k tokens para equilibrar fragmentación y señal de entrenamiento para tokens raros. Finalmente, se seleccionó un vocabulario de 100k tokens.

La calidad de modelado se verificó usando Bits-Per-Byte (BPB), métrica apropiada cuando las vocabularios difieren, porque mide la calidad de predicción a nivel de byte. El modelo con tokenizador personalizado logró un BPB de 0.5795 en el conjunto de validación, frente a 0.6830 del tokenizador base, lo que confirma que la mayor eficiencia de codificación no sacrificó la capacidad de modelado.

Además de la calidad, la mejora práctica fue sustancial: la “fertilidad” —promedio de tokens por palabra— cayó de 3.22 con el tokenizador Llama 3.2 de base a 1.59 con el tokenizador monolingüe, es decir, una mejora de 2× en eficiencia de codificación. En términos prácticos, con la ventana de contexto del modelo (por ejemplo, Llama 3.2 con 128k tokens) esto permite que aproximadamente el doble de texto en azerbaiyano quepa dentro del mismo contexto.

Continued pre-training (CPT) y optimizaciones a nivel de kernel

Para adaptar la capacidad de comprensión del FM al azerbaiyano, el equipo realizó continued pre-training sobre Llama 3.2 1B. Aquí intervinieron optimizaciones a nivel de kernel usando Liger Kernels, que permitieron aprovechar mejor la memoria GPU y aumentar el throughput.

En una instancia ml.p5.48xlarge, las optimizaciones de kernel entregaron un 23% más de throughput de entrenamiento y redujeron el uso máximo de memoria GPU en un 58%. Aunque para esta prueba de concepto a escala de 1B parámetros el entrenamiento distribuido no fue estrictamente necesario, el marco está pensado para escalar: el entrenamiento distribuido será clave cuando Azercell crezca a modelos mayores.

De modelo preentrenado a asistente conversacional con LoRA

Tras el CPT, el modelo puede predecir tokens en azerbaiyano, pero todavía no está afinado para diálogo. En la tercera etapa se aplicó LoRA (Low-Rank Adaptation), una técnica de fine-tuning eficiente en parámetros que permite transformar el modelo en un asistente conversacional entrenando una fracción de los parámetros totales.

El uso de LoRA facilita despliegues iterativos y reduce costos y tiempo de afinamiento, lo que resulta especialmente útil en entornos con datos etiquetados limitados o cuando se requieren actualizaciones frecuentes del comportamiento conversacional.

Arquitectura modular y beneficios operativos

La arquitectura diseñada es modular: cada etapa puede optimizarse de forma independiente y sus resultados son reutilizables. Por ejemplo, las mejoras en tokenización benefician todas las fases siguientes, y las configuraciones de CPT pueden transferirse a múltiples tareas de fine-tuning.

Además, ejecutar cada fase como jobs puntuales en SageMaker AI ofrece ventajas operativas claras: aprovisionamiento bajo demanda de EC2, facturación por tiempo de cómputo real y gestión centralizada de métricas y artefactos en S3, TensorBoard y CloudWatch.

Herramientas y agradecimientos

El marco se apoyó en herramientas open source ampliamente usadas en la industria: PyTorch, Hugging Face Transformers y Liger Kernels. El proyecto también contó con la contribución de múltiples personas que ayudaron a hacerlo posible: Aiham Taleb, Arefeh Ghahvechi, Manav Choudhary, Rohit Thekkanal, Daz Akbarov, Jamila Jamilova, Ross Povelikin, Almas Moldakanov, Christelle Xu e Ivan Khvostishkov.

Conclusiones y relevancia para América Latina

Este caso muestra un enfoque reproducible para trabajar con lenguas de recursos limitados o morfológicamente complejas: invertir en tokenización monolingüe y en optimizaciones de ejecución puede multiplicar la eficiencia del modelo sin sacrificar calidad. Para empresas en América Latina que enfrentan retos similares con lenguas indígenas o dialectales, el aprendizaje clave es combinar mejoras en la representación del texto (tokenización) con optimizaciones en la infraestructura (kernels, entrenamiento distribuido y técnicas de fine-tuning eficientes como LoRA) para obtener modelos útiles y costeables.

Si su organización explora LLMs en idiomas con escasa cobertura, este tipo de marco modular y basado en procesos repetibles —y en herramientas abiertas— ofrece una hoja de ruta práctica para pasar de prueba de concepto a producción.

Fuente original: AWS ML Blog