Comment un modèle tourne en quatre bits sans s'effondrer.

SRC·27 Source
Jetez trois bits sur quatre — il le remarque à peine.

Jetez trois bits sur quatre — il le remarque à peine.

Un modèle entraîné, ce sont des milliards de nombres longs et exacts. La quantification arrondit chacun à une version bien plus grossière — de seize bits à quatre — et il répond presque pareil. Comme un bonsaï : toute l'allure d'un grand arbre, tenue dans une fraction du bois. Le gain est réel : un modèle qui remplissait un serveur tient désormais sur une fraction du matériel.
Le coût, ce n'est pas penser. C'est trimballer les nombres.

Le coût, ce n'est pas penser. C'est trimballer les nombres.

M=Pb8 bytesM = \dfrac{P \cdot b}{8}\ \text{bytes}
Pour écrire chaque mot, le modèle tire de la mémoire chacun de ses milliards de poids — puis recommence au mot suivant. Le goulot, ce n'est pas le calcul ; c'est le transport. Comme des déménageurs montant une maison par l'escalier : l'effort, c'est de porter, voyage après voyage — pas de décider où va chaque meuble. La facture, c'est juste nombre fois taille : sept milliards de poids en seize bits font quatorze gigaoctets ; en quatre bits, trois et demi.
Le geste : caler chaque nombre sur l'échelon le plus proche.

Le geste : caler chaque nombre sur l'échelon le plus proche.

q=round ⁣(xs),x^=sqq = \mathrm{round}\!\left(\dfrac{x}{s}\right), \qquad \hat{x} = s\,q
Abandonnez la valeur lisse en seize bits ; ne gardez que l'échelon le plus proche d'une courte échelle, stocké comme un petit entier. Comme les pointures : les pieds varient d'un cheveu, mais le stock n'existe qu'en quelques tailles fixes, alors chaque pied prend la plus proche. En clair : divisez par le pas, arrondissez à un entier — cet entier est tout ce que vous gardez — puis remultipliez pour vous en servir.
Où placer les échelons ? D'après le plus grand nombre.

Où placer les échelons ? D'après le plus grand nombre.

s=maxixi2b11s = \dfrac{\max_i |x_i|}{2^{\,b-1} - 1}
Quelle est la largeur de chaque pas ? Prenez le plus grand poids, faites-le tomber sur l'échelon du haut, et répartissez le reste régulièrement jusqu'à zéro. Comme débiter une planche en lames égales : demandez-en plus et chaque lame est plus fine ; moins, et chacune est plus grossière. Le prix de peu de bits est limpide : quatre bits n'achètent que sept échelons de chaque côté du zéro — seize bits en achètent plus de trente mille.
Pourquoi ça tient : les nombres se serrent, chacun bouge à peine.

Pourquoi ça tient : les nombres se serrent, chacun bouge à peine.

xx^s2\lvert x - \hat{x}\rvert \le \dfrac{s}{2}
Ça marche parce que les poids entraînés ne sont pas éparpillés : presque tous se serrent près de zéro. Une courte échelle taillée pour cet amas les attrape presque tous, et l'arrondi déplace chacun d'au plus un demi-pas. Comme une boule d'appât : tout le banc se tasse en une sphère serrée, l'eau autour vide — alors vous posez vos quelques repères là où sont vraiment les poissons. Sur des milliards, les minuscules excès et manques s'annulent.
Une seule valeur aberrante géante gâche tout pour les autres.

Une seule valeur aberrante géante gâche tout pour les autres.

sg=maxigxi2b11s_g = \dfrac{\max_{i \in g} |x_i|}{2^{\,b-1} - 1}
Mais quelques poids sont des monstres — bien plus grands que les autres. Calez l'échelle sur l'un de ces monstres et tout l'amas s'effondre sur un seul échelon, tout détail perdu. La parade : ne partagez pas une seule échelle — découpez les poids en petits groupes, chacun avec son propre pas calé sur sa plus grande valeur. Comme un séquoia géant au-dessus de jeunes pousses : mesurez tout au séquoia et chaque pousse marque zéro — alors mesurez les petites à leur propre échelle.
Un quart des bits. Presque le même esprit.

Un quart des bits. Presque le même esprit.

M16M4=164=4×\dfrac{M_{16}}{M_{4}} = \dfrac{16}{4} = 4\times
Mettez tout ensemble : un géant en seize bits tourne en quatre bits — un quart de la mémoire, presque les mêmes réponses. Ce qui portait le savoir, c'était le motif des poids — lequel penche de quel côté, comment ils se relient — pas leurs dernières décimales. Comme une ombre chinoise : réduisez un cerf à une simple silhouette noire, sans couleur ni texture, et c'est toujours, indéniablement, un cerf.
Si les trois quarts étaient superflus, à quoi servaient-ils ?

Si les trois quarts étaient superflus, à quoi servaient-ils ?

Nous avons brûlé douze bits sur seize et le modèle ne les a jamais regrettés. Étaient-ils donc du gaspillage, du poids mort depuis toujours ? Ou bien ce jeu était-il l'espace dont il avait besoin pour apprendre, un échafaudage qu'on retire une fois le bâtiment debout ? 🌱 Quelle part d'un esprit est porteuse — et quelle part n'est que l'espace où il a grandi ?
touchez →balayez ↑ pour approfondirbalayez ↓ pour quitter