2017. Google wprowadza w Chromium komponent o nazwie Optimization Guide. Pierwsze użycie: dostarczanie wskazówek do lokalnego silnika optymalizacji renderowania. Zasoby: setki kilobajtów. Cel: lepsze przewidywanie zachowania użytkownika podczas ładowania strony.
2026. Ten sam komponent — bez zmiany nazwy, bez zmiany API — pobiera 4 GB modelu LLM. Architektura, która była proporcjonalna do skali pierwszego użycia, przestała być proporcjonalna do skali obecnego.
Czym jest Chrome Optimization Guide
Chrome Optimization Guide to komponent przeglądarki Chromium odpowiedzialny za pobieranie, zarządzanie i serwowanie modeli ML wykorzystywanych przez różne funkcje Chrome — od list bezpieczeństwa po lokalne modele LLM — wykorzystujący infrastrukturę Component Updater Chrome do dostarczania paczek CRX-3 podpisanych przez Google z CDN edgedl.me.gvt1.com.
Architektura
Plik nagłówkowy chrome/browser/component_updater/optimization_guide_on_device_model_installer.h w gałęzi main Chromium pokazuje strukturę:
OptimizationGuideOnDeviceModelInstallerPolicy — klasa polityki instalatora dziedzicząca z ComponentInstallerPolicy. Ma metody decydujące o:
– czy wymagana jest sieć szyfrowana (RequiresNetworkEncryption — w praktyce zwraca false dla modeli, integralność jest gwarantowana przez podpis CRX-3 a nie TLS),
– czy aktualizacje mogą iść przez metered connection (AllowUpdatesOnMeteredConnections — w praktyce true w niektórych konfiguracjach, co oznacza pobieranie ~4 GB przez taryfę mobilną bez ostrzeżenia),
– jak rozpakować pobraną paczkę (OnCustomInstall).
OnDeviceModelType enum z dwiema wartościami: kBaseModel (główny LLM) i kClassifierModel (mniejsze modele klasyfikacyjne). Potwierdza że Chrome pobiera nie jeden model, ale zestaw.
Dwa równoległe kanały dostarczenia
GoogleUpdater (zewnętrzny demon na macOS jako LaunchAgent, na Windows jako scheduled task) — odpala się raz na godzinę. Pobiera ~7 MB skompresowanego control component z identyfikatorem {44fc7fe2-65ce-487c-93f4-edee46eeaaab}. To jest tylko manifest — mapa, lista wersji modeli.
OnDeviceModelComponentInstaller (wewnątrz Chrome) — kiedy Chrome czyta manifest dostarczony przez GoogleUpdater i widzi że profil jest eligible, uruchamia niezależne pobranie modelu z CDN — bezpośrednio z procesu przeglądarki.
Dwa kanały, bo GoogleUpdater jako proces systemowy nie ma dostępu do user data profile Chrome, ale wie kiedy odpalać. Chrome ma dostęp do profilu, ale potrzebuje informacji od updatera kiedy są dostępne nowe wersje.
Skala ewolucji komponentu
2017: setki KB wskazówek optymalizacji.
2020: kilkanaście MB modeli klasyfikacyjnych dla Safe Browsing.
2023: kilkaset MB modeli wsparcia AI.
2026: 4 GB pełnego LLM.
Component Updater pobiera teraz LLM-y tym samym mechanizmem, którym pobierał listy hashy phishingu. UX i model zaufania pozostały bez zmian. Skala wzrosła o cztery rzędy wielkości.
Polityka enterprise
Polityka GenAILocalFoundationalModelSettings (Chrome Enterprise) konfiguruje czy Chrome może pobierać i używać foundational models lokalnie. Wartość 0 (lub brak ustawienia) — model pobierany automatycznie. Wartość 1 — model nie jest pobierany, istniejący jest usuwany.
Polityka działa na poziomie warstwy Chrome Optimization Guide — wpływa nie tylko na Gemini Nano, ale na cały mechanizm dystrybucji on-device models przez ten komponent.