GraphRAG супраць вектарнага RAG: чаму вектарны пошук не спраўляецца з маштабам
Вектарны RAG пакутуе ад ізаляцыі фрагментаў, разважанняў паміж дакументамі і маштабу. Як GraphRAG будуе супольнасці і зводкі, каб гэта выправіць, і калі што выбіраць.
Крыніцы: GraphRAG: Why Vector Search Fails at Scale (And How Knowledge Graphs Fix It)
Метод генеравання з дапамогай падзеяў дазваляе модэлю мовы працаваць з дадзеннямі, на якіх ён ніколі не трэнаваўся. Класычная версія дзеліць дакументы на часткі, зберагчы ўсе іх вектарныя прэдставленні ў базе дадзенняў, а пад час адпаведзення на запыт выбірае тыя часткі, якія наіболей супадаюць з запытам, і дадае іх у запрошэнне для генеравання. Для простых запытаў у невялікай колькасці дакументаў такі падход добра працуе. Але калі йдзе пра складныя корпоратыўныя дадзенні, ён пачынае прадставляць проблемы.
Проблема не ў самым кроку падбору дадзенняў і не ў кроку генеравання. Яна вынікае з таго, як дадзенні прэдставляюцца пасля таго, як яны ператвараюцца на вектары.
Дзе падход RAG з простымі вектарамі зламваецца
Часткі дакументаў стаюць «островамі»
Калі дакумент разлучаны на часткі, кожная з іх знаходзіцца сама ў вектарнам прасторэ. Яна адсутня ад параграфаў, якія яе абграўляюць, а таксама ад супаўзвязаных матэрыялаў у іншых дакументах, і всяя первачная структура знікае. Пад час выкарыстоўвання інформацыі застаецца толькі важлівы суседзяючы кантэкст, і большая мовная машына можа спыліць частковую правду за всю правду. Разлучэнне гэтых логічных звязоў змушвае мадэль ацэніць тэкст без урахоўвання сэрэгі, з якой я ўзьята.
Няма логічнага аналізу між дакументамі
Дзеяныя запытанні нельга адпаведзець на адной-ўсёй паслявай. Падумайце пра запытанне „Якія тэндэнцыі і тэмы праявляюцца ў всіх нашых квартальных фінансовых адчыненнях?“ або „Чы можа працавальнік адзыскваць вярненне віткоў на Wi-Fi, якія былі паднятыя раней чым ён прыўёў на працу?“ Компанія Microsoft Research называе такія запытанні запытаннямі стварэння сэнсу. Яны ёсць шырокімі і для ўсунення ў іх трэбуецца сістэма, якая б аналізавала, спаўядала і падсумаввала зв’язкі ў межах набора дадзеных, а не выявляла вялікі факт, які ужо існуе.
Пошук на адрэсе вектараў базуецца на локальных сэмантычных падабенствах: на фрагментах, вектары якіх знаходзяцца найбліжэй да вектара запіту. Гэта чырвоная карточка для запытанняў, якія стосуюцца конкрэтнага рэгіяну, але не працюе, калі адказ распадзіцца між кількама фрагментаў і дакументамі. Падазроўцам, што адказ трэба з’яедынаць факт А з аднаго дакумента з фактам Б з другога і фактам C з трэціга. Кожны фрагмент запрашаецца незалежна, на адной падставе таго, насколькі ён падабен да запіту, таму факт, які знаходзіцца посерэдзіне і мае нізкі рэйтынг падабенства, застаецца без увагі, хоць адказ залежыць ад яго. Такім чынам рэшэнне запытання руйнуецца.
Точнасць падыходзіць, калі даныя зрастаюць
Кожная сістэма RAG, якая пераходзіць з прататыпа ў прыменне, расшыроўвае свой корпус дакументаў, а гэтае пашырэнне адкрывае недагоднасць: тэчнасць выкарыстоўвання інформацыі пачынае падыходзіць. Большыя колькіцтва дакументаў расшыроўваюць спектр тэм, якія можа ахватыць сістэма, але ў той жытак зменшуюць ўжо такі нізькі рэвельанс. Калі кантэкстны індэкс пераходзіць з сотняў фрагментаў да тыяў, частка фрагментаў, якія маюць значэнне для конкрэтнага запіту, продовжвае зменшвацца. Актуальныя фрагменты заглушаюцца суседнімі, якія семантычна схожыя, але ў кантэксце неякісныя. Большыя колькіцтва дакументаў означаюць шырэйшы спектр ахвату, але ў той жытак і ніжышы рэвельанс пад час пошуку.
GraphRAG як рашэння
У 2024 году Microsoft Research прэдставіл GraphRAG, каб усунуць гэтыя слабасці. У працы замест раз’еднаных вектараў ён зберагае структураваныя зв’язкі, якія ўкладзеныя ў тэкст, пераходзячы да графа знанняў. Граф знанняў прэдставляе рэальныя факты як вузлы — аб’екты, такія як людзі, месцы чы ўявленні — якія з’ѐднаны рэбрамі, якія паказваюць спосаб іх адносін. Гэтае падстава дазволяе сістэме аналізаваць цэлы набор дадзенаў, а не толькі вядомыя елементы.
Основная ідэя
GraphRAG ператварае розрозненыя дакументы на суцэльную карту ідэй і стварае апуск дадзенаў, пры чым пераходзіць ад шырокіх тэмаў да дробных дэталяў. Паколькі гэтыя зв’язкі ствараюцца загадзя, большая мовная машына мае можлівасць паглядзець на весь корпус дадзенаў зверху і атрымваць дакладны кантэкст. Існуе чатыры этапы:
- Стварыце граф. LLM стварае граф знанняў, у якому вузлы ўтвараюць ключовыя ентытэты корпуса, а рэшткі — адносы межы ўсімі імі.
- Знаходзьце спільнатыя групы. Граф дзеліцца на вкладзеныя кластэры, ад малых локальных групаў да тэм, якія распрастраняюцца на весь набор дадзеных. Спільнатая група — гэта сукупнасць вузлоў, якія тычуцца адзін з адным жорстка, а з рэшткай сеткі — толькі слабка.
- Ствараце апусковыя статызы. LLM пішае статызу для кожной спільнатай групы, якая абгрунтавае ўсія ўсёродзімыя ентытэты, факты і адносы. Статызы ствараюцца па іерархіі: групы вышэйшага рангу аб’ёмлююць статызы груп ніжэйшага рангу, і такім чынам ствараецца структураваны агульны відглед усяго набора дадзеных.
Прабэцэс працы дакладна
Як і традыцыйны RAG, GraphRAG мае два этапы: індэксаванне і запытанне.
Індэксаванне, якое выконваецца афлайн
Дакументы на часткі. Процэс пачынаецца з раздзелення дакументаў на часткі, зазвычай па 600 токэнаў, што ўзначае розмер, выбраны для максымізацыі колькасці выявленых аб’ектаў.
Часткі на аб’екты і зв’язкі. LLM чытае кожную частку по чарге і выдлівае важлівыя аб’екты і зв’язкі межы ямі, а таксама короткія апісанні кожнага з іх. Ён таксама можа выдліваць твэрджэнні, якія ўсьматрэлівыя факты пра аб’екты, такія як даты, падзеі і взаімадзеянні з іншымі аб’ектамі.
У граф знаёмасцей. Усе выкарыстоўваны даны аб’еднваюцца. Энтытэты стаюць вузламі, а адносы — рэшткамі. Чырадзіць зайвасць, варыянты аднаго і таго ж энтытэта з’едынаюцца, а ўсі ўпісы пра іх сконцентруюцца ў аднай ентры. Паўтаральныя згадкі пра аднос падвышаюць яго вагу, чым парадкаваецца сільнейшыя зв’язкі, а тверджэнні прыкладзаюцца да адпаведных вузлаў і рэштак.
З графа да спільнатэкаў. Алгорытм выяўлення іерархічных спільнатэкаў, зазвычай Leiden, дзельніць сетка на кластэры з блізка з’яўленых вузлаў. Рэзультатам являецца багатаслойная іерархія: на найніжшым слое знаходзяцца маленькія, дэталізаваныя кластэры, а на найвышшым — масштабныя групаванні на всім тэрыторыі.
Адміністрацыя спільнатак да статысаў. Працуючы ад найменшых, найболей дакладных кластэраў да вышэй, LLM піша статыс для кожнага рэвэля іерархіі. Гэта дапамагае адпавядаць на пытанні, якія стосуюцца большага кантэксту, і дазволяе корыстувачам пераходзіць ад шырокіх тэмаў да дробных дэталяў. Чырабячы ліміты кантэксту, статысы найніжэйшага рэвэля ствараюцца па прынцыпу ранжыравання неапранутых дадзеных графа па значэнні, пры чым у запрошэнні включаюцца наіболей сувязаныя ентытэты, адносіны і тверджэнні, пакуль не заканчываецца прастор. Статысы вышэйшага рэвэля ствараюцца безпасова з статысаў, якія знаходзяцца пад імі, тэперыце — гэта сумарак сумаракаў.
Запытанні пад час выканання
Стандартны РАГ адаптуюць кожны запіт за дапамою аднаковага способу вычыслення сэроднечнасці. GraphRAG адправляе запіт па аднам з двух шляхоў залежна ад намеру. Глобальны пошук адпрацоўвае шырокія, стосаваныя да всіх дадзеных запіты. Локальны пошук адпрацоўвае конкрэтныя запіты, спрамованыя на аддзелы, якім трэба калькуляцыя па кількох етапах. Для компаніі з правіламі вярнення коштаў глобальны запіт можа стосавацца галоўных рызыкаў са адпаведнасцю правілам і правілаў затверджэння ў всіх програмах вярнення коштаў. Локальны запіт можа стосавацца таго, чы можа працавнік заявіць пра вітраты на інтэрнэт, якія былі паднятыя ранейш, чым ён офіцыйна прыўязаны да компаніі.
Глобальныя запіты. У замест на сканаванне мільйонаў необработаных фрагментаў, сістэма адправляе запыты да заранее вычысленых статыстычных падсумакаў за дапамою праграмы map-reduce.
- Выберыце рэвэрсію, ад шырокіх супер-спільнотаў да дробных локальных кластэраў (рэвэрсія 0, 1, 2 і так далей), залежна ад таго, які масштаб трэба для адпаведнай адпаведзі.
- Карта: запытанне адправляецца адночасна да кожнага падзеяванняя спялочы на тым рэвэлі. LLM ацэнівае кожна з іх незалежна і стварае проміжны адказ спялочы з рэгламентам рэлевантнасці ад 0 да 100.
- Фільтрацыя і ранжыраванне: адкідаюцца адказы з нізкай рэлевантнасцю, а рэшты арранжуецца па прыорытэтам.
- Скорачэнне: найболей прыорытэтныя выводы перадаюцца LLM у адзінам вікна кантэксту, які сінтэзуе іх у цэлысны, без павтарэння адказ з цітатамі.
Локальныя запытанні. GraphRAG не адкідае вектары. Ён зменяе ўпыткі ў іх выкарыстоўванні. У локальным пошуку вектары выключна выявляюць анкерныя энтытэты ў графе. Калі гэтыя точкі входу знаходзяцца, пошук за вектарамі завершаецца, і прыходзіць чэрга адвярцанню графа. Як прыямэй умове, неабходна стварыць інкапсуляціі для апісаў энтытэтаў і зберагчы іх у базе дадзэнняя вектараў.
Гэта стварае справжнюю разліку. У традыцыянскім RAG основным спосабам для запошуку необработаных фрагментаў тэксту ёст калярнай схожасці вектараў. У GraphRAG жа выконваецца цяленаўкаваны запошук, які прыяносіць запыт да адпаведных аб’ектаў, якія служаць ліша входамі ў граф. Залежна ад налаштавання, локальны запошук таксама можа включаць і запошук тэкстовых елементаў чы асэрвацый як пунктавых точак.
- Выконайце запошук за калярной схожасцю вектараў проты эмбедынгаў апісанняў аб’ектаў, каб знайсці пунктавыя точкі.
- Прыяносіце гэтыя аб’екты да ўсіх іх джэрэлаў — дакументаў і фрагментаў тэксту, праходзіце па графе, каб збіраць суседнія вузлы і апісанні рэгуляў, атрымайце дадатковыя даны, такія як асэрвацыі, URL-адрэсы і даты, а таксама падсумкі локальных спільнатак, да якіх належаць аб’екты, што даўае дадатковы кантэкст.
- Некалькі модэляў большых языковых моцэй павінны рангаваць кожнае з гэтых прыяносенняў за ступенем адпаведнасці да запыту, абмежыўшыся тымі, якія менш рэлевантныя.
- Дадзіце рангаваныя кантэксты ў запіт і створыце адпаведны адказ.
Калі выбіраць
Ніякі з падходаў не ўсюды не ўсё лепшы. Яны падходзяць для разных запытанняў і дадзеных. Рашэнне залежыць ад таго, насколькі складныя дадзеныя, якія запытанні трэба адпаведзаць і скількі можна выдзяліць на гэта.
Выберыце vector RAG, калі хочаце шырокага і недорогага пошуку аддзельных фактов у самастойных дакументах, дзе адказ знаходзіцца ў аднам параграфе чы сторанцы. Выберыце GraphRAG, калі вашы джэрэлы ўзаемна з’яўлены і запытанні вымагаюць сінтэзу з разных дакументаў, аналізу тэндэнцый у всіх дадзеных чы выявлення зв’язкаў між аб’ектамі ў такіх сферах, як права, науковыя даследжэнні і політыка.
Практычны спосаб аб’яснення: vector RAG шукае «голку» ў «стогу сена», тады як GraphRAG спачатку картавае весь «стог сена», а толькі пасля таго здзійснюе пошук.
Vector RAG змяніў спосаб працы LLM-аў з знаннямі з зовнішніх джэраў, але для масштабавання на складныя корпоратыўныя даны трэба больш, чым толькі семантычна схожыя пошукі. Арганізаваўшы тэкст у граф знанняў з іерархічнымі підсумкамі груп, GraphRAG споўязвае цялеспрамованы пошук з аналізам усіх дадзеных.
Калі хочаце прачытаць больш, асловныя статты знаходзяцца за адрэсам https://arxiv.org/abs/2404.16130, а інструкцыі з дызайну локальнага пошуку — за адрэсам https://microsoft.github.io/graphrag/query/local_search/.