Гібрыдны пошук выяў у маштабе: SigLIP, SPLADE, YOLOv8 і подпісы Gemini
Архітэктура пошуку па мільёне выяў: шчыльныя і разрэджаныя эмбедынгі разам з выяўленнем аб’ектаў, распазнаваннем сутнасцей, бяспечным пошукам і апісаннямі ад LLM.
Крыніцы: Building Image Search System Leveraging Modern AI Services
Спраўленне па ключоўых словах толькі на тэгах мае пярэднія межы ў разы з адпраўкамі зображэнняў. Команды, якія ствараюць каталогі электронной торгавлі, інструменты керування кантэнтам або бібліятэкі цыфровых актываў, хочуць такі пошук, які б разумеў тое, што паказвае зображэнне, яго стыль і эмачны тон, а не толькі словы, якія хтось увів у поле тэга. Апісанне ніжэй опісвае гібрыдную сістэму пошуку зображэнняў, якая запошчае інфармацыю з рэпазітарыю, які налічвае або мільйон зображэнняў, выкарыстоўваючы як візуальны контэнт, так і тэкстовыя запіты; такая сістэма большасцю пабудована на існуючых сервісах ШЫ, таму зусілля з розрабоцы ўтрымваюцца на мінімуме.
Архітэктура аб’еднвае калькі спецыялізаваных компанентаў. Яны практычна опісаны ніжэй у тым парадку, якім праходзяць даны праз яны: эмбедынг, аналіз зображэнняў, генераванне апісанняў, апрацоўка запытоў і аперацыі.
Два мадэлі эмбедынгу
Сістэма апоўнюецца двума аддзельнымі каналамі эмбедынгу, кожны з якіх фіксуе разныя аспекты контэнту.
Для зображэнняў выкорыстоўваецца SigLIP. Пасля адгукнення як CLIP, так і ImageBind, SigLIP павялічыў свае перавагі. гэта кантрастны мадэль для зображэнняў і тэксту, трэнаваныя з вікорыстанням функціі сігмоўдальнай пазыркі; зафіксаваныя рэзультаты паказваюць, што яго точнасць у тэстах ImageNet з нулявым падготавленнем становіць або-і 76%, што на кальколькі пунктав больш, чым у адпоўнайна супэрнікаў — модэляў CLIP. Кроме таго, ён выкарыстоўвае меншы рэсурс вычысленняя, прыблізна на 40% менш, чым у пераканаўчых дапамогах, і можа прыменяцца да новых сфер без дадатковага налаштавання. Кожнае зображэнне стае ўпакоўненым векторам у прасторы, дзе суседзяючыя точкі выглядаюць аднакова.
Для тэксту выкорыстоўваецца SPLADE v2. SPLADE стварае розрэдзеныя векторы, якія безпасульна прыязджаюць да слоўніку, што дае тры перавагі:
- Розрэдзеныя выходныя даны застаюцца зрозумелымі, адколі кожны вімер паўтарае рэальны тэрмін.
- Ён сам адтворае запыты на лексычным роўні, чым зменшае несувярэннасці слоўніку, якія спрычыняюць проблемы пад час пошуку („sofa“ проты „couch“).
Розумеўце кожнага зображэння
Сырые пікселі ператвараюцца на шары інформацыі, якія можна адзначаць, у багатастадыйнай схеме апрацоўкі.
Адказванне на об’екты за дапамою YOLOv8. YOLO аналізуе цэлыя зображэння за адну праходзьбу пакета даных, таму ён значна быстрэйшы за двустадыйныя адказвальнікі, такія як Faster R-CNN. У гэтым варыянце час апрацоўкі адноўсаго зображэння становіць або-мае 50 мс, што дастаткова для эфектывнага групавання. Ён досягае 53,9% mAP на тэстах COCO для 80 распашчытых клас, а мадэль легка працюе на кластэры GPU.
Ад загальных класаў да іменаваных аб’ектаў. Адказванне дае пазначкі на кшталт «чалавек», «машына» і «будынак». Для розгледу з багатымі данымі патрэбны конкрэтныя ідэнтыфікаторы, таму служба веб-аб’ектаў іх ператварае:
Example Transformation:
YOLO: "person" (coordinates: [120, 45, 220, 320])
Web Extraction: "Elon Musk" (confidence: 0.96)
YOLO: "building" (coordinates: [50, 100, 400, 600])
Web Extraction: "Eiffel Tower" (confidence: 0.92)
Шырокі спектр службы ведае болейш ніж пяць мільйонов аб’ектаў у такіх групах, як публічныя дзеячы, візначні краеведчыя об’екты, продукты і маркі, а таксама заходы. Гэты падход з’ўязуе візуальную дэтэкцыю з іх значэнням. Запіт на конкрэтнага співака працюе эфектывна, а не загальны запіт на людзіну.
Атрыбуты з API для візуальнага аналізу. Загальныя понятты, дзеяння і тэмы візначаюцца за дапамогою атрыбутаў, якія пад час тэставання выявілі болейш ніж 10 000 разных поняттаў у всім рэпазітарыі. Гэта дапамагае у трох аспектах: дзеяннях, такіх як прыгулкі па горах або гатованне ўжынку, сценах, такіх як пляж чы раён лесу, і об’ектах, якія занадта спецыфічныя для класаў YOLO, напрыклад капучыно, якій YOLO проста называе «чашка».
Безпечныя пошукавыя функцыі. Контэнт атрыбутуецца па пяць параметраў: для дорослых, насілля, медычныя тэмы, пародыі (мемы і адрэдагаваныя зображэння) і вульгарны контэнт. Кожны параметр мае значэння доверы, таму фільтрацыя можа быць налаштаваная па правілам арганізацыі. Автаматызацыя гэтага працэсу заменіла велікі час, які раней падыходзіў на ручную пераглядку.
Gemini для метаданных і апісаў
Gemini стварае структураваныя метаданныя. Рэтэльная праца над запітамі прыняла форму шаблона, які надзеямо выкарыстоўвае 25 атрыбутаў, кожны з якіх мае значэння доверы ад 0 да 1, напрыклад, рэгламент прыемлемасці і эмоцыя:
System: You are an expert image analyzer. Extract the following attributes from the image, with a confidence score (0-1):
1. sensitivity (none, low, medium, high)
2. emotion (neutral, joy, sadness, surprise, etc.)
3. emotion_triggered (yes/no)
4. text_overlay (yes/no)
5. has_frames (yes/no)
6. has_religious_symbols (yes/no)
7. has_scattered_objects (yes/no)
8. style (photographic, illustrated, cartoon, abstract, etc.)
9. has_crowd (yes/no)
...
[full list of 25 attributes]
Response format: JSON object with attributes as keys and values as described above.
Сумарныя выходы дзеянняў адкрыція, выявлення энтытэтаў, атрыбутаў і метаданых пасля чаго падаюць у другі запрос Gemini, які стварае полныя апісанні. Дызайн запросу тут мае вялікое значэнне, адтолькі апісанні павінны быць:
- Багатыя на ключавыя словы, што дапамагае у пошуку тэксту.
- Однаковыя за структурой, ўсёлякім чынам даўаючы можлівасць надзеянага аналізу.
- Значамыя ў кантэксце, паказваючы, чаму выявленыя энтытэты маюць значэнне.
- Усведамленыя ў атрыбутах, такіх як эмцыя і стыль.
- Напісаныя з урахоўваннем верагодных тэрмінаў пошуку.
Шаблон выглядае так:
Generate a comprehensive, search-optimized description for this image based on the following data:
[Entity data from object detection and recognition]
[Label data from Vision API]
[Structured metadata from previous Gemini analysis]
Your description should:
1. Begin with the most significant entities and their actions/relationships
2. Include key visual attributes (colors, style, composition)
3. Mention emotional tone and aesthetic qualities
4. Incorporate likely search terms
5. Be 3-5 sentences in length
Спачатку взяце неапдэтаваныя даны з выклікання:
Objects: person (0.98), guitar (0.95), microphone (0.92)
Entities: Taylor Swift (0.97)
Labels: concert, performance, stage, entertainment
Metadata: emotion=joy, has_crowd=yes, style=photographic, dominant_color=purple
Пас паўзбогацэння ён стае рэчым, якую можна шукаць:
Taylor Swift performs energetically on stage with an acoustic guitar during a concert, singing into a microphone with passionate expression. The image captures the excitement of a live performance with purple stage lighting creating a vibrant atmosphere. This high-quality photograph conveys feelings of joy and excitement, with Swift's iconic performance style clearly visible. The composition includes partial views of an enthusiastic crowd in the foreground, making this suitable for music, entertainment, and celebrity content.
Такі апісанні маюць вельмі большое колічэство контэнту, які можна адзначыць пад час пошуку, застаюць значамымі ў кантэксце, уключаюць візуальныя і эмачныя характэрыстыкі і адпавядаюць таму, што корыстувальнікі, верагацейна, будуць пісаць.
Адпаведзь на запыт
Запыты праходзяць праз шасць крокаў:
- Аналіз. Класыфікацыя намеру вяршыць выбор, чы хочаць корыстувальнік конкрэтныя ентытэты, стылі, эмцыі чы іншыя характэрыстыкі.
- Выяўленне ентытэтаў. Іменаваныя ентытэты ў запыце паўтараюцца з базай дадзенаў ентытэтаў, каб яны пакрыліся правым вагам.
- Укладка. Запыт укладаецца за дапамогою SPLADE v2 і SigLIP, як і адбывалася рэпрэзентацыя зображэнняў.
- Вектарны пошук. Укладка запыту знаходзіць найбліжэйшыя вектарныя прэдставленні зображэнняў у індэксе.
- Разнараднісць, дзе выкарыстоўваецца алгорытм, які падтрымляе мінімальную косайную адстань межа выбранымі зображэннямі.
- Няўзабавнасць, калі новейшыя элементы падкрэпляюцца за дапамогою зменшэння значэння з часам:
score_boost = base_score * (1 + alpha * exp(-beta * days_old)). - Популярнасць, дзе выкарыстоўваецца лагарынгавае зменшэнне, каб адчыненныя элементы не домінавалі.
- Бізнес-правілы для налагоджэння, спецыяльных для конкрэтнага домэна.
Две складныя проблемы
Задзейнаванне. Ад’юнкцыя калькоўкальных служб спрычыняе затрымкі, і пачатковыя вімеры паказалі, што час апрацоўкі адной карткі з усіма етапамі прыходзіў да чатырох секунд. Для вылечэння гэтага прыемліліся асінхронныя паралельныя вызовы, групаванне задач у некінетычных ланцоўках, размешчэнне служб поблізу адная ад другойя для скорачэння часу перадачы даных па сеціі, а таксама розпад працы ў залежнасці ад складносці карткі. Серэдні час апрацоўкі знізіўся да 850 мс на картку, пры чым 95% з іх обрабляліся за менш чым 1,2 секунды.
Складнасць інтэграцыі. Кожная служба мае свой API, спосаб развязвання адказоў на памылкі і характэрыстыкі працы. Дапамогла аб’еднаная шар абстракцыі з адносовым развязванням памылак, прыемкамі на перыванне ланцоўкаў і альтэрнатывамі для кожной службы, показначальнікамі стану кожнай залежнасці, а таксама поэтапныя заходы для падтрымкі працы сістэмы нават у разы ўскладненняў.
Рэзультаты і наступныя крокі
Іспытанне абонентскіх служб AI прынесла плоды. Разработка зайняла чатыры месяцы, хоць пачаткова оцэнка для індывідуальнага рашэння становіла падвайнае час, задоволенне рэзультатамі пошуку выросла на 40%, а ручная маркетацыя і класыфікацыя зменіліся на 80%.
Існуе калькі напрамкаў для далейшага развіцця: персаналізацыя на адлогу паведанняў корыстніка, інтэрактыўная дапрацоўка рэзультатаў, запыты, якія спалучаюць тэкст і адпраўкі, цыклы зворотнага звязку, якія вучацца на кліках, а таксьмо дапрацоўкі модэляў укладання для конкрэтных галузей.