À propos

Fait à Catane.

MAFDET est développé par Simone Di Mauro et Simone Di Natale, deux amis de Catane qui programment ensemble depuis l'enfance. Tous deux étudient à l'université de Catane, en informatique et en ingénierie informatique. À eux deux : back end, IA, sécurité, matériel, machine learning. À peu près ce qu'il faut pour qu'un modèle de langage se mette au travail avant que vous n'appuyiez sur Entrée.

Simone Di Mauro sur GitHub

Simone Di Mauro

Informatique · Licence, université de Catane

Informatique, avec pour terrain le développement back end, l'intelligence artificielle et la cybersécurité : les services et les API, les modèles derrière eux, et ce qui se passe quand quelqu'un essaie de les casser. Il tient au logiciel qui tourne en local et qui est sûr par défaut : pas de compte, aucune donnée qui quitte la machine, des téléchargements qui font confiance aux certificats du système au lieu de désactiver les vérifications.

@MbareSimo99 ↗
Simone Di Natale sur GitHub

Simone Di Natale

Ingénierie informatique · Licence, université de Catane

Ingénierie informatique, à l'aise entre la conception logicielle et le matériel : comment un programme est structuré, et ce que la machine en fait vraiment. Ses intérêts traversent le machine learning, l'automatisation et la performance : faire tenir un modèle dans une carte de 6 Go, mesurer ce que coûte chaque couche, et automatiser les benchmarks pour qu'un résultat puisse être répété plutôt que cru.

@TheLastOxygen ↗

◆ En pratique ils font tout ensemble : le moteur, l'appli, la recherche, les discussions sur les trois. Les domaines ci-dessus sont le point de départ de chacun, pas une répartition du travail.

L'histoire

Deux cursus, un goulot d'étranglement : l'attente après Entrée.

Ils ont grandi à Catane et ont commencé à programmer ensemble enfants : d'abord des jeux et des scripts, puis tout ce qui demandait à un ordinateur de faire quelque chose qu'il ne faisait pas d'origine. L'habitude est restée. L'université lui a donné deux noms, informatique pour l'un et ingénierie informatique pour l'autre, tous deux à l'université de Catane.

Les deux cursus se recouvrent exactement là où vit MAFDET. D'un côté la théorie de la façon dont un modèle de langage lit (le prefill, parallèle et rapide) et écrit (le decode, un token à la fois). De l'autre le matériel qui doit le faire assez vite pour paraître instantané, avec un cache KV qui tient dans six gigaoctets.

MAFDET est né d'une mesure, pas d'un slogan. Un modèle local sur une RTX 2060 répond à un problème de mathématiques environ douze secondes après Entrée, et la plupart de ces secondes sont du raisonnement. Pendant les vingt ou trente secondes passées à taper la question, le GPU ne fait rien. La question est venue d'elle-même : ce temps peut-il servir ?

Lire à l'avance était la moitié facile : garder le cache KV synchronisé avec le texte, retenir les derniers tokens, couper au préfixe commun à chaque modification. C'est exact, et mafdet judge le prouve face à un calcul à partir de zéro. Réfléchir à l'avance était la moitié difficile : un modèle qui raisonne sur un message pas encore terminé, avec ses notes conservées d'une modification à l'autre. Ce n'est pas exact, alors cela a été mesuré de la seule façon honnête, sur des problèmes à réponse connue, des dizaines de fois, sur deux machines.

Il a été construit exprès pour le matériel que la plupart des gens possèdent déjà : une carte de six gigaoctets de 2019 comme machine de référence, un M2 Pro comme seconde, un chemin CPU pour tout le reste. Un matériel plus rapide le rend plus rapide. Il n'en a pas besoin.

Comment ils travaillent

Trois habitudes, tenues au grand jour.

Mesurer

Chaque affirmation sur ce site a un script et un fichier JSON derrière elle dans le dépôt. Quand quelque chose n'a pas marché, le gatherer, les brouillons spéculatifs, c'est écrit avec les chiffres, pas effacé.

Dire ce que c'est

Un prototype s'appelle un prototype. Linux n'est pas testé et le site le dit. La lecture anticipée est exacte et la réflexion anticipée ne l'est pas, et la différence est expliquée plutôt que lissée.

Construire pour de vraies machines

Pas de PyTorch, pas de cloud, pas de compte. L'appli s'installe toute seule sur le GPU que vous avez, ou sur le CPU s'il n'y a que ça, et n'envoie jamais un message nulle part.

Dites bonjour.

Le meilleur endroit est GitHub : une issue, un benchmark depuis votre machine, une pull request. Si vous avez une AMD Radeon, ils aimeraient tout particulièrement avoir de vos nouvelles.