Guia Pràctica
- Navegació ràpida
- Definir el problema
- Triar l’enfocament
- Aprenentatge supervisat clàssic
- Millorar models d’aprenentatge clàssic
- Sistemes LLM
- RAG i agents
- Producció i avaluació LLM
- Cicle complet i MLOps
- Tècniques especialitzades
- Ètica, biaix i seguretat
- Referències
Guia de decisió pràctica per a projectes d’intel·ligència artificial, des de la definició del problema fins al desplegament. Cobreix tant aprenentatge automàtic clàssic com sistemes basats en LLMs, i ofereix criteris per triar entre els diferents enfocaments.
Complement: Per a anàlisi matemàtica detallada amb fórmules, visualitzacions interactives i exemples de codi, consulta Guia d’aplicació i diagnòstic.
Navegació ràpida
Per tipus de problema
- 📊 Dades tabulars estructurades → Guia de selecció ML
- 🖼️ Imatges, text, àudio, vídeo → Multimodal
- 🤖 Text lliure, instruccions, accions → Sistemes LLM
- ❓ No sé quin enfocament usar → Triar l’enfocament
- 🔍 Clustering o reducció de dimensionalitat → Aprenentatge no supervisat
- 💡 Recomanadors → Sistemes de recomanació
- 🧠 Tasca que requereix raonament complex → Models raonadors
- 🏠 Privacitat o cost fix → Models locals
- 🤖 Automatitzar tasques multi-pas → Agents i orquestració
- 🐛 El model no aprèn → Estratègies de depuració
- 📈 Necessito més dades? → Decidir si calen més dades
Definir el problema
Procés de disseny
Segueix aquests passos:
- Defineix els teus objectius - Quina mètrica d’error utilitzaràs? Quin valor objectiu vols assolir?
- Crea un pipeline complet ràpidament - No perdis temps perfeccionant. Primer fes que funcioni d’extrem a extrem.
- Identifica els colls d’ampolla - Diagnostica quines parts funcionen malament i per què.
- Millora incrementalment - Fes canvis petits basats en el que has observat: més dades, ajustar paràmetres, canviar algoritmes.
Triar l’enfocament
La decisió no és binària. Existeix un contínuum d’opcions que va des de regles fixes fins a agents complexos. L’objectiu és trobar el punt on el cost (computació, dades, latència, complexitat operacional) justifica el benefici.
Prova sempre un baseline senzill abans de decidir: una part significativa dels equips que fan fine-tuning o construeixen agents podrien obtenir resultats equivalents amb enfocaments més simples.
El contínuum d’opcions
| Opció | Quan és la millor elecció | Cost/Complexitat |
|---|---|---|
| Regles i heurístiques | Problema ben definit, espai de casos petit | Molt baix |
| ML clàssic | Dades tabulars, classificació estable amb etiquetes | Baix |
| Embeddings + classificador | Text o imatges, inferència ràpida i barata | Baix-Mig |
| Model petit afinat (SLM) | Tasca específica, latència baixa, privacitat | Mig |
| LLM API (model estàndard) | Tasques de text complexes, iteració ràpida | Mig |
| LLM API (model raonador) | Problemes que requereixen raonament multi-pas | Mig-Alt |
| Agents | Tasques multi-pas amb decisions adaptatives | Alt |
Quan usar ML clàssic
| Situació | Raó |
|---|---|
| Dades tabulars amb etiquetes | Models basats en arbres i regressió superen sistemàticament els LLMs |
| Classificació estable amb dades etiquetades | ML clàssic és més ràpid, barat i reproduïble |
| Inferència d’alta freqüència (<100ms) | LLMs rarament assoleixen aquesta latència |
| Requisits estrictes de privacitat sense hardware local | Evitar enviar dades per APIs externes |
| Restriccions de cost a alt volum | LLMs a escala gran tenen un cost per consulta alt |
Quan usar LLMs
| Situació | Raó |
|---|---|
| Entrades de text lliure no estructurat | LLMs processen llenguatge natural de forma nativa |
| Taxonomies que canvien sovint | Actualitzar el prompt és molt més ràpid que re-entrenar |
| Comportament “obert” (respostes variades) | ML clàssic necessita un espai de sortida fix |
| Raonament complex o multi-pas | Models raonadors (o3, Gemini 2.5, DeepSeek-R1) per a problemes difícils |
| Workflows d’extrem a extrem sobre text | Substitueix pipelines llargs de NLP tradicional |
| Tasques que requereixen accions o eines | Agents amb tool calling |
| Enteniment complex amb poc context | Few-shot és suficient quan no tens dades etiquetades |
| Entrades multimodals (imatge, àudio, vídeo+text) | Models multimodals natius |
Opcions intermèdies
Sovint la millor solució és una combinació:
- Embeddings + classificador: representa text com a vector, classifica amb ML clàssic (ràpid, barat)
- LLM per etiquetar + ML per inferir: usa un LLM per generar dades d’entrenament, entrena un model petit
- Model petit afinat (SLM): models com Phi-4, Gemma 3, Llama 3.x (petits) entrenats sobre un domini específic, molt més barats que un LLM gran; accessibles localment via Ollama
- Destil·lació: usa un LLM gran com a professor per entrenar un model petit de producció
- Routing híbrid: model raonador per a casos complexos, model ràpid per a casos simples
💡 Per a la decisió detallada amb casos d’ús concrets, consulta LLM vs. ML tradicional.
Un cop triada la direcció, segueix el camí corresponent. Recorda que molts projectes reals combinen les dues aproximacions (vegeu Opcions intermèdies més amunt).
→ Si tries ML clàssic: Aprenentatge supervisat clàssic → Millorar models → Cicle complet i MLOps
→ Si tries LLMs: Sistemes LLM → RAG i agents → Producció i avaluació LLM
Aprenentatge supervisat clàssic
Separació de dades: Train/Validation/Test
📝 Nota: Per detalls sobre la divisió de dades, validació creuada (K-Fold) i validació de models, consulta la Guia d’aplicació.
Abans de començar, separa les teves dades en tres conjunts:
- Entrenament (60-80%): Per entrenar el model i ajustar els pesos
- Validació (10-20%): Per ajustar hiperparàmetres i decidir quan aturar l’entrenament
- Test (10-20%): Per avaluar el rendiment final del model
Regla d’or: Mai entrenis amb dades de test. Són sagrades i només s’utilitzen al final per mesurar el rendiment real.
Underfitting i Overfitting
📝 Nota: Per una anàlisi matemàtica detallada de biaix i variància, consulta la Guia d’aplicació.
- Underfitting: El model és massa simple i no captura els patrons importants. Error alt tant en entrenament com en test.
- Overfitting: El model memoritza els exemples d’entrenament però no generalitza. Error baix en entrenament, error alt en test.
- Model correcte: Error acceptable tant en entrenament com en test.
Diagnòstic ràpid:
- Error train ALT + Error test ALT → Underfitting (model massa simple)
- Error train BAIX + Error test ALT → Overfitting (model massa complex o poques dades)
- Error train BAIX + Error test BAIX → Model correcte ✅
Mètriques de rendiment
La mètrica que escullis guiarà totes les decisions futures. Considera sempre què necessita l’aplicació per ser útil, segura o atractiva.
Precisió/Error: La més bàsica, però no sempre la millor.
Precision i Recall: Útils quan tens classes desbalancejades.
-
Precision: De les deteccions que el model ha fet, quantes són correctes? $$\text{Precision} = \frac{\text{Deteccions correctes}}{\text{Total de deteccions}}$$
-
Recall: De tots els casos reals, quants ha detectat el model? $$\text{Recall} = \frac{\text{Deteccions correctes}}{\text{Total de casos reals}}$$
Exemple: un test mèdic per una malaltia rara (1 de cada milió de persones). Si el model sempre diu “no té la malaltia”, té 99.9999% de precisió però és inútil. Necessitem precision i recall per avaluar-lo correctament.
F-score: Combina precision i recall en un sol número:
$$F = \frac{2 \times \text{precision} \times \text{recall}}{\text{precision} + \text{recall}}$$
Calibració de probabilitats: Les probabilitats que prediu el model han de reflectir freqüències reals. Un model ben calibrat que diu “70% de probabilitat” ha d’encertar aproximadament el 70% dels casos. Utilitza Platt scaling o isotonic regression per calibrar, i ECE (Expected Calibration Error) per mesurar-ho.
Ajust de llindar de decisió: El llindar per defecte (0.5) rarament és òptim. Ajusta’l sobre el conjunt de validació per optimitzar el compromís entre precision i recall que necessita el teu cas d’ús (ex. minimitzar falsos negatius en diagnòstics mèdics, controlar la taxa de falsos positius en detecció de frau).
Cobertura: Fracció d’exemples que el model pot processar (pot refusar-se quan no està segur).
Models base (Baseline)
📝 Nota: Si treballes amb clustering, reducció de dimensionalitat o recomanadors, consulta les seccions específiques més endavant.
Guia de selecció d’algoritme
💡 Baseline trivial: Abans de res, prova sempre un baseline mínim (classe majoritària per classificació, mitjana per regressió) per tenir un punt de referència.
| Tipus de dades | Primera opció | Opcions addicionals a comparar |
|---|---|---|
| Dades tabulars | Regressió Logística / Lineal | Gradient Boosting (XGBoost, LightGBM), baselines neuronals (TabNet, FT-Transformer) |
| Text | TF-IDF + Regressió Logística | Transformer preentrenat (millor qualitat) |
| Imatges | CNN o ViT preentrenat | Fine-tuning eficient (LoRA/QLoRA) amb models més grans |
| Àudio | Model preentrenat especialitzat | Fine-tuning o CNN sobre espectrogrames |
| Sèries temporals | Models estadístics (ARIMA, Prophet) | Gradient boosting amb features temporals |
Notes sobre la selecció:
- Dades tabulars: No hi ha una divisió fixa per nombre de features que determini l’algoritme. L’enfocament recomanat és avaluar per validació: prova un model lineal (ràpid, interpretable), gradient boosting (robust i potent) i un baseline neuronal tabular, i tria el que doni millors resultats a la pràctica.
- Text: TF-IDF + Regressió és sorprenentment efectiu i ràpid per prototips. Per qualitat superior, usa Transformers o embeddings d’un LLM.
- Imatges/Àudio: Models preentrenats són la primera opció. Fine-tuning eficient (LoRA, QLoRA) i adaptació quantitzada permeten treballar amb models grans en recursos limitats.
- Sèries temporals: Models estadístics són baselines ràpids i efectius. Per problemes complexos, considera gradient boosting amb features temporals.
Regles d’or:
- El tipus de dades orienta l’algoritme, però la validació decideix.
- Ordre per dades tabulars: model lineal → gradient boosting → baseline neuronal tabular → compara per validació.
- Imatges/Text/Àudio: prefereix models preentrenats; PEFT i quantització redueixen el cost d’adaptació.
- Poc temps/recursos: opcions ràpides (TF-IDF per text, models petits preentrenats per imatges).
Eines recomanades:
- ML clàssic: Scikit-learn
- Gradient boosting: XGBoost, LightGBM, CatBoost
- Transformers i models preentrenats: HuggingFace
Transfer Learning
No sempre cal entrenament des de zero. Reutilitza models preentrenats.
Estratègies d’aplicació:
- Feature extraction: congela el model preentrenat, només entrena la capa final. Útil amb poques dades (<1000 exemples).
- Fine-tuning: descongela algunes o totes les capes i reentrena amb learning rate baix. Útil amb més dades (>5000 exemples).
- PEFT (LoRA, QLoRA): ajusta només una petita part dels paràmetres (menys memòria GPU). Pràctica habitual per a models grans de 7B+ paràmetres.
- Gradual unfreezing: primer entrena la capa final, després descongela progressivament. Evita el “catastrophic forgetting”.
On trobar models preentrenats: HuggingFace Hub, repositoris oficials de TensorFlow/PyTorch.
Recomanació pràctica:
- Text: Transformers preentrenats (BERT, RoBERTa i models moderns). Fine-tuning eficient (LoRA/QLoRA) per adaptar models grans.
- Imatges: CNNs o Vision Transformers preentrenats (ResNet, EfficientNet, ViT). PEFT i adaptació quantitzada per models grans.
- Entrenar des de zero rarament és necessari; requereix un problema molt específic i grans volums de dades.
💡 Resum ràpid:
- Dades tabulars → compara model lineal, gradient boosting i baseline neuronal tabular; tria per validació
- Imatges/Text/Àudio → models preentrenats amb transfer learning o PEFT
- Un baseline simple ben entrenat sovint supera un model complex mal entrenat
Millorar models d’aprenentatge clàssic
📝 Aquesta secció cobreix el cicle de millora per a models d’ML clàssic i deep learning. Si treballes amb LLMs, el cicle equivalent (evals, iteració de prompts, qualitat del RAG, fine-tuning) es troba a la secció 4. L’excepció és la secció de dades sintètiques, que és aplicable a ambdós paradigmes.
Decidir si calen més dades
Molts principiants proven algoritmes diferents quan sovint el problema és la quantitat o qualitat de les dades.
Diagnòstic
-
Si l’error d’entrenament és alt:
- No recullis més dades encara
- Augmenta la mida del model (més capes, més neurones)
- Millora l’algoritme (ajusta learning rate)
- Potser les dades no tenen la informació necessària
-
Si l’error d’entrenament és acceptable però el de test és alt:
- Recull més dades (sovint la millor solució)
- Prova data augmentation o dades sintètiques
- Afegeix regularització (dropout, weight decay)
- Redueix la mida del model
Dades sintètiques
Generar dades d’entrenament artificialment ha passat de tècnica experimental a pràctica habitual, especialment gràcies als LLMs.
Casos d’ús principals:
- Etiquetar dades amb un LLM: usa un model gran per generar etiquetes o classificar exemples; entrena un model petit per a inferència
- Ampliar exemples escassos: genera variacions d’exemples existents per cobrir casos poc representats
- Generar casos límit: crea exemples difícils o de frontera on el model falla
- Construir conjunts d’avaluació: genera casos de test cobrint sistemàticament l’espai de problemes
Precaucions:
- Valida la qualitat de les dades sintètiques contra dades reals
- Les dades sintètiques no substitueixen les dades reals per a distribucions de producció
- El model entrenat sobre dades sintètiques d’un LLM pot aprendre els biaixos del LLM generador
Ajustar Hiperparàmetres
L’hiperparàmetre més important: Learning Rate
- Massa gran: l’entrenament és inestable, la loss salta
- Massa petit: l’entrenament és molt lent
- Com trobar-lo: comença amb 0.001; si la loss no baixa → prova 10× més gran; si salta → 10× més petit
Estratègia recomanada
- Comença amb valors per defecte
- Ajusta només el learning rate si veus problemes (el més crític)
- Ajusta la mida del model (underfitting/overfitting)
- No perdis massa temps optimitzant: sovint més dades ajuda més
Estratègies de depuració
Flowchart ràpid: “El model no aprèn”
| Símptoma | Diagnòstic | Solució |
|---|---|---|
| 🔴 Error train ALT | Underfitting / Bug | Augmenta capacitat; verifica learning rate; prova amb 1-10 exemples |
| 🟡 Error train OK, test ALT | Overfitting | Data augmentation; regularització; early stopping |
| 🔵 Loss no baixa / NaN | Problema d’optimització | Redueix learning rate; verifica gradient exploding; comprova normalització |
| 🟢 Entrenar perfecte, test aleatori | Overfitting extrem / Bug | Verifica data leakage; comprova train/test separats; revisa preprocessament |
Tests de depuració
-
Visualitza el model en acció: imatges, àudio, sortides reals. No et limitis a números.
-
Visualitza els pitjors errors: ordena per confiança i analitza els errors més confiats. Solen revelar problemes sistemàtics.
-
Ajusta un dataset molt petit: si no pots ajustar ni 1 exemple, hi ha un bug.
-
Monitoritza l’entrenament: la loss ha de baixar gradualment. Usa TensorBoard o Weights & Biases per seguir mètriques en temps real.
Sistemes LLM
Aquesta secció cobreix la metodologia pràctica per construir sistemes basats en LLMs. Per a detalls tècnics aprofundits, consulta les seccions de LLMs i IA Generativa.
Enfocament general
Construir amb LLMs segueix el mateix cicle que el ML clàssic: defineix el problema, crea un pipeline mínim, mesura, millora.
La diferència principal és que el “model” és sovint una API externa i la “parametrització” és el prompt. Això fa que el cicle d’iteració sigui molt ràpid, però també que sigui fàcil sobreajustar el prompt a casos poc representatius.
Ordre recomanat:
- Defineix la tasca amb precisió i la mètrica d’avaluació
- Construeix un conjunt d’avaluació amb casos reals (incloent casos límit)
- Implementa el cas més simple possible (zero-shot amb un bon prompt)
- Mesura amb les teves mètriques
- Itera: millora el prompt, afegeix few-shot, considera RAG o eines, considera fine-tuning
Disseny de prompts
El prompt és l’especificació del comportament del sistema. Tracta’l com a codi: versiona, testa i revisa.
Principis:
- Sigues específic sobre el format de sortida esperat
- Inclou exemples (few-shot) per a tasques no trivials
- Per a raonament complex, usa chain-of-thought (“pensa pas a pas”) o tria directament un model raonador
- Especifica el context, rol i restriccions del sistema clarament
Errors comuns:
- Prompts massa curts per a tasques complexes
- No especificar el format de sortida
- Ajustar el prompt sobre casos poc representatius (overfitting al prompt)
- No testar amb casos límit i fallades
Sortides estructurades i integració
Per a la majoria d’aplicacions de producció, necessites sortides estructurades (JSON, schemas definits) per integrar el LLM en un sistema més gran.
- Usa structured output o JSON mode de l’API per garantir el format
- Defineix schemas de sortida clars (Pydantic, JSON Schema)
- Valida sempre la sortida del LLM abans d’usar-la al sistema
Tool/function calling: permet al model cridar funcions externes (consultar bases de dades, fer càlculs, obtenir dades en temps real). Dissenya les eines amb:
- Noms i descripcions clares
- Paràmetres mínims necessaris
- Gestió d’errors explícita (el model ha de saber com gestionar fallades)
Tipus de models: ràpids, raonadors i locals
La selecció de model ha de ser basada en mesures, no en opinions. Prova sempre sobre el teu problema real.
Tres perfils principals
Models estàndard / ràpids (GPT-4o-mini, Gemini Flash, Claude Haiku):
- Latència baixa (<2s), cost molt baix
- Adequats per a classificació, extracció, generació senzilla, producció d’alt volum
- Primera opció per a la majoria de tasques
Models raonadors (o3, Gemini 2.5 Pro, DeepSeek-R1, Claude amb extended thinking):
- Processen el problema en passos interns (“thinking”) abans de respondre
- Millors per a: matemàtiques, codi complex, lògica multi-pas, planificació, diagnòstic
- Latència alta (10-60s), cost alt — usa’ls quan la qualitat justifica el preu
- No sempre superen els models estàndard per tasques senzilles: mesura sempre
Models locals (SLMs) (Llama 3.x, Phi-4, Gemma 3, Mistral, via Ollama, LM Studio):
- S’executen al teu hardware, sense enviar dades a tercers
- Cost fix (hardware), sense límits de rate, latència variable segons hardware
- Adequats per a: privacitat de dades, cost fix a escala, ús offline, casos edge
- La qualitat ha millorat molt — models de 7-14B paràmetres cobreixen molts casos d’ús habituals
Criteris de selecció
| Criteri | Com avaluar |
|---|---|
| Qualitat de sortida | Mesura amb les teves mètriques en el teu dataset |
| Latència | Test sota condicions reals de trànsit |
| Cost | Cost per token × volum estimat |
| Privacitat | Requisits legals o contractuals sobre les dades |
| Capacitats específiques | Verifica JSON fiable, tool calling, visió, context llarg |
Capacitats a verificar (no tots els models les suporten bé):
- Sortides estructurades (JSON fiable)
- Tool/function calling
- Raonament extès (thinking/reasoning)
- Context llarg (>100k tokens)
- Multimodal (visió, àudio)
💡 Per a la matriu de capacitats per cas d’ús i guia de selecció detallada, consulta Selecció de model per cas d’ús.
RAG i agents
RAG: recuperació vs. context llarg
Quan necessites informació externa
Quan el model necessita accedir a informació que no té als pesos (documents d’empresa, bases de coneixement, dades en temps real), tens dues opcions principals:
RAG (Retrieval-Augmented Generation):
- Indexació: processa i chunking dels documents, genera embeddings, emmagatzema a vector database
- Recuperació: per a cada consulta, recupera els chunks més rellevants per similitud semàntica
- Generació: el LLM genera la resposta condicionat als chunks recuperats
Context llarg directe: amb models que suporten 200k–1M tokens de context, sovint és possible incloure tots els documents directament al prompt, sense sistema de recuperació.
Quan usar cada opció
| Situació | Recomanació |
|---|---|
| Base de coneixement gran (>1000 docs) | RAG |
| Actualitzacions freqüents de documents | RAG |
| Cal controlar quina informació s’usa | RAG |
| Pocs documents (<50 pàgines), consultes puntuals | Context llarg directe |
| Latència crítica i documents estables | Context llarg (menys moving parts) |
Qualitat de recuperació en RAG: és el factor crític. Mesura Recall@K i ajusta:
- Estratègia de chunking (mida, solapament)
- Model d’embeddings
- Reranking (filtre de qualitat sobre els resultats recuperats)
Per a consultes complexes, considera GraphRAG (graf de coneixement) o RAG agentic (l’agent decideix quan i com recuperar).
💡 Per a detalls de implementació (indexació, chunking, reranking, vector databases), consulta Prompts i integració.
Agents i orquestració
Un agent usa un LLM per decidir iterativament quines eines cridar fins a completar una tasca.
Quan usar agents
- La tasca requereix múltiples passos sense nombre fix d’iteracions
- Calen decisions adaptatives en funció de resultats intermedis
- Les eines externes cobreixen el que el model no sap
Quan NO usar agents
- Un pipeline fix resol el problema (és molt més fàcil de testar i debugar)
- La latència és crítica
- La tasca és prou senzilla per a un sol prompt
Memòria dels agents
Els agents necessiten gestionar informació al llarg del temps:
- Memòria de sessió (curta): l’historial de la conversa actual. Gestiona el context window activament.
- Memòria persistent (llarga): informació que l’agent recorda entre sessions (perfil d’usuari, preferències, resultats anteriors). Implementa amb base de dades externa.
- Memòria de treball: estat intern durant l’execució d’una tasca (resultats intermedis, eines cridades).
Frameworks d’orquestració
Per a agents complexos o multi-agent, considera frameworks que gestionen el flux de control, memòria i eines:
- LangGraph: grafs d’estat per a workflows complexos, control fi sobre el flux
- AutoGen / AG2: comunicació entre agents especialitzats
Quan usar un framework vs. implementació directa: si el teu agent té més de 3-4 eines i flux condicional, un framework estalvia temps. Per a casos simples, l’overhead d’un framework no val la pena.
Disseny segur d’agents
- Comença amb human-in-the-loop per a accions irreversibles
- Limita les eines als mínims necessaris
- Implementa límits d’iteració i gestió de fallades
- Registra totes les decisions per poder debugar
💡 Per a nou arquitectures concretes (classificador, Q&A sobre base de coneixement, agent amb eines, multi-agent), consulta Arquitectures per cas d’ús.
Producció i avaluació LLM
Producció i seguretat operacional
Observabilitat
En producció, necessites visibilitat sobre el comportament del sistema LLM:
- Eines d’observabilitat LLM: LangSmith, Langfuse — rastregen cada crida al model, mostren prompts, respostes, latència i cost per traça
- Mètriques bàsiques: latència (p50, p95, p99), cost per consulta, taxa d’errors, qualitat (mostreig)
- Integra observabilitat des del principi: retroactiu és molt més difícil
Prompt caching
Moltes APIs suporten prompt caching: si el prefix del prompt és idèntic entre crides (system prompt, documents de context), es cobra a un preu molt inferior. Pot reduir el cost i la latència entre un 50-80% en casos amb context estable.
Guardrails i seguretat
Protegeix el sistema d’entrades malicioses i sortides inadequades:
- Prompt injection: atacs on l’usuari intenta modificar el comportament del sistema injectant instruccions al prompt. Separa clarament el sistema prompt de l’entrada de l’usuari i valida les entrades.
- Validació d’entrada: filtra o transforma entrades abans d’enviar-les al model
- Validació de sortida: comprova que la sortida del LLM compleix el schema i les restriccions esperades abans d’usar-la
- Capes de guardrails: usa eines com LlamaGuard o validadors personalitzats per detectar contingut inadequat
- Rate limiting i autenticació: limita l’ús per evitar abús i costos inesperats
Gestió de canvis de model base
Quan el proveïdor actualitza el model, el comportament pot canviar de forma subtil:
- Valida sobre el teu conjunt d’evals abans de migrar
- Mantén la versió anterior disponible per fer rollback
- Defineix un criteri d’acceptació quantitatiu per a la migració
💡 Per a sistemes LLM en producció, consulta Sistemes LLM en producció.
Avaluació de sistemes LLM
L’avaluació és el component més crític i sovint el menys fet. Sense evals, és impossible millorar sistemàticament.
Construeix el conjunt d’avaluació des del primer dia:
- Casos representatius: cobreix els casos d’ús principals
- Casos límit i fallades: casos on esperes que el sistema tingui dificultats
- Fallades de producció: afegeix casos del món real tan aviat com estiguin disponibles
Tipus d’avaluadors:
- Basat en codi: assertions exactes, comparació de strings, validació de schemas. Ràpid, determinista, recomanat sempre que sigui possible.
- LLM-as-judge: el model avalua la sortida. Útil per a qualitat de text, però atent als biaixos del jutge (preferència per respostes llargues, per les seves pròpies sortides). Calibra sempre el jutge contra etiquetes humanes.
- Avaluació humana: necessària per calibrar els altres mètodes, però costosa i lenta.
Gestió de la no-determinisme:
- pass@k: mesura el potencial (almenys una sortida bona entre k intents). Per a tasques on uns pocs errors són acceptables.
- pass^k: mesura la fiabilitat (totes les sortides bones). Per a tasques que requereixen resultats consistents.
Cicle offline/online:
- Offline (CI/CD): executa evals en cada canvi de prompt o model per detectar regressions
- Online (producció): mostreig del trànsit real, evals asíncrons sobre exemples reals per detectar fallades no capturades offline
💡 Per a construcció de datasets d’avaluació, jutges LLM i el cicle complet, consulta Avaluació de sistemes LLM.
Cicle complet i MLOps
Cicle de desenvolupament d’un projecte
- Definir el projecte: objectius, mètriques, criteris d’èxit
- Definir i recollir les dades: fonts, etiquetes, qualitat; considera dades sintètiques si n’hi ha poques
- Entrenar el model (procés iteratiu): arquitectura → entrenament → diagnòstic
- Desplegar: producció, monitoratge, manteniment
📝 Nota: Per diagnòstic detallat amb fórmules matemàtiques, consulta Guia d’aplicació i diagnòstic.
Anàlisi de l’error
L’anàlisi qualitativa dels errors és crucial per millorar el model.
Procediment recomanat (suposem 500 exemples de validació amb 100 errors):
- Examina manualment les mostres mal classificades i categoritza-les per trets comuns (les categories poden solapar-se)
- Identifica patrons d’errors freqüents amb gran impacte i actua:
- Recull més dades d’aquesta categoria
- Crea noves característiques relacionades
- Implementa filtres o preprocessament específic
Útil quan: els humans resolen bé el problema (detecció de spam, reconeixement d’imatges).
Menys útil quan: els humans no tenen intuïció (predir clics en anuncis).
Estratègies per afegir dades
- Recollida dirigida: centra’t en les categories identificades en l’anàlisi d’errors
- Augmentació: veure Data Augmentation
- Síntesi: genera exemples nous artificialment amb LLMs o tècniques específiques per modalitat
L’enfocament centrat en les dades sovint té més impacte que canviar de model.
Desplegament i MLOps
Un cop el model funciona correctament, cal integrar-lo en producció. Les pràctiques MLOps essencials:
- Seguiment d’experiments: registra hiperparàmetres, mètriques i artefactes de cada execució (Weights & Biases, MLflow).
- Versionat de dades i models: garanteix reproduïbilitat vinculant cada model a la versió exacta de les dades (DVC, lakeFS).
- Monitoratge de drift: detecta canvis en la distribució d’entrades o en el rendiment de les prediccions al llarg del temps.
- Triggers de reentrenament: defineix criteris (automàtics o manuals) que activen un nou cicle d’entrenament quan el rendiment cau sota un llindar.
- Rollback i kill-switch: manté sempre un mecanisme per revertir a una versió anterior o desactivar el model ràpidament si hi ha un problema en producció.
Per a sistemes LLM, afegeix:
- Versió de prompts: tracta els prompts com a codi (versionat en git, CI/CD amb evals automàtics en cada canvi).
- Observabilitat LLM: LangSmith, Langfuse o eines equivalents per rastrejar crides, costos i qualitat per traça.
- Evals en producció: mostreig del trànsit real per detectar degradació de qualitat no capturable per mètriques simples.
- Gestió de canvis de model base: quan el proveïdor actualitza el model, valida el comportament sobre el teu conjunt d’evals abans de migrar.
- Prompt caching: activa’l a l’API si el system prompt és estable; pot reduir cost i latència significativament.
📝 Veure detalls a Desplegament i operació i Sistemes LLM en producció.
Tècniques especialitzades
Tècniques per a casos que surten dels patrons habituals, tant per a ML clàssic com per a sistemes LLM.
⚠️ Nota per principiants: Primer assegura’t de comprendre bé els conceptes de les seccions anteriors.
Aprenentatge No Supervisat
Treballa amb dades sense etiquetes. Tres tipus principals:
1. Clustering (agrupar dades similars):
- Algoritmes: K-means (primera opció), DBSCAN (formes irregulars), Hierarchical (jerarquies)
- Preprocessament crític: normalitza sempre (StandardScaler, MinMaxScaler)
- Triar K: Elbow Method, Silhouette Score, o domain knowledge
- Validació: visualitza amb PCA/UMAP, analitza Silhouette Score i Davies-Bouldin Index
- Aplicacions: segmentació de clients, detecció de grups naturals
2. Reducció de dimensionalitat (simplificar dades mantenint informació):
- PCA: preprocessament, reducció de features (escull components que expliquin 95% variància)
- UMAP/t-SNE: visualització (reduir a 2D/3D per graficar), NO per preprocessament
- Aplicacions: visualització, preprocessament antes de supervisat
3. Detecció d’anomalies (identificar casos atípics):
- Algoritmes: Isolation Forest, One-Class SVM, Autoencoders
- Aplicacions: detecció de frau, defectes de fabricació, intrusió
Reptes clau: no tens ground truth per validar; els resultats depenen molt del preprocessament.
Sistemes de Recomanació
Tipus:
- Collaborative Filtering: similitud entre usuaris/ítems (“usuaris com tu van gaudir de X”)
- Content-Based: característiques dels ítems (“té característiques similars a Y”)
- Híbrids: combinen ambdós (millor opció en producció: Netflix, Spotify)
Metodologia:
- Comença simple: Matrix Factorization (SVD, ALS) o similitud cosinus
- Mètriques específiques: NDCG@K, Precision@K, Recall@K, Coverage, Diversity (NO accuracy/MSE)
- Validació temporal: train/test split temporal (NO aleatori)
- Estratègia per Cold Start: híbrida o onboarding
- A/B testing en producció: imprescindible
Problemes comuns:
- Recomanar sempre ítems populars → afegeix penalització per popularitat
- No funciona per usuaris nous → estratègia híbrida o onboarding
Re-ranking amb LLMs: els sistemes moderns de producció combinen recuperació clàssica (collaborative filtering, BM25) amb un LLM com a re-ranker final. El LLM avalua la rellevància dels candidats recuperats tenint en compte el context complet de l’usuari. Útil quan la qualitat final justifica la latència i cost extra.
Multimodal (visió, àudio, vídeo)
La integració de múltiples modalitats és ara una capacitat estàndard dels LLMs principals. Distingeix entre:
Multimodal via LLM API (primera opció):
- Models com GPT-4o, Gemini, Claude suporten imatges i àudio de forma nativa
- No requereix entrenament propi: usa el model directament amb les teves entrades
- Casos d’ús: anàlisi d’imatges, descripció de documents, transcripció, comprensió de vídeo (amb frames)
Multimodal amb models especialitzats (quan l’API general no és suficient):
- Imatge+text: CLIP (cerca semàntica d’imatges), ViLT, BLIP per a tasques específiques
- Àudio: Whisper per transcripció, models especialitzats per àudio de domini
- Vídeo: Vision Transformers temporals o CNN 3D quan necessites processar vídeo complet
Quan usar models especialitzats:
- Precisió molt alta en una modalitat específica (ex. reconeixement mèdic d’imatges)
- Restriccions de cost o privacitat que impedeixen usar APIs generals
- Volum molt alt amb latència molt baixa
Fine-tuning de LLMs
El fine-tuning adapta un model preentrenat a una tasca o domini específic. Prova sempre el prompting i RAG primer: el fine-tuning és costós i requereix dades d’entrenament de qualitat.
Quan val la pena:
- Estil o format molt específic que el prompting no aconsegueix de forma consistent
- Latència molt baixa (model petit afinat pot superar model gran amb prompt)
- Cost a molt alt volum (model petit afinat és molt més barat que API de model gran)
- Privacitat: no vols enviar dades sensibles a APIs externes
Mètodes PEFT (Parameter-Efficient Fine-Tuning — ajusta només una fracció dels paràmetres):
- LoRA / QLoRA: afegeix matrius de rang baix als pesos del model. QLoRA combina LoRA amb quantització per reduir la memòria GPU necessària. Mètode estàndard per a models de 7B–70B paràmetres.
- Instruction tuning: ajusta el model per seguir instruccions en format de conversa. Base per als models de chat.
- DPO (Direct Preference Optimization): alinea el model amb preferències humanes sense necessitat d’un model de recompensa separat (alternativa a RLHF).
Eines: HuggingFace TRL + PEFT, Axolotl, LlamaFactory. Plataformes gestionades: Together AI, Modal, Replicate.
💡 Per a fine-tuning de models d’embeddings i adaptació de dominis, consulta Prompts i integració.
Quantització de models
La quantització redueix la precisió numèrica dels pesos (de float32 a int8, int4) per reduir memòria i accelerar la inferència, amb pèrdua mínima de qualitat.
Quan és rellevant:
- Executar models locals (SLMs) amb recursos de hardware limitats
- Reduir cost i latència en inferència a escala
- Desplegar models a dispositius edge
Formats i mètodes:
| Format | Ús típic | Notes |
|---|---|---|
| GGUF | Inferència local (llama.cpp, Ollama) | Fàcil d’usar, molts models disponibles a HuggingFace |
| GPTQ | Inferència GPU | Bona qualitat, requereix calibració |
| AWQ | Inferència GPU | Millor qualitat que GPTQ a igual compressió |
| bitsandbytes | Fine-tuning (QLoRA) | Integrat amb HuggingFace Transformers |
Regla pràctica: per a models locals, comença amb GGUF Q4_K_M o Q5_K_M — bon equilibri entre qualitat i velocitat. Per a fine-tuning eficient, usa QLoRA (4-bit bitsandbytes).
Casos especialitzats de dades
Alta dimensionalitat (>1000 features): xarxes neuronals profundes o regressió amb regularització L1/ElasticNet.
Text llarg (>512 tokens): considera models de context llarg (molts LLMs actuals arriben a 128k-1M tokens); per a ML clàssic, Longformer o BigBird.
Grafos (xarxes socials, molècules): Graph Neural Networks (GCN, GAT).
Embeddings i cerca semàntica: models d’embeddings (Sentence-BERT, text-embedding-3) + Vector databases (Pinecone, Weaviate, Chroma). Aplicació principal: RAG, cerca semàntica, classificació escalable.
📝 Per a l’ús de RAG i embeddings en sistemes LLM en producció, consulta Prompts i integració.
Configuracions per defecte
Les llibreries modernes venen amb configuracions per defecte excel·lents. No cal ajustar gaire per començar.
-
Models lineals: ràpid, interpretable, excel·lent baseline. Si l’error és alt i sospites relacions no lineals → gradient boosting.
-
Models basats en arbres (Random Forest, Gradient Boosting): capta relacions no lineals, robust a outliers, excel·lent per dades tabulars. Comença amb valors per defecte; ajusta si veus overfitting (redueix complexitat) o underfitting (augmenta complexitat).
-
Deep learning (xarxes neuronals): excel·lent per imatges/text/àudio, aprèn representacions complexes, escalable amb més dades.
Regularització essencial:
- Early stopping: atura l’entrenament automàticament quan la validació deixa de millorar.
- Dropout (0.3-0.5): millora la generalització desactivant neurones aleatòriament durant l’entrenament.
Data Augmentation
Augmenta artificialment el teu dataset existent.
Tècniques bàsiques:
- Imatges: rotacions, flips, retalls aleatoris, ajustos de color/brillantor
- Text: synonym replacement, back-translation
- Àudio: time stretching, pitch shifting, afegir soroll de fons
Tècniques avançades:
- Imatges: Mixup, CutMix, RandAugment
- Text: paraphrase generation (T5, PEGASUS)
- Àudio: SpecAugment (màscara de bandes de freqüència/temps en espectrogrames)
Quan usar-la:
- ✅ Tens poques dades (centenars o milers d’exemples)
- ✅ El model sobreajusta
- ✅ Recollir dades és car o lent
- ❌ Ja tens milions d’exemples (impacte menor)
Quantes dades?
- Duplica la quantitat i mesura la millora
- Si la millora és significativa, continua recollint
- Si la millora és petita, el problema probablement no és la quantitat de dades
📝 Utilitza learning curves per estimar quantes dades necessites: entrena amb 100, 200, 400, 800 exemples, grafica error vs. mida i extrapola.
Optimització automàtica d’hiperparàmetres
- Random Search: mostra valors aleatòriament (eficient, recomanat com a primer pas)
- Grid Search: totes les combinacions (exhaustiu però costós)
- Optimització Bayesiana: Optuna, Ray Tune, Weights & Biases Sweeps
Tècniques avançades d’entrenament
Learning rate scheduling:
- Warmup: comença amb lr baix, augmenta gradualment (estabilitza l’entrenament inicial)
- Cosine annealing: redueix lr seguint corba cosinus (millora la convergència final)
Gradient clipping: limita la magnitud dels gradients per prevenir explosions (essencial per a Transformers i RNNs).
Normalització:
- Batch Normalization: per a CNNs (normalitza sobre batch)
- Layer Normalization: per a Transformers (normalitza sobre features, més robust)
Ètica, biaix i seguretat
Els algoritmes d’aprenentatge automàtic afecten avui milions de persones. Desenvolupar-los comporta una responsabilitat social important: cal reflexionar sobre si els sistemes que construïm són raonablement justos, lliures de biaixos i èticament acceptables.
Exemples reals de problemes
- Contractació: eines de selecció de personal que discriminaven per gènere.
- Reconeixement facial: sistemes que identificaven persones amb pell fosca com a delinqüents amb molta més freqüència que les de pell clara.
- Concessió de préstecs: algoritmes bancaris que aprovaven crèdits de manera discriminatòria per subgrup social.
- Xarxes socials: difusió de discurs d’odi afavorida per algoritmes optimitzats per engagement.
- Deepfakes: vídeos generats artificialment sense consentiment ni transparència.
Bones pràctiques
-
Forma equips diversos: gènere, ètnia, cultura, experiència. Detecten millor els riscos i anticipen problemes.
-
Revisa literatura i estàndards: normatives emergents per sector (AI Act europeu, sector salut, finances).
-
Auditories de biaix: avalua el rendiment per subgrups (gènere, ètnia, edat) abans de desplegar.
-
Plans de mitigació: prepara estratègies de resposta (revertir a model anterior, desplegar versió corregida ràpidament).
-
Monitoratge post-desplegament: continua supervisant l’impacte un cop en producció.
Seguretat operacional per a sistemes LLM
A més dels problemes de biaix, els sistemes LLM en producció introdueixen riscos de seguretat específics:
- Prompt injection: un usuari maliciós injecta instruccions al prompt per modificar el comportament del sistema (ex. “Ignora les instruccions anteriors i…”). Mitiga separant clarament sistema i usuari, i validant entrades.
- Exfiltració de dades: el model podria revelar informació del system prompt o del context si no es protegeix adequadament. No posis secrets al system prompt.
- Jailbreaking: intents de saltar les restriccions del model. Afegeix capes de validació de sortida independents del model.
- Abús de cost: atacs que generen moltes crides per inflar la factura. Implementa rate limiting i alertes de cost.
Impacte relatiu
No tots els projectes tenen el mateix pes ètic. Avalua el risc social abans de desenvolupar qualsevol sistema. Un algoritme que decideix qui rep atenció mèdica requereix molt més rigor que un que recomana pel·lícules. Si un projecte és clarament nociu per a la societat, la decisió ètica és no fer-lo.