Cada modelo que construye MatrixAI lleva un recibo, un manifiesto y un paquete que reproduce. Otra persona —una auditoría, un revisor, un cliente— puede rehacer la comprobación sin pedirte nada y sin creerte.
Las capturas están en inglés. Se tomaron conduciendo la aplicación con la interfaz en ese idioma, y los rótulos que este manual cita —Build model, Save, los nombres de las fases— son los de esas imágenes. La aplicación habla también español: si la usas así verás esos mismos botones traducidos, y lo que hace cada uno es lo que cuenta este texto.
Esta página va de lo que se puede demostrar sobre un modelo —de dónde salió, con qué datos, qué se midió y sobre qué— y de nada más. No dice que un modelo sea bueno. El último bloque enumera lo que nada de esto demuestra, y no es letra pequeña: es la mitad del argumento.
Dentro del Studio es la fase Audit (o la vista Verification en el Workbench). Desde un terminal son matrixai verify, matrixai attest, matrixai report --tripod y matrixai bom. Y sin instalar nada, son los tres casos de /casos, ya ejecutados y con su salida literal.
Un modelo se entrega como un fichero y una cifra: «94% de acierto». Todo lo que decide si esa cifra significa algo —qué datos, qué partición, qué semilla, qué versión de qué biblioteca, si los pesos que viajan son los que se entrenaron— se queda detrás: en un cuaderno, en la cabeza de alguien, o en ninguna parte.
Da igual hasta que alguien tiene que responder por ello: una auditoría, un regulador, un cliente preguntando cómo se construyó el modelo que decide sobre él. Entonces la cifra vale lo que valga quien la dice.
Un recibo es un documento JSON pequeño que registra una cosa que pasó: este modelo, sobre estos datos, dio este número, aquí y ahora. Lleva las huellas (sha256) del modelo y de los datos, el entorno en el que corrió, la métrica con su dirección y su tolerancia y —siempre— una línea diciendo lo que no atestigua.
Un nivel que cualquiera puede escribirse a sí mismo no significa nada, así que el nivel se deduce de lo que el recibo lleva — el assurance_level escrito dentro del documento se ignora a propósito.
| Nivel | Qué sostiene |
|---|---|
A0 | Sin firmar. Está estructurado y se puede leer, pero no demuestra de quién es: cualquiera puede escribir uno igual. |
A1 | Firmado. No se ha tocado entre quien lo emitió y quien lo lee. |
A2 | Firmado y con evidencia reproducible: la receta y la huella del dataset viajan, así que el resultado se puede rehacer. |
A3–A4 | Reservados para entornos de ejecución atestiguados y pruebas que este camino no da hoy. No se reclaman. |
matrixai verify rehace el paquete y da cuenta de cuatro etapas por separado. Cada una con su veredicto, y hay cuatro veredictos posibles — no dos:
| Etapa | Qué comprueba |
|---|---|
manifest | Cada artefacto del paquete casa con el sha256 que el manifiesto declara — y no viaja nada que el manifiesto no nombre. |
R1 | El dataset regenerado desde la receta tiene el sha256 completo que el paquete declara. |
training | El entrenamiento llega a término con lo que el paquete lleva dentro. |
R3 | Las métricas de ese entrenamiento nuevo caen dentro de su tolerancia declarada. |
El veredicto interesante es INCOMPARABLE. Un paquete entrenado con datos que no se pueden rehacer es un caso honesto y frecuente — llamarlo FAIL sería acusarlo de estar manipulado. Así que el informe dice «esto no lo he podido comparar, y por qué», y el código de salida deja a un guion distinguir los tres casos sin leer el JSON.
Cada paquete lleva un reproduce.json: las semillas (datos, partición, inicialización de los pesos), las tres cifras de épocas —declaradas, efectivas y ejecutadas de verdad—, los artefactos con sus huellas, y las métricas con la huella del dataset sobre el que se midieron.
Puedes traer un modelo ONNX de donde sea —PyTorch, TensorFlow, scikit-learn, un proveedor— y un CSV de evaluación. Se ejecuta, se mide, y el número queda atado a las huellas de los dos ficheros en un recibo que otra persona puede recomprobar.
matrixai attest modelo.onnx --data eval.csv --target-column y \
--key <hex> --in-totoPara qué vale, y para qué no:
TRIPOD+AI (BMJ, 2024) es la lista de comprobación de 27 ítems que se pide para publicar un estudio que desarrolla o valida un modelo de predicción clínica. Lo medido es que la mayoría de los trabajos sigue sin cumplirla: se rellena a mano, al final y de memoria.
matrixai report <paquete> --tripod --locale es -o ficha.mdEl comando no inventa nada. Escribe lo que el run ya guardó, en el formato que ese público está obligado a entregar, y nombra las casillas que no puede rellenar.
| Qué pide TRIPOD+AI | De dónde sale |
|---|---|
| Fuente de los datos y tamaño de la muestra | la receta y artifacts.dataset.rows — y con receta, la fuente es sintética declarada, escrito tal cual |
| Predictores y columnas excluidas | field_types, field_ranges, excluded_identifiers |
| Partición y aleatorización | las tres semillas y el SPLIT del contrato |
| Método de modelado e hiperparámetros | el .mxai y el .mxtrain, los dos legibles y los dos viajando en el paquete |
| Entorno y versiones | python, plataforma, paquetes, motor y dispositivo |
| Métricas de rendimiento | con la huella del dataset sobre el que se midieron |
| Disponibilidad del modelo | el paquete: ONNX + predict.py, usable sin MatrixAI instalado |
| Datos ausentes · Calibración · Equidad por subgrupos | Hoy no se calculan — y la ficha lo dice, casilla por casilla |
| Financiación · Conflictos · Aprobación ética · Uso previsto | Los escribe una persona. El informe los pide; no los inventa |
Un recibo que solo sabe leer un MatrixAI es un recibo que no vale fuera de MatrixAI. Así que el mismo contenido viaja también en los sobres que el resto del mundo ya lee:
| Estándar | Qué te da |
|---|---|
| DSSE | el sobre de firma, con el payload en base64 como manda la especificación |
| in-toto | el mismo recibo como Statement, con sus sujetos y sus huellas — matrixai attest --in-toto |
| CycloneDX 1.6 ML-BOM | la lista de materiales del paquete, validada contra el esquema oficial y determinista: su número de serie sale de la huella del manifiesto y no de uno al azar — matrixai bom |
| Sigstore | firma sin claves, con identidad verificable — matrixai attest --sigstore |
--sigstore nunca cae a HMAC en silencio — si falta la biblioteca o la identidad dice cuál, y no escribe ningún recibo. Caer a otra firma sería dar por hecho que te da igual quién responde por el documento.No hace falta que te creas nada de esto. La galería trae tres modelos con su receta, su contrato de entrenamiento, las huellas de todo, el paquete que predice sin instalar MatrixAI, y el informe de verificación tal y como sale.