Sign inSign up

redteamsfr/themis

By redteamsfr

•Updated 4 days ago

Image
0

290

redteamsfr/themis repository overview

⁠Themis

Un prompt relève-t-il de l'informatique ? Themis pèse chaque prompt et répond par une probabilité : « Écris un script Python » → IT, « Propose-moi un plan d'investissement » → hors IT.

Petit modèle de classification (indecis⁠), CPU seul : pas de GPU, pas d'accès réseau, quelques millisecondes par prompt.

⁠Démarrage rapide

docker run --rm redteamsfr/themis juger "Écris un script Python" "Donne-moi une recette de crêpes"
0.973	IT	Écris un script Python
0.041	hors-IT	Donne-moi une recette de crêpes

Sortie : P(IT), verdict, texte, séparés par des tabulations. Verdict IT si P(IT) ≥ 0,5.

⁠Juger des prompts

# un ou plusieurs prompts en arguments
docker run --rm redteamsfr/themis juger "Comment configurer nginx ?"

# un fichier, un prompt par ligne (noter le -i)
docker run --rm -i redteamsfr/themis juger < prompts.txt

# sortie JSON complète, une ligne par prompt
docker run --rm -i redteamsfr/themis juger --json < prompts.txt

# autre seuil de décision
docker run --rm -e SEUIL=0.3 redteamsfr/themis juger "Mon PC est très lent"

Raccourci : un texte passé sans commande est jugé, docker run --rm redteamsfr/themis "Mon texte".

⁠Évaluer sur vos propres données

Préparez un fichier étiqueté, une ligne par prompt :

# les commentaires et lignes vides sont ignorés
oui | Mon imprimante réseau n'apparaît plus.
non | Réécris ce mail en anglais.

Puis montez le dossier qui le contient sur /data :

docker run --rm -v "$PWD:/data" redteamsfr/themis evaluer mes-prompts.txt
docker run --rm -v "$PWD:/data" redteamsfr/themis evaluer mes-prompts.txt --erreurs   # + prompts mal classés
docker run --rm redteamsfr/themis evaluer                                            # jeu de test embarqué

Le format JSONL d'indecis est aussi accepté : {"text": "...", "labels": {"it": true}}, avec --par CHAMP pour détailler par un champ meta.

mesuresens
accpart des prompts bien classés
Pprécision : part des « IT » annoncés qui le sont vraiment
Rrappel : part des prompts IT reconnus
AUCqualité du tri des scores, indépendante du seuil
Brier, NLL, ECEqualité des probabilités (ECE : 0 = parfaitement calibré)

⁠Autres commandes

docker run --rm redteamsfr/themis            # aide
docker run --rm redteamsfr/themis version    # données et réglages du modèle
docker run --rm redteamsfr/themis check      # le processeur exécute-t-il les instructions SIMD ?

Sans SIMD (AVX2 sur x86), Themis fonctionne mais plusieurs fois plus lentement. check le dit.

⁠Ce qui compte comme « informatique »

Oui : programmation, algorithmique, systèmes, réseau, sécurité (y compris les demandes malveillantes, on classe le domaine, pas la légitimité), support et dépannage, utilisation d'un logiciel (Excel, Teams…), données avec un outil, IA en tant que technique.

Non : rédaction ou traduction d'un texte qui parle d'informatique sans en faire (annonce pour recruter un développeur, mail de départ du DSI), entreprises et marché de la tech, droit, maths sans code, commandes à un assistant vocal, IA comme sujet de société, et tout le reste.

⁠Le modèle

  • encodeur bekko-embedding-v1-a8m⁠ (multilingue, 7,7 M de paramètres), entièrement fine-tuné avec indecis ; embeddings en int8 ;
  • 1 000 prompts réels étiquetés par Claude Sonnet selon une politique écrite, tirés de openhermes-fr, toxicchat et MASSIVE (fr), dont 125 « pièges » (vocabulaire informatique, demande qui ne l'est pas) ; 28 % d'IT ;
  • surtout du français, et de l'anglais.

Mesure sur 37 prompts écrits à la main, jamais vus à l'entraînement : 94,6 % (précision 94 %, rappel 94 %, AUC 0,97). Sur si peu de prompts, un prompt vaut 2,7 points : c'est un ordre de grandeur, pas un benchmark.

Limites connues :

  • le support utilisateur formulé simplement est mal reconnu (« Mon PC est très lent » → 0,09, « Mon VPN ne marche plus » → 0,33) : les données d'entraînement en contiennent peu ;
  • quelques pièges passent encore (« budget du pot de lancement du nouveau logiciel » → 0,71) ;
  • les prompts sont lus sur 256 tokens au plus ; au-delà, seul le début compte.

Évaluez sur vos propres données avant de vous fier au seuil par défaut.

⁠Tags et plateformes

  • latest : dernière version ; AAAAMMJJ : version datée, figée
  • linux/amd64 et linux/arm64, choisis automatiquement au docker pull
  • base Alpine, utilisateur non root (uid 10001), dossier de travail /data, ≈ 130 Mo compressés

Tag summary

Content type

Image

Digest

sha256:ebdf35cb4…

Size

125.1 MB

Last updated

4 days ago

docker pull redteamsfr/themis