Todos los artículos

Enseñando a una máquina a hablar aranés

Publicado 16 ago 20268 min de lectura
  • Aranés
  • Montaña
  • IA

Ideas clave

  • Maladeta Studio lleva en paralelo dos esfuerzos de IA en aranés que no se comunican entre sí: un proyecto de corpus que alimenta un fine-tune de Salamandra-7B y un artículo académico, y Condò, un agente LoRA sobre Qwen3.8-27B — no comparten pipeline ni modelo.
  • Condò está entrenado para llamar a seis herramientas de consulta determinista para hechos de diccionario, conjugación verbal y gramática en lugar de memorizarlos, la misma filosofía de anclaje que se usa en el agente de reservas de WhatsApp de Lueira.
  • Condò v2 (30.485 ejemplos de entrenamiento, 32,33 $ y 9,83 horas en una H100 alquilada) logra 97,9% de acierto en llamadas a herramientas, 99,1% de fidelidad y 100% de evitación de activación indebida — pero sigue siendo privado, funcionando solo en LM Studio y un cliente de chat local, todavía no público.

El Val d'Aran tiene unos 10.000 habitantes, tres lenguas cooficiales y aproximadamente 35.000 hablantes de aranés en todo el mundo si cuentas a todo el que se ha ido. El aranés es una variedad del occitano gascón, y es el tipo de lengua que aparece en el membrete del ayuntamiento y en el currículo escolar, pero que no aparece, en ninguna cantidad relevante, en los datos de entrenamiento de GPT-4, Claude, Gemini ni de ningún otro modelo de propósito general. Pídele a uno de ellos que conjugue un verbo en aranés y obtendrás algo dicho con total seguridad y completamente erróneo. Sencillamente no hay suficiente texto ahí fuera.

Maladeta Studio tiene su sede en el Val d'Aran, y a lo largo de los últimos meses hemos acabado llevando dos esfuerzos separados para hacer algo con esa brecha. Quiero escribir sobre ambos con honestidad, incluida la parte que resulta un poco incómoda de admitir: no se comunican entre sí. No a propósito, ni como una estrategia inteligente de cubrir apuestas — son simplemente dos equipos distintos dentro del mismo estudio pequeño, trabajando sobre el mismo problema de escasez subyacente, que todavía no han tenido la conversación sobre si deberían fusionarse.

1. Dos apuestas para el mismo problema

El primer esfuerzo es el proyecto de Corpus Aranés, llamado internamente ai-aranes. Es un backend y una interfaz para recopilar, curar, trocear y exportar un corpus en lengua aranesa, construido para eventualmente hacer fine-tuning de Salamandra-7B — el modelo fundacional abierto centrado en catalán/castellano del Barcelona Supercomputing Center. El stack es Python y FastAPI, Celery para el pipeline de procesamiento, Postgres con pgvector para almacenamiento y búsqueda por similitud, y sentence-transformers para embeddings. El prellenado por traducción automática pasa por DeepL, excepto — y esta es una política deliberada y documentada — que el prellenado con DeepL se salta por completo para documentos en aranés como idioma origen, porque DeepL no soporta el aranés lo bastante bien como para arriesgarse a contaminar el corpus con borradores malos. Cada decisión metodológica de ese tipo se documenta como un ADR numerado, porque este trabajo alimenta un artículo académico que estamos enviando a LREC-COLING, y un artículo necesita que sus decisiones sean defendibles, no solo recordadas.

El segundo esfuerzo es Condò, que sale de un repositorio distinto, aranes-agent-finetune. Condò es un fine-tune LoRA de Qwen3.8-27B, entrenado como agente de uso de herramientas y traductor catalán↔aranés. El nombre viene de Jusèp Condò Sambeat (1867–1919), el primer autor en escribir aranés literario, cuyo "Vocabulari aranés" de 1915 es lo más parecido que tiene la lengua a un texto fundacional. Es el primer nombre de lo que llamamos "Era Votz" — una convención de nomenclatura que empareja cada modelo de IA en aranés con una figura histórica que de verdad hizo avanzar la lengua, en lugar de con un número de versión.

Estos dos proyectos no comparten pipeline de corpus, familia de modelo, ni metodología de evaluación. Uno alimenta un artículo sobre un modelo fundacional catalán-castellano; el otro es un agente independiente construido sobre un modelo base completamente distinto. No creo que eso sea una fortaleza que pueda reclamar. Es una descripción honesta de lo que pasa cuando un estudio de este tamaño decide que un problema importa lo suficiente como para atacarlo dos veces antes de que nadie haya tenido tiempo de preguntarse si debería atacarse una sola vez.

2. Enseñar a un modelo qué consultar en lugar de qué memorizar

La decisión de ingeniería más interesante está en la arquitectura de Condò, y merece la pena explicarla porque es la parte que generaliza. El enfoque obvio para enseñar a un modelo pequeño una lengua de pocos recursos es meter a presión vocabulario, tablas de verbos y reglas gramaticales en sus pesos mediante fine-tuning. También es casi el peor enfoque posible, porque eso es exactamente el tipo de contenido con el que los modelos alucinan cuando la lengua es escasa — un modelo que ha visto un verbo aranés conjugado correctamente dos veces en el entrenamiento inventará alegremente una tercera conjugación, equivocada, con total seguridad.

Así que Condò no intenta memorizar nada de eso. En su lugar, está entrenado para reconocer cuándo una pregunta necesita una consulta al diccionario, una conjugación verbal o una regla gramatical, y para llamar a una de seis CLIs de consulta determinista en busca de la respuesta — herramientas que viven en un repositorio de "skills" separado y que simplemente devuelven el hecho correcto, siempre, porque no están generando nada. El modelo solo aprende, directamente mediante entrenamiento, las cosas que genuinamente no se pueden consultar en una tabla: fluidez, fraseo natural, y traducción a nivel de frase entre catalán y aranés.

Es la misma idea sobre la que escribí cuando el agente de WhatsApp de Lueira empezó a usar llamadas a herramientas tipadas en lugar de dejar que el modelo generara libremente acciones de reserva — no dejes que el modelo sea la fuente de verdad para nada que tenga una fuente de verdad real. Es curioso ver el mismo instinto arquitectónico aparecer tanto en un sistema de reserva de clases de kayak como en una consulta de conjugación verbal, pero es la misma apuesta: los modelos son buenos con el lenguaje y malos con los hechos, así que construye la costura entre ambos explícitamente en lugar de esperar que el modelo que tienes delante resulte saber ambas cosas.

Una versión simplificada de cómo se ve eso en la práctica:

User: Com se conjuga "anar" en preterit?

Model: [calls] conjugate(verb="anar", tense="preterit", lang="oc-aranese")
Tool: {"jo": "anè", "tu": "anères", "eth/era": "anè", ...}
Model: "Jo anè, tu anères, eth/era anè..."

El modelo decidió qué herramienta llamar y redactó la respuesta. No inventó la tabla de conjugación.

3. Lo que v2 acertó de verdad, en números

Hemos publicado dos checkpoints hasta ahora: condo-27b-lora-v1 y el actual condo-27b-lora-v2. v2 se reentrenó con un conjunto de datos más grande — 30.485 ejemplos en total, con tres fuentes institucionales-aranesas nuevas añadidas: publicaciones de noticias del Conselh Generau d'Aran, leyes del Parlament de Catalunya y edictos de notificación de e-TAULER. Esa mezcla importa más de lo que podría parecer — el texto gubernamental y legal es denso, formal, y consistentemente aranés correcto, que es exactamente el tipo de señal que necesita un modelo pequeño cuando la alternativa es raspar cualquier texto informal que exista.

El propio entrenamiento: LoRA rango 16, alpha 16, sobre Qwen3.8-27B, en una H100 de 80GB alquilada en RunPod. El tiempo real fue de 9,83 horas. El coste real fue de 32,33 $. La pérdida final de evaluación fue de 0,05652, la mejor de las 22 ejecuciones de evaluación registradas durante el entrenamiento.

La evaluación se hizo sobre una muestra estratificada de 416 ejemplos en 50 categorías. Puntuaciones de v2: 97,9% de acierto en llamadas a herramientas, 99,1% de fidelidad, y 100% de evitación de activación indebida — no llamar a una herramienta cuando no debería — medido sobre un subconjunto de 272 ejemplos. Comparado con v1, esas cifras están planas o ligeramente mejoradas: v1 ya había dado el salto de 82,1% a 98,1% en acierto de llamadas a herramientas, de 91,6% a 98,8% en fidelidad, y de 28,9% a 100% en evitar la activación indebida. La lectura honesta es que el gran salto ocurrió en v1 — pasar de una línea base sin entrenar a un modelo que sabe de forma fiable cuándo recurrir a una herramienta. El trabajo de v2 fue consolidar ese comportamiento con más datos, y más institucionales, y lo consiguió, sin retroceder en nada. Es una historia menos dramática que un segundo gran salto, pero es la historia correcta: no quieres que tu segundo checkpoint sea emocionante, quieres que sea estable.

4. Dónde vive esto hoy, y dónde todavía no

Condò funciona hoy en dos sitios: LM Studio, usando su soporte nativo de MLX en Apple Silicon, y una interfaz de chat en el navegador que construimos con un cliente conectado a herramientas en lugar de un simple prompt de chat. Esa distinción importa — un prompt desnudo delante de este modelo tiene dos modos de fallo específicos: alucina vocabulario cuando no puede llamar a una herramienta, y a veces responde en el idioma equivocado porque nada en un prompt sencillo fija con firmeza cuál debería usar. El cliente conectado a herramientas soluciona ambos directamente, dándole al modelo un sitio donde consultar cosas y convirtiendo el idioma de destino en una parte explícita y forzada de la conversación en lugar de una inferencia.

Ese trabajo alimenta una app de cara al público llamada enaranes, un diccionario y traductor, y también hay Claude Agent Skills publicadas para consultas de diccionario, conjugación verbal y gramática aranesa — un repositorio pequeño con su propio pipeline de publicación, deliberadamente mantenido separado del trabajo de entrenamiento del modelo para que pueda publicarse según su propio calendario.

Lo que todavía no es público es el propio Condò. Los checkpoints del modelo viven en un hub privado de HuggingFace, y por ahora es explícitamente de uso interno exclusivo. La superficie pública de este trabajo hoy es enaranes y las Claude skills — no el modelo base. Y el proyecto de corpus todavía no ha publicado ningún producto en absoluto; su resultado ahora mismo es un artículo enviado y un conjunto de datos curado y creciente que puede o no acabar alimentando algún día la misma familia de modelos sobre la que está construido Condò.

El aranés tiene aproximadamente 35.000 hablantes. Eso es una minoría real incluso dentro del occitano, que en sí mismo es una lengua minoritaria. Ningún laboratorio de IA de propósito general va a dedicar tiempo de ingeniería a una lengua de ese tamaño — no hay caso comercial para ello a la escala en la que operan los laboratorios. Si algo va a existir que permita a un hablante de aranés usar IA en su propia lengua, o ayude a un aprendiz, o le dé a una institución como el Conselh Generau una herramienta que de verdad entienda su propio aranés legal y administrativo, es mucho más probable que venga de un estudio físicamente incrustado en el lugar donde vive la lengua que de cualquier otro sitio. 32 $ de tiempo de GPU y 9,83 horas no es mucho gastar para averiguarlo.

Me gustaría terminar esto con una historia limpia sobre cómo el proyecto de corpus y Condò están convergiendo en una única estrategia coherente de IA aranesa. No lo están, todavía no, y no creo que fingir lo contrario ayudara a nadie. Dos equipos miraron el mismo problema de escasez y construyeron dos respuestas distintas, y ahora mismo eso es simplemente cierto, y ligeramente ineficiente, y también en parte el objetivo — que una lengua tan pequeña reciba dos intentos independientes y reales de apoyo de IA ya es más de lo que recibiría en casi cualquier otro sitio.