Site icon Arnau Dunjó Workspace

Experiències amb la I.A en local (a 2025)

Introducció

Com sabreu pel post anterior, finalment m’he fet amb un equip suficientment potent per moure models d’I.A Open Source (lliures).

A hores d’ara hi ha objectius que he pogut complir i d’altres que encara necessiten feina, i d’altres que, amb l’experiència obtinguda, potser no valen la pena.

Intentaré no fer-ho excessivament tècnic i, per això, he decidit que el millor enfocament és repassar quines eren les meves expectatives i mirar si s’han complert, si es podran complir a curt termini o si estaven totalment equivocades.

Objectius

Crear un assistent per a la feina

Aquest ja us puc avançar que és un dels punts on he aconseguit més avenços. Òbviament era el que em corria més pressa, ja que treballo un mínim de 8 h al dia, i per tant era profitós des del moment 0. He dissenyat i implementat… bé, ha sigut implementat totalment per LLMs amb VibeCoding (si a millorat molt desde el meu post sobre l’assumpte).

Encara no el tinc prou acabat com hauria volgut, ja que la idea és que no només tingués coneixement dels manuals, llistes de distribució i contingut divers, sinó també de les reunions i notes preses. Però aquí m’estic trobant amb diverses limitacions. Primer, hauria de gravar les reunions. Si ho faig al meu ordinador, hauria d’avisar que ho estic fent i seria estrany. Si activo la gravació del Teams, haig de poder descarregar-la i buscar un model per fer la transcripció. Perquè fos realment útil, hauria d’entrenar-lo perquè sabés qui està parlant en cada moment. No seria tècnicament un problema, però és incòmode i poc escalable. D’altra banda, tot i que em va molt bé prendre les notes al Microsoft OneNote, perquè les tinc disponibles allà on sigui i puc adjuntar qualsevol tipus de contingut… Encara no m’he posat seriosament a exportar-les, ja que és un programa privatiu i el mètode d’exportació és difícilment automatitzable.

Tot i aquestes limitacions, i la deficient qualitat de la documentació, estic satisfet amb el resultat. No treballa per mi, però m’ajuda a trobar les causes dels errors i a desencallar-me quan estic encallat. Segurament més endavant (sobretot per vacances) miraré d’entrenar-lo amb el codi de l’aplicació per tal que em pugui dir quines modificacions s’han de fer a una implementació per adaptar-la a les necessitats que li descrigui (somiar és gratis, de moment…)

Aquest projecte també ha servit per crear “l’esquelet” que em serveix per tots els agents que vulgui fer (agent personal, agent financer…)

Assistent personal

Aquest no ha avançat tant com em pensava, i per explicar-ho us haig de fer cinc cèntims de l’entorn que m’he trobat quan m’he endinsat en el fantàstic (sí, sense cometes, però a la vegada complicat) món dels LLMs Open Source de DIY (Do It Yourself).

Com en la resta del món Open Source, hi ha molta varietat, és molt modular, adaptable, econòmic… però té un preu: la dispersió i la complexitat de fer-ho encaixar tot. He tingut i tinc molts problemes de compatibilitat entre versions de llibreries. Surten nous LLMs que fan servir capacitats que no estan suportades pels programes que permeten inferir amb LLMs. Quan finalment aquests programes permeten fer servir aquestes funcionalitats noves, resulta que són incompatibles amb els teus drivers o, si són compatibles amb l’última versió, aquests són incompatibles amb un altre punt del flux… Després d’invertir-hi molt de temps, et dones per vençut i acabes conformant-te amb menys funcionalitats i “matar” l’assumpte fins que estigui millor suportat.

Aquest problema, afegit als que us explico més endavant, fa que la distància entre els serveis privats i el que puguis fer tu localment sigui més gran del que pensava, ja que no només hi ha la que esperava pel límit dels recursos computacionals.

No només per compatibilitat: els models que pots executar en una màquina personal, per molt potent que sigui, són models petits, poc capaços i poc intel·ligents. Una part la pots compensar millorant les instruccions que els dones, però arriba un punt que “d’on no n’hi ha, no en raja”. No descarto que part de la culpa sigui meva, que estigui fent alguna cosa malament, però aquesta limitació coincideix amb les proves que havia fet amb models Open Source al núvol (Qwen, DeepSeek…). Són econòmics però al cap de poques consultes ja trobava a faltar ChatGPT: moltes respostes incorrectes, sovint arribaves a un carreró sense sortida quan el corregies… Podríeu pensar que no cal que siguin capaços de guanyar tornejos de matemàtiques, però estem parlant de models que, fins i tot invertint temps a raonar, no sempre saben generar un fitxer estructurat (JSON). Si és un document que vols veure en pantalla, el corregeixes, però si serveix per comunicar-se amb un servei extern, equival a no recuperar la informació. Com veureu més endavant, això afecta molt més àmbits del que pot semblar.

A tot això cal sumar-hi que m’he adonat que hi ha molta més feina de la que em pensava en els serveis privats, més enllà del propi model LLM. Sense anar més lluny, la primera funcionalitat que van llençar al mercat: la cerca per internet. He implementat la funció i funciona prou bé, però tot i seguir el mateix flux, els serveis al núvol tenen alguna cosa més que fa que fallin molt poc, mentre que el “meu” codi va bé però no és brillant. Us pot semblar que no té gaire secret, però us puc assegurar que en té, i que el fet que el model sigui poc intel·ligent torna a ser crucial. La manera com els LLM accedeixen a internet és semblant a la nostra: generen un text que passen a un cercador, obtenen URLs, i obren pàgina per pàgina. Un model hàbil escriuria una frase de cerca més acurada i optimitzada per SEO. Si és poc capaç, ni la frase és bona. I això sense parlar de la dificultat que tenen per cridar a dues funcions diferents quan ho necessiten.

Per exemple, li vaig haver d’especificar que, si li demano comparar dues coses i no té prou informació, ha de fer una cerca per cada element. Fins que no l’hi vaig dir, cercava directament pàgines on comparessin els dos objectes. Si li demanava que comparés un Mercedes Classe A amb un Audi A5, cercava comparatives directes. Ara ho fa més o menys bé, però sovint no. I si primer ha d’esbrinar la data actual per decidir quina informació és la més recent, tampoc sempre ho fa.

Una altra part de la culpa crec que està en les limitacions del meu ordinador, ja que em restringeix el nombre de resultats que puc cercar i processar, i de tots aquests només uns pocs arriben al LLM. A més, per privacitat (i economia), no faig servir Google sinó Brave API…

Entenc també que els serveis professionals deuen guardar resultats de cerques, ja que tenen un volum enorme d’usuaris i segur que hi ha cerques molt similars entre ells. No és el meu cas, i això implica que cada consulta ha de sortir a internet i barallar-me per decidir quins resultats són bons, quins accessibles, etc.

Cal esmentar també que no hi ha gaire models bons que siguin multimodals (que acceptin text i imatges). Els que hi ha són antics o massa grans per moure’ls en el meu ordinador. Fa poc vaig veure que vLLM accepta, en beta, adormir i despertar models carregats a la GPU. Això podria facilitar les coses per canviar de model segons el tipus de consulta, però com que la qualitat de les respostes tampoc és bona per separat, no ho he provat.

A més, crec que, més enllà de les puntuacions dels benchmarks, els models privats són més espavilats o molt més afinats que els Open Source. Potser és només que no els dono prou instruccions, però l’experiència em fa sospitar que no és només això.

I sincerament, aquí m’he quedat encallat. És ben senzill: no aconsegueixo apropar-me a la qualitat de resposta dels serveis privats, tot i no demanar-los tasques complicades. Per algunes consultes no és rellevant i podria fer-les amb l’assistent local, però com que sovint acabo als privats quan es complica una mica, la inèrcia fa que m’oblidi que ho puc fer localment.

No m’he donat per vençut. Hi ha moltes coses que puc provar o millorar (canviar el model, repensar les instruccions, el flux de dades…). Però és un aspecte on no esperava trobar tanta diferència i m’ha decebut.

Evitar la censura

Tampoc aquí hi ha gaire avenç, i això sí que ha estat una sorpresa desagradable. No hi ha gaire models sense censura. Només n’he trobat un de decent (sorprenentment, un model de Google) i no he sabut integrar-lo amb el meu projecte. És sorprenent que en un entorn tan lliure i alternatiu com l’Open Source sigui tan difícil trobar aquest tipus de material. En qualsevol cas, com deia, el fet que no siguin gaire intel·ligents penalitza en tot. Per què vull un model sense censura si no em puc refiar que la cerca d’internet sigui prou bona?

Assistent per Vibe Coding

Aquest era el segon assistent que volia fer, i ara mateix és del que menys he pogut avançar. La idea era que funcionés com les aplicacions de Vibe Coding de Claude CLI o Codex, mitjançant una interfície de terminal amb accés a tots els fitxers del projecte. Doncs bé, no he aconseguit comunicació entre aquestes interfícies i el meu projecte. Cal aclarir que aquestes interfícies també són Open Source, així que podria ser un problema d’encaix. També crec que, encara que aconseguís fer-los encaixar, amb els models Qwen que faig servir habitualment, tampoc els faria servir per les limitacions abans comentades. Potser servirien per tasques bàsiques (copiar fitxers, esborrar-los, aixecar contenidors Docker, gestionar repositoris…), però difícilment per programar res decent.

Aprenentatge

Acabem amb un objectiu aconseguit. Amb aquests projectes estic aprenent molt, i tot i que les possibilitats no són totes les que m’hauria imaginat, sí que tenen moltes aplicacions. Si ens fixem només en els LLMs, només em falta aprendre a entrenar superficialment (“finetune”) algun model, de manera que no hagi de buscar en documentació sinó que tingui cert coneixement específic memoritzat.

Conclusió

Els assistents que tinc saben resumir textos, però encara no són prou intel·ligents perquè resultin útils. Resumir pot ser suficient per algunes coses, però no per fer-me oblidar els serveis privats. Per tant, de moment faig servir el projecte per buscar informació en diferents fonts sobre temes laborals, però a nivell personal no em resulta útil.

Potser d’aquí uns mesos o anys, si milloren els models Open Source i les respostes dels serveis privats es contaminen amb propostes comercials no demanades o no fossin prou imparcials (cosa que ja passa), tindria sentit muntar el teu propi agent. Però avui, amb el preu de les subscripcions, no té gaire sentit fer servir el teu propi assistent quan la privacitat no és essencial.

Passa una cosa semblant amb els serveis que utilitzen I.A per invertir (borsa, criptomonedes…). Podria ser un projecte, però si els LLM que puc moure no són prou intel·ligents per coses menors, no els faré servir per donar-me consells d’inversió, ja que hi ha serveis econòmics que fan que no valgui la pena reinventar la roda.

Resumint, o els fas servir per una tasca molt mecànica i senzilla que no puguis fer d’una altra manera, o avui dia et generarà més utilitat qualsevol servei al núvol.

Exit mobile version