Адбор фрагментаў без запыту: k-means там, дзе RAG няма пра што спытаць
Без запыту карыстальніка RAG не можа выбраць кантэкст. Лічыце K колькасцю вынікаў, кластарызуйце эмбедынгі фрагментаў праз k-means і пакідайце цэнтральныя фрагменты з іх крыніцамі.
Дзеяныя дзеянаў нейрасетккак часам выклікаюцца без адпаведнага назву, спецыяльнай парадыгмы чы ўсёя літаратуры. У даным случае мова йдзе пра вельмі вялікі массів тэксту, калі няма запытання ад корыстніка, і задача заключаецца у выборы тых частак, якія трэба перэдаць модэлю, каб усі тэмы былі паведамлены, а кожная частка магла быць прыцягнутая да свага адпаведніка.
Гэта не генераванне з падкрэпленнем за дапамою пошуку, адколі нічога не шукаецца. Гэта не стысненне запытання і не стварэнне апісу. Научна спяльнота яшчо не дала яго чыткага апісу, а стандартныя інструменты не можу яго адрабатваць. У наступным частыні опісваецца сама проблема, паказваецца, чаму існуючыя методы не падходзяць, і працюе просты спосаб прынятнага рашэння, які адпавядае акадэмічным ідэям і заполняе празоры, які залішаюць тыя працы.
Калі няма чаго шукаць
Кожны, хто працаваў з LLM-амі за апошнія калькі гадоў, знае цыкл RAG: корыстувач задае запіт, запіт вбудовуецца, з базы вектараў вяртаюцца сэраглыя фрагменты, якія потым практычуюцца ў прампт, і генеруецца адпаведнае на іх адпаведзенне. Гэты патэрн ўнікальны, добра задокументаваны і падтрымваны кожным з вядомых фрэймворкаў. У яго таксама таямна прыпускаецца, што запіт існуе.
Часта яго няма. Фрэймворкі на кшталт LangChain і LlamaIndex арганізаваны навакол запітаў і ўзяцца інфармацыі, а большасць статэй пра стысненне кантэкста таксама выходзіць з запіта. Шукаючы спосабы выбору найкрашчых фрагментаў для LLM, кожны рэзультат прыпускае наявнасць запіта корыстувача, які керуе выборам.
Разглянем прыклад аплікацыі для навучэння. Учні завантажаюць матэрыялы курса: падручнікі, прэзентацыі, транскрыпціі відэа, рукапісныя нотаткі, іноды сотні сторанак. Яны нічога не шукаюць. По суты, яны кажуць: «У мяне ёсць маі курсы, створыце мне матэрыялы для навучэння». Сістэма тады должна стварыць структураваныя выходныя даныя, такія як тэставанні, карточкі для запам’ятовання, стыслае падсумаванне і карты паняў. Кожны выходны элемент павінен стосавацца разныя тэму і павінен адзначаць, звядзе ён бераецца, пры чым загальны об’ём выхадных дадзеных значна перавышае меры кантэкстнага вікна.
Тры трэбаванні адночасна
Існуючыя падходы кожны раз не выконваюць прынеймнейша адна з трох умов, якія ўзаўсёды накладаюцца ў гэтым варыянце вікорыстоўвання.
- Няма сігналу запіту. Нічога з боку корыстніка не керуе выборам, таму сістэма вынуждана сама выявляць, што ёсць важлівым, на адной ляве з дадзеннямі.
- Абсалютна тэматычная абаранасць. Рэзультатам являецца сэт кантэнтавых элементаў, якія разам пакрываюць весь спектр матэрыялу. Ігнараванне цэлага тэмы — грубая памылка; тэст з біялогіі, які не чырпае генетыку, ўжо не мае значэння.
- Возможнасць атрыбуцыі да ісходнага матэрыялу. Кожны кантэнтавы элемент павінен атрыбуавацца конкрэтнай часткі ісходнаг тэксту, напрыклад: «на адной з параграфаў 3, сторон 12–14 падручніка з біахіміі». У выхаванні гэта не ўзначальнае, таму што учніям патрэбна інфармацыя, куды чытаць далей.
Жадны існуючы метод не можа адразу задовольніць усе тры выклікі. У гэтым і крыўдза.
Што пропануе літэратура і дзе яна зупіняецца
Чаму адправка всего не ўспівае
Просты ўзьяце — запісаць усі матэрыялы ў вікно кантэксту. Калі мадэлі можа працаваць з 128 ка 200 тысяч токенав, хочацца думаць, што так і будзе. Але так не ўсё. Доследжэнне „Загубленыя ў серэдзіне“ паказала крывую карыстоўнасці у форме літэры U: мадэлі добра справляюцца з пачатком і канцом кантэксту, але сталяк працягваюць не разумець тое, што знаходзіцца ў серэдзіне. Точнасць зніжвалася на больш чым 30% калі ключавы контэнт пераходзіў з краёў у цэнтр, нават для модэляў, створаных для дужа дзяўялых кантэкстаў.
Такім чынам, нават калі ўсё пасходзіць, вялікія часткі матэрыялу застаюцца незаўважанымі. Квіз бы павінен абрацаваць першыя і апошнія роздзелы, а рэшту праігнораваць. Большы кантэкст не значыць лепшы кантэкст.
Кампрэсія запросаў адпавядае на іншы вопыт
Вядомае колькасць даследжэнняў спробуе скорачыць вхідныя даны, вычыняючы зайвыя токены пры ўраджэнні ў мадэль.
Selective Context выкарыстоўвае невялікую мовную мадэль, якая вычыляе самаінфармацыю лексычных елементаў — будзь то токены, фразы з іменнікамі чыя то рэчы — і адкладае тыя, якія несу мало інфармацыі. Яй не патрэбны запыты, што задовольняе першую абмежэнню. Аднак яна фільтруе ўжысткі тэкст, ствараючы стыснутую копію таго ж тэксту, а не выбір рэпрэзентатыўнага кантэнту па разным тэмам. Яна не можа гарантаваць повнасць каверажу, а зменены тэкст тыячае сваёй прымытай зв’язку з первымі фрагментамі, таму другая і трэцяя абмежэнні не выпалоўваюць.
LLMLingua і LLMLingua-2 расшыруюць гэю ідэю за дапамогою ітэратыўнага стыснення і класыфікатораў токенаў, якія былі навучаны, дасягаючы каля 20-кратнага стыснення. Яны маюць тую ж асновную абмежэнню: тэкст стыскаецца для машыны, а не організуецца для чалавека. Рэзультатам яе ёсць запыт, які мадэль можа распакаваць, а не структураваны набор кантэнту, які можна було бы праследаваць.
RECOMP трэнуе кампрэсары, якія можаюць ствараць апুстакты чыста выкарыстоўваючы даскладзеныя дакументы, як у фармаце выкарыстоўвання конкрэтных дадзеных, так і у фармаце стварэння апুстакту. Бн ўскладненейшы з усіх такіх алгорытмав, але яму прымусова патрэбны запіты, каб адначасова выбраць, што залішыць, таму ён не паспелвае да першай умовы.
Корача кажучы, метод спрасоўвання для кампрэсіі зменшае колькісць токэнаў. Ён не выбірае рэпрэзентатыўны ўмест, не гарантуе павноту пакрыцця тэмы і не зберагае первісную структуру дакумента.
Ранжыраванне графа толькі прадстаўляе, але не арганізуе
TextRank і LexRank ствараюць граф сэроднечы для абзацоў і прыкладзяюць алгорытм PageRank, каб знайсці найболей цэнтрычныя з іх, тыя, якія найкрашча апісваюць увесь дакумент. Ім не патрэбны запыткі, і працаваючы два дзесяткі гадоў, яны застаюцца стандартам для ненадзірванага стварэння кіявідзнак. Іх вядомая слабасць — рэданданс. Падобныя абзацы атрымуюць падобную цэнтрычнасць, таму найболей падобныя варыянты часта павтараюцца, толькі пад іншымі словамі. Кіявідзнак TextRank з біялагічнага падручніка можа міць тры абзацы пра рэплікацыю ДНК і жадных пра сынтэз пратэйнаў, проста таму, што рэплікацыя паводзіцца больш часта.
Гэта паграждае повнасцюю інформацыі, нават калі галоўныя тэмы зазвычай прыходзяць на першы план, і таму, што методы працуюць з абзацамі, можлівасць відстэплення інформацыі адпаведна меркавана.
Кластэруванне яе найбліжэй падходзіць
Сумарызаванне на адказе кластэрування, дзе K-means, HDBSCAN або падобныя методы працуюць з эмбедынгамі запаведзей, агрупавае сэроднія запаведзі ў тэматычныя кластэры і выбірае аднаго прэдставіцеля з кожнага. Гэта чыста пазбегае зайвасці: кожны кластэр дапамагае адной запаведзёй, а разныя кластэры раскрываюць разныя тэмы.
Сярод найболей эфектываўых няўяўных даследжэнняў у гэй катэгорыі, "Graphs in Clusters", спалучаецца K-means з TextRank. Спачатку адбываецца кластэруванне для павнага пакрыцця, а пасля — ранкіраванне ўнутрь кожнага кластэра за значымасцю. Гэты падход даганяе або перамагае чыстае графамі-асоўваныя і чыстае кластэрамі-асоўваныя методы на тэстах дугіх дакументаў, такіх як ArXiv і PubMed.
Гэта найбліжэйшы роднік, але ён разлічыцца за некалькома важлівымі аспектамі. Яго мета — адна плоская тэкстовая стыслая версія, тады калі тут мета — N структураваных выходных дадзенняў. Ён налагоджвае K за дапамою методу локця, тады калі тут K вылічваецца на адповіднасць запіту корыстувальніка. Ён працуе з рэчэннямі, тады калі тут патрэбна гранулярнасць фрагментаў, каб захаваць метададзеі вучоркі. Яго кластэры ўтвараюць невідмы проміжны крок, тады калі тут яны ёсць самымі вынікамі. Кроме таго, ён не мае панявы пра обавязковы адстэпленне да вучоркі.
Паралельны аналіз
У зв’язку з трымі абмежэннямі выступае певны шаблон. RAG захоўвае істочнікі, але патрабуе запіт і не можа гарантаваць повнасць пакрыцця. Selective Context і LLMLingua не патрабуюць запіта, але выкарыстоўваюць толькі структуру істочніка і не можуць забезпечыць повнасць пакрыцця. RECOMP патрабуе запіт. TextRank і LexRank працуюць без запіта, але даюць зайвыя рэзультаты і слабую можлівасць відстэйкавання. Кластэруванне і стварэнне апусцов задовольняе першыя два абмежэнні — не патрабуе запіта і гарантавае повнасць пакрыцця, але працюе на рэвэлі, што перарывае ланцоўку адразу да істочніка.
Не існуе стабілізаванага методу для выбору частак, які бы не патрабаваў запіта, гарантаваў повнасць пакрыцця і даваў можлівасць відстэйкавання да істочніка.
Перэўтварэнне кластэрування
Рашэнні выходзіць з перакручвання способу, якім зазвычай выкарыстоўваецца кластэруванне ў NLP. У науковай літэратурэ K ёсць гіперпарадаметр. Научнікі перабіраюць значэння K=5, K=10, K=50, аналізуюць спісакі балоў сілуэта або крывыя інерціі і выбіраюць „найкрашчае“ значэння. Кластэры ўсё гэта матэматычныя об’екты, якія служаюць алгорытму, і корыстувач ніколі іх не бачыць.
У такім падходзе K ёсць спецыфікацыяя продукту. Учнік, які просіць 10 аркушаў з запытаннямі, задае K=10. Пяць стораніц сумарнага апісу означае K=5, а трыдцаць карточак-флэшкардз — K=30. Кожны кластэр адпавядае адночы ўсьму выходу. Кластэр не ёсць проміжной абстракцыяй; ён сама готовая рэзультатная продукцыя. Існуе тэст на мітоз, таму што у семантычнам прасторы заваношанага кантэнту існуе кластэр фрагментаў, зв’язаных з мітозам.
Існуючыя методы выкарыстоўваюць кластэруванне для стыснення тэксту для машыны. Гэты метод выкарыстоўвае кластэруванне для арганізацыі кантэнту для чалавека.
У далейшым этапах гэта зміняе ўсё. Традыцыйнальна значэнне K настраіваецца матэматычна, і кластэры застаюцца непазорнымі, а пасля кластэрування ствараецца простая стыкатэчка. У даным случае значэнне K вылічаецца на адповіднасць запіту: кожны кластэр стае тым, што отрымывае корыстнік, а кожны кластэр запускае адзін вызов LLM, які дае адзін выход з пазначэннем яго крыніцы.
Пяцьэтапны працэс
1. Разбіўка на часткі. Дакументы дзелююцца за дапамогою стандартных інструментаў з LlamaIndex або LangChain, або за дапамогою спецыяльных правіл. Кожная частка зберагае свой тэкст, файл-крыніцы, номер стороніцы, пазіцыю і будзь-яе інша мета-інфармацыю. Тыповы розмер станавіць 500–1000 токенав, суседнія часткі перакрываюцца на 10–20%, што ўзмашчае компроміс між зберэнням цэліснасі ідэй і стварэнням дробных кластэраў. Часткі можна за бажаннем адзначыць стыкатэчкамі, ключоўымі словамі аб тагамі аб’ектаў, што дапамагае кластэруванню, але не ўсё ж такі ёсць неабходным.
2. Умяшчэнне. Кожны фрагмент стаець ўплотненым векторам. Мадэль залежыць ад выбранага апарату: Sentence-Transformers — гэта быстрая, бесплатная базовая альтэрнатыва, text-embedding-3-small ад OpenAI эфектыва працуе для розных мов, а Mistral Embed чыра Cohere Embed — адпраўныя варыянты. Галоўнае — гэта, што фрагменты з сэмантычнаю блізасцю даюць блізкія векторы, незалежна ад слоўніку.
3. K-means. Гэта ўсасны крок. K-means дзеліць прастор умяшчэння на роўна K груп, пры чым K становіць колькісць выходаў, якія хоча паўтарыць корыстувач:
from sklearn.cluster import KMeans
n_outputs = 10 # User wants 10 quiz sheets
kmeans = KMeans(n_clusters=n_outputs, random_state=42, n_init=10)
kmeans.fit(embeddings)
Ўсі трыя якосцы вылічваюцца безпосерэдна і адпавядаюць трым абмежэнням. Не патрэбны жадныя запыткі, адколькі метод K-means групавае за сэмплінасцю межу часткамі, а не за ўзаемнае адносаванне да званічных сігналаў. Абеспекавана тэматычная адражэннасць, адколькі кожная частка патрапляе роўна ў адну кластэру, а кожная тэма ў дадзенах ўособліваецца. Знікае рэданданс, адколькі часткі, якія выказваюць адно і тое ж, маюць сэмплінасцю, падобную да сябе, з’яўляюцца разам і ствараюць аднаго прэдставіцельскага элемента.
4. Выбіранне прэдставіцельскага элемента. Для кожнай кластэры выбіраецца частка, якая знаходзіцца найбліжэй да цэнтрапета і найкрашча выражае тэму кластэры:
import numpy as np
selected = []
for i in range(n_outputs):
cluster_indices = np.where(kmeans.labels_ == i)[0]
centroid = kmeans.cluster_centers_[i]
distances = np.linalg.norm(
embeddings[cluster_indices] - centroid, axis=1
)
best_local_idx = np.argmin(distances)
best_global_idx = cluster_indices[best_local_idx]
selected.append(chunks[best_global_idx]) # Full chunk with metadata
Выбраны часткі несу ўсе свае первісныя метаданы, таму нічога не трапляецца і ўсё можна цітаваць. Для болей насыценых рэзультатаў уместна выкарыстоўваць тры найбліжэйшыя часткі па кожнаму центрыду заместо адной; прынцып застаецца тым жа.
5. Генераванне. Выбраныя часткі кожнага кластэра направляюцца да LLM з запросам, прыстосаваным да тыпу выходу, а метаданы вучоркі таксама пераводзяцца, ўсёлякія модэль можа цітаваць. Кластэр 1 дае Квіз 1, цітуючы сторункі 12–14 першага PDF. Кластэр 2 дае Квіз 2, цітуючы транскрыпцію відэа за час 14:30. Гэты патэрн павтараецца да кластэра K.
Калі не паказана колькасць
Не кожны корыстувачы просіць дзесяць тэстаў; дзеякі проста хочуць «тэст» або «падсумак». Дзеяць тры альтэрнатыўныя методы. Метод бюджэту токенав дзеліць эфектыўны кантэкст модэлі на сярэжныя часткі па ўсерэднім розмеру: для модэлі з 16 к токенамі і частакамі по 800 токенав значэнне K становіць апошню 20. Метод з прабавамі разных значэнняў K выбірае тыя значэнні, пры якіх інерцыя больш не зменшаецца значным чынам. Таксама працюе прыблізныя правіла — адна кластэрная група на 5–10 сторанак адпаведнага тэксту. У практыцы метод бюджэту токенав ёсць найболей надзеяным, адтолькі ў ён безпасебна відбівае тое, што модэлі можа обрабацаваць.
Што гарантуе гэты метод
Гэта матэматычныя якосці методу K-means, а не эмпірычныя спазырэнні.
- Абаранас. Кожны пункт прызначаецца да кластэру, таму жадны фрагмент не застаецца без асоціяціі. Калі тэма існуе, яна належыць да кластэру з прэдставіцэлем. На адміністрацыю, метод Top-K можа вернуць K фрагментаў пра адну популярную тэму і зовсама працізнаць іншыя.
- Без зайвасці. Падобныя фрагменты групуюцца разам, і кожная група мае толькі аднаго прэдставіцеля. Два фрагменты, якія гавораць пра тое ж самае, але іншымі словамі, дзелюцца кластэром, і застаецца толькі адні.
- Рэгулюемая дробнасць. Нізкае значэнне K дае шырокія кластэры для большых тэмаў, а высокае — вузкіяя для спецыфічных паняцэў, пры чым корыстнік можа кераваць гэтым праз свой запіт.
- Зберэнне выхадных дадзенняў. Работа з фрагментамі, а не з токэнамі чы рэчамі, дазволяе зберагчы цэлы ланцуг метададзенняў для кожнага выбранага фрагмента. Компрэсія на рэвэле токэнаў за сваёю структурой не можа гэтага даць.
Дзе ён не падходзіць
Сферычныя прыпускі. Алгорытм K-means чакае прыблізна круглыя кластэры, а прасторы эмбедынгаў не завжды такія апранутыя. Тэма з сложным, неканвексным формам можа быць раздзелена між кластэрамі. HDBSCAN або мадэлі з гаусіянскімі сумешчаннямі моглі бы дапамогчы, хоця яны не гарантуюць точна K кластэраў.
Тыповы, але не павінны быць інформатыўнымі. Фрагмент, які знаходзіцца найбліжэй к цэнтрыду, ёсць найбольш тыповым. Выкананне алгорытма TextRank унутры кожнага кластэра, як гэта робіць метод «Графы ў кластэрах», дало бы болей дзеярожны выбор і ўсьміляе ў парадку павышэння якосці.
Маленькі тэмы становяцца скушанымі. Калі матэрыял на 95% складаецца з біялогіі, а на 5% — з хіміі, хімія, верагатэльна, будзе атрымліваць адзін кластэр, тады як біялогія — K-1. Кластэр па хіміі існуе, але ён прыгнічваецца прыбліжна прыроўнавана. Узважаны або стратыфікованы падход мог бы гэта вырашыць.
Якасць частак вялікага значэння. Калі часткаванне дзеліць концэпцію на две частыні або сумешчае некалякуюцыя тэмы, кластэруванне успадковвае гэтыя наследкі. Хораша схема часткавання, з семантычным дзеленнем, перакрыццем і адгэнераваннем метадаў, не ёсць неабяжнаю.
Порэванне за адну праходзь
RAG ўскораны і зберагае выкладнікі, але патрабуе запіт і можа вернуць K частак па аднай тэме. Selective Context і LLMLingua ўскораныя і не патрабуюць запітоў, пры тым яны адмовляюцца ад структуры выкладнікаў і не можуць гарантаваць повнай актуальнасці. RECOMP моцны, але залежыць ад запітаў. TextRank і LexRank ўскораныя і не патрабуюць запітоў, пры тым актуальнасць ўскладнена праз перадакладанне, а відстэйкаванне заканчываецца на рэчэнцы. Graphs in Clusters не патрабуе запітоў і асабліва добра пакрывае тэму, але працюе толькі з рэчэнцамі і адмовляецца ад метадаў выкладнікаў. Сумарызацыя за дапамогою MapReduce таксама не патрабуе запітоў, пры тым актуальнасць ўскладнена, лінкі да выкладнікаў знікаюць падчас процэса сумарызацыі, і ёй трэба час, таму што ёй патрэбны калькі разоў працаваць з LLM.
Апрантакаванне чакункамі за методам K-means, якое опісана тут, — гэта ўзэйн варыянт, які працюе без запытку, гарантуе тэматычнае паведамленне за сваёй структурой, падтрымвае полную вядомасць на рэвэлі чакункамі, завершаецца за менш чым секунду, і не трэбуе ні настроўваных модэляў, ні базы дадзеных вектараў.
Назва проблемы
Тое, што робіць гэта складным, — не так сільна тэхнічная глыбіна, як адсутнасць назвы. Калі шукаць RAG, паказваецца тыячы рэзультатаў. Калі шукаць стысненне запытак, выйдае LLMLingua. Калі шукаць экстрактыўнае стысненне, паказваюцца методы TextRank, LexRank і методы, апарантаваныя на BERT. Калі шукаць, як выбраць найлепшыя чакункі з вялікаг корпусу, без запытку, каб максымізаваць тэматычнае паведамленне і падтрымваць вядомасць пра аднаго крыніцы, то практычна нічога не выйдае.
Падчыртліва назва — гэта семантычныя складчыцтва без запыткаў. Гэта не адзыскванне, таму што запыткаў няма. Гэта не стыканне, таму што на гэтым этапе не ствараецца новы тэкст. Гэта не складчыцтва падказак, таму што з існуючага тэкста не выкарыстоўваюцца жадныя токены. Гэта выбір з гарантаваным павнамасштабным пакрыццем: выбіранне найменшага набора фрагментаў, якія прэдставляюць найшырэйшы дзеянні матэрыялу, пры чым застаецца звязак з дакументамі.
Проблема выступае там, дзе сістэма ператварае большы змест, апрануты корыстнікам, у структураваныя выходы без явнага намеру адзысквання. Прыкладамі ўсьміхаюцца навучальныя матэрыялы з курсавага зместу, атласы з вялікіх калекцыяў дакументаў, стыканні з гадзіннаўых транскрыпцый, апісі з вялікіх запросаў пра зміны, а таксама прававыя аналізы, дзе павнамасштабнае пакрыцце клазаў мае большое значэнне, чым адпаведзь на адну запытку.
Падчынны K-means ёсць аднам з рашэнняў, можа, нават самым простым. Гібрыдныя падходы, якія спалююць кластэруванне з ранжыраваннем на адной графічнай базе, ацэнкай ўплотнення інфармацыі чымусь у родзе лёгкага LLM для выявлення тэм, могу дастаць лепшыя рэзультаты, і гэта направленне застаецца вельмі перспектывным.
Усё гэта ў кодзе
Полны працэс выбору пасажыць у менш чым 50 лініях:
from sentence_transformers import SentenceTransformer
from sklearn.cluster import KMeans
import numpy as np
def select_representative_chunks(chunks, n_outputs, model_name='all-MiniLM-L6-v2'):
"""
Select the most representative chunks from a large corpus
using K-means clustering. One cluster = one output.
Args:
chunks: list of dicts with 'text', 'source', 'page', etc.
n_outputs: number of outputs the user wants (= K)
model_name: embedding model to use
Returns:
list of selected chunks with cluster metadata
"""
# Embed
model = SentenceTransformer(model_name)
embeddings = model.encode([c['text'] for c in chunks], show_progress_bar=True)
# Cluster
kmeans = KMeans(n_clusters=n_outputs, random_state=42, n_init=10)
kmeans.fit(embeddings)
# Select representatives
selected = []
for i in range(n_outputs):
cluster_indices = np.where(kmeans.labels_ == i)[0]
centroid = kmeans.cluster_centers_[i]
distances = np.linalg.norm(embeddings[cluster_indices] - centroid, axis=1)
best_local_idx = np.argmin(distances)
best_global_idx = cluster_indices[best_local_idx]
selected.append({
'cluster': i,
'chunk': chunks[best_global_idx],
'distance_to_centroid': float(distances[best_local_idx]),
'cluster_size': len(cluster_indices),
})
return selected
У кроку выбору няма базы дадзейнаў вектараў, няма працэсу падбору дадзеных, няма настроеных модэляў і няма вызоў LLM. Для гэтага достатнія эмбеддынгі, кластэрызацыя і выбір цэнтрапета.
Дзе гэта было выканана на практыцы
Гэты працэс быў створаны і працаваў унутрь аплікацыі для навучэння, якая генеруе інтэрактывныя навучальныя матэрыялы — такія як тэсты, карточкі запамятовання, стыкаты і карты паняв — на адной з усіх матэрыялаў, якія заваносіць студэнт: конспекты лекцый, падручнікі, транскрыпціі відэа і слайды. У яе таксама ёсць інструменты, прыстосаваныя для учняў з дыслексіяй, СДВГ або іншымі канцэптуальнымі труднасцямі, а таксама элементы гэйміфікацыі. Праект яшчэ находзіцца на стадыі актыўных доследжэнняў і разработак; наразе ён доступны на французскай мове, а версія на англійскай плануецца.
У такій супавесці шар K-means адмініструе выбір контэнту. Кластэруванне 500 фрагментаў займае менш чым секунду, ён добра масштабуецца, і тэматычны паверхневы аналіз застаецца адносова стабільным у дужа разных джэрэлах — ад насыцаных падручнікаў з біялогіі да розрозненых запісаў лекцый.
Чаму ідэя спецыяльна простая
Выбір рэпрэзентатыўных фрагментаў з вялікаг корпусу, без запытку, з тэматычным паверхневым аналізам і з можлівасцю відстэплення джэрэла — гэта болей распашчастая патрэба, чым паказвае літэратура. Кожны, хто стварае інструменты LLM для выхавання, гэнеравання атласаў, аналізу збораў чы юрыдычнага адгляду, верагодна, сталкнуўся з якой-небудзь версіяй гэтага падходу.
Падход намеравана просты. K-means існуе ўжо дзесяткі гадоў, а сэнтэнцыйныя эмбедынгі ўжо ёсць стандартнымі інструментамі. Асновны внесак крыўціцца ў саму структуру: выкорыстоўваецца намер карыстальніка як параметр K, кожны кластэр спрэтвараецца у готовы рэзультат, а ланцоўка фрагмент-джэрэла застаецца недыскрэтаванай на всім працэсе апрацоўкі.
Ўсімае застаецца прынцыпы для паліцы. Кластэруванне магчымаеся саедзіць з ранжыраваннем на адварце графаў, ацэнкай ўплотнення інфармацыі чыста лёгкімі запускамі LLM для выяўлення тэм. Выбіранне цэнтрапета магчымаеся заменіць на ўсё бол тонкія методы, такія як ранжыраванне ўнутар кластэраў, выбіранне на адварце разнаобразнасці чыста малым запускам LLM для выбірання найінформатыўнейшага фрагмента. Цяперашняя ідэя прызначаная для перэймання, адаптавання і паліцы.
Супаўзвязаныя матэрыялы
- Reranking у RAG: Cross-Encoders проты суддзяў LLM і іх латэнцыя — Як дваццаты этап ранжыравання палічыць параду кандыдатаў у RAG, паўтарныя адлікі cross-encodersаў з суддзямі LLM, выклікі, якія створае латэнцыя, спосабы абвалення і як іх ацэніць.
- Прыем дадзейна RAG для банкаў: PDF-файлы, OCR, табліцы і канектары — Як прыемляць дакументы банкаў для RAG: класыфікацыя PDF-файлов, запуск OCR з пазнакамі перагляду, зберэнне структуры Word, обработка табліц і адобразаў, а таксама стварэнне надзеяных канектараў.