La plataforma de Contoso Airlines ja està modernitzada, i això deixa a la vista un munt de feina que es continua fent a mà perquè fins ara no hi havia alternativa. L'equip d'atenció al passatger classifica cada dia centenars de reclamacions escrites en text lliure per decidir a qui van. A la facturació en línia, un agent tecleja les dades del passaport mirant el document. Els avisos d'embarcament es donen en dos idiomes perquè no hi ha locutors per a més. I el portal només s'entén bé en espanyol.
Res d'això no requereix entrenar un model: són capacitats que Azure ofereix com a serveis llestos per consumir. Aquesta lliçó recorre Azure AI Services, implementa quatre casos reals de Contoso, explica Azure OpenAI Service i la generació augmentada per recuperació, i dedica un apartat complet —no un paràgraf de cortesia— al que aquí no és opcional: biaixos, al·lucinacions, privacitat, supervisió humana i revisió legal abans que res arribi a producció.
Contingut
- El catàleg d'Azure AI Services
- El model de consum: recurs, punt de connexió i autenticació
- Azure AI Language: classificar les reclamacions
- Document Intelligence, Speech i Translator
- Azure OpenAI Service i Azure AI Foundry
- Generació augmentada per recuperació (RAG)
- Azure Machine Learning: l'àmbit propi
- IA responsable: la part que no és opcional
- Cost per testimoni (token) i per transacció
- Errors Comuns i Consells
- Exercicis
- Conclusió
- El catàleg d'Azure AI Services
| Família | Servei | Què fa | Cas típic |
|---|---|---|---|
| Visió | AI Vision | Descriu imatges, llegeix text (OCR), detecta objectes | Verificar l'estat de l'equipatge en fotos |
| Visió | Face | Detecta i compara rostres (accés restringit) | Embarcament biomètric, amb aprovació prèvia |
| Llenguatge | AI Language | Sentiment, entitats, classificació, resum, preguntes | Reclamacions de passatgers |
| Llenguatge | Translator | Tradueix text i documents entre més de 100 idiomes | Portal multilingüe |
| Parla | AI Speech | Veu a text, text a veu, traducció parlada | Avisos d'embarcament |
| Documents | Document Intelligence | Extreu camps estructurats de documents | Passaport a la facturació |
| Cerca | AI Search | Índex amb cerca per text, vectorial i híbrida | Base del RAG de l'apartat 6 |
| Decisió | Content Safety | Detecta contingut nociu en text i imatge | Filtrar entrades i sortides de l'assistent |
| Generatiu | Azure OpenAI | Models de llenguatge i d'incrustacions | Assistent d'atenció al passatger |
Tots comparteixen el mateix patró de consum: una API REST amb SDK oficials, facturació per transacció o per testimoni, i cap model a entrenar per començar.
- El model de consum: recurs, punt de connexió i autenticació
Es crea un recurs, que exposa un punt de connexió i unes claus. El recurs multiservei d'Azure AI Services agrupa diverses capacitats sota un únic punt de connexió, una sola facturació i un sol conjunt de permisos, i és el que Contoso fa servir per no gestionar sis recursos solts:
az cognitiveservices account create \
-g rg-contoso-reservas-pro -n ai-contoso-pro \
--kind CognitiveServices --sku S0 --location westeurope \
--custom-domain ai-contoso-pro \
--assign-identity \
--tags entorno=produccion proyecto=contoso-reservas \
centro-coste=CC-1042 [email protected]
# Deshabilitar l acces per clau: nomes Entra ID
az cognitiveservices account update -g rg-contoso-reservas-pro -n ai-contoso-pro \
--custom-properties '{"disableLocalAuth": true}'
# La identitat de l aplicacio, amb el seu rol
az role assignment create --role "Cognitive Services User" \
--assignee-object-id $(az identity show -g rg-contoso-seguridad-pro \
-n id-contoso-api-pro --query principalId -o tsv) \
--assignee-principal-type ServicePrincipal \
--scope $(az cognitiveservices account show -g rg-contoso-reservas-pro \
-n ai-contoso-pro --query id -o tsv)Claus davant d'Entra ID. El portal mostra dues claus i és temptador copiar-les. No ho facis: són credencials compartides, no traçables, que acaben en un fitxer de configuració i d'aquí en un repositori. L'opció correcta és la de sempre en aquest curs: identitat administrada i DefaultAzureCredential, amb disableLocalAuth perquè les claus ni tan sols funcionin. Requereix un domini personalitzat al recurs, i per això hi ha --custom-domain.
- Azure AI Language: classificar les reclamacions
Contoso rep reclamacions en text lliure. Avui algú les llegeix i les reparteix; amb AI Language es classifiquen, se'ls mesura el sentiment i se'ls extreu el número de vol automàticament.
var cliente = new TextAnalyticsClient(
new Uri("https://ai-contoso-pro.cognitiveservices.azure.com/"),
new DefaultAzureCredential()); // sense claus
var reclamacion = "Mi vuelo CA-1187 se retraso 4 horas y perdi la conexion en Paris. " +
"Nadie del mostrador supo darme informacion. Exijo una compensacion.";
// 1. Sentiment, amb opinions sobre aspectes concrets
var opciones = new AnalyzeSentimentOptions { IncludeOpinionMining = true };
DocumentSentiment sent = await cliente.AnalyzeSentimentAsync(reclamacion, "es", opciones);
// 2. Entitats: d aqui surt el numero de vol i el lloc
var entidades = await cliente.RecognizeEntitiesAsync(reclamacion, "es");
var vuelo = entidades.Value
.FirstOrDefault(e => e.Category == "Event" || e.Text.StartsWith("CA-"))?.Text;
Console.WriteLine($"{sent.Sentiment} {sent.ConfidenceScores.Negative} {vuelo}");La resposta, resumida:
{
"sentiment": "negative",
"confidenceScores": { "positive": 0.01, "neutral": 0.04, "negative": 0.95 },
"sentences": [{
"targets": [ { "text": "mostrador", "sentiment": "negative" } ],
"assessments": [ { "text": "nadie supo darme informacion", "sentiment": "negative" } ]
}],
"entities": [
{ "text": "CA-1187", "category": "Event", "confidenceScore": 0.88 },
{ "text": "4 horas", "category": "Quantity", "subcategory": "Duration" },
{ "text": "Paris", "category": "Location", "confidenceScore": 0.99 }
]
}Tres coses que cal llegir bé. confidenceScores no és una probabilitat de veritat, és la confiança del model, i un 0,95 negatiu no equival a certesa. L'extracció d'opinions identifica sobre què és negatiu el passatger —el taulell—, que és el que és accionable. I confidenceScore: 0.88 al vol significa que un de cada vuit casos pot fallar: per això el flux de Contoso no rebutja una reclamació sense número de vol, la deriva a revisió humana.
La classificació per departament es fa amb classificació personalitzada: s'etiqueten uns centenars de reclamacions històriques per categoria —equipatge, retards, atenció, reemborsaments— i el servei entrena un model propi sobre el catàleg de Contoso. Aquí sí que hi ha entrenament, però d'un classificador lleuger, no d'un model de llenguatge. El resultat alimenta el flux de 06-04, que encamina cada reclamació al seu equip.
- Document Intelligence, Speech i Translator
Document Intelligence a la facturació en línia. El model preconstruït de documents d'identitat llegeix un passaport i retorna camps estructurats amb el seu nivell de confiança:
var di = new DocumentIntelligenceClient(
new Uri("https://ai-contoso-pro.cognitiveservices.azure.com/"),
new DefaultAzureCredential());
var operacion = await di.AnalyzeDocumentAsync(
WaitUntil.Completed, "prebuilt-idDocument", BinaryData.FromStream(imagenPasaporte));
var doc = operacion.Value.Documents[0];
foreach (var campo in new[] { "FirstName", "LastName", "DocumentNumber", "DateOfExpiration" })
{
var valor = doc.Fields[campo];
// Llindar de negoci: per sota de 0,85 la dada la confirma una persona
var requiereRevision = valor.Confidence < 0.85;
Console.WriteLine($"{campo}: {valor.Content} ({valor.Confidence:P0}) revision={requiereRevision}");
}El llindar de confiança és una decisió de negoci, no tècnica. Contoso el fixa en 0,85 per als camps que van al sistema de reserves, i per sota la dada es presenta al passatger perquè la confirmi. Un passaport mal llegit significa un passatger que no embarca.
AI Speech per als avisos d'embarcament. La síntesi de veu neuronal genera l'àudio en diversos idiomes a partir d'un text, i es controla finament amb SSML —velocitat, pauses i, sobretot, la pronunciació correcta dels codis de vol i les portes, que és on la veu sintètica sol fallar—. Contoso genera l'àudio una vegada per combinació de vol, porta i idioma i el desa a la memòria cau a sttarjetascontosopro: els avisos es repeteixen, i regenerar-los cada vegada seria pagar el mateix mil vegades.
Translator per al portal. Tradueix el contingut dinàmic —descripcions de tarifes, avisos, condicions— a diversos idiomes d'una sola crida. Dues precaucions: el contingut legal i les condicions de transport no es publiquen amb traducció automàtica sense revisió, i els termes propis de Contoso es fixen amb un diccionari personalitzat, perquè «Contoso Millas» no acabi traduït com a «Contoso Miles» a la meitat de les pàgines.
- Azure OpenAI Service i Azure AI Foundry
Azure OpenAI Service ofereix els models d'OpenAI dins d'Azure, amb el que això implica: les teves dades romanen al teu recurs i a la teva regió, no es fan servir per entrenar els models, i s'apliquen RBAC, xarxes privades i registres com a qualsevol altre recurs. Azure AI Foundry és el portal i el SDK unificats des d'on s'exploren models, es despleguen, es proven amb un pati de jocs, s'avaluen i es supervisen.
az cognitiveservices account create -g rg-contoso-reservas-pro -n oai-contoso-pro \
--kind OpenAI --sku S0 --location swedencentral --custom-domain oai-contoso-pro \
--tags entorno=produccion proyecto=contoso-reservas centro-coste=CC-1042 \
[email protected]
# Un desplegament = un model amb la seva capacitat assignada
az cognitiveservices account deployment create -g rg-contoso-reservas-pro \
-n oai-contoso-pro --deployment-name asistente-pasajero \
--model-name <model> --model-version <versio> --model-format OpenAI \
--sku-name Standard --sku-capacity 30Fixa't que el model i la versió van entre marcadors expressament. El catàleg de models disponibles canvia constantment: apareixen versions noves, altres es retiren amb data de fi de vida, i la disponibilitat varia per regió i per tipus de desplegament. Consulta sempre la documentació oficial abans de fixar un model, i fixa la versió explícitament en producció en lloc de deixar que s'actualitzi sola, perquè un canvi de model pot alterar el comportament de l'assistent d'un dia per l'altre. La sku-capacity s'expressa en milers de testimonis (tokens) per minut i és el teu límit de rendiment: superar-lo retorna 429.
- Generació augmentada per recuperació (RAG)
Contoso vol un assistent que respongui als passatgers sobre equipatge, tarifes, mascotes i canvis de bitllet. La primera idea de tothom és «entrenar el model amb els nostres documents». No es fa així, i per quatre raons sòlides: és car i lent, s'ha de repetir cada vegada que canvien les condicions, el model resultant no sap citar la font del que diu, i no hi ha manera d'aplicar permisos —un model entrenat amb documents interns els revela a qui pregunti bé—.
La solució és RAG: no es canvia el model, se li dona el context adequat a cada pregunta.
graph LR DOC["Condicions de transport,<br/>tarifes, politiques d equipatge"] --> IDX["Indexacio:<br/>trossejar + incrustar"] IDX --> AIS["Azure AI Search<br/>srch-contoso-conocimiento-pro<br/>index hibrid + vectorial"] P["Passatger:<br/>Puc portar el meu gat a cabina?"] --> EMB["Incrustar la pregunta"] EMB --> AIS AIS -->|"3-5 fragments<br/>mes rellevants"| PR["Construir el missatge:<br/>instruccions + fragments + pregunta"] PR --> LLM["Azure OpenAI<br/>asistente-pasajero"] LLM --> R["Resposta amb<br/>cita de la font"] R --> CS["Content Safety<br/>+ revisio de llindar"]
El flux, pas a pas:
- Indexació (fora de línia): els documents es trossegen en fragments d'uns centenars de paraules amb encavalcament, cada fragment es converteix en un vector d'incrustació i es desa a l'índex al costat del text original i les seves metadades.
- Recuperació: la pregunta del passatger s'incrusta amb el mateix model i es busquen els fragments més propers. La cerca híbrida —vectorial més paraules clau, amb reordenació semàntica— funciona clarament millor que qualsevol de les dues per separat, perquè el vectorial capta el significat i el lèxic encerta amb els termes exactes com «CA-1187» o «23 kg».
- Generació: es construeix el missatge amb instruccions estrictes —«respon només amb la informació proporcionada; si no hi és, digues-ho i ofereix contacte humà»—, els fragments recuperats i la pregunta.
- Resposta amb cita: el model indica de quin fragment surt cada afirmació, i aquí hi ha la diferència clau amb el reentrenament: la resposta és verificable.
La peça de recuperació és Azure AI Search (srch-contoso-conocimiento-pro), amb cerca vectorial i híbrida i filtres de seguretat perquè un passatger no recuperi mai fragments interns. Però hi ha una alternativa que Contoso ja té a casa: l'extensió pgvector de psql-contoso-tripulaciones-pro, esmentada a 03-05, permet desar incrustacions i cercar per similitud a la mateixa base de dades on ja viuen les dades de tripulacions. La decisió:
| Azure AI Search | pgvector a PostgreSQL |
|
|---|---|---|
| Cerca híbrida i reordenació semàntica | Sí, integrades | Manual |
| Ingesta i indexació automàtiques | Sí, amb indexadors | La construeixes tu |
| Les dades ja hi són | No: cal copiar-les | Sí |
| Filtres al costat de dades relacionals | Limitats | Consulta SQL completa |
| Cost | Servei a part | Inclòs a la base de dades |
Regla pràctica: si el coneixement són documents, AI Search; si són files que ja són a la teva base de dades i el volum és moderat, pgvector. Contoso fa servir AI Search per a les condicions de transport, i pgvector per a la cerca per similitud de perfils de tripulació, on el filtre relacional —certificacions vigents, base operativa, hores disponibles— és tan important com la similitud.
- Azure Machine Learning: l'àmbit propi
Quan el problema no té un servei llest, toca entrenar. Contoso vol predir la demanda de seients per ruta i data per ajustar tarifes, i això depèn de les seves dades històriques: ningú no ven un servei que ho sàpiga.
Azure Machine Learning cobreix aquest cicle complet —quaderns, experiments, entrenament distribuït en clústers de còmput, registre de models i conjunts de dades, punts de connexió gestionats per a inferència i supervisió de la deriva del model—, i encaixa amb el que ja saps: les dades surten de stlagocontosopro, l'entrenament es llança des d'una canalització i el model es registra amb versió. És un món propi, amb la seva pròpia corba, i aquí només cal retenir el criteri: serveis llestos per a capacitats genèriques, Azure ML quan el valor és a les teves dades. El seu cost més gran, a més, és el còmput de l'entrenament: apaga els clústers o configura'ls per escalar a zero nodes, perquè un clúster de GPU oblidat encès és de les factures més cares que es poden generar a Azure.
- IA responsable: la part que no és opcional
Tot l'anterior té una condició prèvia. Contoso no pot posar un assistent a respondre els passatgers ni un classificador a decidir sobre reclamacions sense haver resolt això, i no per burocràcia: perquè els riscos són reals i afecten persones.
Biaixos. Els models aprenen de dades històriques i en reprodueixen les desigualtats. Un classificador de reclamacions entrenat amb decisions passades hereta els biaixos de qui les va prendre; un reconeixement de veu funciona pitjor amb accents poc representats a l'entrenament, i en un aeroport això vol dir pitjor servei per a part dels passatgers. Cal mesurar el rendiment per segments, no només la precisió global, perquè una mitjana bona pot amagar un grup mal atès.
Al·lucinacions. Un model generatiu produeix text plausible, no verdader. Si l'assistent afirma amb tota seguretat que un passatger pot portar 32 kg quan el límit són 23, aquest passatger arriba al taulell amb un problema i una captura de pantalla. Per això RAG amb instruccions estrictes, cites obligatòries, resposta explícita de «no ho sé» i mai una afirmació sobre diners, drets o documentació sense font verificable.
Privacitat i residència de les dades. Tot el que s'envia a un servei d'IA surt de la teva aplicació. Els passaports, les reclamacions i les converses contenen dades personals i, de vegades, dades de categoria especial —salut, en una reclamació per assistència mèdica—. Les obligacions concretes: fixar la regió del recurs conforme a la política de residència; minimitzar i anonimitzar abans d'enviar, traient el que no cal per a la tasca; entendre el registre de la plataforma i sol·licitar l'exempció de supervisió humana de continguts quan el cas ho justifiqui i s'aprovi; no enviar dades de menors ni de categoria especial sense base legal explícita; i fixar la retenció, sabent que les dades indexades a AI Search són una còpia que també cal governar i esborrar quan toqui.
Filtre de contingut. Azure OpenAI aplica filtratge de contingut nociu a l'entrada i a la sortida per defecte, amb nivells configurables, i Content Safety permet afegir-hi comprovacions pròpies. No el desactivis: és l'última barrera davant d'un intent de manipulació de l'assistent o d'una resposta inadequada a un passatger alterat.
Supervisió humana. En tota decisió que afecti una persona, el sistema proposa i una persona decideix. Denegar una compensació, rebutjar una identificació a la facturació o classificar una reclamació com a improcedent no poden ser decisions automàtiques i finals. El disseny correcte és: la IA prioritza i preomple, l'agent confirma, i sempre hi ha un camí per parlar amb un humà.
Marc i compliment. El marc d'IA responsable de Microsoft —equitat, fiabilitat i seguretat, privacitat, inclusió, transparència i responsabilitat— es tradueix en artefactes concrets: avaluació d'impacte, notes de transparència del servei, proves adversàries abans de publicar i supervisió contínua. En el pla legal, el RGPD exigeix base jurídica, informació a l'interessat, minimització i resposta als drets d'accés i supressió; i el Reglament Europeu d'IA classifica els sistemes per risc, amb obligacions reforçades per als d'alt risc i, per a tot sistema que interactua amb persones, l'obligació d'informar que s'està parlant amb una IA. L'ús de reconeixement facial a l'embarcament és precisament el cas que entra en la categoria més exigent.
La regla operativa de Contoso, i la que ha de sortir d'aquesta lliçó: res que faci servir IA arriba a producció sense la revisió prèvia de l'equip legal i de compliance, amb documentació de quines dades s'envien, a quin servei, en quina regió, amb quina retenció, quines decisions pren el sistema i quines són d'una persona. No és un tràmit: és la diferència entre un projecte que sobreviu a la primera auditoria i un que s'ha d'apagar.
- Cost per testimoni (token) i per transacció
Dos models de facturació hi conviuen. Els serveis d'AI Services cobren per transacció —per document, per imatge, per milió de caràcters, per hora d'àudio—, amb un nivell gratuït limitat. Azure OpenAI cobra per testimoni, comptant tant l'entrada com la sortida, amb preus diferents per a cadascuna.
El que dispara la factura sense que ningú ho vegi venir és gairebé sempre el mateix. En RAG, el context: si a cada pregunta s'envien deu fragments llargs més un historial de conversa de vint torns, cada pregunta costa el que vint preguntes simples. Els bucles de reintent sobre un model car. La regeneració del que no ha canviat, com sintetitzar el mateix avís d'embarcament mil vegades. I els clústers d'entrenament d'Azure ML encesos.
Com controlar-ho: desar agressivament a la memòria cau el que és determinista (avisos de veu, traduccions de contingut estable); limitar el nombre de fragments i resumir l'historial en lloc d'arrossegar-lo sencer; fer servir un model petit per a les tasques simples i reservar el gran per al que el necessita; fixar max_tokens a la sortida; aplicar quotes per desplegament i alertes de pressupost a rg-contoso-reservas-pro (mòdul 8); i en desenvolupament, fer servir el nivell gratuït i eliminar els recursos en acabar. Un recurs d'AI Services sense ús gairebé no costa, però un desplegament d'Azure OpenAI amb rendiment aprovisionat factura per capacitat reservada, es faci servir o no.
Errors Comuns i Consells
- Fer servir claus en lloc d'Entra ID. Acaben en un repositori.
disableLocalAuthiDefaultAzureCredential. - Tractar la confiança del model com una certesa. Fixa llindars de negoci i deriva a revisió humana per sota.
- Intentar «entrenar el model amb les nostres dades» quan el que es necessita és RAG. Car, lent, sense cites i sense permisos.
- Enviar dades personals sense minimitzar ni comprovar la regió. És un incident de protecció de dades, no un error tècnic.
- Fixar el model sense versió i descobrir que l'assistent canvia de comportament sol.
- Arrossegar tot l'historial de conversa a cada crida. El cost creix quadràticament amb la conversa.
- Desactivar el filtre de contingut perquè «no molesti». És l'última barrera.
- Deixar encès un clúster d'entrenament d'Azure ML. Escalat a zero nodes, sempre.
- Consell: desa les preguntes sense resposta de l'assistent. Són la millor llista del que falta a la base de coneixement.
- Consell: mesura la qualitat amb un conjunt de preguntes de referència i respostes correctes, i torna a passar-lo a cada canvi de model o de missatge del sistema. Sense això, «funciona millor» és una opinió.
Exercicis
Exercici 1. Contoso Millas vol un assistent que respongui els socis sobre el seu saldo de milles, les condicions del programa i com bescanviar premis.
- Dissenya l'arquitectura indicant quina part és RAG, quina part és consulta a dades i per què no es resolen igual.
- Tria entre Azure AI Search i
pgvectorper a cada tipus de contingut i justifica-ho. - Enumera cinc requisits d'IA responsable que imposaries abans de publicar-lo, i les etiquetes del recurs.
Exercici 2. El classificador de reclamacions fa un mes que és en producció. La precisió global és del 91 %, però l'equip d'equipatge es queixa de rebre reclamacions que no li pertoquen, i una auditoria detecta que les reclamacions escrites en català es classifiquen pitjor que les escrites en espanyol.
- Per què la precisió global del 91 % no contradiu cap de les dues queixes?
- Proposa com diagnosticar cada problema i com corregir-lo.
- Quina salvaguarda de disseny hauria d'haver existit des del principi?
Exercici 3. L'assistent d'atenció al passatger respon a un passatger que té dret a 600 € de compensació pel seu retard. La xifra és incorrecta: li corresponen 250 €.
- Explica els dos errors tècnics possibles.
- Dona tres mesures concretes perquè aquesta resposta no s'hagués emès mai.
- Quines conseqüències legals i de compliance té, i qui ho havia d'haver revisat?
Solucions
Solució 1:
- Són dos problemes diferents. El saldo de milles és una dada concreta d'un soci identificat: es resol amb una crida a l'API de Contoso Millas, autenticada com aquell soci, i el model només redacta la resposta amb la dada que rep. No ha de sortir mai d'un índex ni de la memòria del model, perquè seria una dada personal recuperable per altres i probablement desactualitzada. Les condicions del programa i el bescanvi de premis són documentació estable: això sí que és RAG, amb fragments citables. L'arquitectura és un assistent amb dos camins: ús d'eina per a la dada personal, recuperació per al coneixement general.
- Azure AI Search per a les condicions i el catàleg de premis: són documents, es beneficien de la cerca híbrida i la reordenació semàntica, i hi ha indexadors que els mantenen actualitzats.
pgvectorsi s'hi afegís una cerca per similitud sobre dades que ja viuen en una base relacional —per exemple, trobar premis semblants a un d'exhaurit combinant similitud amb filtres de disponibilitat i categoria—, perquè aquí la consulta SQL al costat del vector és el que fa la feina. - (a) Informar explícitament que es parla amb una IA, exigit pel Reglament Europeu d'IA. (b) Citar la font en tota afirmació sobre condicions o drets, i respondre «no ho sé» amb derivació a un agent quan no hi hagi fragment que la respalli. (c) Filtre de contingut actiu a l'entrada i a la sortida. (d) Cap decisió final automàtica sobre bescanvis o reclamacions: la IA proposa i una persona confirma. (e) Minimització de dades: no enviar al model més dades personals que les imprescindibles, amb la regió fixada i una retenció definida i documentada. Tot això revisat per legal i compliance abans de publicar. Etiquetes:
entorno,proyecto=contoso-millas,centro-coste=CC-2077ipropietario.
Solució 2:
- Perquè la precisió global és una mitjana que oculta la distribució. Un 91 % general és compatible amb un 97 % a les categories majoritàries i un 60 % a equipatge si aquesta categoria és minoritària; i és compatible amb un 93 % en espanyol i un 70 % en català si el català és una fracció petita del volum. Una mitjana bona pot amagar un grup sistemàticament mal atès, i aquest és exactament el mecanisme pel qual un biaix passa desapercebut.
- Diagnòstic: matriu de confusió per categoria per veure amb què es confon equipatge, i mètriques segmentades per idioma sobre un conjunt d'avaluació equilibrat. Correcció del primer problema: revisar els exemples d'entrenament d'equipatge —probablement pocs o mal etiquetats—, afegir-hi casos representatius, especialment els fronterers amb retards, i reentrenar. Correcció del segon: incorporar reclamacions reals en català al conjunt d'entrenament, avaluar la detecció d'idioma prèvia, i valorar un model per idioma o la traducció prèvia si el volum no dona per entrenar bé.
- Mètriques segmentades des del primer dia, amb un conjunt d'avaluació que representi tots els idiomes i categories, i un llindar mínim per segment —no només global— com a criteri de publicació. I, en paral·lel, una via de retorn: que l'equip receptor pugui marcar una reclamació com a mal classificada, generant dades de millora en lloc de queixes.
Solució 3:
- (a) Al·lucinació: la recuperació no va trobar el fragment correcte i el model va completar amb coneixement general —el reglament europeu preveu 600 € per a certs trams— sense base a la documentació de Contoso. (b) Recuperació incorrecta: es va recuperar el fragment equivocat, per exemple el de vols de llarg radi en lloc del que s'aplica a aquella distància, i el model va respondre correctament sobre una font errònia. La segona és més freqüent i més perillosa, perquè la resposta ve amb cita i sembla verificada.
- (a) Treure el càlcul del model: la compensació es calcula amb la funció
CalcularCompensacionde 06-03, que aplica les regles de manera determinista, i el model només redacta el resultat. Un import legal no ha de ser mai generat per un model de llenguatge. (b) Instrucció explícita de no donar xifres de compensació i derivar sempre a aquesta eina o a un agent. (c) Detecció de patrons sensibles —imports, drets, documentació— a la sortida, que forci revisió humana abans d'enviar-la, amb l'avís que la resposta és informativa i no vinculant. - Conseqüències: s'ha creat una expectativa legítima en el passatger, amb risc de reclamació i de sanció per informació enganyosa; en termes de protecció al consumidor i del Reglament Europeu d'IA, és un sistema que informa incorrectament sobre drets, amb obligacions de transparència i supervisió que no s'han complert. Ho havia d'haver revisat l'equip legal i de compliance abans de la publicació, definint quines preguntes pot respondre l'assistent i quines deriven obligatòriament a un humà; i l'equip de producte havia d'haver executat proves adversàries amb casos límit de compensació abans d'exposar-lo a passatgers reals.
Conclusió
Ja coneixes el catàleg d'Azure AI Services i com s'organitza —visió, parla, llenguatge, documents, cerca i decisió—, i el model de consum comú: un recurs multiservei com ai-contoso-pro amb el seu punt de connexió, i l'elecció que no admet dreceres, autenticació amb Entra ID i identitat administrada en lloc de claus, amb disableLocalAuth per tancar la porta del tot. Has implementat els quatre casos de Contoso: AI Language classificant reclamacions, mesurant sentiment i extraient el número de vol, amb la lectura crítica dels nivells de confiança; Document Intelligence llegint el passaport a la facturació en línia amb un llindar de negoci que deriva a revisió humana; AI Speech generant avisos d'embarcament multilingües desats a la memòria cau; i Translator amb les seves dues precaucions, el contingut legal i el diccionari de termes propis.
Saps què és Azure OpenAI Service i Azure AI Foundry, com es desplega un model amb la seva capacitat, i que el catàleg canvia constantment: consulta la documentació i fixa la versió en producció. Entens bé la generació augmentada per recuperació: per què no es reentrena un model amb les dades de l'empresa —cost, actualització, absència de cites i de permisos—, com funciona el cicle d'indexar, recuperar, generar i citar, per què la cerca híbrida guanya, i quan fer servir Azure AI Search davant de pgvector a psql-contoso-tripulaciones-pro. I situes Azure Machine Learning al seu àmbit: entrenar models a mida quan el valor és a les teves dades, com la predicció de demanda de seients, amb els seus clústers apagats. Tot això amb l'advertiment d'IA responsable que travessa la lliçó —biaixos que una mitjana oculta, al·lucinacions que es converteixen en promeses a un passatger, privacitat i residència de les dades que s'envien, filtre de contingut, supervisió humana en tota decisió que afecti persones, el marc de Microsoft, el RGPD i el Reglament Europeu d'IA— i la seva regla operativa: res no arriba a producció sense la revisió prèvia de legal i compliance. A més del cost per testimoni i per transacció, i el que el dispara.
Amb això es tanca el mòdul 6, i val la pena mirar enrere. Contoso Airlines hi va entrar amb un motor de disponibilitat atrapat en una màquina virtual i en surt amb una plataforma irreconeixible: aquest motor empaquetat en un contenidor, publicat a acrcontosopro i executant-se a Container Apps amb escalat a zero; una plataforma d'operacions de vol sobre AKS amb identitat de càrrega de treball i sense ni un sol secret; l'emissió de targetes i la sincronització de tarifes resoltes amb Azure Functions dirigides per esdeveniments i protegides per idempotència; les integracions amb correu, missatgeria, Teams i el sistema d'incidències muntades com a fluxos de Logic Apps que l'equip d'operacions entén; una arquitectura de missatges i esdeveniments amb Service Bus, Event Grid i Event Hubs que ha desacoblat la compra de tot el que és accessori; i capacitats d'IA que fa un mòdul eren impossibles. La plataforma fa ara moltes més coses, i les fa en moltes més peces.
I aquí hi ha justament el problema que obre el que ve. Un sistema tan distribuït —revisions de contenidors, pods, funcions efímeres, fluxos de treball, cues, temes, particions i crides a serveis d'IA— és impossible d'operar a cegues. Quan un passatger digui «he pagat i no m'ha arribat la targeta d'embarcament», ningú no podrà respondre mirant un servidor: caldrà seguir el rastre d'aquesta reserva a través de sis components. El mòdul 7, Monitoratge i gestió, s'ocupa exactament d'això: mètriques, alertes i taulers amb Azure Monitor, consultes KQL sobre log-contoso-pro, traces d'extrem a extrem amb Application Insights, automatització de les tasques operatives amb Azure Automation i, finalment, còpies de seguretat i recuperació davant de desastres, perquè una plataforma que no es pot restaurar no està acabada.
Curs d'Azure
Mòdul 1: Introducció a Azure
- Què és Azure?
- Models de servei, regions i zones de disponibilitat
- Crear i configurar el teu compte d'Azure
- Recorregut pel portal d'Azure
- Azure Resource Manager: subscripcions, grups de recursos i etiquetes
- Azure CLI, PowerShell i Cloud Shell
Mòdul 2: Serveis principals d'Azure
- Màquines virtuals d'Azure
- Escalat i alta disponibilitat del còmput
- Azure App Service
- Azure Storage: blobs, fitxers, cues i taules
- Xarxes a Azure: xarxes virtuals, subxarxes i NSG
- Connectivitat híbrida i lliurament global
Mòdul 3: Bases de dades d'Azure
- Triar el servei de dades adequat
- Azure SQL Database
- Azure Cosmos DB
- Azure Database for MySQL
- Azure Database for PostgreSQL
- Analítica de dades: Data Lake, Data Factory i Synapse
Mòdul 4: Seguretat a Azure
- Microsoft Entra ID i gestió d'identitats
- RBAC i identitats administrades
- Azure Key Vault
- Protecció DDoS i tallafoc d'aplicacions web
- Microsoft Defender for Cloud
- Governança i compliment amb Azure Policy
Mòdul 5: Azure DevOps
- Introducció a Azure DevOps
- Azure Repos
- Azure Pipelines: integració contínua
- Desplegament continu amb entorns i aprovacions
- Azure Artifacts
- Infraestructura com a codi amb Bicep
Mòdul 6: Serveis avançats d'Azure
- Contenidors a Azure: Container Registry i Container Apps
- Azure Kubernetes Service (AKS)
- Azure Functions
- Azure Logic Apps
- Missatgeria i esdeveniments: Service Bus, Event Grid i Event Hubs
- Serveis d'IA d'Azure
Mòdul 7: Monitoratge i gestió
- Azure Monitor: mètriques, alertes i taulers
- Log Analytics i consultes KQL
- Application Insights
- Azure Automation i runbooks
- Còpies de seguretat i recuperació davant desastres
Mòdul 8: Gestió i optimització de costos
- Calculadora de preus i estimació de costos
- Azure Cost Management: anàlisi, pressupostos i alertes
- Reserves, plans d'estalvi i Azure Hybrid Benefit
- Azure Advisor
- Estratègies d'optimització i cultura FinOps
