1 points par GN⁺ 2024-04-19 | 1 commentaires | Partager sur WhatsApp

Qu’est-ce que l’effort ?

  • L’effort désigne l’énergie, le temps et les ressources investis pour accomplir une tâche ou atteindre un objectif
  • Il désigne le travail et la peine nécessaires pour surmonter des obstacles ou obtenir le résultat souhaité
  • L’effort peut être physique ou mental
    • effort physique, comme l’énergie utilisée pour soulever des objets lourds ou courir un marathon
    • effort mental, comme la concentration et la force mentale nécessaires pour résoudre des problèmes complexes ou apprendre une nouvelle compétence
  • C’est un élément clé pour réussir dans de nombreux domaines de la vie, comme le développement personnel, le travail ou l’éducation

L’avis de GN⁺

  • L’effort n’est pas seulement une question de quantité de temps ou d’énergie investie ; c’est aussi un concept où interagissent de manière complexe la persévérance, la concentration, la motivation et d’autres facteurs. Par conséquent, travailler dur ne garantit pas nécessairement le succès
  • En particulier pour les tâches qui demandent un effort mental, il faut veiller à ne pas tomber dans le burn out. Il est important de trouver des moyens de soutenir cet effort grâce à un repos approprié et à des récompenses adaptées
  • La manière de fournir un effort peut varier d’une personne à l’autre. Certains peuvent s’y consacrer intensément sur une courte période, d’autres de façon régulière sur le long terme. Il est efficace de trouver la méthode qui vous convient

1 commentaires

 
GN⁺ 2024-04-19
Avis Hacker News
  • L’algorithme élague les paramètres en temps réel et rend la matrice de poids creuse en mettant à 0 les poids les moins importants en valeur absolue au sein de chaque groupe
  • En cherchant sur l’élagage de modèles, on trouve beaucoup d’articles qui discutent de « l’élagage basé sur la magnitude » comme baseline
    • Mais ces articles implémentent souvent très mal la baseline pour exagérer leur méthode, et utilisent beaucoup de jargon mathématique pour l’expliquer
    • À l’inverse, le billet de blog original explique la méthode de façon compréhensible même pour des personnes ayant très peu de connaissances préalables
  • Une phrase de la section sur l’implémentation GPU est marquante
    • « Un débutant en programmation GPU demandera “comment ça marche ?”, et une personne expérimentée demandera “mais comment diable ça peut marcher ?” »
  • Le fait d’inverser la matrice, de trier les éléments par ligne, puis de reconsidérer la multiplication dans cette direction est appelé le format « compressed sparse row (CSR) »
    • Pour effectuer la multiplication, on prend par exemple un 1 dans le vecteur, on le multiplie par 256, puis on l’ajoute à la troisième ligne du vecteur de sortie
    • Proposition : voir ce qui se passe si on coupe la dernière colonne, celle qui contient les plus petites valeurs
  • Proposition de nom pour l’idée : « lobotomize »
  • Cela ressemble à la sparsité semi-structurée (2:4), donc cela vaudrait la peine de comparer explicitement les deux
    • Cette technique semble optimisée pour Apple Silicon, environ ~2x plus rapide à 75 % de sparsité, dynamique et dépendante de l’entrée, appliquée à l’exécution, avec un niveau de sparsité configurable
    • À l’inverse, la sparsité semi-structurée 2:4 est optimisée pour les GPU dotés de sparse tensor cores, environ ~2x plus rapide à 50 % de sparsité, statique, appliquée quand le modèle est au repos, et semble donner de moins bons résultats que cette technique à 50 % de sparsité
    • Il serait intéressant de comparer les résultats de la sparsité semi-structurée à 50 % (gain de vitesse de 2x) avec ceux de cette technique à 75 % de sparsité (gain de vitesse de 2x)
  • D’après mon expérience avec CSR, ce n’est pas surprenant, et certains formats plus récents comme block ELL ont un code plus délicat mais une meilleure affinité matérielle car ils évitent les lectures/collectes désordonnées
  • Une latence de 15 ms semble proche du vsync 60 Hz (16,7 ms), donc si l’écran est mis à jour une fois par token, une forme de synchronisation pourrait se produire d’une manière ou d’une autre
  • Merci pour cette contribution aussi cool qu’ouverte. Je vais suivre de près son implémentation dans llama.cpp. Je cherchais justement des moyens d’accélérer l’inférence sur CPU, et j’aime bien cette idée d’« effort »
  • Super article ! Je suis très curieux des performances par VRAM par rapport à la quantification. Y a-t-il un projet d’implémenter une version cross-platform ?
  • Cela semble lié à https://arxiv.org/abs/2312.12456 et à https://github.com/SJTU-IPADS/PowerInfer