News

Meta AI otwiera kod OpenZL: framework kompresji z uniwersalnym dekoderem

Meta AI zaprezentowała OpenZL, otwarty framework kompresji, który buduje specjalistyczne kompresory, uwzględniające format kompresowanych danych. Innowacją jest tutaj uniwersalny dekoder, który potrafi odczytać dane skompresowane przez dowolny kompresor stworzony w OpenZL. Takie podejście radykalnie upraszcza proces wdrażania nowych metod kompresji, uniezależniając aktualizacje kompresorów od konieczności aktualizacji oprogramowania dekodującego.

Jak działa OpenZL? Formalizacja kompresji jako graf obliczeniowy

OpenZL traktuje kompresję jako graf obliczeniowy, gdzie węzły reprezentują kodeki (lub podgrafy), a krawędzie – strumienie danych. Finalny graf jest serializowany wraz z ładunkiem, co oznacza, że specyfikacja kompresji podróżuje razem z danymi. Dzięki temu każdy fragment skompresowany przy użyciu OpenZL może być zdekompresowany przez uniwersalny dekoder.

Kluczowym celem tego rozwiązania jest połączenie zalet wydajnościowych (współczynnik kompresji i szybkość działania) kodeków dedykowanych do konkretnych zastosowań z prostotą operacyjną pojedynczego, stabilnego dekodera.

Proces kompresji w OpenZL składa się z dwóch głównych etapów:

  1. Opis danych i budowa grafu: Deweloper dostarcza opis danych, a OpenZL komponuje etapy parsowania, grupowania, transformacji i kodowania entropijnego w DAG (Directed Acyclic Graph) dopasowany do struktury danych. Wynikiem jest samodefinujący się pakiet danych (ang. frame), zawierający skompresowane bajty oraz specyfikację grafu.
  2. Uniwersalna ścieżka dekodowania: Dekodowanie odbywa się proceduralnie, zgodnie z osadzonym grafem, eliminując potrzebę wdrażania nowych czytników (ang. readers) w odpowiedzi na ewolucję kompresorów.

Narzędzia i API

OpenZL udostępnia szereg narzędzi i interfejsów programistycznych, w tym:

  • SDDL (Simple Data Description Language): Język opisu danych, który umożliwia dekompozycję danych wejściowych na strumienie typowane na podstawie prekompilowanego opisu. Dostępny w C i Pythonie.
  • Wiązania językowe: Biblioteka rdzeniowa i wiązania są udostępnione jako open source. Dokumentacja obejmuje użycie w C/C++ i Pythonie, a społeczność rozwija kolejne wiązania (np. Rust).

Wyniki i wydajność

Zespół badawczy Meta AI twierdzi, że OpenZL osiąga lepsze współczynniki kompresji i większą szybkość w porównaniu z najnowocześniejszymi kodekami ogólnego przeznaczenia w różnych rzeczywistych zbiorach danych. Podkreślają również wewnętrzne wdrożenia w Meta, które prowadzą do poprawy rozmiaru i/lub szybkości kompresji oraz skrócenia czasu opracowywania kompresorów. Niestety, w publicznie dostępnych materiałach nie podano konkretnych, uniwersalnych wartości liczbowych – wyniki prezentowane są jako ulepszenia w sensie Pareto, zależne od danych i konfiguracji potoku przetwarzania.

Podsumowanie

OpenZL to obiecująca technologia, która może znacząco uprościć i usprawnić proces kompresji danych. Podejście, w którym kompresory są wyrażane jako DAG, osadzane jako samodefinujący się graf w każdym pakiecie danych i dekodowane przez uniwersalny dekoder, eliminuje problem aktualizacji czytników. Meta raportuje poprawę wydajności w porównaniu z popularnymi algorytmami kompresji, takimi jak zstd i xz. Implementacja schematu kodowania DAG w każdym pakiecie i dekodowanie za pomocą uniwersalnego czytnika stanowi znaczący krok naprzód w dziedzinie kompresji danych, otwierając nowe możliwości optymalizacji i wdrażania.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *