1 Punkte von GN⁺ 2023-07-18 | 1 Kommentare | Auf WhatsApp teilen
  • Die viel beachtete Leistung des gzip-basierten kNN-Klassifikators aus dem Paper „Low-Resource“ Text Classification von Jiang et al. wurde möglicherweise nicht als übliche kNN-Accuracy berechnet, sondern bei k=2 eher wie eine Top-2-Metrik
  • calc_acc in experiments.py des offiziellen Repositorys behandelt einen Fall als korrekt, wenn unter den Kandidaten mit Gleichstand auch nur ein Label dem richtigen Label entspricht; es reicht also, wenn einer der zwei nächsten Trainings-Samples richtig ist
  • Berechnet man die „Full“-Spalte der ersten vier Datensätze neu, ändern sich mehrere Werte; bei KirundiNews fällt die gzip-Methode von der besten auf die schlechteste Leistung zurück
  • Eine separate Reimplementierung ergab, dass die Ausgabe des offiziellen Codes immer top2 entsprach; löst man Gleichstände bei k=2 zugunsten des näheren Samples auf, entspricht das Ergebnis faktisch k=1
  • Die Option rand==True löst Gleichstände mit random.choice, scheint aber für die Paper-Ergebnisse nicht verwendet worden zu sein; SogouNews wurde wegen der Datengröße noch nicht ausgeführt

Problem bei der Accuracy-Berechnung während der Reproduktion der Paper-Ergebnisse

  • Es geht um „Low-Resource“ Text Classification: A Parameter-Free Classification Method with Compressors von Jiang et al.; eine Tabelle, in der die gzip-basierte Methode besser abschneidet als mehrere neuronale Verfahren, erhielt auf Twitter Aufmerksamkeit
  • Beim Reproduzieren des offiziellen Quellcodes zeigte sich eine Stelle, an der die Accuracy-Berechnung des kNN-Klassifikators anders funktioniert als üblich
  • Insbesondere bei k=2 ähnelt sie weniger einer normalen kNN-Accuracy mit k=2, sondern eher einer Top-2-Accuracy, wodurch die Leistung der Paper-Methode höher angesetzt worden sein könnte

Warum Gleichstände bei k=2 kNN problematisch sind

  • Die Paper-Methode nutzt einen kNN-Klassifikator; laut Appendix C wird in allen Experimenten k=2 verwendet
  • Eine k=2-Klassifikation findet für jedes Test-Sample die zwei nächsten Trainings-Samples, wodurch die Label-Situation einfach ist
    • Wenn beide Labels gleich sind, wird dieses Label vorhergesagt; das Ergebnis entspricht damit k=1
    • Wenn die beiden Labels unterschiedlich sind, entsteht ein 1:1-Gleichstand, sodass eine separate Regel zur Auflösung des Gleichstands nötig ist, etwa Vorrang für das nähere Sample
  • Wird der Gleichstand zufällig aufgelöst, wird in der Hälfte der 1:1-Fälle das weiter entfernte Sample gewählt; dadurch ist es schwer, besser als k=1 zu werden

Wie calc_acc Gleichstände behandelt

  • Die problematische Stelle ist die Methode calc_acc in experiments.py
  • Der Code sammelt in sorted_pred_lab die Labels und Zählwerte der Top-k-Samples, gruppiert sie nach Label und sortiert dann nach Zählwert
  • Anschließend iteriert er über die Labels, die mit dem höchsten Zählwert gleichauf liegen; sobald eines davon dem Test-Label entspricht, wird if_right = 1 gesetzt und der Fall als korrekt gezählt
  • Bei k=2 und zwei verschiedenen Labels mit jeweils einer Stimme wird damit lediglich geprüft, ob eines der beiden Kandidaten-Labels korrekt ist
  • Das Ergebnis ähnelt der Top-k-Accuracy aus ImageNet, unterscheidet sich aber darin, dass hier nicht k ausgewählte Labels, sondern k Trainings-Samples die Grundlage bilden
  • Die Methode nimmt zwar ein beliebiges k entgegen, berechnet aber nicht für alle k eine Top-k-Metrik; bei k=2 entsteht die besondere Situation, dass alle Kandidaten mit dem maximalen Zählwert 1 gruppiert werden
  • calc_acc hat ein rand-Flag, und bei rand==True wird ein Gleichstand mit random.choice aufgelöst; für die Paper-Ergebnisse scheint dies jedoch nicht verwendet worden zu sein

Veränderungen bei der neu berechneten Accuracy

  • Für die „Full“-Spalte der ersten vier Datensätze lauten die Paper-Werte und die korrigierten knn2d-Werte wie folgt
Kategorie KinyarwandaNews KirundiNews DengueFilipino SwahiliNews
Paper 0.891 0.905 0.998 0.927
Korrigiert knn2d 0.835 0.858 0.999 0.850
  • Der fünfte Datensatz, SogouNews, wurde wegen seiner Größe noch nicht ausgeführt
  • Dieser Unterschied verändert die Interpretation der Experimente erheblich; bei KirundiNews fällt die gzip-Methode von der besten auf die schlechteste Leistung zurück

Ergebnisse einer separaten Implementierung

  • Die separate Implementierung verwendet zwei Strategien zur Auflösung von Gleichständen
    • r: zufällige Auswahl
    • d: k wird reduziert, bis kein Gleichstand mehr besteht
  • Die Ergebnisse der Reimplementierung lauten wie folgt
Methode kinnews kirnews filipino swahili Beschreibung
table5 0.891 0.905 0.998 0.927 Werte aus der Paper-Tabelle
code 0.891 0.906 1.000 0.927 Verwendung des Repositorys npc_gzip
top2 0.891 0.906 1.000 0.927 Top-2
knn1r 0.835 0.858 0.999 0.850 kNN, k=1, zufällige Auflösung von Gleichständen
knn1d 0.835 0.858 0.999 0.850 kNN, k=1, k wird bei Gleichstand reduziert
knn2r 0.828 0.807 0.851 0.842 kNN, k=2, zufällige Auflösung von Gleichständen
knn3r 0.838 0.791 0.851 0.881 kNN, k=3, zufällige Auflösung von Gleichständen
knn2d 0.835 0.858 0.999 0.850 kNN, k=2, k wird bei Gleichstand reduziert
knn3d 0.843 0.794 0.904 0.883 kNN, k=3, k wird bei Gleichstand reduziert
  • Die Gegenprüfung zeigt, was der offizielle Code berechnet hat
    • table5 liegt innerhalb von 0.001 oder 0.002 nahe bei code, sodass sich die Paper-Werte reproduzieren lassen
    • code ist immer identisch mit top2, die Ergebnisse des offiziellen Codes stimmen also mit den separat implementierten Top-2-Ergebnissen überein
    • knn1r == knn1d; bei k=1 treten keine Gleichstände auf
    • knn2d == knn1d; wenn bei k=2 ein Gleichstand zugunsten des ersten Samples aufgelöst wird, entspricht das k=1
    • knn2r < knn2d; bei einem 1:1-Gleichstand mit k=2 wählt die zufällige Auswahl in der Hälfte der Fälle das weiter entfernte Sample

Offene Punkte

  • Eine neue Reimplementierung mit weiteren k-Werten liegt unter gzip-knn
  • Warum DengueFilipino in einigen Fällen extrem hohe Werte wie 1.0 erreicht, wird in einem Folgebeitrag Part 2 behandelt
  • Warum table5 und code in zwei Fällen leicht voneinander abweichen, bleibt noch zu klären

1 Kommentare

 
GN⁺ 2023-07-18
Hacker-News-Kommentare
  • Für die Autoren ist das zwar enttäuschend, aber ich halte es für eine hervorragende Widerlegung
    In Machine Learning passieren solche Fehler sehr leicht, und noch problematischer ist, dass subtile methodische Fehler sich anders als in vielen anderen Ingenieur- oder Wissenschaftsbereichen meist nicht als katastrophales Scheitern zeigen, sondern als subtile Leistungsänderungen
    Wenn schlechte Daten in den Trainingssatz geraten oder Informationen über die Zielwerte durchsickern, läuft das System irgendwie trotzdem weiter, nur die Ergebnisse werden leicht verfälscht
    Bestehende Kompressionsalgorithmen auf Machine Learning anzuwenden fühlt sich, anders als erhofft, zu sehr nach einem kostenlosen Mittagessen an. Wenn in Kompressionsalgorithmen eine besondere Magie steckte, hätte man Kompressionsalgorithmen als Encoder verwendet, statt Transformer als Kompressoren einzusetzen

    • Das ist ein wichtiger Punkt, den man im Kopf behalten sollte. Fehler sind leicht zu machen und deshalb häufig, und Wissenschaft ist ein verrauschter Prozess, in dem es aber dennoch ein Signal gibt — und genau das, was wir hier sehen, ist das Wesen von Peer Review
      Deshalb behaupte ich oft, dass offene Publikation eine bessere Form von Peer Review ist als Konferenzen oder Journals. Peer Review bedeutet, dass Fachkollegen meine Arbeit prüfen; der Kern ist nicht irgendein willkürlicher und verrauschter Maßstab, den Konferenzen oder Journals anlegen
      Über weite Teile der Geschichte lief es genau so, und Peer Review im modernen Sinn ist ein ziemlich neues Konzept aus der Mitte der 1970er Jahre. Frühere Journals hatten eher die Aufgabe, Forschung zu verbreiten, so wie es heute arxiv tut
      https://mitcommlab.mit.edu/broad/commkit/peer-review-a-histo...
      Ein weiterer Grund, Konferenzen und Journals abzuschaffen, ist, dass man so wichtige Arbeiten wie Replikationsarbeiten oder Arbeiten über Fehlschläge aktiv fördern könnte. Man wäre nicht an das Kriterium der „Neuheit“ gebunden, und tatsächlich ist fast alle Forschung inkrementell
      „Publizieren“ bedeutet, meine Arbeit an Fachkollegen zu vermitteln, damit sie die Ergebnisse überprüfen oder widerlegen können
      Gut an Konferenzen ist allerdings, dass sie Menschen zusammenbringen und Zusammenarbeit fördern. Die Kritik hier richtet sich dagegen, Konferenzen und Journals als Mittel zur Beurteilung der Gültigkeit von Forschung zu verwenden
      Wenn das Konferenzsystem nur ein Ort wäre, an dem man Forschung und Community zusammenbringt, wäre daran überhaupt nichts auszusetzen. Auch Journals sind theoretisch gut, weil es dort einen Dialog zwischen Autoren und Reviewern gibt, aber ich denke, das lässt sich ebenso gut mit arxiv + github oder OpenReview erreichen
    • So etwas wird bereits verwendet. Man muss nur nach dem Prinzip der minimalen Beschreibungslänge und entropiebasierten Klassifikatoren suchen
      Die Leistung ist nicht besonders gut, aber es existiert eindeutig und ist auch sehr leicht zu deployen. Ähnliche Texte lassen sich tendenziell besser komprimieren, daher habe ich schon gesehen, dass gzip zur Plagiatserkennung eingesetzt wird
      Man kann die Kompressionsrate auch als Gewichtung in einem Feder-Modell zur Visualisierung verwenden, und sie lässt sich ebenso auf Metadaten der Netzwerkkommunikation anwenden
    • Das trifft auf viele Experimente zu. Der Wunsch, das gewünschte Ergebnis zu bekommen, überlagert leicht die Notwendigkeit, zu überprüfen, was man tatsächlich erhalten hat
      Besonders dann, wenn das Ergebnis die eigene bisherige Sicht bestätigt
    • Ich beschäftige mich in letzter Zeit viel mit Machine Learning und sehe dieses Muster oft. Als Softwareentwickler fühlt sich das wie ein weiterer Punkt an, der genau das Gegenteil von fast allem ist, was ich sonst tue
      Wenn ein Semikolon fehlt, gibt es sofort einen Fehler
      Aber selbst wenn man bei der Gradientenberechnung in einer von drei Schichten einen Fehler macht, kann es manchmal trotzdem noch laufen. Nur das Ergebnis wird seltsam
    • Forschungscode im akademischen Bereich ist meistens chaotischer Code, den Amateure so schnell wie möglich zusammengeschrieben haben, fast ohne Tests, und das Hauptprodukt solchen Codes ist das Ansammeln von Paper-Zitierungen
      Eine Welt mit halb so vielen wissenschaftlichen Arbeiten und doppelt so viel Sorgfalt würde viel mehr Wert schaffen, aber das gesamte System ist hoffnungslos gamifiziert
  • Ich bin die Person, die diesen Blogbeitrag geschrieben hat. Bei dem, was ich dort geschrieben habe, bin ich ziemlich sicher, aber falls ich etwas übersehen habe, müssen die Autoren es vielleicht selbst erklären
    Ich habe gerade ein Issue auf GitHub erstellt: https://github.com/bazingagin/npc_gzip/issues/3

    • Es wäre vielleicht sinnvoll, ganz oben im Beitrag eine Anmerkung hinzuzufügen. Viele Leute scheinen nur grob die Überschrift zu überfliegen und nehmen dann mit: „Das gzip-Paper ist Murks und der gzip-Ansatz taugt nichts“, obwohl es in Wirklichkeit eher heißt: „Der gzip-Ansatz ist Deep-Learning-Modellen nicht überlegen, aber insgesamt konkurrenzfähig und deutlich günstiger in der Ausführung“
      Das Paper selbst ist nach wie vor solide
    • Ich bin der Erstautor des Papers und habe den Blogbeitrag gelesen. Der Grund für die Wahl von k=2 war, dass die Verwendung von n^{1/2} empfohlen wurde und ich ein k wählen wollte, das zur 5-shot-Einstellung passt
      Allerdings stimmt es, dass diese Wahl etwas seltsam ist. Wie im Paper und auf Twitter gesagt, ändern sich die Ergebnisse mit unterschiedlichen k-Werten, und berichtet wurde das maximale Ergebnis, das erzielt werden konnte; das bedeutet also einen idealen Fall, in dem die Vorhersage immer richtig ist
      Für W2V und SentBERT wurde dieselbe Strategie verwendet. Das bedeutet allerdings nicht top-2 accuracy. Soweit ich weiß, bedeutet top-2 accuracy, dass ein Punkt vergeben wird, wenn eine der beiden vorhergesagten Top-Klassen richtig ist
      Wie du aber angemerkt hast, gibt es bei kNN mit k=2 den Fall, dass die zwei nächsten Nachbarn auf dieselbe Klasse zeigen; wenn man hier top-2 accuracy berichten würde, würde man einen Kandidaten einer anderen Klasse verpassen
      Wenn ich Zeit habe und eine neue Version auf arxiv hochlade, möchte ich Ergebnisse für andere Strategien und andere k-Werte ergänzen. Die im Blog erwähnte Decrement-Strategie ist wirklich gut, und wenn du möchtest, würde ich sie gern dem Repository hinzufügen
      Entschuldige die kurze und späte Antwort. Ich habe das Repository noch nicht prüfen können. Ich bereite gerade morgen ein Paper-Review vor und werde nach Abschluss im Issue antworten und es klären
    • Danke fürs Reproduzieren, das ist wichtige Arbeit
      Mich würde interessieren, ob du auch die andere Ergebnistabelle, Table 3, reproduziert hast
      Wenn ich es richtig verstehe, ist top-2 accuracy gleich 1, wenn es nur zwei Klassen gibt; je mehr Klassen der Datensatz jedoch hat, desto kleiner wird im Durchschnitt der Unterschied zur „normalen“ accuracy. Wenn der Datensatz also viele Klassen hat, würden sich die Ergebnisse in Table 3 wohl nicht so stark ändern
      Wie dem auch sei: Eine top-2 accuracy von 0.685 auf dem 20-newsgroups-Datensatz ist für einen Ansatz, der nicht einmal Zeichen als Zeichen betrachtet, ziemlich beeindruckend[1]. Von guten Werkzeugen ganz zu schweigen, in die NLP-Forscher über Jahre hinweg investiert haben, etwa Tokens, n-Gramme oder Embeddings
      [1] So wie ich gzip verstehe, verarbeitet es nur Bitfolgen, die nicht zwingend mit Wörtern, also Byte-Grenzen, ausgerichtet sind
    • Ich frage mich, ob du die Autoren vor der Veröffentlichung zuerst kontaktiert hast
  • Als wir bei Shopify mit Suchrelevanz experimentierten, haben wir auch viele Fehler gemacht, daher kann ich mich gut in die Autoren hineinversetzen. Ich habe selbst einige Fehler öffentlich peinlich ausbaden müssen
    Gegen Ende meiner Zeit bei Shopify habe ich gelernt, dass gute Wissenschaft gute Softwaretechnik braucht. Denn an zu vielen Stellen im Stack kann leicht etwas schiefgehen
    Deshalb habe ich viel Zeit darauf verwendet, strenge, stark getestete und qualitativ hochwertige Experimentier-Software zu bauen, damit man den Zahlen vertrauen und die Experimente gegenseitig reproduzieren kann
    Einmalige Evaluierungsmethoden wollte ich vermeiden; wenn wir eine neue Methode entwickelten, fügten wir sie der Evaluierungs-Toolbox hinzu und testeten sie, um zu verstehen, was die Kennzahl eigentlich bedeutet
    Das klingt selbstverständlich, aber nach meiner Erfahrung mit solchen Experimenten ist das leider bei Weitem nicht so verbreitet, wie man hoffen würde. Unternehmen wollen Geschwindigkeit, und statistisch gründlich nachzudenken oder interne Tools zu bauen passt meist nicht gut zu den Interessen des Managements

    • „Gute Wissenschaft braucht gute Softwaretechnik“ ist ein positiver Aspekt der Industrieforschung
      Erstens kann man mehr Softwaretechnik-Expertise einsetzen, und zweitens gibt es weniger Anreize, Behauptungen zu übertreiben. Wenn man sagt, dass etwas funktioniert, wird erwartet, dass es auch in die echte Produktionsumgebung kommt
  • Ich freue mich, dass dieser Blogpost veröffentlicht wurde
    Ich mache selbst sehr viele solcher kleinen Projekte, und selbst Arbeiten wie diese, die Probleme in Papers aufzeigen, sehen oft nie das Licht der Welt. Meist gibt man nur kurz ein Lebenszeichen von sich, und dann endet alles auf der Festplatte
    Deshalb danke dafür, dass das hier veröffentlicht wurde

    • In letzter Zeit nutze ich Twitter als eine Art Low-Cost-Blog
      Wenn ich einen Tag in solche Arbeit gesteckt habe, fehlt mir meistens die Kraft, tatsächlich noch einen Blogpost zu schreiben, und das fühlt sich dann verschwenderisch an. Einen kurzen Twitter-Thread schaffe ich aber in der Regel noch
  • Ich freue mich sehr, dieses Ergebnis zu sehen. kNN + Klassifikationsaufgabe + Klassifikation rein auf Basis von Textähnlichkeit ist eine Kombination, bei der sich leicht günstige Resultate ansammeln
    Schadenfrohe Reaktionen auf dieses Paper beruhen auf einem Missverständnis darüber, wie zentral natürlichsprachliche Komponenten für Embeddings sind. Formulierungen, die Wörter teilen, lassen sich gut klassifizieren, und GZIP funktioniert dort ebenfalls gut, daher kann GZIP durchaus als alternativer Klassifikator dienen
    Das Erstaunliche an BERT oder Embeddings ist, dass keine gemeinsamen Wörter nötig sind. Zum Beispiel passt „what is my safe passcode?“ stark zu „my lockbox pin is 1234“, aber nicht zu „my jewelry is stored safely in the safe“
    Das ist auch bei LLMs wichtig. Viele Leute verwenden Embeddings für Textähnlichkeit, tatsächlich sollte man aber ein SBERT-Modell verwenden, das so trainiert wurde, dass Fragen und Dokumente mit den dazugehörigen Antworten korrelieren
    Den ganzen Kaninchenbau gibt es unter https://www.sbert.net/
    Früherer Beitrag: Should you use OpenAI's embeddings? Probably not, and here's why. https://iamnotarobot.substack.com/p/should-you-use-openais-e...
    HN-Diskussion: https://news.ycombinator.com/item?id=35377935

    • Fairerweise muss man sagen, dass die ursprüngliche Aufgabe bewusst so gewählt wurde, dass ein Ansatz wie kNN+Kompression gut abschneiden könnte, also ein Out-of-Domain- + Low-Resource-Umfeld
      Unter solchen Bedingungen sind die Trainingseingaben womöglich zu spärlich, als dass ein modell mit vielen Parametern gute Embeddings lernen könnte
      In klassischen In-Domain-Klassifikationsszenarien mit großen Datenmengen ist es unwahrscheinlich, dass nichtparametrische Methoden wie Kompression gelernte Repräsentationen schlagen
  • Warum die Autoren kNN als Klassifikator gewählt haben, war nicht ganz klar. Wenn man eine Distanzmatrix erstellt hat, hätte man per multidimensionaler Skalierung die Matrix in Faktoren umwandeln und dann einen Baumalgorithmus wie xgboost verwenden können; damit hätte sich vermutlich viel mehr Information nutzen lassen und ein deutlich besseres Ergebnis als mit kNN erzielen lassen
    Man hätte auch den PAQ-Kompressionsalgorithmus verwenden können, der deutlich besser ist als Kompressoren aus der LZ-Familie. Solche Entscheidungen hätten die Ergebnisse stark verbessern und vielleicht doch zur ursprünglichen Schlussfolgerung führen können
    Gut an diesem Paper war, dass es den Kompressionsalgorithmus abstrahiert hat, und dadurch kam ich ins Nachdenken, was man aus der Beziehung p(x) ~ K^(-|x|) mit Kompression sonst noch machen könnte. Dabei ist K die Alphabetgröße, |x| die Länge der Zeichenkette x, unter Annahme optimaler Kodierung
    Zum Beispiel kam mir der Gedanke, dass auch eine klassische Klassifikation möglich wäre, indem man die Faktoren jeder Antwort zu separaten Dokumenten bündelt und dann wie im Paper das Dokument sucht, das das nächste Sample am besten komprimiert, um daraus die Klasse zu bestimmen. Eine Art überwachte Klassifikation mit einem Kompressionsalgorithmus
    Je näher der Kompressor an der optimalen Kodierung für den betreffenden Datensatz ist, desto besser sollte das funktionieren
    Auch ein Ansatz zur Sequenzvorhersage ließe sich ähnlich einfach implementieren
    Das war eine angenehme Überraschung

  • Kann jemand erklären, wie ein Kompressionsalgorithmus ein LLM schlagen kann? Das klingt, als würde man Sprache mit Graffiti vergleichen
    Die Antwort scheint irgendwo da draußen zu sein, aber ich bin mit KI nicht vertraut und verstehe es einfach nicht

    • Im Allgemeinen gilt: Kompression = Modell + Entropiekodierung
      Die Aufgabe des Modells ist es, vorherzusagen, was als Nächstes kommt, und die Aufgabe des Entropiekodierers ist es, die Differenz zwischen Vorhersage und tatsächlichem nächsten Wert so zu kodieren, dass wahrscheinliche Ergebnisse möglichst wenige Bits benötigen
      Je genauer das Modell ist, desto kleiner ist die Abweichung zwischen Realität und Vorhersage, und desto weniger Bits braucht der Entropiekodierer, wodurch die Kompression besser wird
      Ein einfacher Kompressionsalgorithmus hat ein simples Modell wie: „Wenn ich dasselbe Byte 10-mal gesehen habe, ist es wahrscheinlich, dass auch das 11. gleich ist.“ Aber auch ein LLM kann als Modell dienen. Denn genau das tut ein LLM: Text mit dem wahrscheinlichsten nächsten Wort fortsetzen
      Hier wurde es umgekehrt gemacht. Statt ein Modell zur Kompression zu verwenden, wurde der Kompressionsalgorithmus mit ein paar Kniffen wie ein Modell verwendet. Wenn der Kompressionsalgorithmus ein Ergebnis mit weniger Bits kodiert, wird es als das wahrscheinlichste Ergebnis betrachtet
      Die Autoren des Originalpapers zeigten, dass ein einfaches Modell, das sich aus gzip herausziehen lässt, bei einigen Aufgaben deutlich komplexere LLMs schlägt
    • Ein Sprachmodell schätzt die Wahrscheinlichkeit einer Wortfolge P(w_1, ..., w_n) oder äquivalent P(Wort | Kontext)
      Bei der Kompression sollten wahrscheinlicheren Wortfolgen kürzere Codes zugewiesen werden, daher gibt es einen direkten Zusammenhang. Eine bekannte Methode, solche Codes aus Wahrscheinlichkeiten zu erzeugen, ist die Huffman-Kodierung
      Das gilt sowohl für statistische Sprachmodelle, die Wortfrequenzen verwenden, als auch dann, wenn ein LLM zur Wahrscheinlichkeitsschätzung genutzt wird. Je besser das Sprachmodell ist, also je niedriger die Perplexity, desto kürzer fällt das Kompressionsergebnis aus
      Umgekehrt kann man auch sagen, dass ein Kompressionsalgorithmus über die Codelängen implizit ein Sprachmodell definiert. Er nimmt zum Beispiel an, dass wiederholte Zeichenfolgen wahrscheinlicher sind als zufälliges Rauschen
    • Die Intuition hinter gzip ist folgende
      Wenn man ABC komprimiert, erhält man X Bytes. Wenn man danach ABCABC komprimiert, werden daraus nicht 2X Bytes. Je ähnlicher die aneinandergehängten beiden Zeichenfolgen sind, desto weniger Bytes werden benötigt
      ABCABD wird größer sein als ABCABC, aber kleiner als ABCXYZ
      BERT ist nach heutigen Maßstäben außerdem ein sehr kleines LLM, und wir wissen, dass es schwächer ist als die Modelle mit Milliarden Parametern, denen wir heute ständig begegnen
    • Kompression ist gleichbedeutend mit Intelligenz
      https://mattmahoney.net/dc/rationale.html
    • Es ist eine sehr eng begrenzte Aufgabe. Man nimmt ein Dokument und klassifiziert es zum Beispiel in eine von vielleicht 10 Kategorien
      Auch ein Ansatz wie das Erkennen bestimmter Wörter kann je nach Fall ziemlich gut funktionieren. In gut komprimierbaren Daten tauchen gemeinsame Teilzeichenfolgen häufig auf
  • Falls das stimmt, würde ich gern sehen, wie die Leute, die zu diesem Paper große Töne gespuckt haben, jetzt still und leise ihre Spuren verwischen
    Ich schaue dabei besonders auf LinkedIn- und Twitter-Influencer
    Wenn es nicht stimmt, sehe ich wohl dumm aus, aber ich habe den Artikel nur grob überflogen

  • Gzip als Klassifikator ist überraschend gut und sollte als Baseline für neuronale Netze verwendet werden

  • Nebenbei scheint der Blog seit 2022 stehen geblieben zu sein
    Das Datum des Beitrags ist auf den 17. Juli 2022 gesetzt

    • Danke. Das wird bald korrigiert. So ist das, wenn man das Datum von Hand einträgt...