# weightwatch v0.1: escanea backdoors en modelos open-weight antes de cargarlos

> Source: <https://dev.to/magopredator/weightwatch-v01-escanea-backdoors-en-modelos-open-weight-antes-de-cargarlos-29kd>
> Published: 2026-08-27 03:26:15+00:00

Cualquiera puede subir un LLM fine-tuneado a HuggingFace y afirmar que es seguro. Un modelo con *backdoor* (puerta trasera) se comporta con normalidad en uso corriente y solo se desvía cuando un *trigger* oculto se activa. Si no tienes los datos de entrenamiento ni una referencia limpia, **no puedes detectarlo**.

Eso es exactamente el problema que resuelve [ weightwatch](https://github.com/amurlaniakea/weightwatch): un escáner

`CLEAN`

, `SUSPICIOUS`

o `BACKDOOR`

.No es intuición: lo medí. Barriendo arXiv (papers 2026, filtro anti-survey) contra `total_count`

de repos GitHub que ya resuelven cada problema:

| Área | Papers arXiv 2026 | Repos GitHub (suma/máx) |
|---|---|---|
| Seguridad multi-agente | 68 | 2964 / 2093 |
| Detección de alucinaciones | 63 | 1291 / 860 |
Backdoors en modelos open-weight |
75 |
66 / 39 |
| Envenenamiento en RAG | 54 | 522 / 249 |

El ganador estaba claro: **75 papers cuantifican el problema, pero GitHub tiene 0 repos para "fine-tuned model backdoor scanner" y 1 para "fine-tuning poisoning detector".** La investigación explota; el tooling apenas existe. weightwatch es la audit-tool de ese sub-nicho (el patrón de [ keybound](https://github.com/amurlaniakea/keybound) /

`topowatch`

weightwatch aplica la técnica *output-to-input loop* (arXiv:[2608.11348](https://arxiv.org/abs/2608.11348)):

Además ejecuta un conjunto de **muestras canary** (inputs inofensivos que un backdoor típico dispara) y cuenta cuántos producen la firma esperada. Sin datos de entrenamiento ni modelo base limpio: eso es lo que lo hace útil en la práctica.

```
pip install -e ".[dev]"
weightwatch --fixture backdoored --json
```

Salida real del CLI:

```
{
  "fixture": "backdoored",
  "verdict": "BACKDOOR",
  "severity": "high",
  "techniques": {
    "output_to_input_loop": {"converged": true, "trigger": "<BACKDOOR-ACTIVE>", "score": 1.0},
    "canary": {"fired": 5, "total": 5, "score": 1.0}
  },
  "exit_code": 1
}
```

El MVP valida la **lógica** del escáner, no la detección sobre modelos reales todavía. Lo documento abierto porque importa para quien lo vaya a usar:

`CleanLM`

/ `BackdooredLM`

), no `transformers`

. El fast suite corre sin red ni claves.`SUSPICIOUS`

; la detección white-box (probes tipo Sleeper Agents, arXiv:Esto está en `KNOWN_ISSUES.md`

del repo, no lo oculto: la frontera entre "demo determinista" y "escaneo de un checkpoint real" es real y la marco.

Hubo un detalle de pulido: en la auditoría en clone limpio faltaba la cabecera de licencia en un `__init__.py`

; se corrigió antes del release. Lo cuento porque forma parte de por qué confío en el número "15/15" — alguien más lo revisó, no me lo tomé a mí mismo.

Los papers lo dicen con datos: arXiv:[2608.11348](https://arxiv.org/abs/2608.11348) advierte que "un usuario sin los datos de entrenamiento ni una referencia limpia no puede detectar" un modelo con backdoor; arXiv:[2608.11295](https://arxiv.org/abs/2608.11295) muestra que los backdoors en modelos open-weight son indetectables si el trigger no se activa en testing. weightwatch fuerza esa activación. Es el primer paso de una línea de audit-tools para la cadena de suministro de modelos, junto a keybound y topowatch.

`RESEARCH.md`

en el repoSi cargas modelos de terceros, escanea antes. El MVP es determinista y corre sin GPU.
