Sobre el proyecto
Antiserum se describe a sí mismo como un antivirus para datos de entrenamiento: un escáner local que marca posible veneno en conjuntos de datos de texto, además de un feed compartido de firmas confirmadas. El repositorio es el producto. No hay inicio de sesión ni servicio de escaneo alojado. La documentación pública se sirve desde GitHub Pages, pero el sitio documenta la CLI y no escanea, juzga ni aloja corpora.
El proyecto está orientado a una pregunta de pre-entrenamiento: ¿es un conjunto de datos seguro para aprender? En este contexto, seguro significa que la mezcla no contiene activadores ocultos, cambios de etiquetas coordinados, volcados de duplicados u otras filas plantadas que pueden parecer limpias hasta que un modelo las memoriza. La herramienta es Python 3.10+ y se instala desde PyPI con pip install antiserum, que expone el comando antiserum. Un escaneo local no utiliza la red, no requiere claves API ni descarga conjuntos de datos. Puede escanear carpetas de JSONL, CSV, JSON, texto plano, variantes comprimidas en gzip y rutas de caché local de Hugging Face o conjuntos de datos descargados. Los fragmentos Arrow y Parquet requieren un extra opcional.
El escáner tiene tres capas. La capa innata se ejecuta en la máquina local e incluye comprobaciones de n-gramas raros, cambios de etiquetas, volcados de copias casi exactas, familias de paráfrasis más allá de Jaccard, picos de longitud y entropía, coincidencias de feed de firmas, controles Unicode ocultos y tokens de escritura mixta. La capa adaptativa es una rúbrica publicada donde un humano o un agente puede marcar una bandera como veneno, basura o falsa alarma. La capa de memoria es un feed local de firmas más un corpus de referencia. Las versiones de los paquetes fechados se rastrean en un registro de cambios, y un escaneo escribe un recibo que contiene el hash del conjunto de datos, la versión del escáner, la identidad del paquete, las banderas y los aciertos confirmados.
Las comprobaciones documentadas incluyen n-gramas de activación, cambios de etiquetas, inyección de duplicados, exceso de paráfrasis, valores atípicos estadísticos, aciertos de firma, anulación de instrucciones, Unicode oculto y escritura mixta. Algunas comprobaciones siempre necesitan confirmación humana, mientras que otras pueden tener una clasificación inicial de basura o falsa alarma. Los usuarios pueden ejecutar solo comprobaciones seleccionadas o saltarse algunas, y el recibo registra qué comprobaciones se ejecutaron para que la omisión permanezca visible.
El comportamiento del escaneo es intencionalmente local y acotado. El techo predeterminado es de 25,000 filas o 128 MiB de archivos fuente. Un volcado más grande se detiene en el techo, registra el truncamiento en el recibo y sale con código 3 en lugar de agotar la memoria. Una opción allow-truncated puede mantener la salida 0 para una muestra deliberada, mientras que el recibo sigue indicando que fue truncado. Los códigos de salida distinguen entre un escaneo completado sin banderas fallidas, banderas en o por encima de un umbral de falla (fail-on), errores de uso o E/S, y truncamiento. Fail-on puede ser any, high o never. Los recibos son deterministas para los mismos bytes de carpeta y banderas, y un comando diff puede comparar un recibo base guardado con uno nuevo sin volver a escanear. La herramienta puede generar informes en JSON, SARIF, HTML, CSV y Markdown, todo de forma local.
La configuración puede colocarse en un archivo local antiserum.toml, con banderas que anulan la configuración del archivo. Un archivo allowlist.jsonl puede suprimir falsas alarmas conocidas, y el recibo sigue registrando la ruta y el hash de la lista de permitidos para que la supresión no sea silenciosa. El flujo de trabajo de confirmación utiliza comandos para juzgar banderas, resolver pendientes, añadir falsas alarmas a la lista de permitidos local y proponer una línea de firma y el cuerpo de un pull-request. El veneno confirmado se convierte en una firma pública que los escaneos futuros pueden coincidir.
El repositorio incluye un corpus de juguete para una demostración de dos minutos y un corpus de referencia con unas pocas cientos de plantas y una mayoría limpia. El comando make reproduce escanea la mezcla de referencia y sale con un valor distinto de cero si se omite una fila plantada. Las pruebas incluyen linting, cobertura de pytest, fixtures de búsqueda de campos y evaluación por comprobación frente a umbrales. Una GitHub Action puede ejecutar la CLI en un runner del llamador, producir artefactos de recibo y SARIF, y opcionalmente cargar SARIF para el escaneo de código. Los ejemplos de CI muestran cómo fallar un trabajo basándose en las banderas del recibo o la severidad.
El README es explícito sobre el alcance. Antiserum no es un firewall de prompts en tiempo de ejecución, un escáner de malware de archivos de modelo o pickle, una herramienta de calidad de datos o errores de etiquetas, un inversor de puertas traseras a nivel de pesos, ni un generador de veneno de imágenes. En la versión actual, es solo para el escaneo de conjuntos de datos de texto. La cobertura honesta, el modelo de amenazas, las notas de búsqueda de campo y el posicionamiento están documentados en el repositorio. El proyecto tiene licencia MIT y se presenta como un estado de las semanas 11-12 con una CLI funcional, comprobaciones, bucle de confirmación, demo de juguete, corpus de referencia, feed y recibo.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.