Modérer une communauté Telegram semble un problème résolu, jusqu’à ce que vous en gériez réellement une. Un groupe de dix mille personnes génère un torrent de messages, et parmi eux se cachent des spammeurs qui ont passé des années à apprendre comment déjouer le moindre filtre naïf que vous pourriez écrire. Ils mélangent les alphabets, insèrent des caractères de largeur nulle, traduisent leur boniment dans trente langues et changent de formulation plus vite qu’une liste de blocage ne peut suivre.
Telm est notre réponse à cela. Le principe de conception qui le sous-tend, c’est que la détection de spam est deux problèmes à la fois : elle doit être assez rapide pour agir avant qu’un message ne soit vu, et assez précise pour ne pas punir les vrais membres. Ces objectifs tirent dans des directions opposées — la vérification la plus précise est aussi la plus lente — alors, au lieu d’en choisir un, nous avons construit un pipeline de trois couches, chacune attrapant ce que la précédente n’a pas pu et ne transmettant que les cas difficiles.
Couche un : le moteur de règles
La première couche est un moteur de règles réglé à la main, et c’est lui qui fait l’essentiel du travail. Il embarque plus de 200 motifs couvrant le spam qui ne change jamais vraiment : invitations à des pumps de cryptomonnaies, fausses offres d’emploi, « écris-moi en privé pour de l’argent facile », liens de phishing, et les astuces d’obfuscation utilisées pour les faire passer à travers les filtres.
Les deux choses qui le rendent efficace sont l’étendue et la vitesse.
- Il normalise le texte avant de faire la correspondance — en repliant les caractères Unicode d’apparence identique, en supprimant les espaces de largeur nulle, en réduisant les astuces d’homoglyphes qui transforment « invest » en une chaîne qui a l’air identique mais ne l’est pas. Les spammeurs comptent sur le fait que votre expression régulière voit quelque chose de différent de ce que voit l’œil humain ; la normalisation comble cet écart.
- Il couvre plus de 30 langues, car une règle qui ne connaît que l’anglais est aveugle à la majeure partie du spam mondial.
- Il s’exécute en moins de 10 millisecondes. C’est le chiffre qui permet à Telm de supprimer un message avant que la salle ne l’ait vraiment vu, plutôt qu’une fois le mal fait.
Le moteur de règles attrape à lui seul l’écrasante majorité du spam. Mais les règles ont un plafond : elles ne connaissent que ce qu’on leur a appris, et une arnaque véritablement inédite ne correspondra à aucun motif. C’est à cela que servent les couches suivantes.
Couche deux : le classificateur par IA
Lorsqu’un message survit aux règles mais semble tout de même suspect — un lien inhabituel, un rythme de publication étrange, un primo-posteur au message en forme de boniment — il passe à un classificateur d’apprentissage automatique entraîné sur des messages étiquetés, spam et légitimes.
Le classificateur attrape ce que les règles ne savent pas formuler : le ton d’une arnaque, la structure d’une tentative de manipulation, la forme d’un message techniquement propre mais statistiquement suspect. Le problème, c’est que l’inférence d’un modèle coûte cher, et l’exécuter sur chaque message ferait exploser le budget de latence que le moteur de règles s’efforce tant de protéger.
Le classificateur se place donc derrière un cache. Le spam arrive par vagues — la même campagne frappe de nombreux groupes avec des messages quasi identiques en quelques minutes. Nous indexons le cache sur une empreinte normalisée du message, de sorte que la première occurrence d’une campagne paie le coût d’inférence complet et que chaque copie suivante est un succès de cache. En pratique, le cache absorbe l’essentiel du trafic répété, et le modèle ne s’exécute réellement que sur du contenu véritablement nouveau.
message ──▶ normalize ──▶ rule engine (<10ms, 200+ patterns)
│ uncertain
▼
fingerprint cache ──hit──▶ verdict
│ miss
▼
AI classifier ──▶ verdict + cache writeCouche trois : la mémoire sémantique
La troisième couche est celle qui rend Telm difficile à contourner dans la durée. Les spammeurs n’envoient pas deux fois le même message — ils le paraphrasent. « Rejoins notre groupe de signaux exclusif » devient « accède à notre canal de trading privé », qui devient la même offre en portugais. Un cache d’empreintes voit trois chaînes différentes. Un humain voit une seule arnaque.
La mémoire sémantique comble cet écart en travaillant sur le sens plutôt que sur le texte. Lorsqu’un message est confirmé comme spam, Telm stocke un plongement (embedding) — un vecteur numérique qui capture ce que le message signifie plutôt que la façon dont il est orthographié. Les nouveaux messages sont eux aussi plongés, puis comparés à cette mémoire par similarité. Une paraphrase, une traduction, un boniment reformulé atterrissent tous près de l’original dans l’espace vectoriel, même s’ils ne partagent presque aucun caractère littéral.
C’est ce qui permet à Telm d’attraper la deuxième, la troisième et la centième variante d’une arnaque qu’on ne lui a montrée qu’une seule fois. Le moteur de règles gère le connu, le classificateur gère l’inédit, et la mémoire sémantique gère le muté — la longue traîne du spam qui survit précisément parce qu’il ne se répète jamais mot pour mot.
La liste de blocage CAS
Toutes les défenses n’ont pas à être calculées localement. Telm intègre la liste de blocage Combot Anti-Spam (CAS), un registre mondial, maintenu par la communauté, des comptes déjà confirmés comme spammeurs à travers l’écosystème Telegram.
La valeur de CAS, c’est qu’elle agit avant même qu’un message n’existe. Lorsqu’un compte connu comme malveillant tente de rejoindre un groupe ou d’y publier, Telm peut le bannir à vue — aucun contenu à analyser, aucune inférence à exécuter, car l’identité elle-même est le signal. C’est la vérification la moins coûteuse possible, et elle élimine une part significative des acteurs malveillants avant même que le pipeline de détection n’ait à s’en préoccuper.
Le mode Surveillance : n’agir qu’une fois la confiance établie
Un bot de modération qui se trompe est pire que pas de bot du tout. Supprimez le message d’un vrai membre dès le premier jour et vous avez appris à la communauté à se méfier de l’outil. C’est pourquoi chaque nouveau groupe démarre Telm en mode Surveillance.
Dans ce mode, Telm observe et rend compte, mais ne touche à rien. Pour chaque message, il enregistre l’action qu’il *aurait* prise — supprimer, rendre muet, bannir — et vous la montre, sans réellement rien exécuter. Vous voyez exactement comment le pipeline se comporte face au trafic réel de votre communauté, avec vos vrais membres, avant qu’il n’ait la permission d’agir.
Cela fait deux choses. Cela construit une confiance justifiée : vous ne basculez Telm en mode actif qu’une fois que vous avez vu ses décisions coïncider avec votre jugement. Et c’est un filet de sécurité pour le réglage — si une règle donnée est trop agressive pour la culture de votre groupe, vous le découvrez dans un rapport, et non dans un message furieux d’un membre banni pour avoir dit « jetez un œil à mon projet ».
Le mode Surveillance est, en un sens, toute la philosophie en une seule fonctionnalité. La détection peut être agressive parce que l’activation est prudente. Vous voyez avant qu’il n’agisse, et au moment où il agit, vous savez déjà qu’il a raison.