Rubriques tendance
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Vous êtes dans un entretien pour un poste d'ingénieur ML chez Tesla.
Interviewer : Nous devons déployer un réseau de neurones sur le matériel de bord du véhicule, mais il ne tient pas en mémoire. Comment géreriez-vous cela ?
Vous : J'utiliserai la distillation des connaissances pour entraîner un modèle plus petit.
Entretien terminé.
Voici ce que vous avez manqué :
La distillation des connaissances nécessite des semaines de calcul, car vous formez essentiellement un nouveau modèle.
Mais la solution est déjà à l'intérieur de votre réseau entraîné.
La plupart des neurones sont un poids mort - consommant de la mémoire mais contribuant à peine aux prédictions.
Voyons comment les identifier !
Voici les étapes :
Étape 1) Entraînez le réseau de neurones comme d'habitude.
Étape 2) Passez l'ensemble de validation à travers le réseau entraîné, et pour chaque neurone dans les couches cachées, calculez :
- L'activation moyenne
- La variance des activations (si les activations peuvent être négatives)
Vérifiez ceci👇

Étape 3) Élaguer les neurones qui ont une moyenne et une variance d'activation proches de zéro, car ils ont peu d'impact sur la sortie du modèle.
Idéalement, tracez la performance à travers plusieurs seuils d'élagage pour sélectionner le modèle qui correspond à vos compromis entre taille et précision.
Vérifiez ceci 👇

Examinons le code.
Nous commençons par définir un réseau de neurones simple et l'entraîner.
Puisque nous allons calculer les activations au niveau des neurones plus tard pour l'élagage, nous retournons toutes les activations intermédiaires lors du passage avant.
Vérifiez cela👇

Ensuite, nous définissons deux listes avec trois éléments :
- L'une stockera la moyenne des activations
- L'autre stockera l'écart type des activations
Nous passons l'ensemble de validation à travers notre modèle pour calculer ces statistiques pour chaque couche cachée.
Vérifiez cela 👇

À ce stade, créons un graphique de distribution des statistiques au niveau des neurones que nous avons générées ci-dessus.
Comme illustré ci-dessous, la plupart des activations moyennes des neurones et leur écart type sont fortement répartis autour de valeurs proches de zéro.
Essayons de les élaguer ensuite.

Pour l'élagage, nous itérons sur une liste de seuils et :
- Créons un nouveau réseau et transférons les poids qui dépassent le seuil.
- Évaluons le nouveau réseau et calculons le nombre total de paramètres.
- Ajoutons les résultats à une liste.
Vérifiez ceci 👇

Ce tableau compare la précision et la réduction de taille du modèle élagué à plusieurs seuils par rapport au modèle original.
À mean=0.1 et std-dev=0.4 :
- La précision du modèle diminue de 0,08 %.
- La taille du modèle est réduite de 62 %.
C'est une énorme réduction.
Vérifiez ceci 👇

Voici un autre résultat intéressant.
Avec une moyenne=0,5 et un écart-type=1 :
- La précision du modèle diminue de 0,5 %.
- La taille du modèle réduit de 74 %.
Donc, en gros, nous obtenons des performances presque similaires pour 1/4 des paramètres.
Vérifiez cela 👇

Bien sûr, il y a un compromis entre précision et taille. À mesure que nous réduisons la taille, sa précision diminue (regardez la vidéo).
Mais dans la plupart des cas, la précision n'est pas la seule métrique que nous optimisons.
Au lieu de cela, plusieurs métriques opérationnelles comme l'efficacité, la mémoire, etc., sont les facteurs clés.
435
Meilleurs
Classement
Favoris
