Google je objavio EmbeddingGemma 2 6. oktobra 2026. i ponudio težine za preuzimanje pod licencom Apache 2.0. Model pretvara tekst, kod, slike, video i zvuk u vektore koji se porede u zajedničkom prostoru od 768 dimenzija. Za programera sa lokalnom kolekcijom praktična pitanja su koje enkodere učitati, kako predstaviti upite i datoteke i da li su rezultati korisni za tu kolekciju. Ovaj vodič prati Google-ova objavljena uputstva i karticu modela; BIG CHANGE nije pokrenuo model niti merio kvalitet pronalaženja.

Velika promena

  • Šta se promenilo:Prethodni EmbeddingGemma obrađivao je tekst. Druga verzija dodaje enkodere za slike i zvuk, pa se tekstualni upit može porediti sa podržanim medijem u zajedničkom vektorskom prostoru bez prethodnog generisanja opisa ili transkripta. Google je objavio težine; očekuje se da ML Kit usluga za Android stigne u narednim nedeljama.
  • Zašto je važno:Programer može da učita enkodere koji su potrebni lokalnoj kolekciji i napravi jedan indeks za podržane tipove datoteka. Google-ov AI Edge Galleryprikazuje lokalne vektore medija u SQLite-u rangirane kosinusnom sličnošću. Aplikaciji su i dalje potrebni unos datoteka, skladištenje vektora, prikaz rezultata i provere obmanjujućih podudaranja.
  • Šta pratiti:Neposredna odluka je da li se reprezentativne datoteke dobro rangiraju u okviru memorijskog i latencijskog budžeta uređaja. Kasnija Android usluga mogla bi da promeni način integracije; najavljeni rok ne znači da je usluga danas dostupna.

Izaberite ulaze pre učitavanja modela

U vodiču za programere navedeni su Sentence Transformers 6.1.0 ili noviji i ova komanda za instalaciju za sve podržane medije:

Terminal
pip install -U sentence-transformers[image,audio,video] transformers

Tačan checkpoint je google/embeddinggemma-2. Podrazumevano učitavanje u Sentence Transformers-u obuhvata sve enkodere. Za kolekciju samo tekstualnih i programskih datoteka vodič preporučuje da se pri učitavanju izostave vizuelni i zvučni enkoderi:

Python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer(
    "google/embeddinggemma-2",
    config_kwargs={"vision_config": None, "audio_config": None},
)

Zadržavanje vizuelnog enkodera bez zvučnog zahteva config_kwargs={"audio_config": None}; zadržavanje zvučnog bez vizuelnog zahteva config_kwargs={"vision_config": None}. Ove opcije menjaju koje se težine učitavaju, dok vektori ostaju u zajedničkom prostoru modela. Prema vodiču, tekstualni upit zato može da se poredi sa slikom enkodiranom konfiguracijom koja uključuje vizuelni enkoder. Google opisuje model kao pogodan za potrošačke uređaje, ali objavljeni Python primer je brzi početak za biblioteku, a ne izmerena garancija memorije ili latencije za uređaj čitaoca.

Upite i stavke kolekcije enkodirajte različito

Za tekstualno pronalaženje, kartica modela navodi posebna uputstva za upit i stavke korpusa. Sentence Transformers ih prosleđuje kroz prompt_name:

Python
query_vector = model.encode("northern lights", prompt_name="SearchQuery")
document_vector = model.encode(
    "Charged particles from the sun cause the northern lights.",
    prompt_name="Document",
)
score = model.similarity(query_vector, document_vector)

Ovaj dokumentovani isečak pravi vektore i ocenu sličnosti; to nije rezultat iz našeg okruženja. Document umeće title: none. Ako stavka ima pravi naslov, Google nalaže da se izričito formatira kao title: {title} | text: {content}. Pretraga koda koristi uputstvo za upit CodeRetrieval i naslov ili ime datoteke indeksiranog koda. Klasifikacija, grupisanje i sličnost rečenica koriste sopstvena simetrična uputstva. Kartica modela kaže da model radi i bez tekstualnih instrukcija, ali uz manju preciznost.

Raniji model nema vizuelni ni zvučni enkoder. Pre enkodiranja slike učitajte konfiguraciju za tekst i vizuelni sadržaj iz vodiča sa istog checkpoint-a, pa tim modelom obradite i medij i upit. Ovaj redosled prati dokumentaciju; nismo ga pokretali:

Python
media_model = SentenceTransformer(
    "google/embeddinggemma-2",
    config_kwargs={"audio_config": None},
)
image_vector = media_model.encode({"image": "photo.jpg"})
query_vector = media_model.encode("a photo query", prompt_name="SearchQuery")
score = media_model.similarity(query_vector, image_vector)

Za zvuk ponovo učitajte model bez audio_config: None da biste uključili zvučni enkoder; podrazumevano potpuno učitavanje sadrži vizuelni i zvučni enkoder. Google-ov vodič prosleđuje rečnik poput {"audio": "recording.wav"} bez tekstualnog prefiksa zadatka. Tekst i mediji mogu da se kombinuju postavljanjem oznaka <|image|>, <|video|> ili <|audio|> u tekst i prosleđivanjem odgovarajućih datoteka u rečniku. Taj poziv pravi jedan vektor za kombinovani unos. Kartica modela navodi mono zvuk od 16 kHz i podrazumevano uzorkovanje videa od jednog kadra u sekundi. Slike, video-kadrovi, zvuk i tekst dele kontekstni budžet od 8.192 tokena, pa dugačak snimak ili mešovita stavka zahtevaju planiranje ulaza umesto pretpostavke da sve staje.

Izaberite veličinu vektora, pa proverite kompromis

Izvorni izlaz ima 768 dimenzija. Google-ova kartica modela podržava 512, 256 i 128 dimenzija skraćivanjem vektora. Vodič dokumentuje truncate_dim=256 sa normalize_embeddings=True u model.encode(). Vektori upita i indeksiranih stavki moraju imati iste dimenzije; skraćene vektore treba normalizovati pre kosinusnog poređenja. Kartica navodi da 128 dimenzija znatno više narušava multimodalni kvalitet nego 256 i preporučuje 128 uglavnom za tekstualna opterećenja. To su Google-ovi rezultati benchmarka u punoj preciznosti, a ne predviđanje odziva za konkretnu kolekciju.

Numerička preciznost je još jedan izbor pri podešavanju. Kartica preporučuje bfloat16 na hardveru koji to podržava ili float32 drugde, uključujući većinu CPU-a. Upozorava da float16 može dati NaN vrednosti ili neprimetno lošije embeddinge. Brojevi parametara za selektivno učitavanje opisuju komponente modela, dok stvarna memorija uređaja i brzina pretrage zavise od načina izvršavanja, preciznosti, indeksa i veličine ulaza.

Šta proveriti pre upotrebe rezultata

Prototip može da indeksira mali dozvoljeni uzorak, zadrži reprezentativne upite i proveri da li se pravi elementi pojavljuju pri vrhu. Uključite tekstualne, tekstualno-slikovne ili tekstualno-zvučne slučajeve samo ako kolekcija zaista sadrži te medije. Uporedite 768 i 256 dimenzija na istim upitima, proverite greške u relevantnim jezicima i tipovima dokumenata i izmerite memoriju, vreme indeksiranja i latenciju upita na predviđenom uređaju. To su koraci evaluacije za čitaoca; BIG CHANGE ih nije sproveo.

Rezultati koje je objavila kartica modela daju EmbeddingGemma 2 ocenu 78,68 prema 68,76 za prethodni model na MTEB code v1, dok su rezultati za multilingual MTEB v2 61,36 prema 61,15. Kartica navodi i rezultate za slike, video i zvuk, bez poređenja sa verzijom 1 za te modalitete. Svi citirani benchmark rezultati koriste checkpoint pune preciznosti. Oni opisuju Google-ove uslove evaluacije, a ne tačnost na lokalnoj arhivi. Kartica upozorava da kvalitet može da varira po jeziku i zadatku i da aplikacije za pronalaženje zahtevaju sopstveno filtriranje i provere pravičnosti.

Težine su objavljene pod licencom Apache 2.0, a vodič vodi do Hugging Face repozitorijuma. Google-ovi materijali opisuju lokalno pokretanje, ali ne daju univerzalnu cenu primene: uređaj, računanje, skladištenje i inženjering predstavljaju trošak aplikacije. Sledeći korak za čitaoca je da proveri da li model pravilno rangira reprezentativne datoteke u okviru budžeta uređaja.

Izvori i dodatna literatura

  • Google AI Edge objava, 6. oktobar 2026: faza objave, lokalna pretraga medija u AI Edge Gallery-u i najavljeni rok za ML Kit. Merenja uređaja u ovom tekstu potiču od Google-a.
  • Vodič za programere EmbeddingGemma 2, 6. oktobar 2026: verzija biblioteke, opcije učitavanja, primeri enkodiranja i uputstva za skraćivanje vektora.
  • Kartica modela EmbeddingGemma 2: arhitektura, ograničenja ulaza, instrukcije zadataka, upozorenje o preciznosti, benchmark tabele i ograničenja. Rezultate je objavio Google.
  • Google-ov repozitorijum modela: navedeni checkpoint i objavljene datoteke modela. Dostupnost repozitorijuma ne potvrđuje performanse u aplikaciji.