Immich umożliwia wyszukiwanie zdjęć, konwertując przygotowane obrazy na zapisane reprezentacje, które można porównywać z zapytaniami i filtrować według uprawnień dostępu.
Rodzic pamięta czerwony rower na wakacyjnym zdjęciu, ale nie zna nazwy pliku ani daty, więc wyszukuje je na domowym serwerze zdjęć, używając zwykłego języka. Uzyskanie przydatnego wyniku wymaga czegoś więcej niż przechowywania obrazu na dysku. Reprezentacja wizualna, wyszukiwanie w bazie danych i zakres uprawnień muszą współdziałać, a wybrany model decyduje o tym, jakie podobieństwa wyszukiwarka potrafi rozpoznać.
Przygotowanie obrazu to nie trenowanie modelu
Importowanie biblioteki zazwyczaj uruchamia wnioskowanie z użyciem istniejącego modelu; nie trenuje nowego modelu ogólnego przeznaczenia na rodzinnej kolekcji. Serwer przygotowuje dane wejściowe obrazu, zleca analizę i przypisuje zwrócone informacje do zasobu. To rozróżnienie wyjaśnia, dlaczego początkowy import wymaga mocy obliczeniowej, ale nie wymaga tworzenia domowego projektu trenowania modelu.
Lokalne indeksowanie wizualne pozwala aplikacji do hostowania zdjęć tworzyć reprezentacje wyszukiwania, zanim użytkownik wprowadzi zapytanie. Początkowy etap zajmuje czas, ponieważ każde kwalifikujące się zdjęcie nadal wymaga przetworzenia. Gdy reprezentacje już istnieją, późniejsze wyszukiwanie może je ponownie wykorzystać, zamiast ponownie uruchamiać cały proces analizy obrazu dla każdego zdjęcia.
Granica gotowości znajduje się więc na dalszym etapie niż samo przesłanie pliku. Czytelny oryginał może istnieć, zanim jego reprezentacja wizualna będzie dostępna. Traktuj początkowe indeksowanie jako odrębny etap i nie uznawaj pomyślnego przesłania ani szybko wyświetlonego buforowanego podglądu za dowód, że analiza semantyczna tego zasobu została zakończona.
Osadzenia łączą obrazy ze słowami
Osadzenie to reprezentacja liczbowa używana do porównywania znaczenia lub treści wizualnej. Koder obrazu i zgodny z nim koder tekstu mapują różne dane wejściowe na porównywalne reprezentacje. Fraza wyszukiwania nie jest po prostu porównywana z ukrytą, wygenerowaną nazwą pliku, a pomyślny wynik nie oznacza, że system utworzył dokładny opis każdego obrazu.
Kontrastywne uczenie obrazu i tekstu dopasowuje powiązane obrazy i opisy, jednocześnie rozdzielając mniej powiązane pary podczas trenowania. W czasie wyszukiwania wytrenowana reprezentacja umożliwia porównywanie frazy z zapisanymi wektorami obrazów. To mechanizm stojący za wyszukiwaniem pojęć wizualnych bez konieczności przypisywania tego samego dosłownego słowa kluczowego każdemu odpowiedniemu zdjęciu.
Na przykład zdjęcie roweru na plaży może uzyskać wysoką pozycję dla opisowej frazy, nawet jeśli żadne z tych słów nie występuje w jego metadanych. Jest to ocena trafności, a nie dowód, że obraz zawiera każdy żądany szczegół. Sformułowanie, kadrowanie, małe obiekty i konkurencyjne cechy wizualne mogą zmienić kolejność wyników mimo niezmienionego oryginalnego pliku.
Baza danych sprawia, że wyniki można pobrać
Obliczenie wektora nie kończy procesu pobierania: aplikacja musi go zapisać i wyszukiwać go wraz z informacjami o zasobie. Baza danych zwraca identyfikatory potencjalnych wyników, po czym aplikacja może udostępnić odpowiadające im multimedia. Przepustowość obliczeń i opóźnienie pobierania z bazy danych są powiązanymi, lecz niezależnie mierzalnymi elementami tego doświadczenia.
Backend wyszukiwania zależy od wersji. W Immich usunięto obsługę pgvecto.rs w wersji 3 i zaleca się VectorChord jako następcę, dlatego starszy artykuł architektoniczny wymieniający pgvecto.rs nie powinien stać się podstawą aktualnych zaleceń dotyczących wdrożenia. Trwała zasada polega na połączeniu zapisanych wektorów ze stanem aplikacji relacyjnej, a nie na użyciu jednej historycznej nazwy rozszerzenia.
Dla zobrazowania skali 100 000 wektorów zawierających 512 wartości czterobajtowych zajmuje około 205 MB jako surowe liczby. Nie jest to szacunek rozmiaru bazy danych Immich: rzeczywiste wymiary, typy, indeksy, wiersze i rejestrowanie z wyprzedzeniem zmieniają całkowitą wartość. Obliczenie pokazuje jedynie, dlaczego reprezentacja różni się od przechowywania kolejnego obrazu w pełnej rozdzielczości.
Osoby, metadane i wyszukiwanie wizualne to różne ścieżki
Wyszukiwanie wizualne, filtrowanie metadanych i wyszukiwanie nazwanych osób odpowiadają na różne pytania. Filtr daty korzysta z zapisanych informacji; wyszukiwanie wizualne szereguje wyniki według opisu sceny; funkcje związane z twarzami wykrywają i grupują twarze, którym użytkownik może następnie nadać nazwę. Oczekiwanie, że wszystkie trzy mechanizmy będą działać jak dokładne dopasowanie nazwy pliku, zaciemnia powody, dla których jedna ścieżka działa, a inna rozczarowuje.
Organizowanie rodzinnych zdjęć zyskuje na łączeniu tych ścieżek zamiast oczekiwania, że jeden model odzyska każdą informację. Nazwa osoby, przybliżony miesiąc i opis wizualny ograniczają różne aspekty kolekcji. Ich użyteczność zależy od dostępnych metadanych, zakończonego przetwarzania oraz tego, do których zdjęć bieżące konto ma dostęp.
To rozróżnienie zapobiega również błędowi dotyczącymi dokładności: rozpoznanie wizualnie podobnej twarzy nie jest niezależnym dowodem tożsamości. Przejrzyj grupy przed poleganiem na nazwie, szczególnie gdy wiek, oświetlenie lub zasłonięcie twarzy zmieniają wygląd. Precyzyjne decyzje administracyjne lub wrażliwe pozostaw poza rankingiem podobieństwa zaprojektowanym do ułatwiania przeglądania biblioteki zdjęć.
Prywatność i dokładność mają odrębne granice
Lokalny model może utrzymywać analizę obrazów w obrębie domowego serwera, ale granica zaufania przebiega zgodnie ze skonfigurowanym punktem końcowym. Wysłanie analizy do innego komputera oznacza, że ten komputer przetwarza dostarczone dane wejściowe. Zdalny akcelerator w prywatnej sieci i nieznany hostowany punkt końcowy mają różne konsekwencje dla prywatności, nawet jeśli oba są określane jako zdalne uczenie maszynowe.
Ograniczenia modelu są niezależne od prywatności wdrożenia. Oryginalne badania nad CLIP opisują słabości w zadaniach takich jak liczenie i rozróżnienia wymagające dużej szczegółowości oraz ostrzegają, że wyniki zależą od dostarczonych kategorii lub promptów. Lokalizacja wnioskowania nie eliminuje tych ograniczeń ani nie zmienia wyniku podobieństwa w faktyczny opis rodzinnego wydarzenia.
Twierdzenie o prywatnym wyszukiwaniu jest błędne, jeśli zakłada, że self-hosting automatycznie zabezpiecza każdy punkt końcowy, backup, konto i album udostępniony innym osobom. Twierdzenie o dokładnym wyszukiwaniu jest błędne, jeśli obiecuje pełne odnajdywanie wyników na podstawie dowolnego sformułowania. Określ obie granice: kto przetwarza dane wejściowe oraz jakie elementy reprezentacja może rozsądnie rozróżnić w wybranej kolekcji.
Sprawdź potok za pomocą znanych zdjęć
Utwórz niewielki, autoryzowany zestaw referencyjny zawierający oczywiste obiekty, niejednoznaczne sceny, drobne szczegóły i kilka znanych osób. Po zakończeniu przetwarzania porównaj dokładne filtrowanie metadanych z zapytaniami wizualnymi i wyszukiwaniem nazwanych osób. Zapisz wybrany model i wersję serwera, aby późniejszą zmianę można było ocenić na podstawie tych samych przykładów, a nie wspomnień.
Opisany z pierwszej ręki eksperyment ze zmianą modelu wykazał znacznie różną jakość wyszukiwania przy użyciu innego skonfigurowanego modelu. Obserwacja ta uzasadnia sprawdzanie trafności na własnych przykładach, a nie zakładanie, że każdy większy model poprawi każde zapytanie. Koszt sprzętu, obsługa języków i wymagania dotyczące ponownego przetwarzania należy traktować oddzielnie od jednego entuzjastycznego opisu lepszych wyników.
Uznaj potok za gotowy, gdy reprezentatywne zasoby zakończą wymagane przetwarzanie, uprawnieni użytkownicy będą mogli pobrać oczekiwane przykłady, a słabości zostaną udokumentowane, zamiast ukryte. Jeśli metadane znajdują zasób, ale wyszukiwanie za pomocą opisu wizualnego nie, sprawdź trafność, zanim uznasz dane za utracone. Jeśli analiza została przekierowana, zweryfikuj komputer odbierający jako odrębną decyzję dotyczącą prywatności.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

LFM2.5-24B-A2B wyjaśnienie: co oznaczają parametry całkowite i aktywne dla lokalnych agentów AI
LFM2.5-24B-A2B łączy 24 mld parametrów ogółem i 2 mld aktywnych parametrów. Poznaj pamięć, narzędzia agentów, lokalne uruchamianie i dowiedz się, jak NAS wpisuje się...

IBM Granite Speech 5.0 wyjaśnione: co kompaktowe ASR oznacza dla prywatnych archiwów audio
Granite Speech 5.0 TurboCTC to kompaktowy model ASR z wielojęzyczną aktualizacją. Dowiedz się, jak lokalna transkrypcja może współpracować z archiwum audio opartym na NAS.

Claude Duet wyjaśniony: proaktywne zadania, połączone aplikacje i pliki osobiste
Claude Duet to wersja poglądowa proaktywnego agenta. Dowiedz się więcej o zadaniach działających w tle, połączonych kontach, granicach weryfikacji i plikach osobistych przechowywanych na...

