Rúbrica PR5071/02: Sistema Expert en Python amb Docker
Informació General
| Camp | Detalls |
|---|---|
| Pràctica | PR5071/02 — Sistema Expert en Python amb Docker |
| Mòdul | 5071 — Models d'Intel·ligència Artificial |
| Resultat aprenentatge | RA5, RA6 |
| Pes en la nota del mòdul | 20% |
| Lliurament | Fitxer ZIP amb nom PR5071/02_nom_cognoms.zip |
| Defensa oral | Presentació de 10 minuts + 5 minuts de preguntes |
Criteris d'Avaluació
Criteri 1: Base de coneixement — Nombre i qualitat de les regles (30%)
Avalua la quantitat, la qualitat i la coherència de les regles de la base de coneixement. Les regles han de reflectir coneixement expert real del domini escollit, no inventades de manera arbitrària.
| Nivell | Puntuació | Descriptor |
|---|---|---|
| Excel·lent | 9-10 | Mínim 25 regles, ben estructurades i coherents entre si. Les regles cobrien tots els casos d'ús importants del domini (diagnosi, recomanació, tractament o solució). Cada regla té: condicions específiques (no genèriques), una conclusió clara, un factor de confiança justificat (no tots iguals a 0.9) i una explicació comprensible per a un no-expert. Les regles estan organitzades en grups temàtics amb comentaris. Cap regla és contradictòria amb una altra. El domini escollit és prou ric per justificar 25+ regles. |
| Notable | 7-8 | Mínim 22 regles correctes. La majoria tenen condicions específiques i explicacions informatives. Alguns factors de confiança no estan prou justificats (per exemple, tots valen 0.85 sense variació). Hi ha alguna regla contradictòria o redundant però és aïllada. Les regles cobreixen bé el domini amb algun buit menor. |
| Aprovat | 5-6 | Mínim 20 regles (mínim exigit). Algunes regles són excessivament simples (una sola condició trivial). Els factors de confiança no estan justificats o son tots idèntics. Les explicacions son massa breus o tècniques per a l'usuari final. La cobertura del domini és bàsica però suficient. |
| Insuficient | < 5 | Menys de 20 regles, o les regles no formen una base de coneixement coherent (condicions sense sentit, conclusions que no es deriven de les condicions, dominis trivials com "si la llum és verda, llavors endavant"). Els factors de confiança no s'han implementat o no s'usen. |
Criteri 2: Motor d'inferència — Correcció i completesa (25%)
Avalua la implementació del motor d'inferència forward chaining: que funcioni correctament, que convergeixi, que registri l'historial d'inferències i que gestioni casos sense conclusions.
| Nivell | Puntuació | Descriptor |
|---|---|---|
| Excel·lent | 9-10 | El motor d'inferència implementa correctament el bucle de punt fix (aplica regles fins que no es deriven nous fets). Gestiona correctament el cas en que dues regles podrien entrar en conflicte o una regla genera un fet que activa una altra regla en cadena (encadenament de múltiples nivells). Registra l'historial d'inferències complet incloent el número de iteració, la regla aplicada i el timestamp. Detecta i gestiona el cas en que no es deriva cap conclusió. Distingeix correctament entre conclusions intermedies i conclusions finals. |
| Notable | 7-8 | El motor funciona correctament per a la majoria de casos. L'encadenament de múltiples nivells funciona però pot tenir problemes amb casos extrems. L'historial registra les inferències però sense timestamp o sense número d'iteració. Gestiona el cas sense conclusions. |
| Aprovat | 5-6 | El motor d'inferència bàsic funciona (aplica regles i deriva conclusions directes) però no gestiona l'encadenament en profunditat (regles que depenen d'altres regles derivades). L'historial és present però incomplet. El cas sense conclusions no es gestiona adequadament (error o missatge inadequat). |
| Insuficient | < 5 | El motor d'inferència no funciona correctament (aplica les regles una sola vegada sense bucle, o aplica totes les regles independentment de si les condicions es compleixen). No hi ha historial d'inferències. El programa dona errors en casos no trivials. |
Criteri 3: Interfície d'usuari (15%)
Avalua la qualitat de la interfície de text interactiva: si és fàcil d'usar, si guia l'usuari adequadament, si les preguntes estan ben formulades i si gestiona entrades incorrectes.
| Nivell | Puntuació | Descriptor |
|---|---|---|
| Excel·lent | 9-10 | La interfície presenta el nom del sistema expert i del domini de manera clara en arrencar. Les preguntes estan formulades en català correcte i comprensible per a un usuari no tècnic. Les preguntes s'adapten dinàmicament (si l'usuari respon "No" a "Teniu connexió a internet?", no es fan preguntes sobre problemes web que no li afecten). Es gestionen entrades incorrectes (l'usuari escriu "si" en lloc de "S") sense que el programa falli. Hi ha feedback visual (línies separadores, títols de seccions). Es pot reiniciar per a un nou diagnòstic sense tancar el programa. |
| Notable | 7-8 | La interfície és clara i les preguntes están en català. Pot no tenir adaptació dinàmica (fa totes les preguntes sempre), però és comprensible. Gestiona la majoria d'entrades incorrectes. El reinici funciona. |
| Aprovat | 5-6 | La interfície funciona però és massa senzilla (preguntes genèriques, poca guia per a l'usuari). Les entrades incorrectes poden causar errors que l'alumne ha gestionat parcialment. Les preguntes no sempre estan en català correcte. El reinici pot no estar implementat. |
| Insuficient | < 5 | La interfície és rudimentària (input sense validació, preguntes en castellà o incomprensibles, sense capçalera ni estructura). Els errors d'entrada causa l'aturada del programa. No és possible fer un segon diagnòstic sense reiniciar el programa. |
Criteri 4: Explicabilitat del sistema (15%)
Avalua si el sistema és capaç d'explicar el seu raonament de manera comprensible per a l'usuari: quines regles ha aplicat, per quin motiu, en quin ordre i amb quina confiança.
| Nivell | Puntuació | Descriptor |
|---|---|---|
| Excel·lent | 9-10 | El mètode generar_explicacio() (o equivalent) produeix una explicació detallada i llegible del procés de raonament: (1) llista els fets inicials, (2) descriu cada regla aplicada en ordre (id de la regla, condicions complertes, conclusió derivada), (3) indica el factor de confiança de cada pas, (4) mostra les conclusions finals destacades. L'explicació és comprensible per a un usuari no tècnic (sense noms de variables críptics). L'usuari pot triar si vol veure o no l'explicació detallada. |
| Notable | 7-8 | L'explicació mostra les regles aplicades i les conclusions amb els factors de confiança. Pot usar noms de variables interns (menys llegible per a no tècnics). L'usuari pot demanar l'explicació. |
| Aprovat | 5-6 | L'explicació mostra quines conclusions s'han derivat però no quin camí de raonament s'ha seguit (no enumera les regles intermedies). O bé mostra les regles aplicades però sense les condicions que les han activat. |
| Insuficient | < 5 | No hi ha explicació del raonament, o l'explicació és simplement la llista de conclusions sense cap context. El sistema és una "caixa negra" per a l'usuari. |
Criteri 5: Documentació (10%)
Avalua la qualitat del fitxer README, dels comentaris al codi i de les respostes a les preguntes de reflexió.
| Nivell | Puntuació | Descriptor |
|---|---|---|
| Excel·lent | 9-10 | El README conté: (1) descripció del domini escollit i justificació, (2) comandes Docker exactes per a executar el sistema, (3) exemples de sessions de diagnòstic (entrades i sortides esperades), (4) descripció del disseny de la base de coneixement (per quin motiu les regles estan organitzades com estan), (5) respostes elaborades a les 5 preguntes de reflexió (mínim 3 paràgrafs per pregunta). El codi Python té docstrings a totes les classes i mètodes, i comentaris explicatius als blocs clau. |
| Notable | 7-8 | El README explica com executar el projecte i inclou les respostes a les preguntes de reflexió. La justificació del disseny és present però breu. Les docstrings son presents a la majoria de mètodes. |
| Aprovat | 5-6 | El README inclou les comandes d'execució però és bàsic. Les respostes a les preguntes de reflexió estan però son superficials. El codi té alguns comentaris però les classes no tenen docstrings completes. |
| Insuficient | < 5 | No hi ha README o és el fitxer genèric sense adaptar. Les preguntes de reflexió no estan contestades o les respostes mostren que no s'ha entès la pràctica. El codi no té comentaris ni docstrings. |
Criteri 6: Defensa oral (5%)
Avalua la capacitat de l'alumne de presentar i defensar el seu treball, demostrar que ha entès el que ha implementat i respondre preguntes tècniques sobre sistemes experts.
| Nivell | Puntuació | Descriptor |
|---|---|---|
| Excel·lent | 9-10 | Presentació clara de 8-10 minuts amb demostració en directe del sistema (execució Docker). L'alumne explica el forward chaining amb els seus propis exemples del projecte. Pot explicar per quin motiu ha triat els factors de confiança que ha triat. Respon preguntes sobre casos límit i sobre com ampliarien el sistema. Compara el sistema expert amb alternatives de ML amb arguments propis. |
| Notable | 7-8 | Presentació de 7-10 minuts amb demostració funcional. Explica el forward chaining correctament amb alguna imprecisió menor. Respon preguntes tècniques bàsiques. La comparativa amb ML és bàsica però correcta. |
| Aprovat | 5-6 | Presentació de 5-8 minuts. La demostració funciona però l'explicació del funcionament intern és superficial. Pot respondre preguntes sobre el comportament extern del sistema però no sobre la implementació interna. |
| Insuficient | < 5 | La presentació és molt breu o no hi ha demostració funcional. No pot explicar el forward chaining. Hi ha evidències que el codi ha estat generat per IA sense comprensió per part de l'alumne. |
Taula Resum de Puntuació
| # | Criteri | Pes | Puntuació (0-10) | Nota ponderada |
|---|---|---|---|---|
| 1 | Base de coneixement (nombre i qualitat de regles) | 30% | ||
| 2 | Motor d'inferència (correcció i completesa) | 25% | ||
| 3 | Interfície d'usuari | 15% | ||
| 4 | Explicabilitat del sistema | 15% | ||
| 5 | Documentació | 10% | ||
| 6 | Defensa oral | 5% | ||
| TOTAL | 100% | __ / 10 |
Penalitzacions
| Situació | Penalització |
|---|---|
| Lliurament fora de termini (per cada dia de retard) | -0,5 punts |
| Fitxer ZIP amb nom incorrecte (sense el nom de l'alumne) | -0,5 punts |
| El fitxer Python no porta el nom de l'alumne | -0,5 punts |
nom_expert no conté el nom de l'alumne |
-0,5 punts |
Les comandes Docker no inclouen --name amb el nom de l'alumne |
-0,5 punts |
| Codi que no executa sense modificacions | -2 punts |
| Evidència d'haver copiat d'un altre alumne | Suspens automàtic (0) |
| Evidència d'haver generat el codi amb IA sense comprensió | Suspens automàtic (0) i entrevista personal |
Ampliació Opcional (Bonus)
Les ampliacions opcionals permeten pujar nota fins a un màxim de 10 (no es pot superar el 10):
| Ampliació | Bonus màxim |
|---|---|
Implementació de lògica difusa amb scikit-fuzzy funcional |
+1 punt |
| Interfície gràfica amb Tkinter o Gradio | +0,5 punts |
| Exportació del diagnòstic a PDF o HTML | +0,5 punts |
| Tests automatitzats (pytest) per al motor d'inferència | +0,5 punts |
| Visualització del graf de regles (networkx + matplotlib) | +0,5 punts |
Preguntes Tipus per a la Defensa Oral
El professorat pot fer qualsevol de les preguntes següents durant la defensa:
- Explica amb un exemple del teu projecte com funciona el bucle de forward chaining. Quants cicles de l'algorisme executa en un cas típic?
- Per quin motiu has assignat una confiança de X a la regla Y? En quin cas la confiança d'una regla hauria de ser 1.0 i quan no?
- Quina diferència hi ha entre el forward chaining i el backward chaining? Per quin tipus de problemes seria millor el backward chaining?
- Si dos metges experts no es posen d'acord sobre el tractament correcte per a un cas, com modelaríes aquest conflicte a la teva base de coneixement?
- Com escalaries el teu sistema expert per gestionar una base de coneixement de 10.000 regles? Quins problemes de rendiment apareixerien?
- L'AI Act de la UE classifica els sistemes de diagnòstic mèdic com a sistemes d'alt risc. Quines obligacions legals tindria el teu sistema si es desplegués en un hospital?
- Quines avantatges i desavantatges té el teu sistema expert en comparació amb un model Random Forest entrenat amb les mateixes dades?
Recordatori
La nota mínima per superar la pràctica és 5 sobre 10 en la nota global ponderada. Una nota inferior a 3 en el criteri de Motor d'inferència (criteri 2) implica no superar la pràctica independentment de la resta de criteris, ja que és el component central de la competència avaluada.