Afirmar lo hace cualquiera
esto se puede comprobar

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.

PASSFAILINCOMPARABLENOT_RUN

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.

Léelo antes

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.

Dónde está esto

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.

01El problema

Un número que nadie puede recomprobar es una opinión

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.

MatrixAI no arregla esto prometiendo más. Lo arregla escribiendo lo que pasó, atándolo a huellas, y entregando un comprobador que puede correr cualquiera —incluido uno que dice, en voz alta, lo que no ha podido comprobar.
02El recibo

Qué es un recibo y para qué sirve

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.

  • Se emite cuando algo se ejecuta: un pipeline, una evaluación. Una simulación no emite ninguno, y dice por qué — un papel que describe algo que no pasó se lee como prueba de que pasó.
  • Se puede firmar, y firmar es un acto aparte: quien firma decide con qué clave. Un recibo sin firmar es nivel A0 y lo dice.
  • Quien lo recibe puede comparar dos recibos del mismo modelo y leer la diferencia sin abrir un terminal.
Un recibo en el Studio: lo que se midió, las huellas del modelo y los datos, el nivel y lo que no atestigua
Un recibo de verdad, de un modelo que MatrixAI no entrenó. La medida, las dos huellas, el nivel — y las palabras del propio recibo sobre lo que NO atestigua.
03Garantía

De A0 a A4: qué sostiene de verdad un recibo

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.

NivelQué sostiene
A0Sin firmar. Está estructurado y se puede leer, pero no demuestra de quién es: cualquiera puede escribir uno igual.
A1Firmado. No se ha tocado entre quien lo emitió y quien lo lee.
A2Firmado y con evidencia reproducible: la receta y la huella del dataset viajan, así que el resultado se puede rehacer.
A3–A4Reservados para entornos de ejecución atestiguados y pruebas que este camino no da hoy. No se reclaman.
Firmar mejor NO sube el nivel. Sigstore firma con una identidad verificable y contesta a «de quién es esto», que HMAC no puede — y aun así deja el nivel donde estaba. Los niveles hablan de lo que se comprobó, no de la fuerza de la firma. Si firmar mejor subiera el nivel, A2 dejaría de significar «hay evidencia reproducible».
04Verificación

Cuatro etapas, y una de ellas es «esto no lo he podido comprobar»

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:

PASSFAILINCOMPARABLENOT_RUN
EtapaQué comprueba
manifestCada artefacto del paquete casa con el sha256 que el manifiesto declara — y no viaja nada que el manifiesto no nombre.
R1El dataset regenerado desde la receta tiene el sha256 completo que el paquete declara.
trainingEl entrenamiento llega a término con lo que el paquete lleva dentro.
R3Las 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.

La fase Auditoría: las seis comprobaciones deterministas que el core rehace en cada cambio de la IR
No es lo mismo, y conviene distinguirlo: estas seis comprobaciones son DETERMINISTAS y se rehacen en cada cambio del modelo — parser, verificador, seguridad, tipos, compilador, contrato del backend. Dicen que el modelo está bien formado. Las cuatro etapas de abajo dicen que el paquete se sostiene.
La verificación del paquete con sus cuatro etapas, empezando por lo que no se comprobó
La verificación del paquete, que se PIDE — rehacer el paquete cuesta. Empieza por «NO se comprobó todo», antes de cualquier veredicto, y dice como tales las etapas que nadie corrió.
El panel empieza por lo que no se comprobó, antes de cualquier visto bueno. Un informe que abre con «nada falló» invita a leer cuatro aciertos donde había dos aciertos y dos cosas que nadie miró.
05Contra qué

El manifiesto: qué se comprobaría, y con qué números

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.

  • Tres cifras de épocas, no una. Lo que pidió el contrato, lo que dejó el tope y lo que corrió de verdad son tres preguntas distintas, y un paquete que solo contesta la primera está escondiendo las otras dos.
  • Una métrica sin la huella de su dataset no sirve. ¿«94%» sobre qué filas? El manifiesto dice cuáles, y eso casi nadie lo publica.
  • Lo que falta se enumera. Ni en blanco ni relleno: nombrado, para que sepas qué pedirle a quien hizo el paquete.
Las cuatro etapas con sus motivos, y El paquete por dentro con semillas, épocas y huellas
Las cuatro etapas con el motivo de cada una, y debajo «El paquete, por dentro»: semillas, las tres cifras de épocas, y cada artefacto con su sha256.
06Modelos ajenos

Medir un modelo que no ha entrenado MatrixAI

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-toto

Para qué vale, y para qué no:

  • Puedes comparar proveedores sobre los mismos datos. Dos recibos, la misma huella de CSV, dos números — y nadie tiene que fiarse de la presentación de nadie.
  • La medida queda clavada. Cambia una fila del CSV y cambia la huella: un recibo no se puede reutilizar en silencio para otros datos.
  • El techo es A1, y la pantalla lo dice antes de que subas nada. Los niveles altos hablan de entornos de ejecución y de pruebas que este camino no da.
Solo ONNX, y es una decisión. Ejecutar el código de otro ampliaría la superficie de ataque de un producto cuyo argumento entero es la confianza. Y a un modelo que declara entradas enteras tampoco se le da un decimal: ONNX Runtime lo truncaría en silencio, y ese número acabaría en un recibo firmado.
Traer un modelo que no ha entrenado MatrixAI: el formulario, con lo que el recibo atestigua y lo que no
Antes de subir nada, la pantalla dice qué atestigua uno de estos recibos, qué NO, y dónde está el techo de la garantía.
07TRIPOD+AI

La lista clínica, rellenada con lo que el run guardó

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

El 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+AIDe dónde sale
Fuente de los datos y tamaño de la muestrala receta y artifacts.dataset.rows — y con receta, la fuente es sintética declarada, escrito tal cual
Predictores y columnas excluidasfield_types, field_ranges, excluded_identifiers
Partición y aleatorizaciónlas tres semillas y el SPLIT del contrato
Método de modelado e hiperparámetrosel .mxai y el .mxtrain, los dos legibles y los dos viajando en el paquete
Entorno y versionespython, plataforma, paquetes, motor y dispositivo
Métricas de rendimientocon la huella del dataset sobre el que se midieron
Disponibilidad del modeloel paquete: ONNX + predict.py, usable sin MatrixAI instalado
Datos ausentes · Calibración · Equidad por subgruposHoy no se calculan — y la ficha lo dice, casilla por casilla
Financiación · Conflictos · Aprobación ética · Uso previstoLos escribe una persona. El informe los pide; no los inventa
Una ficha con huecos explicados es útil. Una con huecos mudos es peor que ninguna: se lee como si no hubiera nada que decir.
08Interoperabilidad

No es un formato privado

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ándarQué te da
DSSEel sobre de firma, con el payload en base64 como manda la especificación
in-totoel mismo recibo como Statement, con sus sujetos y sus huellas — matrixai attest --in-toto
CycloneDX 1.6 ML-BOMla 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
Sigstorefirma sin claves, con identidad verificable — matrixai attest --sigstore
Se emiten los dos sobres y cada uno dice cuál es: el nativo no se retira. Y --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 es calidad
Que el modelo sea bueno
Un recibo dice qué salió al medirlo así, sobre estos datos. Si eso basta para tu problema es un juicio, y es tuyo.
No es autoría
Que el modelo sea tuyo
Atestiguar un modelo ajeno atestigua la evaluación, el entorno y las entradas. Un modelo copiado de otro sitio produce exactamente el mismo recibo que uno propio.
No es política
De quién hay que fiarse
Una firma dice quién firmó. Si a ese firmante hay que creerle es una política de confianza, y este producto no la decide por ti.
No es aprobación
Validez clínica o regulatoria
Una ficha TRIPOD+AI no es un producto sanitario, ni una aprobación, ni sustituye al criterio de quien firma el estudio. La propia ficha lo dice en su primera línea.
Ver los tres casos →Consigue el Studio