Практычныя прытамулкі: Масштабаванне інфраструктуры RAG: Парадокс з простага пошуку
Практычныя прытамулкі: Масштабаванне інфраструктуры RAG: Парадокс з простага пошуку да контрактав, пераканальнікаў і слотаў для коду для команд, якія викорыстоўваюць гэты патэрн.
У гэтым карыце парадоксальная дорага ад сыр'ёчных матэрыялаў да рабочай системы для: Расшырэнне інфраструктуры RAG: Парадоксальная дорага ад простага пошуку да DiskANN. Акцэнт ставіцца на практычныя крокі, чыстае перакананне і код, які можна проста дадаць у репазітарый без неабясненых спадчыных парадоксальная дорагаў. У стадіі агляду неабходна практычна вызначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння прычыму перад зменай коду. Аператары должны магчымае перадзначыць крок з вядомай точкі контролю без неабясненых скрытых станаў. Практычна задокументавайце як паспяшную, так і восстанаўнічную дорагу. Практычна практычна перадзначыць спробы, людскія кантролі і обработку некоректных практычна ў складзе продукту, а не як пасляэтапная доработка.
Цель:
Калі працюеце над стадзіяй «Цэлі», спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць пад частыя неудачы. Такі список пераканаець у тым, што пазнейшыя змены коду будуць чыстымі. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, неудача должна вказваць на адну адпаведную адпаведальнасць, а не на заплутаны ланцужок задач. Перад налаштаваннем запитоў пераканайце рэгулярнасць адтварання інформацыі на фіксаванай сэтке запытаў. Частае змена запытаў рэдка калі-небудзь вылечвае слабую спроможнасць адтварання дакументаў.
Апішэнне
Калі працюеце на стадыі адзначэнняя, спачатку запісайце контракт: неабходныя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Спрэчвайце гэтую стадыю як контракт межа данымі і перакананымі выходамі. Дайце назвы элементам, адзначыце критэрыі успеху і не падазроўваце частковае завершэння без паведамлення. Змяроўваце рэкалі на фіксаванай сэтке запытаў прычым падлашоўвання запытанняў. Частае змены запытанняў рэдка калі выправляюць слабую эфектыўнасць адзначэнняя.
Чаму трэба гэта робіць?
Калі працуеце над стадіяй «Чаму трэба?», спачатку запісайце умовы працы: неабяжлівыя данні, сигнал успеху і тое, што выходзіць пад частковым невясненням. Такі список дапамагае заліцвачыць пазнейшыя змены коду. Запісвайце час выканання і кост токеноў або запытаў праза функцыйнае рэзультат. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя среды. Замерьце рэткість адказаў на фіксаваны набор запытаў прычым рэгулюванні прапазаў. Частыя змены прапазаў рэдка калі вядуць да павышэння якосці адказаў. Калі працуеце над стадіяй «Чаму трэба?», спачатку запісайце умовы працы: неабяжлівыя данні, сигнал успеху і тое, што выходзіць пад частковым невясненням. Такі список дапамагае заліцвачыць пазнейшыя змены коду. Дакументавайце як «вялікі успех», так і шляхы вяснавання проблем. Перапрыбуткі, людзкія контралі і обработка некоректных адказаў ёсць часткай продукту, а не пазнейшым дапрацоўкам.
Тэхнічная структура
Этап Tech Stack работае наяўней, калі яго спрыяваць як мерыемую плошчу. Зафіксавайце адны ідеальны прыклад, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісьць крока не выходзіць, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Раздзеліце правілы часткавання інфармацыі ад правілаў яе выявлення. Змена ў одных не павінна прымусваць перапісванне іншых, калі змянююцца паказнікі якосці.
1. Пошук без фільтраў / Пошук сіловым спосабам
Этап агрэсіўнага пошуку 1 Flat Search працюе наякша, калі яго спрыяваць як мерыемую паверхню. Зафіксавайце адна ідеальная транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Спрыяйце гэтам этапу як кантракту межа вхіднымі даннымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаць критэрыя успеху і адмовіцеся ад тыхнаго частковага завершэння без паведамлення. Раздзеліце правілы часткавага абрабатвання данных і правілы ўзяць іх. Змена адных не павінна прымусваць перапісванне іншых, калі змянююцца паказнікі якосці.
Адзынакаванне:
Этап адміністрацыі працюе наяўней, калі яго спрыяваць як мерыемую плошчу. Зберагучы адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Запісвайце часы выканання і косты токеноў або запытак па боку ад функцыйнальных рэзультатаў. Візуабельнасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмовай среды ў спяльныя сераўры. Раздзеляйце політыку часткавага оброблэння дадзеных і політыку ўзяць дадзеныя. Змена адной з іх не павінна вымагаць перапісвы другой, калі зменяюцца паказнікі якосці. Этап адміністрацыі працюе наяўней, калі яго спрыяваць як мерыемую плошчу. Зберагучы адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Дакументавайце як успішны, так і вярнэнчы паты. Перапрыбуткі, людзкія контрольныя пункты і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
2. Метод абшукаў Inverted File Flat (IVFFlat)
Для стадіі 2 Inverted File Flat неабяжна практыка адзначыць вхідныя данні, адпаведальнага за крок і крэтырыя выходу пры перадзеіснавленні коду. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не падозрываючы прыхованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшае, прычына неудачы павінна вказываць на адзін конкрэтны аспект, а не на заплутаны ланцюг задач. Наводзіце тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх цитатаў аператары не зможаць разлічыць галюцинацію ад працягу праз прычыны, зв’язаныя з індэксаванням.
Query → closest centroids → search selected clusters → Top-K
Ацэнка:
Для стадіі адміністрацыі неабходна ўскладненне параметраў вхідных дадзенаў, апыліцэнта, які керуе цым крокам, а таксама крэатарных крэтарыяў пры змены коду. Аператары должны магчымае запускіць гэты крок з вядомага пункта контролю, не прыпускаючы нявідомага стану. Спрыятлівае ставленне да гэтай стадіі як да кантракту межа вхіднымі дадзеннямі і перакананымі выходнымі рэзультатамі. Назваце элементы, ускладненне перакананняя успеху і адмовіцеся ад тыхнай частковай рэалізацыі без паведамлення. Указаце часткі, якія фактычна сталі падставай для адпаведнага адказу. Без такіх цытатаў аператары не зможаць разлічыць галюцинацыю ад прасоў у індэксаванні.
3. HNSW
Для 3-й стадіі HNSW неабяжна ўзначыць вхідныя даны, адпаведальнага за этап і крэтыры завершэння пры перадзеі коду. Аперацыйныя працавнікі должны магчыма ўвайсці этап з вядомага пункта контролю без неабяжнай адгадвання схованага стану. Запісваць час выконання і кост токеноў або запытаў разам з функцыйнальнымі рэзултатамі. Відразы костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмавай версіі ў спяльныя сераўры. Указваць тые часткі тексту, якія фактычна ляглі в основу адпаведнай адпаведзі. Без цых цытатаў аперацыйныя працавнікі не можуць разлічыць галюцинацію ад прасоў у індэксаванні. Для 3-й стадіі HNSW неабяжна ўзначыць вхідныя даны, адпаведальнага за этап і крэтыры завершэння пры перадзеі коду. Аперацыйныя працавнікі должны магчыма ўвайсці этап з вядомага пункта контролю без неабяжнай адгадвання схованага стану. Аддзеіснаваць дакументацыю як для успешнага, так і для варыянтаў восстанавлення працэсу. Перапрыбуткі, людзкія перакрыцця і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Адзяканне:
Калі працюеце на стадыі адзначэння, спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць па частым неяксамоцэ. Такі список пераканае ў тым, што пазнейшыя змены коду будуць чыстымі. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, неяксамоцэ должна паказваць на адну адпаведальнасць, а не на заплутаны ланцужок задач. Перад налаштаваннем запитоў пераканайце рэкалі на фіксаваным наборы пытанняў. Частае змена запитоў рэдка калі-небудзь вылечвае слабую систему адзначэння.
CREATE INDEX wikipedia_embeddings_hnsw_idx
ON wikipedia_embeddings
USING hnsw (emb vector_cosine_ops)
WITH (
m = 16,
ef_construction = 64
);
Задача па аднавленню даных
Калі працюеце над стадзіяй вызову апдэта даных, спачатку запісайце кантракт: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконтроўкі дапамагае заліцьварыць пазнейшыя змены ў кодзе. Спрыймайце гэтую стадзію як кантракт межа даннэмі і перакананымі выходамі. Дайце назву артыфактам, задаць правілы пераканання успеху і адмовіцеся ад тыхоўскага частковага завершэння. Замерайце рівень запам’ятовання на фіксаванай сэтцы пытанняў прычым перад налаштаваннем запрошэнняў. Частае зміненне запрошэнняў рэдка калі вялікі эфект на слабую систему аднаходжэння інформацыі.
4. BM25 + Пошук вектараў (Гібрыдны спосаб аднаходжэння)
Калі працуеце над 4 стадзямі пошуку вектараў BM25, спачатку запісайце умовы викорыстоўвання: неабходныя данні, сигнал успеху і тое, што выходзіць па частковай нявыполненасці. Такі список дапамагае залічыцца з пазнейшымі змянамі ў кодзе. Запісвайце час выконання і вартасьць токеноў або запытанняя разам з функцыйнальнымі рэзультатамі. Відразлівае паказанне вартасцей запобегае неспадзяваным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя сераўысы. Замерьце рэкалі на фіксаваным наборы запытанняя прычым регулюванню підказак. Частае змяненне підказак рэдка калі выправляе слабкую эфектыўнасьць пошуку. Калі працуеце над 4 стадзямі пошуку вектараў BM25, спачатку запісайце умовы викорыстоўвання: неабходныя данні, сигнал успеху і тое, што выходзіць па частковай нявыполненасці. Такі список дапамагае залічыцца з пазнейшымі змянамі ў кодзе. Дакументавайце як шлях успеху, так і шлях вярнення да нормы. Перапрыбуткі, людзкі контроль і обработка некоректных дадзенняя ўжо є частью продукту, а не пазнейшым дапрацоўкам.
BM25
Этап BM25 працюе найкраща, калі яго розглядаць як вимерную паверхню. Зафіксавце адна «золатая» транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Раздзеляйце правілы часткавання інфармацыі ад правіл яе выявлення. Змена адных не павінна прымусваць перапісванне іншых, калі змянююцца паказателі якосці.
Ацэнка
Этап ацэнкі працюе наяўней, калі яго спрыяваць як мерыемую плошчу. Зафіксавайце адны ідеальны прыклад, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Спрыяйце гэтаму этапу як кантракту межа вхіднымі даннымі і падтвердзенымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаць критэрыя успеху і не падзеўляйцеся частым, непূরным выкананнем задачы. Раздзеліце правілы часткавага апрантавання дадзеных ад правіл ўзяць іх з памяці. Змена адных не должна прымусваць перапісванне іншых, калі змянююцыся паказнікі якосці.
Компрас
Этап выкіявання компроміса працюе найэфектыўней, калі яго спрыяваць як мерыемую плошчу. Зберагачыце адні ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перад расшырэнням масштаба. Запісвайце часы выканання і косты токеноў або запытак праза функцыйнае рэзультат. Відкрытая інформацыя пра косты з’являецца рана, таму не будзе неспакою, калі процес пераходзіць з дэмовай среды ў спакульную. Раздзеляйце правілы часткавання дадзеных і правілы ўзяць іх. Змена аднаго з іх не павінна вымагаць перапісвы другога, калі зменяюцца паказнікі якосці. Этап выкіявання компроміса працюе найэфектыўней, калі яго спрыяваць як мерыемую плошчу. Зберагачыце адні ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перад расшырэнням масштаба. Дакументавайце як успішны, так і вярнэчы паты. Перапрыбуткі, людзкія контрольныя пункты і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Заключанне:
Для стадіі Outro неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавікі павінны магчымае перадзванаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшаў, прычына нехаспекі павінна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцужок задач. Наводзіце тыя часткі тексту, якія фактычна падтрымлівалі адпаведную адказ. Без цых цытатаў аперацыйныя працавікі не зможуць разлічыць галюцинацію ад працягу ў індэксаванні.
Чек-ліст для аперацый
Стадія чек-ліста для аперацый працюе найэфектывней, калі яе розглядаць як мерыемую паверхню. Збірайце адна ідеальная версія транскрыпцыі, адзін прыклад нехаспекі і запіс пра адвярненне змяны, перш чым расширваць масштаб. Храніце настройкі параду ад коду прыемленае. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функций павінны знаходзіцца ў адном месцы, якое аперацыйныя працавікі можуць пераглядаць, не чытаючы весь ланцужок задач.
Раздзеліце політыку часткавання дадзейнаў ад політыки ўзяць іх. Змена адной з яных не павинна вымагаць перапісву другой, калі зменяюцыся паказнікі якосці.
Дадзейснюйце тэсты на працясці критическага шляху ў системе CI з викорыстаннем фіксатываў, а не рэальных платных API, калі тое дазволяе бюджет.
Документавайце як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, пераказы людзям і обробка некоректных паведамленняў є часткай продукту, а не елементамі пазнейшага доўрабатвання.
Раздзеліце політыку часткавання дадзейнаў ад політыки ўзяць іх. Змена адной з яых не павинна вымагаць перапісву другой, калі зменяюцыся паказнікі якосці.
Перш чым пераводзіць стэк, заморозьце версіі, зафіксавайце ідеальны транскрыпт для критическага шляху і паказвайце способы вярнення да пачатковага стану. У спільных средах неабходны ліміты частоты запытоў, пераказы на адпаведнае власніцтва і чыстая структура керування секрэтнымі дадзеннямі. Валіце надзейнасць працы над красавімі, але разовымі дэманстрацыямі.
Запіска параграфу 112743431808: не трэба кантрацеўваць ключы прадаўцаў у репазітарыі, задаць максімальную кантроль на токены на адну сесію, а таксама зберагчы транскрыпціі празаўседле з фікстурамі для ацэнкі, каб пазнейшыя замены моделей заставалі пораўнанневымі.
Для запіскі параграфу 0 пра зміцнэнне: перад зменай коду неабходна апісаць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аперацыёныя працавнікі павінны магчымае перзапускаць крок з вядомай точкі контролю, не падозрэўваючы прыхованы стацус. Неабходна адразу задокументаваць шлях успеху і шлях вяснавання проблем. Перапрыбуткі, людзкія перакрыцця і обробка некантрольваных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Дзялейныя деталі зміцнэння 0/618: памерыце час выканання, класі каштоўкаў і выкарыстоўвання токенаў для гэтай запіскі, а пасля — выявіце, чы хацяце застаўці змену на адной пазычанай сэткі пытанняў, а не на адной лячбе.
Калі працюеце над першым этапам змяркавання па крэпліванні, спачатку запісайце контракт: неабяжлівыя вхідныя даны, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Спрэчвайце гэты этап як контракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце критэрыя успеху і не падзеўляйцеся частковым завершэнням без паведамлення.
Дзеянне крэплівання 1/618: замерайце час выконання, класы каштоўкаў і витрату токенав для гэтага пункту, а потым выберайце, чы робіць змену на аднойчы заданых критэрыях, а не на падставе індывідуальных спазыроў.