Comment j'ai construit un bot anti-arnaque sur des données douteuses : détecteur, classifyeur et pièges en cours de route
OpenAI
L'auteur décrit la construction d'un bot anti-arnaque pour les chats crypto, utilisant un classifieur pour détecter les demandes d'aide et un classifyeur pour déterminer le type de problème. Les leçons clés incluent l'utilisation de l'apprentissage actif pour améliorer l'ensemble de données, le gel d'un ensemble de référence pour des métriques fiables, et l'évitement de complexités inutiles.
Le projet aborde le problème des escrocs dans les salons de discussion crypto qui lisent les messages publics puis contactent les utilisateurs en privé pour leur demander de l'aide. Le bot détecte les demandes d'aide publiques et répond avec un avertissement et un lien vers un support authentique. Le premier défi a été de construire un classificateur sans ensemble de données étiquetées. La collecte de données initiale basée sur des expressions régulières a limité la capacité du modèle à généraliser à des formulations inédites. L'apprentissage actif a été utilisé pour ajouter itérativement des exemples incertains, faisant passer l'ensemble positif de 830 à 1176 éléments. Les quasi-doublons ont été conservés pour améliorer la robustesse face aux fautes de frappe et à l'argot. Le critère de classification est passé de « demande d'aide » à « adapté au vaccin » pour éviter de déclencher sur des questions simples. La validation croisée sur un ensemble de données changeant a donné des métriques trompeuses ; un ensemble de référence figé de 245 messages a révélé de réelles améliorations, avec un rappel passant de 0,50 à 0,78. Un test séparé sur le trafic réel a montré une précision ajustable de 0,74 à 0,87 selon le seuil. Le typifieur (type de problème) a été maintenu comme une simple régression logistique pour éviter toute complexité inutile. Le système utilise un seul modèle d'embedding multilingue pour le détecteur et le RAG, un compromis qui a économisé des ressources mais peut limiter le rappel du RAG. L'architecture est un service FastAPI distinct avec SQLite, appelé par un bot de production en mode fire-and-forget, avec un mode fantôme pour des tests sûrs.
Source: Habr — хаб ML —
original
