Добици:
- Схватите да уграђивање претвара текст у вектор у семантичком простору и да су слична значења блиски вектори
- Објашњавање како АНН претрага функционише са метриком сличности косинуса и тачака
- Избор уобичајених векторских база података на основу цене, размера и потребе за филтрирањем метаподатака
У срцу РАГ-а је једно питање: „Који део текста је најсличнији питању корисника?“ Рачунар обрађује текст са бројевима, а не буквално. Зато је потребно да текст прво претворимо у бројеве који носе његово значење. То је оно што је уграђивање: процес претварања текста у низ бројева (вектор) који представља значење тог текста. Када завршите ову јединицу, знаћете како функционише уграђивање, како се мери сличност и како да изаберете праву векторску базу података.
Уграђивање: Превођење значења у координате
Модел за уграђивање (посебно обучена вештачка интелигенција) претвара текст који дате у вектор од, на пример, 1024 броја. Замислите овај вектор као координату у вишедимензионалном простору. Магија је следећа: текстови слични по значењу падају у блиске координате у овом простору.
Једноставан пример: „годишњи одмор“, „право на годишњи одмор“ и „годишње плаћено одсуство“ користе различите речи, али значе исту ствар — њихови вектори су блиски један другом. „Рачун за плате“ је друга ствар — његов вектор је далек. Дакле, корисник пита "колико дана одмора имам?" Кад питате, чак можемо да нађемо документ који не садржи реч „одмор“ већ каже „годишњи одмор је 14 дана“. То је оно што класична претрага кључних речи (претрага која тачно одговара речи) не може да уради.
Савет: Замислите уграђивање као „отисак прста значења“. Отисци прстију две реченице са истим значењем изгледају слично; Чак и ако су речи различите.
Важно правило: модел који користите приликом уграђивања питања треба да буде исти модел који користите када уграђујете документе. Различити модели производе различите просторе; координате постају неупоредиве.
Како измерити сличност?
Постоји неколико метода за мерење колико су два вектора слична. Најчешћа је косинусна сличност: мери угао између два вектора. Ако је угао мали (вектори усмерени у истом правцу), сличност је велика. Вредност је између −1 и 1; Близу 1 = веома слично.
критеријум
Шта то мери?
Када се преферира?
косинус
Угао (правац) између вектора
Најчешћи; подразумевана у семантичкој сличности текста
Дот продуцт
Правац + величина заједно
Ако су вектори нормализовани, то даје исти резултат као косинус; је брз
Еуклидска (еуклидска удаљеност)
Право растојање између координата
У неким сценаријима груписања; мање коришћени у тексту
У пракси, већина модела уграђивања производи нормализоване векторе (величина постављена на 1); У овом случају, косинус и тачкасти производ дају исти редослед. Немојте бити парализовани у одлуци: почните са косинусом.
Међу милионима вектора, њихово поређење једног по једног је споро. Зато векторске базе података користе АНН (Аппрокимате Неарест Неигхбор) алгоритме. АНН врло брзо проналази „скоро тачно најближе“ уместо „тачно најближе“. На пример, метода названа ХНСВ може да врати резултате за неколико милисекунди чак и за 10 милиона вектора. Добијате велику брзину за малу жртву тачности.
Шта ради векторска база података?
Векторска база података ради три ствари одједном: (1) складишти векторе, (2) брзо проналази векторе најсличније вектору упита, (3) филтрира према метаподацима поред сваког вектора. Метаподаци су ознаке које прилажете том делу: изворни фајл, датум, одељење, ниво приватности, итд. Филтрирање метаподатака је критично у РАГ-у предузећа; јер морате бити у могућности да поставите ограничења као што је „претрага само у документима одељења за финансије за 2025.“.
# Региструјте се на векторску базу података (концептуално)вектор_дб.адд( ид="изин-политикаси-парца-3", вектор=ембед("Годишње плаћено одсуство је 14 дана..."), тект="Годишње плаћено одсуство је 14 дана...", метадата={"соурце": "ик_ел_китаби.пдф", "департмент": "ИК", "департмент": "ИК", "да25": "ИК "приватност": "иц"})
# Метаподаци филтрирана претрага (концептуални) резултат = вектор_дб.сеарцх( вектор=ембед("колико дана одсуства имам?"), топ_к=4, филтер={"департмент": "ХР", "приваци": ["интерно", "он"]})
Избор праве базе података
возила
Истакнути аспект
Погодна ситуација
Уграђени / засновани на фајловима (уграђена библиотека)
Без инсталације, једна машина
Прототип, мали комплет (< неколико стотина хиљада делова)
Управљана услуга у облаку
Скалирање и одржавање нису ваша одговорност
Производња, брзо растући подаци, мали тим
Отворени код на сопственом серверу
Потпуна контрола, ваши подаци остају ваши
Обавеза приватности, постојећа инфраструктура
Додавање постојећој бази података
Не управљате одвојеним системима
Додавање векторске подршке у ДБ коју већ користите
Питајте при избору: Колико ће бити комада? Колико је критично филтрирање метаподатака? Да ли подаци могу да изађу ван компаније (поверљивост)? Може ли тим управљати инфраструктуром? Често је паметно почети са малим и проширити по потреби.
Слаб приступ / јак приступ
Слабо (чување обичног уграђивања, без метаподатака):
Само сачувајте текст и вектор. Претрага: врати 4 најсличнија вектора.# Проблем: не може да се филтрира као "само тренутни ХР документи";# стари/неовлашћени делови такође могу бити укључени у одговор.
Моћан (богати метаподаци + филтрирана претрага):
Додајте извор, датум, одељење и ознаку приватности сваком делу. Филтрирајте према ауторитету и актуелности корисника током претраге: филтер = {"приваци": усер_аутхорити, "дате_дате": "2024-01"}# Дакле, резултат је сигуран и ажуран.
Три мини кућишта
Случај 1 — Погрешна комбинација модела. Тим је уградио документе са моделом А и питања са моделом Б. Претраге су дале бесмислене резултате, а стопа тачних одговора је остала на 31%. Када сам прешао на један модел (оба исти модел уградње), стопа је скочила на 88%. Лекција: питање и документ треба да буду у истом простору.
Случај 2 — Ризик приватности без метаподатака. У здравственој компанији, сви документи одељења су бачени у један базен без метаподатака. Када је сарадник у продаји поставио питање, систем је контекстуализовао део података о пацијенту. Када су додати метаподаци + филтер (према нивоу ауторизације), овај ризик је елиминисан; Приликом преузимања, 12 неовлашћених комада уопште се не доносе.
Случај 3 — Уско грло скале. Компанија за е-трговину претражила је 8 милиона описа производа једноставним методом „скенирај све“; Сваки упит је трајао 6 секунди. Када смо прешли на АНН базиран на ХНСВ-у, време се смањило на 45 милисекунди, са само 1% губитком у прецизности. Лекција: АНН је обавезна у великом скупу.
Уобичајене грешке
- Уграђивање питања и документа са различитим моделима: Резултати су бесмислени; увек један модел.
- Прескакање метаподатака: Не можете филтрирати; Губите контролу над приватношћу и ажурношћу.
- Грешка уграђивања за шифровање: Уграђивање носи реверзибилне информације; Погрешно је претпоставити да су осетљиви подаци „скривени“.
- Изградња непотребно велике инфраструктуре на малом скупу: џиновски кластер којим се управља за 5.000 делова је непотребна сложеност.
- Не брините превише о критеријуму сличности: Почните са косинусом у тексту; Фино подешавање долази касније.
Опрез: Уграђивање уграђује значење текста у бројеве, али не „уништава“ садржај. Ако процури векторска база података, оригинални сачувани текстови (у већини инсталација и текст се такође чува) су такође угрожени. Држите векторско спремиште поверљиво као и документе у њему.
Укратко
- Уграђивање претвара текст у вектор бројева који носи своје значење; Слична значења су блиски вектори.
- Сличност се често мери косинусом; За нормализоване векторе, тачкасти производ даје исти резултат.
- У великим подацима, АНН (нпр. ХНСВ) замењује тачну претрагу: велика брзина уз мало жртвовања тачности.
- Векторска база података врши складиштење вектора + претрагу сличности + филтрирање метаподатака; метаподаци су неопходни за РАГ предузећа.
- Питање и документ морају бити преведени истим моделом уградње; иначе се координате не могу поредити.
Задатак апликације
Издвојите 10 кратких пасуса (по 3-6 реченица) из документа који сте одабрали у претходној јединици. (1) Дизајнирајте најмање три ознаке метаподатака за сваки део (извор, датум и трећу која одговара вашем пословном контексту: одељење, производ, приватност, итд.). (2) Напишите који филтер метаподатака треба применити за 3 различита корисничка питања. (3) Пронађите 3 пара питања-делова који изражавају исто значење у различитим речима (нпр. „право на годишњи одмор“ ↔ „годишњи одмор“) и објасните у једној реченици зашто се неће подударати са претрагом кључних речи, али ће се подударати са уградњом.
контролна листа
- [ ] Могу рећи да уграђивање претвара текст у вектор у семантичком простору и слична значења су блиска.
- Знам да [ ] косинусна сличност мери угао и да је подразумевана преференција у тексту.
- [ ] Могу да објасним зашто је АНН неопходна у великим подацима.
- [ ] Знам зашто су метаподаци критични за контролу поверљивости и ажурираности.
- [ ] Пратим правило превођења питања и документа са истим моделом уградње.