Apportez votre référence aux personnes qui peuvent la tuer

DEV - 15:49
Il y a dix jours, j'ai eu un benchmark : réorganiser les poids experts dans un fichier de modèle MoE par mesure...

Il y a dix jours, j'ai eu un benchmark : réorganiser les poids experts dans un fichier de modèle MoE par co-activation mesurée, et les lectures de disque par jeton diminuent de 2,23 ×. C’était réel, reproductible et entièrement mesuré sur ma propre machine – c’est-à-dire qu’il ne valait presque rien pour l’instant.

Aujourd'hui, le chiffre le plus fort attaché à ce travail est celui que je n'ai pas produit : +32,3 % de débit de décodage et −26,3 % de temps d'obtention du premier jeton sur un modèle à paramètres 235B fonctionnant sur un MacBook de 48 Go, mesuré par quelqu'un que je n'ai jamais rencontré, sur un moteur d'inférence que je n'aurais jamais exécuté, en utilisant mon script non modifié, avec les bras échangés comme contrôle de cache de pages. En cours de route, deux de mes trois arguments initiaux ont été réfutés par des données, ma prédiction de mise à l'échelle préenregistrée a échoué à son propre seuil et mes deux tentatives de prévision d'un paramètre clé ont manqué dans des directions opposées.

Les réfutations étaient la partie productive. Cet article parle du processus qui les a rendus bon marché : cinq moteurs, une demi-douzaine d'étrangers, un fil de discussion et la discipline qui en a émergé - parce que je pense que le processus se généralise et que les articles que je vois habituellement ne le mentionnent pas.

La configuration

L'idée (projet : mbolt) est BOLT/PGO appliqué aux modèles binaires. L'ordre tenseur des points de contrôle est un accident du pipeline de formation ; Le routage du MoE au moment de l'inférence est loin d'être aléatoire : les experts tirent en cliques. Si un moteur diffuse des experts depuis SSD, la disposition des fichiers décide si les échecs d'un jeton sont une poignée de longues lectures séquentielles ou des milliers de lectures dispersées. Donc : tracez le routage, regroupez la co-activation, réécrivez le fichier, conservez les poids exacts en octets.

Après une semaine en solo, j'ai eu une réduction de lecture de 2,23 × sur un modèle 80B, un gain de décodage de bout en bout de 1,55 × par rapport à un lama.cpp corrigé, des portes d'exactitude (poids identiques aux octets, mappage de routage à 100,000 % à travers la permutation, divergence de sortie 5 × en dessous du delta du CPU↔ Metal du backend du même moteur) et un A/B aveugle de 500 invites qui a marqué 48 à 46 avec 26 égalités — un tirage au sort, qui pour un changement de disposition est l'objectif.

J'avais aussi un nul que j'avais mesuré moi-même : su...
[Courte citation de 8% de l'article original]

Loading...