Pinecone ці Weaviate: нізкая затрымка не вырашае выбар вектарнай БД

|Аўтар: Рэдакцыя QUASA|5 хв чытання| 1
Pinecone ці Weaviate: нізкая затрымка не вырашае выбар вектарнай БД

Для RAG паміж Pinecone і Weaviate няма ўніверсальнага пераможцы па затрымцы: выбар залежыць ад таго, ці знаходзіць база патрэбны кантэкст, як хутка працуе ўвесь пошукавы этап і дзе павінны захоўвацца даныя. Pinecone Serverless падыходзіць камандзе, якая хоча кіраваны сэрвіс з аплатай паводле выкарыстання; Weaviate дае магчымасць самастойнага размяшчэння і наладжвання спалучэння вектарнага пошуку з пошукам па словах.

Параўноўваць гэтыя варыянты трэба на адным корпусе і адных пытаннях. Затрымка чыстага вектарнага пошуку, гібрыднага запыту і першага звароту да рэдка выкарыстоўванага раздзела апісвае розныя нагрузкі. Для карыстальніка RAG істотныя і час атрымання фрагментаў, і тое, ці трапіць патрэбны фрагмент у кантэкст мадэлі.

Калі лічбы з бенчмаркаў можна параўноўваць

Пачніце з умоў, якія найбольш змяняюць вынік: аб’ём корпуса, размернасць і тып вектараў, метрыка блізкасці, колькасць запытаных вынікаў, фільтры і адначасовая нагрузка. Пошук па невялікім наборы кароткіх вектараў не дае надзейнага прагнозу для тэкставага корпуса з іншымі эмбедынгамі. Для вымярэння затрымкі прыкладання трэба таксама ўраўнаваць рэгіён кліента і базы, бо сеткавы шлях уваходзіць у час адказу.

У эмпірычным даследаванні вектарных баз Weaviate атрымала Recall@100 0,996 на SIFT1M пры наладах па змоўчанні. Даследчыкі вымяралі чысты вектарны пошук без фільтрацыі ў аднавузлавым асяроддзі; Pinecone не ўваходзіў у набор сістэм. Вынік паказвае якасць канкрэтнай канфігурацыі на канкрэтных вектарах, але не дае прамога параўнання Pinecone з Weaviate для беларускамоўных тэкставых пытанняў.

Для RAG карысна лічыць recall@k адносна размечаных рэлевантных фрагментаў, а побач — якасць адказу, які мадэль будуе з атрыманым кантэкстам. Запыт з дакладным кодам дакумента можа патрабаваць іншага ранжыравання, чым семантычнае перафармуляванне пытання. Затрымку запісвайце для аднолькавых тыпаў запыту і асобна паказвайце медыяну, павольныя запыты і прапускную здольнасць пры той самай колькасці адначасовых карыстальнікаў.

Апісанне Pinecone Serverless фіксуе асобную аплату чытанняў, запісаў і захоўвання, падтрымку фільтраў, гібрыднага пошуку і namespaces, а таксама большую затрымку запытаў да «халодных» namespaces. Таму сярэдні час на актыўным раздзеле не характарызуе першы запыт кліента, чые даныя запытваюць рэдка. Для такога сцэнарыя патрэбныя асобныя вымярэнні пасля паўзы і пры рэгулярных зваротах.

Гібрыдны пошук: хуткасць і якасць змяняюцца разам

Калі ў корпусе шмат назваў файлаў, кодаў тавараў і дакладных тэрмінаў, адна семантычная блізкасць можа прапусціць патрэбны фрагмент. Дакументацыя Weaviate пра гібрыдны пошук апісвае сумяшчэнне вектарнай выдачы з BM25 і параметр alpha, які вызначае вагу вектарнай часткі. Змяняючы alpha, вы змяняеце ранжыраванне, таму яго значэнне належыць да ўмоў параўнання нароўні з колькасцю вынікаў і фільтрамі.

У Pinecone таксама ёсць гібрыдны пошук, але аднолькавая назва магчымасці не робіць два запыты аднолькавымі па складанасці і выдатках. Параўнальны набор пытанняў мусіць ахопліваць семантычныя перафармуляванні, дакладныя назвы і змешаныя фармулёўкі. У абедзве базы трэба падаць тыя самыя фрагменты, эмбедынгі і метаданыя, а колькасць вынікаў задаць аднолькава.

Час вымярэння варта пачынаць перад запытам і заканчваць пасля атрымання тэксту, патрэбнага мадэлі. Калі адзін варыянт дадае зліццё выдач або пераранжыраванне ў прыкладанні, гэты этап уваходзіць у яго затрымку і кошт. Асобная лічба для пошукавага індэкса ўсё яшчэ дапамагае знайсці вузкае месца, але для выбару базы важнейшая якасць і працягласць поўнага атрымання кантэксту.

Размяшчэнне даных і праца каманды

Патрабаванне захоўваць корпус на ўласнай пляцоўцы можа вырашыць выбар яшчэ да параўнання мілісекунд. Інструкцыя Weaviate па разгортванні апісвае кіраваны Weaviate Cloud і самастойнае размяшчэнне лакальна або ў выбраным воблаку; Docker Compose прапануецца для распрацоўкі і тэставання, Kubernetes — для маштабаванай вытворчай інсталяцыі. Гэта дазваляе камандзе асобна выбраць месца для даных і спосаб кіравання базай.

Самастойнае размяшчэнне перадае камандзе задачы абнаўленняў, рэзервовага капіравання, назірання за рэсурсамі і аднаўлення пасля збою. Кіраваны Pinecone здымае значную частку працы з інфраструктурай, але патрабуе ўлічыць сеткавы шлях, даступныя рэгіёны і ўмовы апрацоўкі даных для вашага праекта. Таму кошт дыска самастойнага кластара нельга проста паставіць побач з поўным рахункам за кіраваны сэрвіс: да дыска далучаюцца вылічэнні і праца людзей.

Шматарандны SaaS і рэдка актыўныя кліенты

У сэрвісе з асобным корпусам для кожнага кліента важна не толькі агульнае число вектараў, але і размеркаванне запытаў паміж кліентамі. Правілы шматаранднасці Weaviate прадугледжваюць асобны shard для кожнага арандатара і станы ACTIVE, INACTIVE ды OFFLOADED; неактыўны і выгружаны арандатар недаступны для запытаў да змены стану. Гэта стварае асобнае пытанне для прадукту: як хутка вярнуць рэдка актыўнага кліента да пошуку і хто кіруе гэтым пераходам.

У Pinecone падзел кліенцкіх даных праз namespaces патрабуе іншага разліку. Калі асноўны трафік прыпадае на некалькі актыўных кліентаў, сярэдняя затрымка можа выглядаць добра, хоць першы запыт астатніх займае больш часу. Дзве сістэмы з аднолькавым сумарным корпусам таму могуць даць розны карыстальніцкі досвед: частата зваротаў да кожнага раздзела ўплывае на вынік разам з памерам даных.

Калькуляцыя для малога RAG і шматаранднага сэрвісу

Ніжэй прыведзены ўмоўныя ўваходныя даныя, а не вынікі тэсту ці тарыфы пастаўшчыкоў. У абодвух сцэнарыях кожны вектар мае 768 кампанентаў у фармаце float32. Сыры аб’ём вектараў роўны колькасці фрагментаў, памножанай на 768 і на 4 байты; індэкс, тэкст, метаданыя, рэплікі і копіі павялічаць патрэбу ў сховішчы.

  • Невялікі RAG: 50 000 фрагментаў і 30 000 пошукавых запытаў за ўмоўны месяц. Сырыя вектары займаюць 153,6 МБ. Для Pinecone разліковы радок складаюць аплатныя адзінкі чытання на запыт, запісы і фактычнае захоўванне. Для самастойнага Weaviate дадайце рэсурсы вузла, дыска, копій і час адміністравання.
  • Шматарандны SaaS: 200 кліентаў, у кожнага па 50 000 фрагментаў і па 100 запытаў штодня на працягу ўмоўных 30 дзён. Разам гэта 10 млн фрагментаў, 600 000 запытаў за месяц і 30,72 ГБ сырых вектараў. Для Pinecone асобна ацаніце чытанні актыўных і рэдка запытваных namespaces; для Weaviate — рэсурсы shards, палітыку іх актыўнасці і кошт захоўвання.

Фіксаванай сумы ў валюце гэтыя ўваходныя даныя не даюць: яе вызначаюць фактычныя адзінкі выкарыстання, абраны план, інфраструктура і размяшчэнне. Да абодвух разлікаў трэба аднолькава далучыць атрыманне тэксту, дадатковы пошук, пераранжыраванне і перадачу даных, калі яны ўваходзяць у шлях запыту. Тады больш хуткая база не схавае даражэйшы ці павольнейшы этап RAG.

Калі на аднолькавых пытаннях абедзве базы даюць дастатковую якасць і прымальны час, рашэнне вызначаюць месца захоўвання і эксплуатацыйная мадэль. Pinecone Serverless лагічны пры перавазе кіраванага сэрвісу і зменлівай нагрузцы; Weaviate — калі патрэбныя самастойнае размяшчэнне або прамая настройка вагі BM25 у гібрыдным пошуку. Для шматаранднага прадукту да гэтага параўнання абавязкова належыць першы адказ рэдка актыўнага кліента.

Чытайце таксама:

Падзяліцца:

Падпішыцеся на нашу рассылку

Атрымлівайце свежыя навіны пра Web3, ШІ і крыптавалюты проста на пошту.

0