OpenAI või Cohere embedding: 0,6 punkti ei otsusta Eesti RAG-i valikut

|Autor: QUASA toimetus|5 min lugemist
OpenAI või Cohere embedding: 0,6 punkti ei otsusta Eesti RAG-i valikut

Eestikeelse RAG-i jaoks ei otsusta OpenAI text-embedding-3-large’i ja Cohere Embed v4 valikut Ailogi MTEB koondtabeli 65,2 ja 64,6 punkti. Vahe on 0,6 punkti, kuid tabel ei mõõda, kumb mudel leiab sinu eestikeelsest dokumendikogust õige lõigu sagedamini.

Kui kogu koosneb tekstist, on mõlemad mõistlikud katsekandidaadid. Piltidega dokumentide puhul võimaldab Cohere Embed v4 võrrelda ka teksti ja pilti sisaldavat sisendit; OpenAI mudeli jaoks tuleb pildis olev teave esmalt tekstiks muuta. Otsus peaks põhinema sama kogu päringutel mõõdetud leidmiskvaliteedil ja kogu otsinguahela kulul päringu kohta.

Koondskoor aitab kandidaate valida, mitte võitjat nimetada

MTEB koondab erinevaid embedding-ülesandeid, samal ajal kui RAG-i otsing peab leidma vastust sisaldava dokumendilõigu. Üldine tulemus ei kirjelda Eesti kasutajate küsimusi, kogu erialasõnavara ega olukorda, kus oluline teave asub joonisel. Ka MTEB versioonide ja keelepõhiste edetabelite tulemusi ei saa automaatselt üheks võrdluskatseks pidada.

Enne mõõtmist tuleb määrata, mida loetakse asjakohaseks leiuks. Seaduse puhul võib vastus sõltuda ühest sättest, kasutusjuhendis aga tekstist koos kõrval oleva skeemiga. Kui mõõtmise ühik on tekstilõik, peab mõlema mudeli otsing tagastama võrreldava lõigu; multimodaalse lehe leidmist tasub hinnata eraldi, sest selle sisend ja võimalik vastuse asukoht erinevad.

Sisendi piir ja vektori mõõde muudavad arhitektuuri

OpenAI embedding’u juhend annab text-embedding-3-large’i maksimaalseks sisendiks 8192 tokenit ja vaikimisi vektorimõõtmeks 3072; parameetriga dimensions saab vektorit lühendada. Sisendipiirist pikem dokument tuleb jagada, kuid lõigustamine on vajalik ka lühemate dokumentide puhul, kui otsing peab osutama täpsele vastusekohale. Väiksema vektori salvestuskasu tuleb võrrelda selle võimaliku mõjuga leidmiskvaliteedile.

Cohere’i Embed-mudelite kirjeldus annab embed-v4.0 kontekstipiiriks 128 000 tokenit, väljundmõõtudeks 256, 512, 1024 ja vaikimisi 1536 ning sisendiks teksti, pildid või nende segu. See lubab töödelda näiteks PDF-lehe teksti koos pildisisuga, kuid pikk kontekstipiir ei tähenda, et terve pikk dokument annaks otsinguks kasulikuma ühe vektori. Kui üks vektor esindab mitut eri teemat, võib konkreetset vastust sisaldav lõik jääda järjestuses tahaplaanile.

OpenAI text-embedding-3-large’i mudelilehel on sisendhinnaks 0,13 dollarit miljoni tokeni kohta ja pildisisend märgitud mittetoetatuks. Pildirohke PDF-i tekstipõhises töövoos tuleb seega arvestada teksti eraldamise või pildi kirjeldamisega. Selle töö kvaliteet mõjutab lõpptulemust sama otseselt kui embedding-mudeli valik.

Eestikeelne katse peab sisaldama päris otsinguraskusi

Cohere’i avalikus keelte loendis esineb eesti keel, kuid sealne loend on seotud varasema mitmekeelse Embed v3 mudeliga. Embed v4 eestikeelse otsingu paremust sellest järeldada ei saa. Ka OpenAI üldine kirjeldus mitteingliskeelsete ülesannete kohta ei ütle, kuidas mudel konkreetses Eesti dokumendikogus järjestab käändevorme või liitsõnu.

Katsepäringutes peaks olema päris kasutusele omaseid käändevorme, sünonüüme, lühendeid ja sõnu, mis esinevad küsimuses teisiti kui dokumendis. Kui osa dokumente on inglise keeles, moodusta eraldi rühm eestikeelsetest küsimustest, mille vastus asub ingliskeelses lõigus. Nii on näha, kas hea keskmine tulemus peidab nõrka leidmist just selles päringuliigis, millele rakendus peab vastama.

Korratav võrdlus algab märgendatud lõikudest

Praktiline lähtepunkt on vähemalt 100 tegelikule kasutusele sarnanevat päringut. Jaga need enne tulemuste vaatamist teemade ja päringuliikide järgi ning lisa küsimusi, millele kogus vastust ei ole. Viimased aitavad eraldi näha, kas süsteem pakub näiliselt sobivat lõiku olukorras, kus õiget vastust pole.

  1. Kasuta sama dokumendikogu ja määra ette lõikude piirid, pealkirjade kaasamine ning naaberteksti ulatus. Tekstipõhises katses peab mõlemale mudelile jõudma sama lähteinfo. Pildisisuga PDF-lehtede võrdlus moodustab eraldi katse, sest Cohere multimodaalne ja OpenAI tekstiks teisendatud sisend ei ole samad.
  2. Märgenda iga päringu jaoks asjakohased lõigud käsitsi. Kasulik on eristada ebaolulist, osaliselt kasulikku ja otsest vastust sisaldavat leidu. Hindamiseks koonda mõlema mudeli ning lihtsa märksõnaotsingu esimesed tulemused, et ühe mudeli väljund ei määraks üksi, milliseid lõike hinnatakse.
  3. Arvuta recall@5 ja recall@10 märgendatud asjakohaste lõikude suhtes. Lisa nDCG@10, mis arvestab ka tulemuse asukohta ja asjakohasuse astet: vastust sisaldav lõik loendi alguses on kasutajale väärtuslikum kui sama lõik kaugel allpool. Kui märgendatud on vaid süsteemide leidude ühendhulk, nimeta seda piiratud hindamiskogumikuks, mitte kogu korpuse täielikuks asjakohasusloendiks.
  4. Salvesta mudel, vektorimõõde, lõigustus, indeksi seaded, tokenite arv ja otsingu viivitus. Võrdle esmalt leidmist ilma lisajärjestajata; kui lisajärjestaja on rakenduse vajalik osa, kasuta mõlemal harul sama seadistust ja esita tulemus eraldi.

Koondtulemuse kõrval vaata päringurühmi ja üksikuid ebaõnnestumisi. Kui parem mudel muutub lõigupikkuse või vektorimõõdu muutmisel, on need valiku osa, mitte juhuslikult kõrvale jäetavad seaded. Kvaliteedilävi tasub määrata enne tulemuste nägemist, et väikest numbrilist edu ei peetaks tagantjärele piisavaks.

Miljoni dokumendi näide näitab, kuhu raha kulub

Ühe miljoni dokumendi tinglikus näites annab iga dokument ühe 500-tokenise lõigu: kokku saadetakse mudelisse 500 miljonit sisendtokenit. LiteLLM-i Cohere Embed v4 hinnakirje järgi on sisendhind 0,12 dollarit miljoni tokeni kohta. Nende eelduste korral maksaks ühekordne Cohere embedding ligikaudu 60 dollarit; eespool toodud OpenAI tariifiga oleks vastav summa 65 dollarit. See on ainult tekstisisendi arvutus, mitte pakkumine kogu RAG-süsteemi käitamiseks.

Vektorite salvestus võib selle näite API hinnavahe varju jätta. Kui iga dokument annab ühe vektori ja koordinaat salvestatakse 32-bitise arvuna, vajaks miljon Cohere vaikimisi 1536-mõõtmelist vektorit ligikaudu 6,14 GB ning miljon OpenAI vaikimisi 3072-mõõtmelist vektorit ligikaudu 12,29 GB. Tegelikule mahule lisanduvad indeks ja metaandmed; OpenAI lühendatud mõõtmega konfiguratsiooni saab võrrelda eraldi sama kvaliteediprotokolli järgi.

Ühe päringu kogukulu hõlmab päringu embedding’ut, vektorotsingut, võimalikku lisajärjestamist ja vastust koostavat mudelit. Dokumentide muutumisel lisandub korduv indekseerimine. Multimodaalses harus tuleb arvesse võtta ka pildisisu töötlemist ning selle viivitust; ainult teksttokeni hinnast ei saa selle haru maksumust välja lugeda.

Tekstipõhise eestikeelse kogu jaoks on mõistlik valida mudel, mis täidab ette määratud leidmiskvaliteedi nõude väiksema kogukuluga päringu kohta. Kui vastused asuvad sageli PDF-lehtede joonistel või muus pildisisus, saab Cohere multimodaalset haru võrrelda OpenAI tekstiks teisendatud haruga samade küsimuste alusel. Mõõdetud kvaliteedi lähedase tulemuse korral muutuvad otsustavaks vektori maht, viivitus ja dokumentide uuendamise sagedus.

Loe ka:

Jaga:

Telli meie uudiskiri

Saa värskeimad Web3, AI ja krüptouudised otse oma postkasti.

0