Pierwsze kroki z Lokalnym AI

Zbuduj własne, prywatne AI. Zobacz kompleksowe zestawienie poradników – od instalacji pierwszej aplikacji po zaawansowanych agentów. Sprawdź poradnik

NeoMME: wydajny, multimodalny i wielojęzyczny enkoder od H Company

ciekawostki
Streszczenie AI

[STRESZCZENIE]
NeoMME to rodzina multimodalnych enkoderów (260 M i 800 M parametrów) wykorzystujących jeden dwukierunkowy Transformer do przetwarzania tekstu i obrazów, trenowanych od zera przy pomocy maskowanego, dyskretnego celu dyfuzyjnego. Model osiąga wyniki na granicy Pareto w benchmarku ViDoRe v3 przy znacznie niższym koszcie parametrów i wyższej przepustowości, a jego architektura pozwala na szybkie kodowanie stron i elastyczne wykorzystanie embeddingów dense oraz late‑interaction.

[FAQ]
Pytanie: Jakie są kluczowe zalety architektury NeoMME w porównaniu z tradycyjnymi VLM?
Odpowiedź: NeoMME eliminuje potrzebę oddzielnej „wieży wizji” i kausalnego dekodera, co redukuje liczbę parametrów i obliczeń; jednocześnie tekst i obraz dzielą tę samą ścieżkę obliczeniową, upraszczając pretraining, fine‑tuning oraz serwowanie.

Pytanie: Na czym polega training NeoMME?
Odpowiedź: Model jest trenowany jako maskowany denoiser tekstu z dyskretną dyfuzją, przy czym w danych multimodalnych maskuje się tekst, pozostawiając niezmienione patchy obrazu, co wymusza naukę semantycznych opisów obrazów.

Pytanie: Co daje podejście „page‑image” w NeoMME‑Retriever?
Odpowiedź: Pozwala na wyszukiwanie pełnych stron dokumentów zamiast fragmentów tekstu OCR, zachowując układ, tabele, wykresy i czcionki, co przekłada się na lepszą jakość retrievalu.

Pytanie: Jakie możliwości kompresji mają embeddingi late‑interaction?
Odpowiedź: Dzięki hierarchicznemu poolowaniu tokenów i asymetrycznej kwantyzacji (np. int8 lub binary) można zmniejszyć footprint indeksu z około 1,5 MB na stronę do kilku kilobajtów przy zachowaniu ponad 95 % oryginalnej jakości nDCG@10.

Pytanie: Jak NeoMME integruje się z ekosystemem Hugging Face i użyciem RAG?
Odpowiedź: Model jest dostępny w Transformers “day‑zero” i może być fine‑tuned z Sentence Transformers, a jego retriever wspiera pipeline Visual RAG, pozwalając na wyszukiwanie obrazów stron i dalsze generowanie odpowiedzi z wykorzystaniem pełnej informacji wizualnej.

H Company udostępniło NeoMME – rodzinę otwartych enkoderów multimodalnych (260M i 800M parametrów), trenowanych od zera z użyciem jednego dwukierunkowego Transformera dla tekstu i obrazu. Modele osiągają wyniki na granicy Pareto w benchmarku ViDoRe v3 dla wyszukiwania wizualnych dokumentów, przy znacząco niższym koszcie parametrów i wyższej przepustowości niż konkurencja.

Kluczowa idea architektoniczna

NeoMME nie korzysta z oddzielnej „wieży wizji” (np. SigLIP) ani z kausalnego dekodera językowego, co jest typowe dla wielu generatywnych modeli VLM. Zamiast tego jeden wspólny, dwukierunkowy Transformer przetwarza zarówno tokeny tekstowe, jak i surowe patche obrazu (32×32), a całość jest trenowana od podstaw z użyciem maskowanego, dyskretnego celu dyfuzyjnego (masked discrete-diffusion denoising).

Taka konstrukcja ma kilka praktycznych konsekwencji:

  • tekst i obraz dzielą tę samą ścieżkę obliczeniową, co upraszcza pretraining, fine-tuning i serwowanie;
  • brak kausalnego dekodera oznacza mniejszy narzut parametrów i obliczeń dla zadań takich jak retrieval, klasyfikacja czy etykietowanie tokenów, które nie wymagają generowania tekstu autoregresywnego;
  • architektura jest bliższa ModernBERT/ModernVBERT, ale bez zewnętrznego, wstępnietrenowanego enkodera wizji.

Pretraining: dane, cel i optymalizator

NeoMME jest trenowane jako maskowany denoiser tekstu z dyfuzją dyskretną:

  • dla przykładów czysto tekstowych losowana jest stopa korupcji (maskowania) z zakresu 0–1, a tokeny tekstu są niezależnie maskowane;
  • w przykładach multimodalnych patche obrazu pozostają widoczne, a model odtwarza zamaskowany tekst; silniejsze maskowanie wymusza uczenie się opisów zakotwiczonych w obrazie, a nie tylko w kontekście tekstowym.

Dane treningowe obejmują wielojęzyczny tekst, kod, matematykę, obrazy naturalne i obrazy dokumentów. Każdy z modeli przetwarza ok. 524 mld spakowanych tokenów wejściowych, w tym 290 mld tokenów z przykładów czysto tekstowych. Ze względu na relatywnie mniejszy budżet tokenów tekstowych (w porównaniu np. do ModernBERT z 2 bilionami tokenów) autorzy zastosowali optymalizator NorMuon, aby poprawić efektywność danych podczas treningu.

NeoMME-Retriever: wyszukiwanie wizualnych dokumentów

Jako zadanie downstreamowe autorzy fine-tunują NeoMME do wyszukiwania wizualnych dokumentów, stosując podejście „page-image” z ColPali: zamiast wyszukiwać fragmenty tekstu po OCR, model rankinguje zrzuty ekranu całych stron dokumentów. Dzięki temu zachowywane są informacje o układzie, tabelach, wykresach, kroju i rozmiarze czcionki – cechy, które nawet idealny OCR może spłaszczyć lub pominąć.

NeoMME-Retriever wykorzystuje ten sam rdzeń NeoMME, ale dodaje dwie jointly trenowane głowy retrievalowe:

  • gęste embeddingi (dense embeddings) – pojedynczy wektor na dokument;
  • embeddingi late-interaction (multi-vector) – wiele wektorów na dokument, umożliwiające bardziej szczegółowe scoringi (np. MeanMaxSim).

Jedno przejście przez NeoMME-Retriever zwraca obie reprezentacje, co daje elastyczność w zależności od infrastruktury i skali danych. W typowym scenariuszu zaleca się użycie late-interaction jako głównej metody, a w przypadku bardzo dużych korpusów – najpierw szybkie przeszukanie ANN na dense embeddingach, a następnie reranking kandydatów za pomocą late-interaction.

Wyniki w benchmarku ViDoRe v3

Głównym miernikiem jakości retrievalu jest nDCG@10 w benchmarku ViDoRe v3. Dla NeoMME-Retriever wyniki wyglądają następująco:

Model Parametry nDCG@10 (ViDoRe v3) Komentarz
NeoMME-Retriever-260M 260M 0,523 Najwyższy wynik wśród modeli <800M; o 0,002 gorszy niż ColQwen2.5 przy ~14× mniej parametrów
NeoMME-Retriever-800M 800M 0,556 W odległości 0,009 od Vultron Retriever Flash (~0,8B); oba na granicy Pareto rozmiaru modelu

W starszych wersjach benchmarku (ViDoRe v1 i v2, mierzonych nDCG@5) NeoMME-Retriever-260M przewyższa ColModernVBERT i dwukrotnie większy ColSmol-500M, a wersja 800M bije ColPali v1.3 przy 3,6× mniejszej liczbie parametrów.

Kompresja embeddingów late-interaction

Embeddingi late-interaction skalują się liniowo z liczbą wektorów w wyjściu, a wyższa rozdzielczość obrazu oznacza więcej patchy i większe embeddingi. Dla strony 2048×2048 NeoMME-Retriever generuje ok. 4200 wektorów, co w float32 daje ~2,1 MB; średnio w ViDoRe v3 wychodzi ok. 1,5 MB na dokument.

Aby zmniejszyć footprint indeksu, autorzy łączą dwie metody kompresji:

  • hierarchiczne poolowanie tokenów (hierarchical token pooling) – redukcja liczby wektorów na dokument;
  • asymetryczna kwantyzacja (np. int8 dla zapytań i dokumentów, a w bardziej agresywnej konfiguracji binary dla dokumentów).

W testach na ViDoRe v3:

  • pooling factor 10 + int8 (zapytania i dokumenty) → spadek z ~1,5 MB do ~39 kB na stronę (39×), przy zachowaniu >99% bazowego nDCG@10;
  • pooling factor 8 + int8 (zapytania) + binary (dokumenty) → ~6 kB na stronę (255× mniejsze), przy zachowaniu >95% bazowej jakości retrievalu.

Użytkownik może wybrać punkt na tej krzywej w zależności od budżetu storage i wymaganej jakości wyszukiwania.

Przepustowość i koszt budowy indeksu

Szybkość kodowania obrazów ma bezpośredni wpływ na koszt GPU i czas budowy indeksu. Przy dopasowanym wejściu 2048×2048 na jednej karcie NVIDIA L40S:

  • NeoMME-Retriever-260M: ~51 stron/s;
  • ColModernVBERT: ~26 stron/s.

Obydwa modele NeoMME-Retriever (260M i 800M) są też szybsze od porównywanych modeli przy mniejszych rozdzielczościach wejściowych. Szybsze kodowanie oznacza krótszy czas budowy indeksu i niższy koszt GPU przy dodawaniu nowych dokumentów.

Integracja z Hugging Face Transformers i Sentence Transformers

NeoMME jest dostępne „day-zero” w Hugging Face Transformers, a wszystkie checkpointy są udostępnione na licencji Apache 2.0. Dla fine-tuningu z Sentence Transformers v6 autorzy dostarczają osobne checkpointy dla dense i late-interaction, ponieważ Sentence Transformers obsługuje obecnie jedną głowę retrievalową na model. Rdzeń jest ładowany przez NeoMMEModel, a nie przez dwugłowy NeoMMEForRetrieval. Aby trenować obie głowy razem, należy użyć NeoMMEForRetrieval z własnym Trainerem.

Praktyczne zastosowania: wizualny RAG

NeoMME-Retriever naturalnie wpisuje się w wizualny retrieval-augmented generation (RAG):

  • zamiast wyszukiwać fragmenty tekstu po OCR, system wyszukuje oryginalne obrazy stron dokumentów;
  • następnie te obrazy są przekazywane do modelu wizyjno-językowego (VLM), który może wykorzystać układ strony, tabele, wykresy i inne cechy wizualne, tracone przy ekstrakcji tekstu.

Taki pipeline jest szczególnie przydatny w zastosowaniach korporacyjnych (dokumenty techniczne, raporty finansowe, specyfikacje), gdzie strona jako całość niesie więcej semantyki niż sam tekst. Autorzy udostępnili demo wizualnego RAG z NeoMME-Retriever jako Hugging Face Space.

Dlaczego NeoMME jest istotne dla open source

NeoMME pokazuje, że można zbudować wydajny, multimodalny enkoder bez polegania na dużych, wstępnietrenowanych wieżach wizji i bez narzutu kausalnych decoderów VLM. Kluczowe cechy z punktu widzenia praktyka:

  • wydajność: wysokie nDCG@10 przy relatywnie małej liczbie parametrów;
  • przepustowość: ~2× szybsze kodowanie stron niż ColModernVBERT przy tej samej rozdzielczości;
  • elastyczność: jednoczesne dense i late-interaction embeddingi z jednego forward pass;
  • skalowalność storage: możliwość redukcji footprintu late-interaction z ~1,5 MB do ~6 kB na stronę przy minimalnej utracie jakości;
  • otwartość: Apache 2.0, pełna implementacja w Transformers, gotowość do fine-tuningu i integracji z istniejącymi stackami RAG.

Źródła

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Powiązane posty

Powrót do góry