1 Punkte von GN⁺ 2024-04-19 | 1 Kommentare | Auf WhatsApp teilen

Was ist Effort?

  • Effort bezeichnet die Energie, Zeit und Ressourcen, die eingesetzt werden, um etwas zu erreichen oder ein Ziel zu verwirklichen
  • Gemeint sind die Anstrengung und Mühe, die nötig sind, um Hindernisse zu überwinden oder ein gewünschtes Ergebnis zu erzielen
  • Effort kann physischer oder mentaler Natur sein
    • physische Anstrengung wie die Energie, die zum Heben schwerer Gegenstände oder zum Laufen eines Marathons benötigt wird
    • mentale Anstrengung wie Konzentration und geistige Kraft, die zum Lösen komplexer Probleme oder zum Erlernen neuer Technologien erforderlich sind
  • In vielen Lebensbereichen wie persönlicher Entwicklung, Beruf und Bildung ist Effort ein zentraler Faktor für den Erfolg

Meinung von GN⁺

  • Effort ist nicht nur die Menge an eingesetzter Zeit oder Energie, sondern ein Konzept, bei dem verschiedene Faktoren wie Ausdauer, Konzentration und Motivation zusammenwirken. Deshalb ist Erfolg nicht automatisch garantiert, nur weil man sich sehr anstrengt
  • Besonders bei Tätigkeiten, die mentale Anstrengung erfordern, sollte man darauf achten, nicht in ein Burnout zu geraten. Wichtig ist, Wege zu finden, Effort durch angemessene Erholung und Belohnung aufrechtzuerhalten
  • Die Art, wie Menschen Effort einsetzen, kann unterschiedlich sein. Manche arbeiten kurzfristig sehr intensiv, andere investieren über lange Zeit hinweg kontinuierlich Effort. Es ist effektiv, eine Vorgehensweise zu finden, die zu einem selbst passt

1 Kommentare

 
GN⁺ 2024-04-19
Hacker-News-Kommentare
  • Der Algorithmus beschneidet Parameter in Echtzeit und macht die Gewichtungsmatrix spärlich, indem Gewichte mit niedrigem Absolutwert-Rang innerhalb einer Gruppe auf 0 gesetzt werden
  • Bei der Suche nach Modell-Pruning erscheinen viele Paper, die „magnitude-based pruning“ als Baseline diskutieren
    • Diese Paper implementieren die Baseline jedoch miserabel, um ihre eigene Methode übertrieben gut aussehen zu lassen, und erklären ihre Methode mit vielen mathematischen Begriffen
    • Der ursprüngliche Blogpost hingegen erklärt die Methode so, dass sie auch für Menschen mit kaum Vorwissen leicht verständlich ist
  • Eine Zeile im Abschnitt zur GPU-Implementierung ist eindrucksvoll
    • „GPU-Programmieranfänger werden fragen: ‚Wie funktioniert das?‘, und Erfahrene werden fragen: ‚Wie zum Teufel funktioniert das?‘“
  • Das Umdrehen der Matrix, das Sortieren der Elemente zeilenweise und das erneute Betrachten der Multiplikation aus dieser Richtung nennt man das Format „Compressed Sparse Row (CSR)“
    • Um die Multiplikation auszuführen, nimmt man z. B. die 1 aus dem Vektor, multipliziert sie mit 256 und addiert das Ergebnis zur dritten Zeile des Ausgabevektors
    • Der Vorschlag ist, zu prüfen, was passiert, wenn man die letzte Spalte mit den kleinsten Werten abschneidet
  • Namensvorschlag für die Idee: „lobotomize“
  • Das wirkt ähnlich wie semi-strukturierte (2:4-)Sparsity, daher lohnt sich ein expliziter Vergleich
    • Diese Technik ist für Apple Silicon optimiert, bei 75 % Sparsity etwa 2x schneller, dynamisch und eingabeabhängig, wird zur Laufzeit angewendet, und der Grad der Sparsity kann gewählt werden
    • Dagegen ist 2:4-semi-strukturierte Sparsity für GPUs mit Sparse Tensor Cores optimiert, bei 50 % Sparsity etwa 2x schneller, statisch, wird angewendet, wenn das Modell im Leerlauf ist, und scheint bei 50 % Sparsity schlechtere Ergebnisse zu liefern als diese Technik
    • Es wäre interessant, die Ergebnisse semi-strukturierter Sparsity bei 50 % Sparsity (2x Geschwindigkeitsgewinn) mit den Ergebnissen dieser Technik bei 75 % Sparsity (2x Geschwindigkeitsgewinn) zu vergleichen
  • Aus meiner Erfahrung mit CSR ist das nicht überraschend, und einige neuere Formate wie block ELL sind zwar im Code kniffliger, vermeiden aber ungeordnete Reads/Gathers und haben dadurch mehr „mechanical sympathy“
  • 15 ms Latenz wirken ähnlich wie 60Hz-vsync (16,7 ms); wenn man den Bildschirm einmal pro Token aktualisiert, könnte es auf die eine oder andere Weise zu einer Synchronisation kommen
  • Danke für diesen coolen und offenen Beitrag. Ich werde genau beobachten, ob das in llama.cpp implementiert wird. Ich habe nach Möglichkeiten gesucht, die CPU-Inferenz zu beschleunigen, und mir gefällt diese „effort“-Idee
  • Toller Beitrag! Mich interessiert sehr die Leistung pro VRAM im Vergleich zur Quantisierung. Gibt es Pläne, eine plattformübergreifende Version zu implementieren?
  • Das scheint verwandt zu sein mit https://arxiv.org/abs/2312.12456 und https://github.com/SJTU-IPADS/PowerInfer