Пайдалар:
- Кыстаруу текстти семантикалык мейкиндикте векторго айландырарын жана окшош маанилер жакын векторлор экенин түшүнүү
- ANN издөө косинус жана чекит окшоштук көрсөткүчтөрү менен кантип иштээрин түшүндүрүү
- Баасына, масштабына жана метаберилиштерди чыпкалоо зарылдыгына жараша жалпы вектордук маалымат базаларын тандоо
RAGнын өзөгүндө бир гана суроо турат: "Колдонуучунун суроосуна тексттин кайсы бөлүгү көбүрөөк окшош?" Компьютер текстти түз мааниде эмес, сандар менен иштетет. Ошондуктан биз алгач текстти маанисин алып жүргөн сандарга айландырышыбыз керек. Киргизүү деген мына ушунда: текстти ошол тексттин маанисин билдирген сандар ырааттуулугуна (векторго) айландыруу процесси. Бул бирдикти бүтүргөндөн кийин, сиз кыстаруу кантип иштээрин, окшоштук кантип өлчөнөрүн жана туура вектордук маалымат базасын кантип тандоону билесиз.
Киргизүү: Мааниси координаттарга которуу
Кыстаруу модели (атайын үйрөтүлгөн жасалма интеллект) сиз берген текстти, мисалы, 1024 сандын векторуна айлантат. Бул векторду көп өлчөмдүү мейкиндиктеги координат катары ойлоп көрүңүз. Сыйкыр бул: мааниси боюнча окшош тексттер бул мейкиндикте жакын координаттарга түшөт.
Жөнөкөй мисал: "жылдык өргүү", "эс алуу укугу" жана "жылдык акы төлөнүүчү өргүү" ар кандай сөздөрдү колдонушат, бирок бир эле нерсени билдирет — алардын векторлору бири-бирине жакын. "Эмгек акы эсеби" башка маселе - анын вектору алыс. Ошентип, колдонуучу "менин канча күндүк эс алуум бар?" Сурасаңыз, “эс алуу” деген сөз жок, “жылдык өргүү 14 күн” деген документти да табабыз. Бул классикалык ачкыч издөө (сөзгө так дал келген издөө) кыла албайт.
Кеңеш: Кыстарууну "мааниянын манжа изи" деп эсептеңиз. Бир эле маанидеги эки сүйлөмдүн манжа издери окшош көрүнөт; Сөздөрү башка болсо да.
Маанилүү эреже: суроону кыстарууда сиз колдонгон модель, документтерди кыстарууда колдонгон үлгү болушу керек. Ар кандай моделдер ар кандай мейкиндиктерди чыгарат; координаттар теңдешсиз болуп калат.
Окшоштук кантип өлчөө керек?
Эки вектордун канчалык окшош экендигин өлчөөнүн бир нече ыкмалары бар. Эң кеңири тараган косинус окшоштугу: ал эки вектордун ортосундагы бурчту өлчөйт. Эгерде бурч кичине болсо (векторлор бир багытты караган), окшоштук жогору. Маани −1 менен 1дин ортосунда; 1ге жакын = абдан окшош.
критерий
Ал эмнени өлчөйт?
Качан артыкчылык берилет?
Косинус
Векторлордун ортосундагы бурч (багыт).
Эң кеңири тараган; тексттеги демейки семантикалык окшоштук
Dot продукт
Багыт + чоңдук бирге
Эгерде векторлор нормалдаштырылса, ал косинус сыяктуу жыйынтыкты берет; тез
Евклиддик (евклиддик аралык)
Координаттардын ортосундагы түз аралык
Кээ бир кластердик сценарийлерде; текстте азыраак колдонулат
Иш жүзүндө, кыстаруу моделдеринин көбү нормалдаштырылган векторлорду чыгарышат (өлчөм 1ге коюлган); Бул учурда косинус менен чекиттин көбөйтүлүшү бирдей тартипти берет. Чечимде шал болуп калбаңыз: косинус менен баштаңыз.
Миллиондогон векторлордун арасында аларды бирден бирден салыштыруу жай. Мына ошондуктан вектордук маалымат базалары ANN (Approximate Nearest Neighbor) алгоритмдерин колдонушат. ANN абдан тез "так жакын" эмес, "дээрлик так жакын" табат. Мисалы, HNSW деп аталган ыкма 10 миллион вектор үчүн да бир нече миллисекундда жыйынтыктарды бере алат. Кичинекей тактык курмандыгы үчүн чоң ылдамдыкка ээ болосуз.
Вектордук маалымат базасы эмне кылат?
Вектордук маалымат базасы бир эле учурда үч нерсени аткарат: (1) векторлорду сактайт, (2) суроо векторуна эң окшош векторлорду тез табат, (3) ар бир вектордун жанында метаберилиштер боюнча чыпкалайт. Метаберилиштер – бул сиз ошол бөлүккө тиркөөчү тегдер: баштапкы файл, дата, бөлүм, купуялык деңгээли, ж.б. Метадайындарды чыпкалоо RAG ишканасында өтө маанилүү; анткени сиз "Финансы департаментинин 2025 документтеринен гана издөө" сыяктуу чектөөлөрдү кое билишиңиз керек.
# Вектордук маалымат базасына катталуу (концептуалдык)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("Жылдык акы төлөнүүчү өргүү 14 күн..."), text="Жылдык акы төлөнүүчү өргүү 14 күн...", metadata={"булак": "ik_el_kitabi.pdf: "IK6", "department", "0"2 "privacy": "ic"})
# Метадайындар чыпкаланган издөөнүн (концептуалдык) натыйжасы = vektor_db.search(vektor=embed("канча күндүк өргүүм бар?"), top_k=4, filter={"бөлүм": "HR", "купуялык": ["ички", "күйгүзүлгөн"]})
Туура маалымат базасын тандоо
транспорт
Өзгөчөлөнгөн аспект
Ылайыктуу кырдаал
Камтылган / файлга негизделген (киргизилген китепкана)
Орнотуу жок, жалгыз машина
Прототип, кичинекей комплект (<бир нече жүз миң бөлүк)
Башкарылган булут кызматы
Масштабдоо жана тейлөө сиздин жоопкерчилигиңиз эмес
Өндүрүш, тез өсүп жаткан маалыматтар, чакан команда
Өзүңүздүн сервериңизде ачык булак
Толук көзөмөл, маалыматыңыз сиздики
Купуялык милдети, учурдагы инфраструктура
Учурдагы маалымат базасына кошуу
Сиз өзүнчө системаларды башкара албайсыз
Сиз колдонгон МБга вектордук колдоо кошуу
Тандап жатканда сураңыз: Канча даана болот? Метадайындарды чыпкалоо канчалык маанилүү? Маалыматтар компаниянын чегинен тышкары чыга алабы (купуялуулук)? Команда инфраструктураны иштете алабы? Көбүнчө кичинеден баштап, керек болсо кеңейтүү акылдуулукка жатат.
Алсыз мамиле / Күчтүү мамиле
Алсыз (жөнөкөй кыстарууну сактоо, метадайындар жок):
Текстти жана векторду сактаңыз. Издөө: эң окшош 4 векторду кайтарыңыз.# Маселе: "учурдагы HR документтери" сыяктуу чыпкалоо мүмкүн эмес;# эски/уруксатсыз бөлүктөр да жоопко кошулушу мүмкүн.
Күчтүү (бай метадайындар + чыпкаланган издөө):
Ар бир бөлүккө булак, дата, бөлүм жана купуялык теги кошуңуз. Издөө учурунда колдонуучунун ыйгарым укуктарына жана учурдагы абалына жараша чыпкалоо: filter = {"privacy": user_authority, "date_date": "2024-01"}# Ошентип, натыйжа коопсуз жана актуалдуу болуп саналат.
Үч мини Case
1-жагдай - Туура эмес үлгү аралашмасы. Команда А үлгүсүндөгү документтерди жана В үлгүсүндөгү суроолорду киргизди. Издөөлөр маанисиз натыйжаларды берди жана туура жооптун деңгээли 31% бойдон калды. Мен бир моделге өткөндө (экөө тең бир эле кыстаруу модели), көрсөткүч 88% га чейин секирип кетти. Сабак: суроо жана документ бир мейкиндикте болушу керек.
2-жагдай - Метадайындарсыз купуялык коркунучу. Саламаттыкты сактоо компаниясында бөлүмдүн бардык документтери метадайындары жок бир бассейнге ыргытылган. Сатуучу суроо бергенде, система пациенттин маалыматтарынын бир бөлүгүн контекстке келтирди. Метадайындар + чыпкасы кошулганда (авторизация деңгээлине ылайык) бул тобокелдик жоюлган; Издөөдө уруксаты жок 12 даана такыр алынып келинбейт.
3-жагдай. Электрондук коммерциялык компания жөнөкөй "бардыгын сканерлөө" ыкмасы менен 8 миллион товардын сүрөттөмөсүн издеди; Ар бир суроо 6 секунд алды. HNSW негизиндеги ANNге өткөнүбүздө убакыт 45 миллисекундга чейин кыскарып, тактык 1% гана жоголду. Сабак: ANN чоң топтомдо милдеттүү болуп саналат.
Жалпы каталар
- Суроону жана документти ар кандай моделдер менен киргизүү: Натыйжалар маанисиз; ар дайым бир модели.
- Метадайындарды өткөрүп жиберүү: Сиз чыпкалай албайсыз; Сиз купуялуулукту жана актуалдуулукту башкара албай каласыз.
- Киргизүүнү шифрлөө үчүн жаңылыштыруу: Кыстаруу кайра кайтарылуучу маалыматты камтыйт; Жашыруун маалыматтарды "жашыруун" деп эсептөө туура эмес.
- Кичинекей топтомдо ашыкча чоң инфраструктураны куруу: 5000 бөлүктөн турган гиганттык кластер - бул ашыкча татаалдык.
- Окшоштук критерийи жөнүндө көп кабатыр болбоңуз: Текстте косинус менен баштаңыз; Жакшы жөндөө кийинчерээк келет.
Эскертүү: Кыстаруу тексттин маанисин сандар менен киргизет, бирок мазмунду "жок кылбайт". Эгерде вектордук маалымат базасы чыгып кетсе, баштапкы сакталган тексттер (көпчүлүк орнотууларда текст да сакталат) да бузулат. Вектордук репозиторийди анын ичиндеги документтердей эле купуя сактаңыз.
Кыскача айтканда
- Кыстаруу текстти анын маанисин алып жүргөн сандардын векторуна айлантат; Окшош маанилер жакын векторлор.
- Окшоштук көбүнчө косинус менен өлчөнөт; Нормалдаштырылган векторлор үчүн чекиттин көбөйтүлүшү бирдей натыйжа берет.
- Чоң маалыматтарда ANN (мисалы, HNSW) так издөөнү алмаштырат: тактыктын аз курмандыгы менен чоң ылдамдык.
- Вектордук маалымат базасы вектордук сактоону + окшоштуктарды издөө + метаберилиштерди чыпкалоону жүзөгө ашырат; метадайындар ишкана RAG үчүн маанилүү болуп саналат.
- Суроо жана документ бир эле кыстаруу модели менен которулушу керек; антпесе координаттарды салыштырууга болбойт.
Колдонмо тапшырмасы
Мурунку бөлүмдө тандаган документиңизден 10 кыска үзүндү (ар бири 3-6 сүйлөм) чыгарып алыңыз. (1) Ар бир бөлүк үчүн кеминде үч метадайын тэгин (булак, дата жана бизнес контекстиңизге ылайыктуу үчүнчү: бөлүм, продукт, купуялык ж.б.у.с.) түзүңүз. (2) Колдонуучунун 3 түрдүү суроосуна кайсы метадайындар чыпкасы колдонулушу керек экенин жазыңыз. (3) Бир эле маанини ар кандай сөздөр менен туюнткан 3 суроо бөлүк түгөйүн табыңыз (мисалы, “эс алуу укугу” ↔ “жылдык өргүү”) жана эмне үчүн алар ачкыч сөздү издөөгө дал келбей турганын, бирок кыстарууга дал келерин бир сүйлөм менен түшүндүрүңүз.
текшерүү тизмеси
- [ ] Мен кыстаруу текстти семантикалык мейкиндикте векторго айлантат жана окшош маанилер жакын экенин айта алам.
- Мен билем, [ ] Косинус окшоштугу бурчту өлчөйт жана тексттеги демейки артыкчылык.
- [ ] Мен чоң маалыматтарда ANN эмне үчүн зарыл экенин түшүндүрө алам.
- [ ] Мен метадайындар эмне үчүн купуялуулук жана жаңылыштыкты көзөмөлдөө үчүн маанилүү экенин билем.
- [ ] Мен суроону жана документти бир эле кыстаруу модели менен которуу эрежесин карманам.