uutiset

Miksi viivästetty vuorovaikutusmalli on standardi seuraavan sukupolven RAG:lle?

2024-08-05

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina



AIxiv-sarake on sarake, jossa Machine Heart julkaisee akateemista ja teknistä sisältöä. Viime vuosina Heart of the Machine AIxiv -kolumni on saanut yli 2 000 raporttia, jotka kattavat tärkeimpien yliopistojen ja yritysten huippulaboratoriot ympäri maailmaa ja edistävät tehokkaasti akateemista vaihtoa ja levittämistä. Jos sinulla on erinomaista työtä, jonka haluat jakaa, ole hyvä ja osallistu tai ota meihin yhteyttä raportoidaksesi. Lähetyssähköposti: [email protected]; [email protected]

Zhang Yingfeng: Infran perustaja, jolla on monen vuoden kokemus haku-, tekoäly- ja infrainfrastruktuurin kehittämisestä, hän työskentelee parhaillaan seuraavan sukupolven RAG-ydintuotteiden rakentamisessa.

RAG-järjestelmän kehittämisessä hyvä Reranker-malli on välttämätön linkki ja sitä käytetään aina erilaisissa arvioinneissa. Tämä johtuu siitä, että vektorihaun edustamat kyselyt kohtaavat alhaisen osumaprosentin, joten sen korjaamiseen tarvitaan edistynyt Reranker-malli. Tämä muodostaa näin kaksivaiheisen lajitteluarkkitehtuurin, jossa käytetään vektorihakua karkeana seulonnana ja Reranker-mallia hienolajitteluna.

Tällä hetkellä mallien luokittelussa on kahta päätyyppiä arkkitehtuuria:

1. Kaksoisenkooderi. BERT-mallin esimerkkinä se koodaa kyselyt ja asiakirjat erikseen ja kulkee lopuksi Pooling-kerroksen läpi siten, että tulos sisältää vain yhden vektorin. Kyselyn Ranking-vaiheessa sinun tarvitsee vain laskea kahden vektorin samankaltaisuus alla olevan kuvan mukaisesti. Kahta kooderia voidaan käyttää sekä Ranking- että Reranking-vaiheessa, ja vektorihaku on itse asiassa tämä sijoitusmalli. Koska kaksoiskooderi koodaa kyselyn ja asiakirjan erikseen, se ei voi kaapata kyselyn ja asiakirjan merkkien välistä monimutkaista vuorovaikutteista suhdetta, mikä aiheuttaa paljon semanttista menetystä. Lajittelun ja pisteytyksen suorittamiseen tarvitaan kuitenkin vain vektorihaku Laskennassa suoritustehokkuus on parantunut erittäin korkeaksi.



2. Cross Encoder. Cross-Encoder käyttää yhtä enkooderimallia kyselyjen ja asiakirjojen koodaamiseen samanaikaisesti. Se voi kaapata kyselyjen ja asiakirjojen välisen monimutkaisen vuorovaikutuksen, joten se voi tarjota tarkempia hakutuloksia. Cross-Encoder ei tulosta kyselyn ja asiakirjan Tokeniä vastaavaa vektoria, vaan lisää luokittimen, joka tulostaa suoraan kyselyn ja asiakirjan samankaltaisuuspisteet. Sen haittana on, että koska jokainen asiakirja ja kysely on koodattava yhdessä kyselyn aikana, mikä tekee lajittelusta erittäin hidasta, Cross-Encoderilla voidaan vain järjestää lopputulokset uudelleen. Esimerkiksi alustavien seulontatulosten Top 10:n uudelleenjärjestäminen kestää vielä sekunteja.



Tästä vuodesta lähtien toinen ColBERTin [viite 1] edustama työ on herättänyt laajaa huomiota RAG-kehitysyhteisössä. Kuten alla olevasta kuvasta näkyy, sillä on joitain ominaisuuksia, jotka eroavat merkittävästi yllä olevista kahdesta luokitusmallista:

Yksi on, että verrattuna Cross Encoderiin, ColBERT käyttää edelleen kaksoiskoodausstrategiaa, joka käyttää itsenäisiä koodereita kyselyjen ja asiakirjojen koodaamiseen. Siksi kyselytunniste ja asiakirja Token eivät vaikuta toisiinsa koodauksen aikana käsitellään offline-tilassa, ja vain kysely koodataan kyselyn aikana, joten käsittelynopeus on paljon suurempi kuin Cross Encoder;

Toinen on se, että kaksoiskooderiin verrattuna ColBERT tuottaa useita vektoreita yhden vektorin sijaan, joka saadaan suoraan muuntajan viimeisestä lähtökerroksesta, kun taas kaksoisenkooderi muuntaa useita vektoreita yhdeksi vektoriksi poolausulostulon kautta. menettäen siten jonkin verran semantiikkaa.

Lajittelulaskennassa ColBERT ottaa käyttöön viivästetyn vuorovaikutteisen laskennan samankaltaisuusfunktion ja nimeää sille maksimaalisen samankaltaisuuden (MaxSim). Laskentamenetelmä on seuraava: jokaiselle kyselylle Token-vektorille lasketaan samankaltaisuus vektoreilla, jotka vastaavat kaikkia dokumentteja Laske ja seurata kunkin kyselytunnisteen enimmäispisteitä. Kyselyn ja asiakirjan kokonaispistemäärä on näiden maksimikosinipisteiden summa. Esimerkiksi kyselylle, jossa on 32 Token-vektoria (kyselyn enimmäispituus on 32) ja asiakirjalle, jossa on 128 merkkiä, on suoritettava 32*128 samankaltaisuustoiminnot alla olevan kuvan mukaisesti.

Joten verrattuna Cross Encoder voidaan kutsuaVarhaisen vuorovaikutuksen malli, ja ColBERTin edustamaa työtä voidaan kutsuaMyöhäisen vuorovaikutuksen malli.



Seuraavassa kuvassa verrataan yllä olevia lajittelumalleja suorituskyvyn ja lajittelulaadun suhteen. Koska viivästetty vuorovaikutusmalli tyydyttää kyvyn siepata monimutkaiset vuorovaikutukset kyselyjen ja asiakirjojen välillä lajitteluprosessin aikana ja välttää myös asiakirjatunnisteiden koodaamisen, se ei voi vain varmistaa hyvät lajittelutehosteet, vaan myös saavuttaa nopeamman lajittelun. Samassa mittakaavassa ColBERTin tehokkuus voi olla yli 100 kertaa Cross Encoderin tehokkuus. Siksi viivästetty vuorovaikutusmalli on erittäin lupaava lajittelumalli Luonnollinen idea on:Voidaanko viivästetty vuorovaikutusmallia käyttää suoraan RAG:ssa korvaamaan vektorihaun + hienolajittelun kaksivaiheinen lajitteluarkkitehtuuri?



Tätä varten meidän on harkittava joitain ColBERT-tekniikan kysymyksiä:

1. ColBERTin MaxSim viivästetty vuorovaikutteinen samankaltaisuusfunktio on paljon tehokkaampi kuin Cross Encoder, mutta verrattuna tavalliseen vektorihakuun, laskennallinen ylimäärä on silti erittäin korkea: koska kyselyn ja asiakirjan samankaltaisuus on monivektorilaskenta, MaxSimin The overhead on M * N kertaa tavalliseen vektorien samankaltaisuuslaskelmaan verrattuna (M on kyselyn merkkien määrä, N on asiakirjan merkkien määrä). Vastauksena näihin ColBERTin kirjoittaja julkaisi vuonna 2021 ColBERT v2:n [Viite 2], joka paransi luodun upotuksen laatua Cross Encoderin ja mallitislauksen avulla ja käytti pakkaustekniikkaa luodun dokumenttivektorin kvantisoimiseen, mikä paransi laskentaa. MaxSim suorituskyky. ColBERT v2 -pakkaukseen perustuva projekti RAGatouille [viite 3] on ratkaisu korkealaatuiseen RAG-lajitteluun. ColBERT v2 on kuitenkin vain algoritmikirjasto, ja sen käyttö päästä päähän on edelleen vaikeaa yritystason RAG-järjestelmissä.

2. Koska ColBERT on esiopetettu malli ja koulutustiedot tulevat hakukoneiden kyselyistä ja palautetuista tuloksista, nämä tekstitiedot eivät ole suuria. Esimerkiksi kyselytunnisteiden määrä on 32 ja asiakirjatokeneita 128. , jotka ovat tyypillisiä pituusrajoituksia. Siksi, kun ColBERT:iä käytetään todellisille tiedoille, rajan ylittävä pituus lyhennetään, mikä ei sovellu pitkien asiakirjojen hakuun.

Yllä olevien ongelmien perusteella avoimen lähdekoodin tekoälyn natiivitietokanta Infinity tarjoaa Tensor-tietotyypin uusimmassa versiossa ja tarjoaa natiivisti päästä päähän ColBERT-ratkaisun. Kun Tensoria käytetään tietotyyppinä, useita ColBERT-koodauksella tuotettuja vektoreita voidaan tallentaa suoraan yhteen Tensoriin, joten Tensorien välinen samankaltaisuus voi johtaa suoraan MaxSim-pisteisiin. Vastauksena MaxSimin suuren laskentamäärän ongelmaan Infinity on antanut kaksi ratkaisua optimoitavaksi: toinen on binäärinen kvantisointi, joka voi tehdä alkuperäisen tensorin tilasta vain 1/32 alkuperäisestä koosta, mutta ei muuta suhteellista järjestystä. MaxSim-laskelmien tuloksesta. Tätä ratkaisua käytetään pääasiassa Rerankerissa, koska on tarpeen erottaa vastaava Tensori edellisen karkeaseulonnan tulosten perusteella. Toinen on Tensor Index. Keskeisiin toimintoihin esitellään ohjeet toteutuksen nopeuttamiseksi. Tensoriindeksiä voidaan käyttää vain Rankerin palvelemiseen Rerankerin sijaan. Lisäksi Infinity ottaa käyttöön Tensor Array -tyypin pitkälle tekstille, joka ylittää Token-rajan:



Asiakirja, joka ylittää ColBERT-rajan, jaetaan useisiin kappaleisiin, kun ne on koodattu ja luotu vastaavasti, ne tallennetaan samalle riville kuin alkuperäinen asiakirja. MaxSimiä laskettaessa kysely ja nämä kappaleet lasketaan erikseen, minkä jälkeen maksimiarvo otetaan koko dokumentin pisteeksi. Kuten alla:



Siksi Infinityn avulla voidaan ottaa käyttöön viivästetty vuorovaikutusmalli päästä päähän palvelemaan RAG:ta laadukkaasti. Joten pitäisikö ColBERTiä käyttää Rankerina vai Rerankerina? Alla käytämme Infinityä arvioimaan todellisia tietojoukkoja. Koska Infinityn uusin versio toteuttaa historian kattavimman hybridihakuratkaisun, palautusmenetelmiin kuuluvat vektorihaku, täystekstihaku, harvalukuinen vektorihaku, edellä mainittu Tensor ja mikä tahansa näiden menetelmien yhdistelmä, ja se tarjoaa erilaisia ​​Reranker-menetelmiä. , kuten RRF ja ColBERT Reranker, joten sisällytämme arvosteluun erilaisia ​​hybridihaun ja Rerankerin yhdistelmiä.

Käytämme arvioinnissa MLDR-tietojoukkoa. MLDR on MTEB:n [viite 5] käyttämä benchmark-joukko upotuksen mallien laadun arvioimiseen. MLDR on yksi tietojoukoista, jota kutsutaan Multi Long Document Retrieval -tiedostoksi ja joka sisältää yhteensä 200 000 pitkää tekstidataa. Arvioinnissa käytetään BGE-M3:a [viite 6] upotusmallina, Jina-ColBERT:tä [viite 7] Tensorin luomiseen, ja arviointiskripti sijoitetaan myös Infinity-varastoon [viite 8].

Arviointi 1: Onko ColBERT tehokas uudelleensijoittaja? Luo BGE-M3:lla tiheitä vektoreita ja harvalukuisia vektoreita 200 000 MLDR-tiedosta ja lisää ne Infinity-tietokantaan. Tietokanta sisältää 4 saraketta, jotka tallentavat alkuperäisen tekstin, vektorit, harvat vektorit ja tensorit ja rakentavat vastaavat kokotekstit. indeksit ja vektorit vastaavasti Indeksi, harva vektoriindeksi. Arviointi sisältää kaikki takaisinkutsujen yhdistelmät, mukaan lukien yksisuuntainen, kaksisuuntainen ja kolmisuuntainen palautus, seuraavasti:



Arviointiindeksi ottaa käyttöön nDCG@10:n. Muut parametrit: RRF Rerankeria käytettäessä karkealla seulonnalla palautettu Top N = 1000, kyselyjen kokonaismäärä on 800 ja kyselyn keskimääräinen pituus on noin 10 merkkiä.



Kuten kuvasta näkyy, kaikki takaisinvetoratkaisut ovat parantaneet tuloksia merkittävästi ColBERT Rerankerin käytön jälkeen. Viivästetyn vuorovaikutuksen mallina ColBERT voi tarjota MTEB:n Reranker-rankingin kärjessä olevia vertailukelpoisia sijoituksia, mutta suorituskyky on 100 kertaa korkeampi, joten uudelleensijoitus voidaan suorittaa suuremmassa mittakaavassa. Kuvassa näkyvät tulokset ovat Top 100 Reranker, ja Top 1000 käytetään ColBERT-uudelleenjärjestykseen. Arvot eivät muutu merkittävästi ja suorituskyky laskee merkittävästi, joten sitä ei suositella. Perinteisesti, kun käytetään ulkoista Cross Encoderiin perustuvaa uudelleensijoittajaa, Top 10:ssä on toisen tason viive. Infinity toteuttaa kuitenkin tehokkaan ColBERT Rerankerin sisäisesti, vaikka Top 100 tai jopa Top 1000 järjestettäisiin uudelleen. Tämä ei vaikuta käyttökokemukseen. Palautuksen laajuus kasvaa kuitenkin huomattavasti, joten lopullista sijoitusta voidaan parantaa merkittävästi. Lisäksi tämä ColBERT Reranker -laskelma tarvitsee suorittaa vain puhtaalla CPU-arkkitehtuurilla, mikä myös vähentää huomattavasti käyttöönottokustannuksia.

Arviointi 2: Vertailu perustuu siihen, että ColBERT on paremmuusjärjestäjä eikä uudelleensijoittaja. Siksi Tensori-sarakkeen tiedoille on luotava tensoriindeksi. Samaan aikaan Tensor Indexin tuottaman tarkkuushäviön arvioimiseksi suoritettiin myös raakavoimahaku.



Voidaan nähdä, että Rerankeriin verrattuna jopa brute force -hakua käyttämällä ilman tarkkuushäviöitä ei ole tapahtunut merkittävää parannusta ja Tensoriindeksiin perustuva lajittelulaatu on jopa heikompi kuin Rerankeria käytettäessä. Kyselyaika Rankerina on kuitenkin paljon hitaampi: MLDR-tietojoukko sisältää 200 000 dokumenttidataa, mikä on noin 2 Gt. Sen jälkeen, kun se on muutettu Tensor-dataksi, se on jopa 320 Gt tietotyyppi on dokumentti. Jokaisen asiakirjan merkkiä vastaava vektori on talletettava. kestää keskimäärin 7 sekuntia kyselyn suorittamiseen. Palauttaa kyselyn, mutta ei saa parempia tuloksia.

Siksi on ilmeistä, että ColBERT on paljon kannattavampi uudelleensijoittaja kuin ranking. Tämän hetken paras RAG-hakuratkaisu on lisätä ColBERT Reranker 3-suuntaisen hybridihaun (täystekstihaku + vektori + harva vektori) perusteella. Jotkut kumppanit saattavat kysyä, että ColBERT Rerankerin käyttämiseksi on tarpeen lisätä erillinen Tensor-sarake, jolloin sarake laajenee 2 suuruusluokkaa alkuperäiseen tietojoukkoon verrattuna. Onko se sen arvoista? Ensinnäkin: Infinity tarjoaa binäärisen kvantisointimenetelmän Tensorille Uudelleensijoittajana se ei vaikuta lajittelutuloksiin paljon, mutta se voi tehdä lopullisesta datasta vain 1/32 alkuperäisestä Tensorin koosta. Toiseksi, vaikka niinkin, jotkut ihmiset ajattelevat, että yleiskustannukset ovat liian korkeat. Käyttäjän näkökulmasta on kuitenkin erittäin kannattavaa käyttää enemmän tallennustilaa vastineeksi paremmasta lajittelulaadusta ja halvemmista kustannuksista (lajitteluprosessi ei vaadi GPU:ta). Lopuksi uskon, että Late Interaction -malli, jossa on hieman heikompi suorituskyky, mutta huomattavasti pienemmät tallennuskustannukset, julkaistaan ​​pian Data Infra -infrastruktuurina, joten se on läpinäkyvä näille muutoksille ja on viisas valinta luovuttaa nämä vaihtokaupat käyttäjille.

Yllä oleva perustuu Infinityn monikanavaiseen palautusarviointiin MLDR-tietojoukossa. Muiden tietojoukkojen arviointitulokset voivat olla erilaisia, mutta kokonaisjohtopäätös ei muutu - 3-suuntainen hybridihaku + Tensoripohjainen uudelleenjärjestys on Nykyinen palautus. menetelmällä laadukkaimmat hakutulokset.

Tästä voidaan nähdä, että ColBERT:llä ja sen viivästetyn vuorovaikutuksen mallilla on suuri sovellusarvo RAG-skenaarioissa. Yllä oleva tekstidialogin sisällön luominen on viime aikoina saanut SOTA-tunnustusta multimodaalisissa skenaarioissa. Tämä on ColPali [viite 9], joka muuttaa RAG:n työnkulkua seuraavan kuvan mukaisesti:



Kun RAG kohtaa monimutkaisen muotoisia asiakirjoja, nykyinen SOTA käyttää asiakirjantunnistusmallia asiakirjan asettelun tunnistamiseen ja kutsuu sitten vastaavaa mallia tunnistetuille osittaisille rakenteille, kuten kaavioille, kuville jne., muuntaakseen ne vastaavaksi teksti tallennetaan sitten RAG-tukitietokantaan eri muodoissa. ColPali poistaa nämä vaiheet ja käyttää suoraan multimodaalisia malleja upotettavan sisällön luomiseen. Kun esität kysymyksiä, voit vastata suoraan asiakirjan kaavioiden perusteella:



ColPali-mallin koulutus on samanlainen kuin ColBERT, jossa käytetään myös kysely-asiakirja-sivuparien muotoa kyselyn ja asiakirjan multimodaalisen datan välisen semanttisen yhteyden kaappaamiseen, mutta PaliGemmaa [viite 10] käytetään multimodaalisen upotuksen luomiseen. Verrattuna BiPaliin, joka ei käytä Late Interaction -mekanismia, mutta käyttää myös PaliGemmaa upotuksen luomiseen, nDCG@5:n arviointiindeksivertailu on 81.3 vs. 58.8 Tämä ero on "erinomainen" ja "ei toimi ollenkaan".



Tästä syystä, vaikka ColBERT:n ilmestymisestä on kulunut 4 vuotta, Late Interaction -mallin soveltaminen RAG:ssa on ehdottomasti alkanut laajentaa RAG:n käyttöskenaarioita ja tarjota korkealaatuista semanttista palautusta monimutkaisissa RAG-kohtauksissa. Infinity on jo valmis päästä päähän -sovellukseen. Tervetuloa seuraamaan Star Infinityä, https://github.com/infiniflow/infinity, ja on sitoutunut olemaan paras tekoälyn natiivitietokanta.

viittauksia

1. Colbert: Tehokas ja tehokas kohtien haku kontekstualisoidun myöhäisen vuorovaikutuksen kautta Bertin kautta, SIGIR 2020.

2. Colbertv2: Tehokas ja tehokas haku kevyen myöhäisen vuorovaikutuksen avulla, arXiv:2112.01488, 2021.

3. RAGatouille https://github.com/bclavie/RAGatouille

4. Tehokas monivektoritiheyshaku bittivektoreilla, ECIR 2024.

5. https://huggingface.co/mteb

6. https://huggingface.co/BAAI/bge-m3

7. https://huggingface.co/jinaai/jina-colbert-v1-en

8. https://github.com/infiniflow/infinity/tree/main/python/benchmark/mldr_benchmark

9. ColPali: Tehokas asiakirjojen haku visiokielimalleilla, arXiv:2407.01449, 2024.

10. https://github.com/google-research/big_vision/tree/main/big_vision/configs/proj/paligemma