Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Guia Pràctica

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.

Per tipus de problema

Definir el problema

Procés de disseny

Segueix aquests passos:

  1. Defineix els teus objectius - Quina mètrica d’error utilitzaràs? Quin valor objectiu vols assolir?
  2. Crea un pipeline complet ràpidament - No perdis temps perfeccionant. Primer fes que funcioni d’extrem a extrem.
  3. Identifica els colls d’ampolla - Diagnostica quines parts funcionen malament i per què.
  4. 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ístiquesProblema ben definit, espai de casos petitMolt baix
ML clàssicDades tabulars, classificació estable amb etiquetesBaix
Embeddings + classificadorText o imatges, inferència ràpida i barataBaix-Mig
Model petit afinat (SLM)Tasca específica, latència baixa, privacitatMig
LLM API (model estàndard)Tasques de text complexes, iteració ràpidaMig
LLM API (model raonador)Problemes que requereixen raonament multi-pasMig-Alt
AgentsTasques multi-pas amb decisions adaptativesAlt

Quan usar ML clàssic

SituacióRaó
Dades tabulars amb etiquetesModels basats en arbres i regressió superen sistemàticament els LLMs
Classificació estable amb dades etiquetadesML 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 localEvitar enviar dades per APIs externes
Restriccions de cost a alt volumLLMs a escala gran tenen un cost per consulta alt

Quan usar LLMs

SituacióRaó
Entrades de text lliure no estructuratLLMs processen llenguatge natural de forma nativa
Taxonomies que canvien sovintActualitzar 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-pasModels raonadors (o3, Gemini 2.5, DeepSeek-R1) per a problemes difícils
Workflows d’extrem a extrem sobre textSubstitueix pipelines llargs de NLP tradicional
Tasques que requereixen accions o einesAgents amb tool calling
Enteniment complex amb poc contextFew-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àssicMillorar modelsCicle complet i MLOps

→ Si tries LLMs: Sistemes LLMRAG i agentsProducció 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 dadesPrimera opcióOpcions addicionals a comparar
Dades tabularsRegressió Logística / LinealGradient Boosting (XGBoost, LightGBM), baselines neuronals (TabNet, FT-Transformer)
TextTF-IDF + Regressió LogísticaTransformer preentrenat (millor qualitat)
ImatgesCNN o ViT preentrenatFine-tuning eficient (LoRA/QLoRA) amb models més grans
ÀudioModel preentrenat especialitzatFine-tuning o CNN sobre espectrogrames
Sèries temporalsModels 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:

  1. El tipus de dades orienta l’algoritme, però la validació decideix.
  2. Ordre per dades tabulars: model lineal → gradient boosting → baseline neuronal tabular → compara per validació.
  3. Imatges/Text/Àudio: prefereix models preentrenats; PEFT i quantització redueixen el cost d’adaptació.
  4. 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:

  1. Dades tabulars → compara model lineal, gradient boosting i baseline neuronal tabular; tria per validació
  2. Imatges/Text/Àudio → models preentrenats amb transfer learning o PEFT
  3. 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

  1. 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
  2. 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

  1. Comença amb valors per defecte
  2. Ajusta només el learning rate si veus problemes (el més crític)
  3. Ajusta la mida del model (underfitting/overfitting)
  4. 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ímptomaDiagnòsticSolució
🔴 Error train ALTUnderfitting / BugAugmenta capacitat; verifica learning rate; prova amb 1-10 exemples
🟡 Error train OK, test ALTOverfittingData augmentation; regularització; early stopping
🔵 Loss no baixa / NaNProblema d’optimitzacióRedueix learning rate; verifica gradient exploding; comprova normalització
🟢 Entrenar perfecte, test aleatoriOverfitting extrem / BugVerifica data leakage; comprova train/test separats; revisa preprocessament

Tests de depuració

  1. Visualitza el model en acció: imatges, àudio, sortides reals. No et limitis a números.

  2. Visualitza els pitjors errors: ordena per confiança i analitza els errors més confiats. Solen revelar problemes sistemàtics.

  3. Ajusta un dataset molt petit: si no pots ajustar ni 1 exemple, hi ha un bug.

  4. 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:

  1. Defineix la tasca amb precisió i la mètrica d’avaluació
  2. Construeix un conjunt d’avaluació amb casos reals (incloent casos límit)
  3. Implementa el cas més simple possible (zero-shot amb un bon prompt)
  4. Mesura amb les teves mètriques
  5. 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ó

CriteriCom avaluar
Qualitat de sortidaMesura amb les teves mètriques en el teu dataset
LatènciaTest sota condicions reals de trànsit
CostCost per token × volum estimat
PrivacitatRequisits legals o contractuals sobre les dades
Capacitats específiquesVerifica 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):

  1. Indexació: processa i chunking dels documents, genera embeddings, emmagatzema a vector database
  2. Recuperació: per a cada consulta, recupera els chunks més rellevants per similitud semàntica
  3. 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 documentsRAG
Cal controlar quina informació s’usaRAG
Pocs documents (<50 pàgines), consultes puntualsContext llarg directe
Latència crítica i documents establesContext 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:

  1. Casos representatius: cobreix els casos d’ús principals
  2. Casos límit i fallades: casos on esperes que el sistema tingui dificultats
  3. 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

  1. Definir el projecte: objectius, mètriques, criteris d’èxit
  2. Definir i recollir les dades: fonts, etiquetes, qualitat; considera dades sintètiques si n’hi ha poques
  3. Entrenar el model (procés iteratiu): arquitectura → entrenament → diagnòstic
  4. 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):

  1. Examina manualment les mostres mal classificades i categoritza-les per trets comuns (les categories poden solapar-se)
  2. 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:

  1. Comença simple: Matrix Factorization (SVD, ALS) o similitud cosinus
  2. Mètriques específiques: NDCG@K, Precision@K, Recall@K, Coverage, Diversity (NO accuracy/MSE)
  3. Validació temporal: train/test split temporal (NO aleatori)
  4. Estratègia per Cold Start: híbrida o onboarding
  5. 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ípicNotes
GGUFInferència local (llama.cpp, Ollama)Fàcil d’usar, molts models disponibles a HuggingFace
GPTQInferència GPUBona qualitat, requereix calibració
AWQInferència GPUMillor qualitat que GPTQ a igual compressió
bitsandbytesFine-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

  1. Forma equips diversos: gènere, ètnia, cultura, experiència. Detecten millor els riscos i anticipen problemes.

  2. Revisa literatura i estàndards: normatives emergents per sector (AI Act europeu, sector salut, finances).

  3. Auditories de biaix: avalua el rendiment per subgrups (gènere, ètnia, edat) abans de desplegar.

  4. Plans de mitigació: prepara estratègies de resposta (revertir a model anterior, desplegar versió corregida ràpidament).

  5. 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.

Referències

Last change: , commit: fa236fd