Tots els articles

Ensenyant a una màquina a parlar aranès

Publicat 16 d’ag. del 20268 min de lectura
  • Aranès
  • Muntanya
  • IA

Idees clau

  • Maladeta Studio porta en paral·lel dos esforços d'IA en aranès que no es comuniquen entre si: un projecte de corpus que alimenta un fine-tune de Salamandra-7B i un article acadèmic, i Condò, un agent LoRA sobre Qwen3.8-27B — no comparteixen pipeline ni model.
  • Condò està entrenat per cridar sis eines de consulta determinista per a fets de diccionari, conjugació verbal i gramàtica en lloc de memoritzar-los, la mateixa filosofia d'ancoratge que es fa servir a l'agent de reserves de WhatsApp de Lueira.
  • Condò v2 (30.485 exemples d'entrenament, 32,33 $ i 9,83 hores en una H100 llogada) assoleix 97,9% d'encert en crides a eines, 99,1% de fidelitat i 100% d'evitació d'activació indeguda — però encara és privat, funcionant només a LM Studio i un client de xat local, encara no públic.

La Val d'Aran té uns 10.000 habitants, tres llengües cooficials i aproximadament 35.000 parlants d'aranès a tot el món si comptes tothom que se n'ha anat. L'aranès és una varietat de l'occità gascó, i és el tipus de llengua que apareix a la capçalera de l'ajuntament i al currículum escolar, però que no apareix, en cap quantitat rellevant, a les dades d'entrenament de GPT-4, Claude, Gemini ni de cap altre model de propòsit general. Demana a un d'ells que conjugui un verb en aranès i obtindràs alguna cosa dita amb tota seguretat i completament equivocada. Senzillament no hi ha prou text per aquí.

Maladeta Studio té la seu a la Val d'Aran, i al llarg dels darrers mesos hem acabat portant dos esforços separats per fer alguna cosa amb aquesta bretxa. Vull escriure sobre tots dos amb honestedat, inclosa la part que resulta una mica incòmoda d'admetre: no es comuniquen entre si. No a propòsit, ni com una estratègia intel·ligent de cobrir apostes — són simplement dos equips diferents dins del mateix estudi petit, treballant sobre el mateix problema d'escassetat subjacent, que encara no han tingut la conversa sobre si haurien de fusionar-se.

1. Dues apostes per al mateix problema

El primer esforç és el projecte de Corpus Aranès, anomenat internament ai-aranes. És un backend i una interfície per recopilar, curar, trossejar i exportar un corpus en llengua aranesa, construït per fer eventualment fine-tuning de Salamandra-7B — el model fundacional obert centrat en català/castellà del Barcelona Supercomputing Center. L'stack és Python i FastAPI, Celery per al pipeline de processament, Postgres amb pgvector per a emmagatzematge i cerca per similitud, i sentence-transformers per a embeddings. El preemplenament per traducció automàtica passa per DeepL, excepte — i això és una política deliberada i documentada — que el preemplenament amb DeepL se salta completament per a documents en aranès com a idioma origen, perquè DeepL no suporta l'aranès prou bé com per arriscar-se a contaminar el corpus amb esborranys dolents. Cada decisió metodològica d'aquest tipus es documenta com un ADR numerat, perquè aquesta feina alimenta un article acadèmic que estem enviant a LREC-COLING, i un article necessita que les seves decisions siguin defensables, no només recordades.

El segon esforç és Condò, que surt d'un repositori diferent, aranes-agent-finetune. Condò és un fine-tune LoRA de Qwen3.8-27B, entrenat com a agent d'ús d'eines i traductor català↔aranès. El nom ve de Jusèp Condò Sambeat (1867–1919), el primer autor a escriure aranès literari, el "Vocabulari aranés" de 1915 del qual és el més semblant que té la llengua a un text fundacional. És el primer nom del que anomenem "Era Votz" — una convenció de nomenclatura que aparella cada model d'IA en aranès amb una figura històrica que de debò va fer avançar la llengua, en lloc d'un número de versió.

Aquests dos projectes no comparteixen pipeline de corpus, família de model, ni metodologia d'avaluació. Un alimenta un article sobre un model fundacional català-castellà; l'altre és un agent independent construït sobre un model base completament diferent. No crec que això sigui una fortalesa que pugui reclamar. És una descripció honesta del que passa quan un estudi d'aquesta mida decideix que un problema importa prou com per atacar-lo dues vegades abans que ningú hagi tingut temps de preguntar-se si s'hauria d'atacar una sola vegada.

2. Ensenyar a un model què consultar en lloc de què memoritzar

La decisió d'enginyeria més interessant és a l'arquitectura de Condò, i val la pena explicar-la perquè és la part que generalitza. L'enfocament obvi per ensenyar a un model petit una llengua de pocs recursos és encabir vocabulari, taules de verbs i regles gramaticals als seus pesos mitjançant fine-tuning. També és gairebé el pitjor enfocament possible, perquè això és exactament el tipus de contingut amb què els models al·lucinen quan la llengua és escassa — un model que ha vist un verb aranès conjugat correctament dues vegades a l'entrenament inventarà alegrement una tercera conjugació, equivocada, amb total seguretat.

Així que Condò no intenta memoritzar res d'això. En lloc d'això, està entrenat per reconèixer quan una pregunta necessita una consulta al diccionari, una conjugació verbal o una regla gramatical, i per cridar una de sis CLIs de consulta determinista a la recerca de la resposta — eines que viuen en un repositori de "skills" separat i que simplement retornen el fet correcte, sempre, perquè no estan generant res. El model només aprèn, directament mitjançant entrenament, les coses que genuïnament no es poden consultar en una taula: fluïdesa, redacció natural, i traducció a nivell de frase entre català i aranès.

És la mateixa idea sobre la qual vaig escriure quan l'agent de WhatsApp de Lueira va començar a fer servir crides a eines tipades en lloc de deixar que el model generés lliurement accions de reserva — no deixis que el model sigui la font de veritat per a res que tingui una font de veritat real. És curiós veure el mateix instint arquitectònic aparèixer tant en un sistema de reserva de classes de caiac com en una consulta de conjugació verbal, però és la mateixa aposta: els models són bons amb el llenguatge i dolents amb els fets, així que construeix la costura entre tots dos explícitament en lloc d'esperar que el model que tens davant resulti saber totes dues coses.

Una versió simplificada de com es veu això a 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 model va decidir quina eina cridar i va redactar la resposta. No va inventar la taula de conjugació.

3. Què va encertar v2 de debò, en xifres

Hem publicat dos checkpoints fins ara: condo-27b-lora-v1 i l'actual condo-27b-lora-v2. v2 es va reentrenar amb un conjunt de dades més gran — 30.485 exemples en total, amb tres fonts institucionals-araneses noves afegides: publicacions de notícies del Conselh Generau d'Aran, lleis del Parlament de Catalunya i edictes de notificació d'e-TAULER. Aquesta barreja importa més del que podria semblar — el text governamental i legal és dens, formal, i consistentment aranès correcte, que és exactament el tipus de senyal que necessita un model petit quan l'alternativa és raspar qualsevol text informal que existeixi.

El mateix entrenament: LoRA rang 16, alpha 16, sobre Qwen3.8-27B, en una H100 de 80GB llogada a RunPod. El temps real va ser de 9,83 hores. El cost real va ser de 32,33 $. La pèrdua final d'avaluació va ser de 0,05652, la millor de les 22 execucions d'avaluació registrades durant l'entrenament.

L'avaluació es va fer sobre una mostra estratificada de 416 exemples en 50 categories. Puntuacions de v2: 97,9% d'encert en crides a eines, 99,1% de fidelitat, i 100% d'evitació d'activació indeguda — no cridar una eina quan no hauria de fer-ho — mesurat sobre un subconjunt de 272 exemples. Comparat amb v1, aquestes xifres estan planes o lleugerament millorades: v1 mateix ja havia fet el salt de 82,1% a 98,1% en encert de crides a eines, de 91,6% a 98,8% en fidelitat, i de 28,9% a 100% en evitar l'activació indeguda. La lectura honesta és que el gran salt va passar a v1 — passar d'una línia base sense entrenar a un model que sap de manera fiable quan recórrer a una eina. La feina de v2 va ser consolidar aquest comportament amb més dades, i més institucionals, i ho va aconseguir, sense retrocedir enlloc. És una història menys dramàtica que un segon gran salt, però és la història correcta: no vols que el teu segon checkpoint sigui emocionant, vols que sigui estable.

4. On viu això avui, i on encara no

Condò funciona avui en dos llocs: LM Studio, fent servir el seu suport natiu de MLX a Apple Silicon, i una interfície de xat al navegador que vam construir amb un client connectat a eines en lloc d'un simple prompt de xat. Aquesta distinció importa — un prompt nu davant d'aquest model té dos modes de fallada específics: al·lucina vocabulari quan no pot cridar una eina, i de vegades respon en l'idioma equivocat perquè res en un prompt senzill fixa amb fermesa quin hauria de fer servir. El client connectat a eines soluciona tots dos directament, donant-li al model un lloc on consultar coses i convertint l'idioma de destinació en una part explícita i forçada de la conversa en lloc d'una inferència.

Aquesta feina alimenta una app de cara al públic anomenada enaranes, un diccionari i traductor, i també hi ha Claude Agent Skills publicades per a consultes de diccionari, conjugació verbal i gramàtica aranesa — un repositori petit amb el seu propi pipeline de publicació, deliberadament mantingut separat de la feina d'entrenament del model perquè pugui publicar-se segons el seu propi calendari.

El que encara no és públic és el mateix Condò. Els checkpoints del model viuen en un hub privat de HuggingFace, i per ara és explícitament d'ús intern exclusiu. La superfície pública d'aquesta feina avui és enaranes i les Claude skills — no el model base. I el projecte de corpus encara no ha publicat cap producte en absolut; el seu resultat ara mateix és un article enviat i un conjunt de dades curat i creixent que pot o no acabar alimentant algun dia la mateixa família de models sobre la qual està construït Condò.

L'aranès té aproximadament 35.000 parlants. Això és una minoria real fins i tot dins de l'occità, que en si mateix és una llengua minoritària. Cap laboratori d'IA de propòsit general dedicarà temps d'enginyeria a una llengua d'aquesta mida — no hi ha cas comercial per a això a l'escala en què operen els laboratoris. Si alguna cosa arriba a existir que permeti a un parlant d'aranès fer servir IA en la seva pròpia llengua, o ajudi un aprenent, o doni a una institució com el Conselh Generau una eina que de debò entengui el seu propi aranès legal i administratiu, és molt més probable que vingui d'un estudi físicament incrustat al lloc on viu la llengua que de qualsevol altre lloc. 32 $ de temps de GPU i 9,83 hores no és gaire per gastar per esbrinar-ho.

M'agradaria acabar això amb una història neta sobre com el projecte de corpus i Condò estan convergint en una única estratègia coherent d'IA aranesa. No ho estan, encara no, i no crec que fingir el contrari ajudés ningú. Dos equips van mirar el mateix problema d'escassetat i van construir dues respostes diferents, i ara mateix això és simplement cert, i lleugerament ineficient, i també en part l'objectiu — que una llengua tan petita rebi dos intents independents i reals de suport d'IA ja és més del que rebria a gairebé qualsevol altre lloc.