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

Introducció a la IA

Què és la IA?

La Intel·ligència Artificial (IA) és la branca de la informàtica que desenvolupa sistemes capaços de realitzar tasques que tradicionalment requereixen intel·ligència humana. Des d’un punt de vista de programació, penseu en la IA com en funcions complexes que mapegen inputs a outputs, però amb la capacitat d’adaptar-se i millorar el seu comportament basant-se en dades.

A diferència dels algoritmes tradicionals on escrivim regles explícites (if-else, bucles), la IA permet que el sistema aprengui aquests patrons automàticament a partir de dades d’exemple.

Paradigma tradicional vs. IA:

  • Programació tradicional: Dades + Algoritme → Resultat
  • Machine Learning: Dades + Resultat → Algoritme (model entrenat)
  • Inferència IA: Noves dades + Model entrenat → Nou resultat

Exemples quotidians amb perspectiva tècnica:

  1. Filtratge de spam: En lloc d’escriure regex complexes per detectar spam, entrenem un model amb milers d’emails etiquetats. El model aprèn patrons (paraules freqüents, estructura, remitents) que nosaltres no hauríem pensat.

  2. Recomanacions: En lloc de programar regles com “si li agrada X, recomana Y”, analitza patrons de comportament de milions d’usuaris per descobrir correlacions.

  3. Reconeixement d’imatges: Impossible escriure regles per reconèixer un gat. Però podem entrenar una xarxa neuronal amb milions d’imatges etiquetades.

Penseu en qualsevol sistema IA com una pipeline amb aquestes fases:

  1. Preprocessing: neteja i transformació de dades (normalització, encoding)
  2. Feature extraction: identificar característiques rellevants
  3. Model training/inference: el cervell del sistema
  4. Postprocessing: formatatge de resultats

IA Estreta vs. IA General

Aquesta distinció és clau per entendre l’abast i limitacions dels sistemes que desenvoluparem, així com les eines i arquitectures que necessitarem.

IA Estreta (Narrow AI)

L’IA estreta és com una classe especialitzada que només té mètodes per a un domini específic. És el que programem avui. Cada sistema IA actual és essencialment una instància altament optimitzada per a una tasca concreta.

Característiques des del punt de vista de desenvolupament:

  • Principi de Responsabilitat Única aplicat a la IA: cada model fa una cosa i la fa bé
  • APIs específiques: inputs i outputs clarament definits
  • Datasets específics: entrenada només amb dades del seu domini
  • Mètriques de validació específiques: accuracy per classificació, BLEU per traducció, etc.

Exemples tècnics:

  • Classificador d’imatges: Input(image) → Output(label, confidence)
  • Sistema de recomanacions: Input(user_id, context) → Output(List[item_id, score])
  • Traductor: Input(text, source_lang, target_lang) → Output(translated_text)

Limitacions arquitectòniques:

  • No hi ha transferència de coneixement entre dominis
  • Cada model requereix el seu propi pipeline de dades
  • Escalabilitat vertical (millora en la mateixa tasca) però no horitzontal

IA General (AGI)

L’AGI seria com un framework universal capaç de resoldre qualsevol problema cognitiu. És l’objectiu futur. Imagineu-vos un sistema que pogués ser alhora traductor, analista d’imatges, planificador de rutes, i molt més.

Reptes tècnics actuals:

  • Interferència catastròfica: és un repte durant l’aprenentatge perllongat, quan un model aprèn una nova tasca, oblida les anteriors
  • Transferència entre dominis: aplicar coneixement d’un domini a un altre
  • Raonament de sentit comú: comprensió implícita del món
  • Meta-learning: aprendre a aprendre noves tasques ràpidament

Aproximacions actuals: Els Large Language Models (LLMs) com GPT són el més proper que tenim a AGI perquè poden realitzar múltiples tasques, però encara tenen limitacions significatives.

Test de Turing i mesura d’intel·ligència

Com a desenvolupadors, necessitem mètrics objetius per avaluar si els nostres sistemes funcionen correctament i quan poden considerar-se “intel·ligents”.

Perspectiva tècnica

El Test de Turing és essencialment un prova a cegues entre sistemes: si un jutge humà no pot distingir les respostes d’una IA de les d’un humà en conversa de text, la màquina “passa” el test.

Problemes del test:

  • Només avalua imitació, no intel·ligència real
  • Depèn del jutge: diferents jutges, diferents resultats
  • Limitat a text: ignora altres formes d’intel·ligència
  • Pot ser enganyós: un chatbot amb regles ben dissenyades pot passar el test sense ser intel·ligent

Mètriques modernes

1. Mètriques específiques:

  • Classificació: Accuracy, Precision, Recall, F1-score
  • Regressió: MAE, MSE, RMSE
  • Generació de text: BLEU, ROUGE, perplexity
  • Recomanacions: NDCG, MAP, Hit Rate

2. Proves de robustesa:

  • Adversarial examples: inputs dissenyats per confondre el model
  • Edge cases: comportament amb dades atípiques
  • Deriva de dades (data drift): com el model es comporta quan les dades canvien amb el temps

3. Mètriques computacionals:

  • Latència: temps de resposta
  • Throughput: requests per segon
  • Empremta de memòria: RAM necessària
  • Consum d’energia: cost de l’activitat computacional

Enfocaments principals de la IA

Els dos grans enfocaments de la IA són el simbòlic, que s’enfoca en codificar coneixement explícit mitjançant regles i lògica, mentre que l’aprenentatge automàtic es basa en descobrir patrons automàticament a partir de dades.

1. Enfocament Simbòlic (Top-Down)

Filosofia de desenvolupament: L’enfocament simbòlic és com programar amb regles explícites i lògica formal. És similar a la programació tradicional però amb motors d’inferència que poden aplicar regles automàticament.

Com funciona tècnicament:

  • Base de coneixement: estructura de dades que emmagatzema fets i regles
  • Motor d’inferència: algoritme que aplica regles per derivar noves conclusions
  • Memòria de treball: estat temporal durant el procés de raonament

Paradigmes de programació similars:

  • Programació declarativa: describes el què vols, no el com
  • Sistemes basats en regles: similar als sistemes experts
  • Programació lògica: com Prolog

Exemple conceptual - Sistema expert mèdic:

Base de coneixement: - REGLA: Si (febre > 38°C) AND (tos persistent) → investigar infecció respiratòria - REGLA: Si (dolor pit) AND (dificultat respirar) → prioritat alta - FET: Pacient_123 té febre 39°C - FET: Pacient_123 té tos persistent Motor d'inferència deriva: investigar infecció respiratòria per Pacient_123

Avantatges per al desenvolupament:

  • Debuggable: pots seguir exactament per què el sistema ha pres una decisió
  • Modificable: canviar regles sense reentrenar
  • Explicable: ideal per aplicacions crítiques (medicina, finances)
  • Determinista: mateixos inputs sempre produeixen mateixos outputs

Limitacions tècniques:

  • Escalabilitat: difícil gestionar milers de regles
  • Coll d’ampolla en l’adquisició de coneixement: cal experts per definir totes les regles
  • Fragilitat: petits canvis poden trencar tot el sistema
  • No aprèn automàticament: cal actualització manual

Frameworks i eines modernes:

  • Drools (Java), CLIPS, Apache Jena per ontologies
  • Útil per a: sistemes de conformitat, validació de regles de negoci, sistemes de diagnòstic

2. Enfocament d’Aprenentatge (Bottom-Up)

Filosofia de desenvolupament: Aquest enfocament és com programar amb dades en lloc de codi. En lloc d’escriure regles explícites, proporcionem exemples i deixem que el sistema descobreixi patrons automàticament.

Com funciona tècnicament:

  • Entrenament: l’algoritme ajusta paràmetres per minimitzar error en dades d’entrenament
  • Validació: avalua performance en dades no vistes
  • Inferència: aplica el model entrenat a noves dades

Paradigmes de programació similars:

  • Basada en dades: el comportament es defineix per les dades
  • Funcional: composició de transformacions matemàtiques
  • Pipeline: cadena de transformacions de dades

Tipus principals:

Supervised Learning:

  • Tens datasets amb parelles (input, output correcte)
  • Com entrenar una funció f(x) = y amb exemples
  • Aplicacions: classificació d’imatges, detecció de spam, predicció de preus

Unsupervised Learning:

  • Només tens inputs, sense outputs correctes
  • Com descobrir patrons ocults en dades
  • Aplicacions: clustering d’usuaris, detecció d’anomalies, reducció de dimensionalitat

Reinforcement Learning:

  • El sistema aprèn mitjançant prova i error amb recompenses/penalitzacions
  • Com programar un agent que explora i optimitza
  • Aplicacions: jocs, cotxes autònoms, trading algorítmic

Avantatges per al desenvolupament:

  • Descobriment automàtic de patrons: troba patrons que un humà no veuria
  • Escalabilitat: millora amb més dades
  • Adaptabilitat: pot ajustar-se a canvis en les dades
  • Rendiment: excel·lent en tasques com visió i llenguatge

Limitacions tècniques:

  • Black box: difícil entendre per què fa certes prediccions
  • Dependència de les dades: necessita grans volums de dades de qualitat
  • Computacionalment intensiu: requereix recursos significatius per entrenar
  • Overfitting: pot memoritzar en lloc d’aprendre patrons generals

Frameworks moderns:

  • PyTorch/TensorFlow per deep learning
  • Scikit-learn per a ML tradicional
  • Útil per a: reconeixement de patrons, predicció, generació de contingut

3. Enfocaments híbrids

Filosofia de desenvolupament: Combinar el millor dels dos mons: la transparència del simbòlic amb la potència de l’aprenentatge.

Arquitectures típiques:

  • Preprocessing simbòlic + ML: usar regles per netejar dades abans de l’aprenentatge
  • ML + postprocessing simbòlic: usar regles per validar/corregir outputs del ML
  • Ensemble methods: combinar múltiples models amb regles de votació

Casos d’ús ideals:

  • Sistemes crítics: on necessites explicabilitat però també performance
  • Dominis amb regulacions: complir regles obligatòries + optimització
  • Sistemes evolutius: començar amb regles i afegir ML progressivament

Aprenentatge Automàtic

Conceptes fonamentals

Machine Learning com a optimització: Tots els algoritmes de ML són essencialment problemes d’optimització. Tenen una funció de cost (loss function) que volen minimitzar ajustant paràmetres.

  • Gradient descent: l’algoritme més common per trobar el mínim d’una funció
  • Backpropagation: com les xarxes neuronals calculen gradients eficientment
  • Regularització: tècniques per evitar overfitting (L1, L2, dropout)

Pipeline de desenvolupament ML:

  1. Recollida i neteja de dades: 80% del temps en projectes reals
  2. Enginyeria de característiques: crear característiques rellevants
  3. Selecció del model: escollir algoritme adequat
  4. Ajustament (tuning) d’hiperparàmetres: optimitzar configuració del model
  5. Avaluació: validar amb mètrics apropiats
  6. Desplegament: posar en producció amb monitoring

Conceptes clau per depurar models:

  • Bias vs Variance tradeoff: underfitting vs overfitting
  • Learning curves: visualitzar com aprèn el model
  • Rellevància de les característiques: quines característiques són més rellevants per al model
  • Cross-validation: estimar performance real del model

Tipus d’aprenentatge

Supervised Learning - Aprenentatge supervisat:

Input: Dataset amb parelles (x, y) Objectiu: Aprendre funció f tal que f(x) ≈ y Avaluació: Comparar f(x_test) amb y_test

Casos d’ús:

  • Classificació: output discret (spam/ham, gat/gos)
  • Regressió: output continu (preu casa, temperatura)

Unsupervised Learning - Descobriment de patrons:

Input: Dataset només amb x (sense etiquetes) Objectiu: Descobrir estructura oculta en les dades Avaluació: Mètriques intrínseques (silhouette, inèrcia)

Casos d’ús:

  • Clustering: agrupar dades similars
  • Dimensionality reduction: comprimir dades mantenint informació
  • Anomaly detection: trobar outliers

Reinforcement Learning - Aprenentatge per experiència:

Agent interactua amb Environment Cada acció genera State + Reward Objectiu: Maximitzar recompensa acumulada

Conceptes clau:

  • Exploration vs Exploitation: provar coses noves vs fer el que funciona
  • Q-learning: aprendre valor de cada acció en cada estat
  • Policy gradient: aprendre directament la estratègia òptima

Representació del coneixement

Com organitzem i estructurem la informació perquè els sistemes IA puguin processar-la eficientment?

De Dades a coneixement

Jerarquia de l’informació des del punt de vista de sistemes:

1. Dades (dades en brut):

  • Tipus: integers, strings, floats, binaris
  • Emmagatzematge: bases de dades relacionals, NoSQL, fitxers
  • Exemple: “25”, “vermell”, timestamp

2. Informació (dades processades):

  • Tipus: dades amb context i significat
  • Emmagatzematge: estructures amb schema, JSON, XML
  • Exemple: {“temperatura”: 25, “color”: “vermell”, “data”: “2024-01-15”}

3. Coneixement (informació estructurada):

  • Tipus: informació amb relacions i regles
  • Emmagatzematge: grafos, ontologies, bases de coneixement
  • Exemple: “Si temperatura > 25°C i color = vermell, llavors alerta_calor = true”

4. Saviesa (coneixement accionable):

  • Tipus: coneixement aplicat a decisions
  • Emmagatzematge: sistemes experts, models entrenats
  • Exemple: “Activar aire condicionat automàticament quan temperatura > 25°C”

Formats de representació

En aquesta secció veurem les formes més habituals d’encapsular informació perquè els sistemes d’IA les puguin processar.

1. Vectors de característiques (dades tabulars):

És una matriu observació × característiques (numèriques o codificades) on cada fila és un exemple i cada columna un atribut. Senzill i molt freqüent.

  • Quan usar: problemes clàssics de ML amb dades estructurades (logs, surveys, sensors, CRM).
  • Pros: fàcil d’entendre, moltes biblioteques madures, ràpid d’iterar.
  • Contres: cal neteja i enginyeria de característiques; no captura relacions riques entre entitats.
  • Eines: CSV, pandas, scikit-learn.

2. Tensors per Deep Learning:

Són arrays multidimensionals que representen batches d’imatges, senyals o embeddings per a xarxes neuronals (Deep Learning).

  • Quan usar: entrenament de xarxes neuronals per imatges, àudio, o qualsevol pipeline DL.
  • Pros: optimitzats per GPU/TPU; molt expressius per arquitectures modernes.
  • Contres: cost computacional; menys interpretables.
  • Eines: NumPy, PyTorch, TensorFlow.

3. Embeddings vectorials:

Són vectors densos que codifiquen la semàntica de paraules, frases, documents o entitats.

  • Quan usar: NLP (processament de llenguatge natural), cerca semàntica, clustering, cerca per similaritat, RAG (retrieval-augmented generation).
  • Pros: capturen semàntica, molt útil per trobar “símils”; escalable amb índexs de NN aproximada.
  • Contres: difícil d’interpretar; depèn de models preentrenats; necessita índexs per a escala.
  • Eines: word2vec/GloVe, sentence-transformers, FAISS, Milvus.

4. Representacions seqüencials i Transformers:

Són codificacions de dades ordenades (text, sèries) processades per models que capturen context i dependències. Els Transformers són l’estàndard per a llenguatge actual.

  • Quan usar: NLP, traducció, classificació de text, models de llenguatge, predicció temporal amb dependències llargues.
  • Pros: excel·lents per dependències llargues i context; alt rendiment en NLP.
  • Contres: models grans costosos; requereixen tokenització i recursos.
  • Eines: Hugging Face Transformers, tokenizers, PyTorch/TensorFlow.

5. Grafos de coneixement i ontologies:

Són nodes i arestes (triples S-P-O) amb vocabularis formals (OWL/RDF) per representar relacions i permetre inferència.

  • Quan usar: integració de fonts heterogènies, necessitat d’explicabilitat i inferència simbòlica.
  • Pros: traçabilitat i interoperabilitat; suporten raonament lògic.
  • Contres: disseny i manteniment costós; pot ser menys trivial d’escalar.
  • Eines: RDF, OWL, SPARQL, Neo4j, Apache Jena, Protégé.

Sistemes experts moderns

Els sistemes experts representen l’aplicació pràctica del raonament simbòlic en dominis específics.

Arquitectura

Components principals:

  1. Knowledge Base: repositori de fets i regles del domini
  2. Inference Engine: motor que aplica regles per derivar conclusions
  3. Working Memory: estat temporal durant el procés de raonament
  4. User Interface: interfície per interactuar amb experts i usuaris
  5. Explanation System: capacitat d’explicar el raonament

Patrón de funcionament:

1. User query → Working Memory 2. Inference Engine consulta Knowledge Base 3. Aplica regles rellevants 4. Deriva noves conclusions 5. Actualitza Working Memory 6. Retorna resultats + explicació

Forward vs Backward Chaining

Forward Chaining (Data-driven):

  • Comença amb fets coneguts
  • Aplica regles per derivar nous fets
  • Continua fins que no es poden derivar més conclusions
  • Ús típic: sistemes de monitoring, alertes automàtiques

Backward Chaining (Goal-driven):

  • Comença amb una hipòtesi o objectiu
  • Busca evidència per confirmar o rebutjar la hipòtesi
  • Treballa cap enrere aplicant regles
  • Ús típic: sistemes de diagnòstic, sistemes de pregunta-resposta

Casos d’ús moderns

1. Sistemes de validació de regles de negoci:

  • Validar transaccions financeres
  • Compliance amb regulacions
  • Aprovació automàtica de sol·licituds

2. Sistemes de configuració:

  • Configurar productes complexos
  • Optimització de sistemes
  • Personalització automàtica

3. Sistemes de suport a decisions:

  • Diagnòstic assistit per ordinador
  • Planificació de recursos
  • Gestió de riscs

Fonaments de Dades per a IA

La qualitat i gestió de dades és fonamental en qualsevol projecte IA. A diferència de la programació tradicional, en IA les dades són tan importants com el codi.

Qualitat de les dades

Principi clau: “Garbage in, garbage out” - un model entrenat amb dades dolentes sempre produirà resultats dolents, independentment de la sofisticació de l’algoritme.

Problemes comuns de qualitat de dades:

1. Dades incompletes:

  • Valors que falten: camps buits que poden trencar models
  • Biaix de mostreig: dades que no representen la població real
  • Forats temporals: manca de dades per períodes específics

2. Dades incorrectes:

  • Soroll d’etiquetes: etiquetes incorrectes en supervised learning
  • Valors extrems (outliers): valors extrems que poden distorsionar l’entrenament
  • Formats inconsistents: dates, números, strings en formats diferents

3. Dades envellides:

  • Deriva de concepte: quan els patrons canvien amb el temps
  • Obsolescència de dades: informació que ja no és rellevant
  • Canvi de distribució: canvis en la distribució de les dades

Preprocessament i Feature Engineering

Feature Engineering és l’art de transformar dades brutes en representacions que els algoritmes poden entendre millor.

Transformacions típiques:

  • Normalització: escalar valors numèrics al mateix rang
  • Codificació categòrica: convertir categories en números (one-hot, label encoding)
  • Extracció de característiques: crear noves variables a partir de les existents
  • Reducció de la dimensionalitat: reduir número de variables mantenint informació

Splits de dades critics:

  • Training set (70%): per entrenar el model
  • Validation set (15%): per ajustar hiperparàmetres
  • Test set (15%): per avaluar performance final (NEVER toquis aquestes dades fins al final)

Regla d’or: El test set ha de simular dades completament noves que el model mai ha vist.

Data Bias i les seves implicacions

Tipus de bias que afecten sistemes IA:

1. Biaix històric: les dades reflecteixen discriminacions passades 2. Biaix de representació: alguns grups estan subrepresentats 3. Biaix de mesura: errors sistemàtics en com es recullen les dades 4. Biaix d’avaluació: mètriques que afavoreixen certs grups

Exemples reals:

  • Sistema de contractació que discrimina dones perquè s’entrena amb dades històriques
  • Reconeixement facial que funciona pitjor amb persones de pell fosca
  • Sistemes de crèdit que penalitzen certes regions geogràfiques

Cicle de Vida de Projectes IA

Els projectes IA segueixen un cicle diferent als projectes software tradicionals, amb més experimentació i iteració.

Diferències clau respecte desenvolupament tradicional

Desenvolupament tradicional:

Requisits → Disseny → Implementació → Testing → Deploy → Manteniment

Desenvolupament IA:

Problem definition → Data collection → EDA → Feature engineering → Model selection → Training → Evaluation → Hyperparameter tuning → Validation → Deploy → Monitoring → Retraining

Fases del projecte IA

1. Definició del problema:

  • Classificació vs. Regressió vs. Clustering: quin tipus de problema és?
  • Mètriques d’èxit: com mesuraràs l’èxit?
  • Línia de referència: quin és el rendiment mínim acceptable?

2. Exploratory Data Analysis (EDA):

  • Entendre la distribució de dades
  • Identificar correlacions i patrons
  • Detectar anomalies i outliers
  • Visualitzar relacions entre variables

3. Experimentació iterativa:

  • Desenvolupament basat en hipòtesis: cada experiment testeja una hipòtesi
  • A/B testing: comparar diferents enfocaments
  • Prototipatge ràpid: fallar ràpid i aprendre

4. Validació del model:

  • Validació creuada (Cross-validation): tècnica per avaluar la capacitat de generalització del model mitjançant la seva avaluació repetida en diferents subconjunts de dades
  • Proves de retenció (Hold-out): avaluació final del model amb un conjunt de dades completament separat que no s’ha utilitzat durant l’entrenament
  • Statistical significance: comprovar si els resultats observats del model són robustos i no deguts a l’atzar

Seguiment i versionat d’experiments

Conceptes clau per organitzar experiments:

Versionat del model:

  • Cada model entrenat és una versió diferent
  • Cal trackear: codi, dades, hiperparàmetres, mètriques
  • Eines: MLflow, Weights & Biases, Neptune

Versionat de les dades:

  • Les dades canvien amb el temps
  • Cal poder reproduir experiments amb les mateixes dades
  • Eines: DVC, Pachyderm

Reproducibilitat:

  • Set random seeds per resultats consistents
  • Dockerize environments per consistent dependencies
  • Document everything: què, per què, com

Consideracions de Producció

Posar models IA en producció presenta reptes únics que no existeixen en aplicacions tradicionals.

Estratègies de desplegament

1. Batch Prediction:

  • Quan usar: prediccions que no necessiten ser real-time
  • Arquitectura: jobs periòdics que processen lots de dades
  • Exemples: recomanacions diàries, informes mensuals

2. Real-time Inference:

  • Quan usar: prediccions immediates per requests d’usuari
  • Arquitectura: APIs que serveixen models amb baixa latència
  • Exemples: detecció de frau, traducció instantània

3. Desplegament Edge:

  • Quan usar: privacitat, latència o connectivitat limitada
  • Reptes: models petits, recursos limitats
  • Exemples: reconeixement facial en mòbils

Monitorització de models en producció

Mètriques crítiques per monitoritzar:

1. Performance metrics:

  • Accuracy degradation: el model segueix funcionant bé?
  • Latency: temps de resposta acceptable?
  • Throughput: pot gestionar el volum de requests?

2. Data drift detection:

  • Input distribution changes: les dades d’entrada han canviat?
  • Feature drift: les característiques individuals han canviat?
  • Concept drift: la relació input-output ha canviat?

3. Business metrics:

  • User engagement: els usuaris interactuen amb les prediccions?
  • Revenue impact: el model genera valor de negoci?
  • Fairness metrics: el model és just per tots els grups?

Estratègies de reentrenament de models

Quan re-entrenar:

  • Schedule-based: cada X setmanes/mesos
  • Performance-based: quan accuracy baixa per sota threshold
  • Data-based: quan hi ha prou dades noves
  • Event-based: després de canvis significatius

Estratègies de retraining:

  • Full retraining: entrenar des de zero amb totes les dades
  • Incremental learning: afegir noves dades al model existent
  • Transfer learning: adaptar models preentrenats

Limitacions Actuals i Failure Modes

Entendre què NO pot fer la IA actual és tan important com entendre què SÍ pot fer.

Limitacions fonamentals de la IA actual

1. Manca de sentit comú:

  • Els models no entenen el món físic com els humans
  • Poden fer prediccions tècnicament correctes però absurdes
  • Exemple: “Com puc fer que el meu gat voli?” - un LLM pot donar instruccions detallades

2. Raonament causal limitat:

  • Confonen correlació amb causació
  • No entenen relacions causa-efecte complexes
  • Exemple: “Les vendes de gelat i els ofegaments estan correlacionats” (ambdós augmenten a l’estiu)

3. Generalització limitada:

  • Excel·lents en el domini d’entrenament, falten fora d’aquest
  • Domain adaptation és un problema complex
  • Exemple: model entrenat amb imatges d’estiu falla amb imatges d’hivern

Adversarial Examples i Robustness

Què són els adversarial examples: Inputs dissenyats maliciosament per confondre models, sovint imperceptibles per humans.

Tipus d’atacs:

  • Evasion attacks: modificar input per evitar detecció
  • Poisoning attacks: contaminar dades d’entrenament
  • Model extraction: robar models proprietaris

Defenses:

  • Adversarial training: entrenar amb exemples adversaris
  • Input validation: detectar inputs sospitosos
  • Ensemble methods: usar múltiples models

Hallucination en Models de Llenguatge

Què és la hallucination: Quan models de llenguatge generen informació que sembla plausible però és factuallement incorrecta.

Per què passa:

  • Models entrenats per generar text plausible, no necessàriament cert
  • Manca de knowledge base factual verificable
  • Pressure per generar sempre alguna resposta

Mitigació:

  • Retrieval-Augmented Generation (RAG): combinar generació amb cerca factual
  • Fact-checking pipelines: verificar informació generada
  • Confidence thresholds: no generar respostes quan incert

La importància de Human Oversight

Principi clau: La IA ha de complementar, no reemplaçar, el judici humà en decisions crítiques.

Nivells de automatització:

  1. Human in the loop: humà pren totes les decisions finals
  2. Human on the loop: humà supervisa i pot intervenir
  3. Human out of the loop: automatització completa (només per tasques no crítiques)

Ètica i IA Responsable

Desenvolupar IA responsable no és opcional - és una responsabilitat professional.

Algorithmic Bias i Fairness

Definicions de fairness:

1. Individual fairness: Individus similars han de rebre tracte similar

2. Group fairness: Diferents grups demogràfics han de tenir outcomes similars

3. Counterfactual fairness: Les decisions haurien de ser les mateixes en un món contrafactual

Tècniques de mitigació:

  • Pre-processing: eliminar bias de les dades d’entrenament
  • In-processing: modificar algoritmes per ser més justos
  • Post-processing: ajustar outputs per garantir fairness

Privacy i Protecció de Dades

Principals preocupacions:

1. Data minimization:

  • Recollir només les dades estrictament necessàries
  • Implementar retention policies per esborrar dades antigues
  • Anonymization i pseudonymization quan sigui possible

2. Differential Privacy:

  • Afegir soroll calculat per protegir individuals
  • Trade-off entre privacy i utility
  • Implementació en training i inference

3. Federated Learning:

  • Entrenar models sense centralitzar dades
  • Cada participant manté les seves dades localment
  • Útil per sectors altament regulats (sanitat, finances)

Transparència i Explicabilitat

Nivells d’explicabilitat:

1. Global explanations: Com funciona el model en general?

2. Local explanations: Per què el model ha fet aquesta predicció específica?

3. Counterfactual explanations: Què hauria de canviar perquè la predicció fos diferent?

Tècniques:

  • LIME: explica prediccions individuals
  • SHAP: valors de contribució de cada feature
  • Attention visualization: per models de deep learning

Impacte Ambiental

Carbon footprint dels models IA:

  • Training de models grans consumeix energia equivalent a vols intercontinentals
  • Inference a escala masiva també té impacte significatiu

Estratègies de mitigació:

  • Model efficiency: models més petits amb performance similar
  • Green computing: usar energia renovable per data centers
  • Carbon offsetting: compensar emissions amb projectes ambientals

Tools i Ecosistema

Panoràmica de les eines essencials que necessitareu per desenvolupar projectes IA.

Frameworks de Machine Learning

Python Ecosystem (dominant):

  • Scikit-learn: ML tradicional, perfecte per començar
  • TensorFlow/Keras: deep learning, ecosistema complet
  • PyTorch: deep learning, més flexible per research
  • Transformers (Hugging Face): NLP state-of-the-art

Altres llenguatges:

  • R: estadístiques i anàlisi de dades
  • Julia: computing científic d’alt rendiment
  • JavaScript: ML en el browser (TensorFlow.js)

Plataformes Cloud per a IA

Proveïdors principals del núvol:

  • AWS: SageMaker, comprehensive ML platform
  • Google Cloud: Vertex AI, forte en research i models pretrained
  • Azure: Machine Learning Studio, integració amb ecosistema Microsoft

Managed vs. Self-managed:

  • Managed: més cars però menys sobrecàrrega
  • Self-managed: més control però més complexitat operacional

APIs vs. construir des de zero

Quan usar APIs:

  • Tasques comunes: traducció, sentiment analysis, reconeixement d’imatges
  • Prototipatge ràpid: validar la idea abans d’invertir en desenvolupament
  • No tens experiència: àrees fora de la teva especialització

Quan construir des de zero:

  • Requeriments específics: cap API pública cobreix el teu cas d’ús
  • Data sensitivity: no pots enviar dades a tercers
  • Cost a escala: APIs poden ser cares per grans volums

APIs populars:

  • OpenAI GPT: generació de text i codi
  • Google Vision: anàlisi d’imatges
  • AWS Comprehend: sentiment analysis
  • Azure Cognitive Services: múltiples tasques de IA

Evolució Històrica i Estat Actual

Perspectiva tecnològica de l’evolució

Primers sistemes (1950s-1980s):

  • Limitacions: processament seqüencial, poca memòria, algoritmes simples
  • Enfocament: purament simbòlic
  • Resultats: sistemes molt especialitzats però fràgils

Revival del ML (1990s-2000s):

  • Estímul: més dades disponibles, millor poder computacional
  • Avenços: Support Vector Machines, Random Forests
  • Limitacions: encara calia feature engineering manual

Era del Big Data i Deep Learning (2010s):

  • Estímul: GPU computing, datasets massius, algoritmes millorats
  • Avenços: ImageNet (2012) amb convolutional neural networks
  • Canvi paradigmàtic: de feature engineering manual a feature learning automàtic

Era dels Transformers i LLMs (2017-actualitat):

  • Estímul: architecture Transformer, transfer learning, scaling laws
  • Avenços: models com GPT, BERT que entenen llenguatge natural
  • Paradigma: pre-training en dades massives + fine-tuning per tasques específiques

Tendències actuals per a desenvolupadors (2024-2025)

1. Models Fonamentals (Foundation Models):

  • Concepte: models enormes entrenats en dades diversas que es poden adaptar a múltiples tasques
  • Implicacions per desenvolupament: menys entrenament from scratch, més fine-tuning i prompting
  • Exemples: GPT-4, Claude, Gemini

2. Multimodalitat:

  • Concepte: models que processen text + imatge + àudio simultàniament
  • Implicacions: aplicacions més riques, interfaces més naturals
  • Reptes: integrar diferents tipus de dades eficientment

3. Agents Autònoms:

  • Concepte: sistemes que poden planificar i executar tasques complexes
  • Components: LLM + eines externes + memòria + planificació
  • Aplicacions: automatització de tasques, assistents de programació

4. Edge AI:

  • Concepte: executar models IA directament en dispositius locals
  • Motivació: latència, privacitat, costs de cloud
  • Reptes tècnics: optimització de models, quantització, pruning

Reptes actuals

1. Reptes tècnics:

  • Explicabilitat: com fer models més interpretables
  • Robustesa: models que funcionin bé amb dades noves
  • Eficiència: reduir cost computacional i energètic
  • Seguretat: protegir models contra atacs adversaris

2. Reptes d’enginyeria:

  • MLOps: automatitzar pipeline de ML en producció
  • Governança dels models: gestionar versions, qualitat, compliance
  • Qualitat de les dades: assegurar dades netes i representatives
  • Monitorització: detectar degradació de performance en producció

3. Reptes ètics i socials:

  • Mitigació del biaix: evitar discriminació en models
  • Privacitat: protegir dades personals en entrenament
  • Equitat: assegurar equitat en decisions automàtiques
  • Transparència: explicar decisions d’IA a stakeholders

Conclusió

La Intel·ligència Artificial ha evolucionat d’un camp purament acadèmic a una disciplina d’enginyeria pràctica. Com a programadors, tenim l’oportunitat i la responsabilitat de desenvolupar sistemes que augmentin les capacitats humanes de manera ètica i eficient.

Punts clau per recordar:

  • Escollir l’enfocament adequat segons el problema: simbòlic per explicabilitat, ML per pattern recognition
  • Entendre les limitacions de cada paradigma i planificar en conseqüència
  • Mantenir-se actualitzat amb l’evolució ràpida del camp
  • Considerar implicacions ètiques en el desenvolupament d’aplicacions IA

L’futur de la programació està íntimament lligat amb la IA, i dominar aquests conceptes és essencial per al desenvolupament de software modern.