News Dateikomprimierung: KI schlägt ZIP-Programme - bis zu einem bestimmten Punkt

PCGH-Redaktion

Kommentar-System
Teammitglied
Jetzt ist Ihre Meinung gefragt zu Dateikomprimierung: KI schlägt ZIP-Programme - bis zu einem bestimmten Punkt

Ersetzt Künstliche Intelligenz bald die klassischen Packprogramme wie WinRAR und 7-Zip? Ein Forschungspapier will den Beleg dafür liefern, dass LLMs durchaus eine echte Alternative darstellen können - allerdings nur bis zu einem gewissen Grad.

Bitte beachten Sie: Der Kommentarbereich wird gemäß der Forenregeln moderiert. Allgemeine Fragen und Kritik zu Online-Artikeln von PC Games Hardware sind im Feedback-Unterforum zu veröffentlichen und nicht im Kommentarthread zu einer News. Dort werden sie ohne Nachfragen entfernt.

Zurück zum Artikel: Dateikomprimierung: KI schlägt ZIP-Programme - bis zu einem bestimmten Punkt
 
Würde gerne wissen wer überhaupt komprimiert.
Ich nutze es nur um mal Savegames zu packen um die dann zu archivieren oder um viele kleine Dateien zu einer größeren zu verpacken (welche man dann einfacher verschicken kann),
 
Zuletzt bearbeitet:
Filehoster fallen mir da als erstes ein würd ich sagen. Oder Satelliten die wichtige Daten Speichern.
Auch Datenarchive kommen infrage...
 
Gaming-relevant ist natürlich die Texturkompression (seit Jahren BCn als Standard). Spiele wären zigfach größer wenn die Texturen nicht komprimiert wären.
 
Oh weia. Da wird PNG als Beispiel genannt, PNG ist "lossless". Zumindest bei Bilder benötigt man aber das nicht immer, mit JPEG geht da wesentlich mehr, das Ergebnis ist meist trotzdem mehr als zufriedenstellend.
Und ja, es gibt natürlich noch viel mehr Komprimierungssoftware als ZIP oder RAR, und "lossless". Bspw. PAQ8PXD ( s.a. https://github.com/kaitz/paq8pxd bzw. https://github.com/hxim/paq8px ). Die ist nochmal 10% besser als ZIP oder RAR - damit sollte man den Vergleich suchen.
 
m viele kleine Dateien zu einer größeren zu verpacken (welche man dann einfacher verschicken kann)
Das ist bei mir der Hauptgrund - und da ist die Kompressionsrate völlig nebensächlich.
Im Enterprisesegment ist sie das aber nicht da es schlichtweg Speicher und Bandbreite spart. Jedes Spiel, jedes Programm, jeder Patch - alles wird ausgeliefert als komprimierte Einzeldatei die beim Enduser entpackt und eingebaut wird.
Wäre ziemlich "lustig", wenn ein Baldurs Gate 3 oder ein Cinebench R25 keine einzelne Downloaddatei wäre sondern Zehntausende Einzeldateien :haha:

Zumindest bei Bilder benötigt man aber das nicht immer, mit JPEG geht da wesentlich mehr, das Ergebnis ist meist trotzdem mehr als zufriedenstellend.
Hier gehts um verlustfrei.
Wer gute Komprimierung sucht die Verluste zulässt benutzt AVIF. Das erreicht die Qualität vom (uralten) JPEG bei nem Drittel und weniger der Dateigröße...
Der einzige Grund heute noch Dinge wie MP3 oder JPG usw. zu benutzen ist, weil jede Kartoffel es abspielen kann^^
 
Zuletzt bearbeitet:
Komprimiert wird fast alles, ohne dass es der Benutzer merkt.
Die KI-Kompression könnte das revolutionieren, sofern sie speziell für eine Datei einen eigenen Algorithmus entwickeln und den dann dem Entpacker mitteilen könnte (z.B. durch voranstellen an die Daten).

Aber ob KI jemals schneller sein kann, als festgeschriebene Programme, wage ich zu bezweifeln. Somit wird das vermutlich nur bei sehr großen Dateien Sinn ergeben.

Verlustbehaftete Kompression mag ich persönlich gar nicht. Ich versuche, alle Mediendateien immer in einem verlustfrei komprimierten Format zu haben. Aber vermutlich ist das ein Anwendungsgebiet, auf dem die KI besonders auftrumpfen könnte und wo sich deutlich mehr rausholen lässt, ohne dass die meisten Leute den Unterschied wirklich bewusst sehen würden.
Edit: Das ist einfach wie wenn man 3% mehr Zucker und 3% weniger Kakao in ein Produkt mischt... die meisten Leute merken den Unterschied vermutlich nicht bewusst, aber wenn man die Inhaltsstoffe liest, weiß man trotzdem, dass etwas anderes in der Packung ist. Mit dem Wissen wähle ich dann trotzdem die Packung mit 3% mehr Kakao statt Zucker.
 
Das ist bei mir der Hauptgrund - und da ist die Kompressionsrate völlig nebensächlich.
Im Enterprisesegment ist sie das aber nicht da es schlichtweg Speicher und Bandbreite spart. Jedes Spiel, jedes Programm, jeder Patch - alles wird ausgeliefert als komprimierte Einzeldatei die beim Enduser entpackt und eingebaut wird.
Wäre ziemlich "lustig", wenn ein Baldurs Gate 3 oder ein Cinebench R25 keine einzelne Downloaddatei wäre sondern Zehntausende Einzeldateien :haha:


Wer da gute Komprimierung sucht benutzt AVIF. Das erreicht die Qualität vom (uralten) JPEG bei nem Drittel und weniger der Dateigröße...
Der einzige Grund heute noch Dinge wie MP3 oder JPG usw. zu benutzen ist, weil jede Kartoffel es abspielen kann^^

Mit welchem "Standard" wird das Ganze eigentlich von der "KI" gepackt?
Die Frage ist dann, wenn es proprietär ist, kann es dann auch nur eine "KI" wieder entpacken?
Wäre blöd, wenn man entpacken will und der "Online-Dienst" gerade nicht verfügbar/überlastet ist, oder noch "besser" es den Dienst nicht mehr gibt... :devil:
 
Mit welchem "Standard" wird das Ganze eigentlich von der "KI" gepackt?
Gute Frage...

Ich tippe drauf, dass die KI hier keine neuen Algorithmen entwickelt und auch nicht selbst dafür verfügbar sein muss um etwas wieder zu entpacken (das wäre ein no-go). Es geht wohl darum, Parameter von bestehenden Algorithmen dynamisch auf die zu packenden Daten anzupassen.
Da KI (hier) auf Text basiert geht es so vermute ich um die Wörterbücher die bei den meisten gängigen Kompressionen genutzt werden. Grundsätzlich: Je größer das verwendete Wörterbuch desto besser die Kompressionsrate - aber desto aufwendiger das Verfahren und vor allem desto mehr RAM wird beim Vorgang benötigt. Das kann sehr schnell unschön werden:

Wörterbuchgröße 16 MiB -->
1697538894722.png


Wörterbuchgröße 4 GiB -->
1697538951515.png


Schon bei "nur" 4 GB Wörterbuchgröße würden 32 GB RAM nicht mehr reichen.

Wenn eine KI in der Lage wäre, vergleichsweise riesige Wörterbücher zu benutzen und schnell herauszufinden welche Wörter davon in einem konkreten Fall effektiv sind und welche nicht und entsprechend GEZIELT RICHTIGE Wörter wählen und alle anderen weglassen könnte eine solche KI sehr effizient gepackte Archive (online da Zugriff auf Datenbank nötig) erstellen, die dann offline (Archiv enthält genutzte Wörterbuchdatenbank) entpackt werden könnten.
 
Zuletzt bearbeitet:
"An Text trainiert" ... ja nu, Text ist ja auch ein ganz anderes Ballgame: aus einem halben F kann ich immer noch ein F herauslesen, vorallem, wenn man den Kontext des Wortes oder des Satzes mit einbeziehen kann. Da kann ich mir die statistisch arbeitenden LLMs durchaus vorstellen. Bei Bild und Ton habe ich so meine argen Bedenken.
Gerade wenn man Bildrekonstruktionen in Phototools usw anschaut, wo KI überall einzug hält, wird das sehr deutlich: hier wird zuviel erraten und hinzugedichtet. Die Bilder sehen toll aus, entsprechen aber nicht mehr der Realität (z.B. Mond bei Handy-Photo, perfekte Zähne und korrigiertes Lächeln oder offene Augen und Blick genau in die Kamera, wo vorher nur Pixelmatch, schiefer Mund, geschlossene Augen usw.).

Da wird Information hinzugefügt, die im Original garnicht vorhanden war. Sowas kann ich bei der Dekompression von Daten nicht gebrauchen.
 
Zuletzt bearbeitet:
"An Text trainiert" ... ja nu, Text ist ja auch ein ganz anderes Ballgame: aus einem halben F kann ich immer noch ein F herauslesen, vorallem, wenn man den Kontext des Wortes oder des Satzes mit einbeziehen kann. Da kann iich mir diei statistisch arbeitenden LLMs durchaus vorstellen. Bei Bild und Ton habe ich so meine argen Bedenken.
Gerade wenn man Bildrekonstruktionen in Phototools usw anschaut, wo KI überall einzug hält, wird das sehr deutlich: hier wird zuviel erraten und hinzugedichtet. Die Bilder sehen toll aus, entsprechen aber nicht mehr der Realität (z.B. Mond bei Handy-Photo, perfekte Zähne und korrigiertes Lächeln oder offene Augen und Blick genau in die Kamera, wo vorher nur Pixelmatch, schiefer Mund, geschlossene Augen usw.).

Da wird Information hinzugefügt, die im Original garnicht vorhanden war. Sowas kann ich bei der Dekompression von Daten nicht gebrauchen.

Bei der Datei Komprimierung / Dekomprimierung wie hier im Beispiel wird nichts "geraten" oder "erfunden". Bei der Komprimierung geht es darum immer wiederkehrende Bitfolgen (10001001101010101010101011 usw usw) durch kleinere Bitfolgen zu "verkleinern". Dazu wird häufig ein "Wörterbuch" benutzt, dort ist definiert dass (ich mach jetzt ein seeehr einfaches Beispiel damit es jeder versteht) 10001001101010101010101011= abc. Jetzt wird bei der Komprimierung an jeder Stelle wo 10001001101010101010101011 vorkommt ein abc gesetzt. Durch diese "Übersetzung" spart man dann Speicherplatz.
 
Mit welchem "Standard" wird das Ganze eigentlich von der "KI" gepackt?
Die Frage ist dann, wenn es proprietär ist, kann es dann auch nur eine "KI" wieder entpacken?
Wäre blöd, wenn man entpacken will und der "Online-Dienst" gerade nicht verfügbar/überlastet ist, oder noch "besser" es den Dienst nicht mehr gibt... :devil:

Gar kein Standard. Das ist ein Grundlagen-Paper, ob die Logik von KI-Textgeneratoren nicht eigentlich den besseren Kompressionsalgorithmus darstellt. Ein darauf aufbauendes Packprogramm würde dann das Framework der KI beinhalten, während alle inhaltsspezifisch trainierten Parameter Teil der gepackten Datei wären.

Das ist auch der im Artikel angesprochene, größte Nachteil des Ansatzes: Die komplexen KI-Modelle sind groß. Chinchilla 70B konnte 1 GB Audiodateien zwar auf 210 MB eindampfen, während es mit FLAC 300 MB waren – aber die "70Billions" an 16-Bit-Parametern brauchen zusätzliche 140 GB Speicherplatz. Man müsste also schon mehr als 1.400 GB derartige Audiodateien komprimieren, ehe sich dieser Ansatz lohnt. Und beim Beispieldatensatz handelt es sich nicht einmal um komplexe, abwechslungsreiche Musik, sondern um einfache 1.000 h Sprachaufnahmen. Das 140-fache davon entspräche 16 Jahre ununterbrochenes Gelaber. Vermutlich haben alle deutschen Paralamente zusammen noch nicht derart viel Material produziert – und das wäre nur eine Datei. Man schreibt ein Packprogramm aber nicht für eine Datei, sondern für Milliarden von Dateien. Da müssten schon für jeden Einwohner dieses Planeten 16 Jahre Sprachaufnahmen zusammenkommen, damit sich das lohnt.

Die kleinen Transformer-Modelle, die mit <5 MB an Parametern auskommen, scheitern dagegen allesamt an den Bild- und Sprachdateien; da sind die Resultate größer als die Ausgangsdateien. Einzig 1 GB Wikipedia-Texte bekommen sie effektiv komprimiert. Aber das ist natürlich ein Heimspiel, da sie vermutlich auf der gleichen Datenlage entwickelt wurden, während zum Beispiel 7zip gar keinen besonderen Bezug zu Text hat.

Nichtsdestotrotz: Ich finde schon den Grundansatz mindblowing. "KIs machen aus wenigen Wörtern einen kompletten Text. Ob man das wohl nutzen kann, um einen ganzen Text in wenige Bytes zu komprimieren und dann wieder zu extrahieren?" :wow:


Mit hinreichend großem Wörterbuch lässt sich jede Datei dieser Welt auf 64bit Komprimieren.

Mit 64 Bit kannst du noch nicht einmal alle Dateien bis zu einer größe von 8 Byte benennen, geschweige denn auch noch deren Inhalt codieren, und es gibt deutlich größere Dateien da draußen.
 
Zuletzt bearbeitet:
Indem ich alle Daten im Wörterbuch habe (deswegen auch hinreichend groß) muss ich nur deren Index in die komprimierte Datei schreiben.
Und dafür reichen 64Bit.
 
Eine Datei namens "Datei123" die komplett leer ist belegt schon 64 Bit (nämlich ein aus 8 Zeichen bestehender Dateiname). Ein paar KB brauchts selbst bei Petabytegroßen Wörterbüchern schon noch um den Index selbst zu speichern^^
 
Petabyte? Kinderkram!
Mit 64Bit bist du im Exabytebereich wenn du jedes einzelne Byte adressieren willst.
Und auch für den Dateinamen ist Platz genug im Wörterbuch ;)
 
Du wirfst hier so viel durcheinander (oder redest so wirr dass mans nicht versteht) dass ich nicht weiß wo ich anfangen soll. :ka:

Dann machen wirs mal konkret. Man nehme folgenden Text, der in der Datei "Datei123.txt" drinsteht:
"PCGHX ist ein ganz tolles Forum mit vielen netten Leuten".

Du kannst ein beliebig großes Wörterbuch benutzen.
Bitte erstelle eine Datei die maximal 64bit (=8 Bytes) groß ist, die alle diese Informationen enthält.

Selbst wenn du ein sehr gutes angepasstes Wörterbuch hättest das alle Wörter enthält (und auch NUR die und keine anderen dass der Verweis mit 1 Byte eineindeutig ist):
PCGHX =A
ist=A
ein=B
ganz=C
tolles=D
Forum=E
mit=F
vielen=G
netten=H
Leuten=I
Datei123=J

wäre deine zu speichernde Datei immer noch J[ABCDEFGHI] 80 bit groß.

Über die theoretische Möglichkeit eines Wörterbuches, das alle denkbaren Dateiinhalte 1:1 enthält (also wo A="PCGHX ist ein ganz tolles Forum mit vielen netten Leuten" ist) braucht man denke ich nicht zu diskutieren - dessen Größe dürfte vermutlich die Teilchenanzahl des Universums überschreiten (und selbst dann wäre der Pointer der eindeutig zeigt wo genau es im Buch steht viel länger als 8 Bytes).^^
 
Zuletzt bearbeitet:
Und da liegst du bereits falsch.
Im hinreichend großen Wörterbuch steht nämlich:
Entry= 0000af12ed3460 Name="Datei123" Data="PCGHX ist ein ganz tolles Forum mit vielen netten Leuten"
Und in der komprimierten Datei steht "0000af12ed3460".
 
Also doch die "Wörterbuch das alle möglichen Dateiinhalte 1:1 enthält" Nummer und eine komprimierte Datei, die dennoch 14 Bytes (112 bit) groß ist?

Ein solches Wörterbuch ist prinzipiell identisch mit einem theoretischen Fileserver, der mindestens alle Dateien der Menschheit enthält (um zumindest das alle überhaupt möglichen Dateien rauszunehmen).
Selbst dann müsstest du aber für die Fantastilliarden an Dateien noch eineindeutige "Pfade" speichern, die dann eben in den KB-Bereich gingen da solche Pfade eher... länglich würden.

Es ist unbestritten dass riesige Wörterbücher extreme Kompressionsraten erlauben würden, nur deine 64bit sind halt Unsinn. Das reicht selbst dann nicht, wenn du nur den Pfad speichern willst wo die Datei 1:1 zu finden ist.
 
Zurück