Desenvolvedor Construiu um Filtro de Spam Local com Modelo ruBert-base-antispam Sem VPN
No Habr, desenvolvedores descreveram como um modelo ruBert-base-antispam local pega spam que escapa dos filtros Yandex, Mail e SpamAssassin. O modelo de 177 milhões de parâmetros usa cerca de 550 MB de memória e responde em 100-200 milissegundos, filtrando pseudo-spam como convites de conferência e anúncios de crédito.
Processado por IA de Habr AI; editado por Hamidun News
Um desenvolvedor descreveu no Habr como construiu um sistema de filtragem de spam de email em múltiplos níveis sem VPN, adicionando a ele um modelo local ruBert-base-antispam do HuggingFace — um ajuste fino do DeepPavlov/rubert-base-cased-conversational com 177 milhões de parâmetros, que requer cerca de 550 MB de RAM.
Como a filtragem em múltiplos níveis é organizada
Anúncios no sistema do autor são bloqueados através de um servidor DNS personalizado e filtros CSS locais, mas o spam de email exigiu tratamento separado. O esquema é construído em vários estágios sequenciais: primeiro os emails são verificados por filtros integrados do Yandex e Mail — eles filtram parte do spam antes de ser encaminhado para outra caixa de correio. O que passa por eles chega ao próprio servidor do autor, onde fica o SpamAssassin e captura mais lixo.
Após dois níveis, alguns emails ainda vazam e chegam ao Gmail: alguns acabam automaticamente na pasta "Spam", enquanto outros chegam à caixa de entrada com uma notificação irritante. O autor queria evitar que spam se acumulasse nas pastas com o tempo, o que tem que ser limpado manualmente — e spammers, segundo ele, não ficam ociosos e constantemente atualizam suas técnicas de evasão.
Por que os filtros padrão não eram suficientes
Um problema particular foi causado por emails que não são formalmente uma violação: convites para conferências, ofertas de parceria, envios de cartão de crédito. Filtros bayesianos capturam tais mensagens mal porque carecem de sinais óbvios de spam clássico — apenas incômodo e baixo valor para o destinatário. Foi essa zona cinzenta entre "definitivamente spam" e "definitivamente não spam" que os três níveis anteriores de filtragem não conseguiram cobrir, e uma ferramenta separada era necessária, capaz de avaliar o significado de um email, não apenas sinais formais de uma mailing.
- Modelo — ruBert-base-antispam do HuggingFace, um ajuste fino do DeepPavlov/rubert-base-cased-conversational
- 177 milhões de parâmetros, 12 camadas de transformador, tamanho oculto 768
- Limite de entrada — 512 tokens
- Consumo de memória — cerca de 550 MB, resposta leva 100-200 milissegundos
- Classificador binário: saída é apenas 0 ou 1, sem prompts ou raciocínio
Que modelo o autor escolheu
Um modelo BERT local resolveu ambos os problemas de uma vez — tanto acumulação de spam quanto relutância em depender de APIs em nuvem pagas. ruBert-base-antispam é um classificador binário: texto de um email entra, 0 ou 1 sai, sem prompts ou raciocínio como em grandes modelos de linguagem. Essa simplicidade de arquitetura fornece velocidade de resposta de 100-200 milissegundos com cerca de 550 MB de memória — o modelo pode ser mantido em execução constante em um servidor doméstico comum sem se preocupar com carga extra.
O limite de 512 tokens de entrada não é crítico para filtragem de spam: você não precisa analisar todo o email, os primeiros parágrafos são suficientes para entender seu caráter. Enquanto isso, o modelo base DeepPavlov/rubert-base-cased-conversational, no qual o ajuste fino é construído, foi originalmente treinado em russo conversacional — isso deve ajudar a distinguir mais com precisão a correspondência viva de mailings publicitários e semi-publicitários.
O que isso significa
O caso mostra que para tarefas aplicadas estreitas como filtragem de spam, grandes LLMs em nuvem não são necessários: um pequeno modelo BERT local com 177 milhões de parâmetros manipula mais rápido e mais barato, trabalhando completamente offline e sem VPN.
Perguntas frequentes
Que modelo o autor usa para filtragem de spam?
É ruBert-base-antispam do HuggingFace — um ajuste fino do DeepPavlov/rubert-base-cased-conversational, 177 milhões de parâmetros, 12 camadas de transformador e tamanho oculto 768.
Quantos recursos tal modelo local requer?
O modelo precisa de cerca de 550 MB de RAM, e resposta a um texto leva 100-200 milissegundos; comprimento máximo de entrada é limitado a 512 tokens.
Precisa de IA funcionando dentro da sua empresa — não só no feed de notícias?
Eu construo IA em produção para empresas — CRM sob medida, ferramentas internas, agentes autônomos, automação de processos. Pertence a você, moldada ao seu processo, sem taxa por usuário. Feito por Zhemal Khamidun, CPO da AlpinaGPT (plataforma de IA, 6.000+ usuários).
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.