Sobre o projeto

O Antiserum descreve-se como um antivírus para dados de treinamento: um scanner local que sinaliza possíveis venenos em conjuntos de dados de texto, além de um feed compartilhado de assinaturas confirmadas. O repositório é o produto. Não há login nem serviço de varredura hospedado. A documentação pública é servida via GitHub Pages, mas o site documenta a CLI e não faz varreduras, julgamentos ou hospeda corpora. O projeto visa a uma questão de pré-treinamento: um conjunto de dados é seguro para aprendizado? Neste contexto, seguro significa que a mistura não contém gatilhos ocultos, inversões de rótulos coordenadas, despejos de duplicatas ou outras linhas plantadas que podem parecer limpas até que um modelo as memorize. A ferramenta é Python 3.10+ e é instalada via PyPI com pip install antiserum, que expõe o comando antiserum. Uma varredura local não utiliza a rede, não requer chaves de API nem baixa conjuntos de dados. Ela pode escanear pastas de JSONL, CSV, JSON, variantes compactadas em gzip e caminhos de cache local do Hugging Face ou conjuntos de dados baixados. Shards Arrow e Parquet requerem um extra opcional. O scanner possui três camadas. A camada inata roda na máquina local e inclui verificações de n-grams raros, inversões de rótulos, despejos de cópias próximas, famílias de paráfrases além de Jaccard, picos de comprimento e entropia, correspondências de feed de assinaturas, controles Unicode ocultos e tokens de scripts mistos. A camada adaptativa é uma rubrica publicada onde um humano ou um agente pode marcar uma sinalização como veneno, lixo ou alarme falso. A camada de memória é um feed local de assinaturas mais um corpus de referência. Lançamentos de pacotes datados são rastreados em um changelog, e uma varredura gera um recibo contendo o hash do conjunto de dados, versão do scanner, identidade do pacote, sinalizações e correspondências confirmadas. As verificações documentadas incluem n-grams de gatilho, inversões de rótulos, injeção de duplicatas, excesso de paráfrases, outliers estatísticos, correspondência de assinatura, anulação de instrução, Unicode oculto e script misto. Algumas verificações sempre precisam de confirmação humana, enquanto outras podem ter uma classificação inicial de lixo ou alarme falso. Os usuários podem executar apenas verificações selecionadas ou pular verificações, e o recibo registra quais verificações foram executadas para que a omissão permaneça visível. O comportamento de varredura é intencionalmente local e limitado. O teto padrão é de 25.000 linhas ou 128 MiB de arquivos de origem. Um despejo maior para no teto, registra a truncagem no recibo e sai com código 3 em vez de esgotar a memória. Uma opção allow-truncated pode manter a saída 0 para uma amostra deliberada, enquanto o recibo ainda indica a truncagem. Os códigos de saída distinguem uma varredura concluída sem sinalizações falhas, sinalizações no ou acima de um limite de falha, erros de uso ou E/S e truncagem. O fail-on pode ser any, high ou never. Os recibos são determinísticos para os mesmos bytes de pasta e sinalizações, e um comando diff pode comparar um recibo de linha de base salvo com um novo sem re-escanear. A ferramenta pode gerar relatórios em JSON, SARIF, HTML, CSV e Markdown, todos localmente. A configuração pode ser colocada em um arquivo local antiserum.toml, com sinalizações substituindo as configurações do arquivo. Um arquivo allowlist.jsonl pode suprimir alarmes falsos conhecidos, e o recibo ainda registra o caminho e o hash da allowlist para que a supressão não ocorra silenciosamente. O fluxo de confirmação usa comandos para julgar sinalizações, resolver pendências, adicionar alarmes falsos à allowlist local e propor uma linha de assinatura e o corpo de um pull-request. Venenos confirmados tornam-se assinaturas públicas que varreduras futuras podem corresponder. O repositório inclui um corpus de brinquedo para uma demonstração de dois minutos e um corpus de referência com algumas centenas de plantas e uma maioria limpa. O comando make reproduce escaneia a mistura de referência e sai com valor diferente de zero se uma linha plantada for ignorada. Os testes incluem linting, cobertura de pytest, fixtures de field-hunt e avaliação por verificação contra limites. Um GitHub Action pode executar a CLI em um runner de chamada, produzir artefatos de recibo e SARIF e, opcionalmente, fazer o upload do SARIF para varredura de código. Exemplos de CI mostram como falhar um job com base em sinalizações de recibo ou severidade. O README é explícito sobre o escopo. O Antiserum não é um firewall de prompt em tempo de execução, um scanner de malware de arquivos de modelo ou pickle, uma ferramenta de qualidade de dados ou erro de rótulo, um inversor de backdoor em nível de peso ou um gerador de veneno de imagem. Ele é apenas para varredura de conjuntos de dados de texto na versão atual. Cobertura honesta, modelo de ameaça, notas de field-hunt e posicionamento estão documentados no repositório. O projeto possui licença MIT e é apresentado como um status de semana 11-12 com CLI funcional, verificações, loop de confirmação, demo de brinquedo, corpus de referência, feed e recibo.