Haku

Mikä on LLM-noudin, ja mitä monikielistä upotusmallia minun tulisi käyttää?

Noudin yhdistää upotusmallin, joka muuntaa tekstin vektoreiksi, ja uudelleenjärjestäjän, joka pisteyttää tekstikatkelmia. multilingual-e5-large on MIT-lisensoitu ja käyttää 512 tokenin paloja; embeddinggemma-300m ottaa 2048 tokenia.

Kaksi tehtävää, kaksi eri mallia

Noudin ei ole yksi malli. Katkelman löytäminen omista asiakirjoistasi vaatii ensin esitys- ja sitten järjestelymallin: upotusmalli muuntaa tekstin vektoreiksi, jotta samankaltaisuushaku voi lyhentää ehdokaslistaa, ja uudelleenjärjestäjä pisteyttää lyhennetyn katkelman kyselyä vastaan, jotta paras niistä päätyy kehotteeseen. Generaattori on kolmas vaihe, ja se on ainoa vaihe, joka puhuu OpenAI-chat-muotoa.

Molemmat mallityypit löytyvät tästä luettelosta täydellisine kortteineen, ja molemmat on merkitty ei-ohjeistetuiksi, koska kumpaakaan ei ole koulutettu noudattamaan pyyntöä. Upotusmalli palauttaa vektorin; uudelleenjärjestäjä palauttaa relevanssipisteen. Kysy kummaltakin kysymys, eikä vastausta ole antaa.

multilingual-e5-large: oletusarvoinen eurooppalainen valinta

multilingual-e5-large on 560 miljoonan parametrin tekstin upotusmalli, joka on rakennettu XLM-RoBERTa-arkkitehtuurin päälle, julkaistu MIT-lisenssillä ja kattaa noin sata kieltä. Kaksi tallennettua yksityiskohtaa määräävät sen käytön. Sen mallikortti käyttää maksimisekvenssipituutta 512 tokenia, mikä on tehokas raja sekä indeksoinnille että kyselyille. Ja sillä ei ole ohjeprefiksiä kyselyille, joten asiakirjat ja kyselyt on upotettava samalla tavalla – ei kyselypuolen mallia, ei etuliitettä, jonka unohdat toisella kahdesta polusta.

MIT-lisenssi on syy, miksi säännellyissä ympäristöissä toimivat tiimit aloittavat tästä: se on salliva ja lyhyt. 512 tokenin yläraja on syy, miksi ne mitoittavat palansa noin 400–500 tokeniin generaattorin konteksti-ikkunan sijaan.

embeddinggemma-300m: pidempi syöte, suuremmat vektorit

embeddinggemma-300m on pienempi parametreiltaan – 308 miljoonaa – ja suurempi siinä, mitä se hyväksyy: maksimisyötepituus 2048 tokenia ja 768-ulotteinen tuloste, jonka Matryoshka-esitysoppiminen antaa sinun katkaista 512, 256 tai 128 ulottuvuuteen ilman uudelleenkoulutusta. Mallikortti ilmoittaa koulutusdatan yli sadalla puhutulla kielellä.

Kortissa mainittu kompromissi on lisenssi. Se toimitetaan Googlen Gemma-käyttöehtojen eikä OSI-lisenssin alaisena, ja kortti sanoo sen suoraan. Jos tuotepäätöksesi vaatii sallivan lisenssin, tämä yksittäinen rivi on ratkaiseva tosiasia, ei vertailutaulukko. Jos ei, 2048 tokenin syöte muuttaa palastelutapaa: vähemmän, pidempiä katkelmia ja vähemmän kontekstia menetettynä rajalla.

Uudelleenjärjestäjät: edullinen laadunparannus

Molemmat tässä olevat uudelleenjärjestäjät ovat ristiinkoodaajia. Ne eivät voi upottaa indeksiä eivätkä ne voi generoida tekstiä; ne ottavat kyselyn ja katkelman yhdessä ja tuottavat pisteen, mikä sijoittaa ne vektorihakujen jälkeen, ei koskaan niiden sijaan.

gte-multilingual-reranker-base sisältää 305 miljoonaa parametria Apache-2.0-lisenssillä, syöttörajan 8192 tokenia ja 75 ilmoitettua kieltä, ja sen kortissa mainitaan, että julkaistut esimerkit katkaisevat syötteet 512 tokeniin, ellet määritä toisin. llama-nemotron-rerank-1b-v2 on suurempi, 1,24 miljardia parametria OpenMDW-1.1-lisenssillä, se on arvioitu 26 kielellä, toimii jopa 8192 tokeniin asti, eikä sen mallikortissa ole julkaistua vertailupistettä.

Näistä riveistä seuraa kaksi käytännön seurausta. Järjestäminen on yksi eteenpäinsyöttö per ehdokas, joten syötä uudelleenjärjestäjälle vektorihakujen lyhyt lista koko indeksin sijaan. Ja kielilista on väite arvioinnista, ei takuu: kysely- ja asiakirjapari, joka on kortin ilmoitettujen kielten ulkopuolella, on vahvistamaton kyseiselle mallille, mikä on syy testata omalla korpuksellasi pikemminkin kuin olettaa epäonnistumista.

API-puoli tässä käyttöönotossa

Upotus on oma reittinsä, ja se tarvitsee isännöidyn upotusmallin. Tässä rakennelmassa deterministinen paikallinen taustaohjelma palauttaa vektorit ja vastaus sisältää pilkkamerkinnän, koska todellisia upotuspainoja ei tarjoilla tässä käyttöönotossa. Tämä ilmoitus on tarkoituksella vastausrungossa: vektori, joka näyttää todelliselta ja tuli korvikkeelta, olisi pahin mahdollinen asia toimittaa. Vektori-indeksi itsessään on sinun ajettavissasi – tämä alusta upottaa, se ei tallenna vektoreitasi.

Haku tehtävänä on ensiluokkainen arvo pyynnössä: chat-kutsu voi sisältää rag-tehtävän standardikenttien lisäksi, ja reititin pisteyttää ehdokkaita sille kontekstin pituuden ollessa hallitseva termi. Malli, jolla on vain haku-tagi mutta joka ei pysty pitämään paloja, ei saa voittaa, minkä vuoksi ehdokas, jonka dokumentoitu ikkuna on alle 8k tokenia, saa paljon huonommat pisteet kuin sellainen, joka sopii.

Palastele ketjun pienimmän rajan mukaan

Yhden hakulinjan rajat ovat 512, 2048 ja 8192 tokenia, ja pienin niistä hallitsee. Upota multilingual-e5-large-mallilla, ja 900 tokenin pala katkaistaan upotuksen aikana, hiljaisesti, riippumatta siitä, kuinka hyvä generaattori on sen jälkeen. Aseta palan pituus upotuskortista, ei generaattorin konteksti-ikkunasta, ja muista, että uudelleenjärjestäjä näkee kyselyn ja katkelman yhtenä syötteenä, joten molemmat puoliskot jakavat sen 8192 tokenin budjetin.

Yksi raja koko putkelle

Haku rikkoo residenssilupauksen kerros kerrokselta. Kysely saavuttaa upotusmallin, katkelmat saavuttavat uudelleenjärjestäjän, koottu kehote saavuttaa generaattorin – ja jos jokin näistä toimii paikassa, jota et luvannut, lupaus on jo rikottu, vaikka chat-kutsu itsessään olisi reititetty oikein. Tästä seuraava sääntö on pitää kaikki kolme vaihetta saman rajan sisällä.

Tällä alustalla mekanismi on suodatin eikä preferenssi: residenssiä sovelletaan ennen pisteytystä, vikasietoisuus ei voi poistua suodatetusta joukosta, eikä vahvistamaton luokka ole lainkaan osoitettavissa oleva residenssi. Kun mikään ei täytä sääntöä, pyyntö palauttaa 409 no_endpoint_for_policy -virheen läheisen vastauksen sijaan.

Usein kysytyt kysymykset

Millä monikielisellä upotusmallilla minun tulisi aloittaa?

multilingual-e5-large, jos MIT-lisenssi, noin sata ilmoitettua kieltä ja 512 tokenin palat sopivat korpukseesi: siinä on 560 miljoonaa parametria, se käyttää 512 tokenin maksimisekvenssipituutta eikä siinä ole ohjeprefiksiä, joten asiakirjat ja kyselyt on upotettava samalla tavalla. embeddinggemma-300m, jos tarvitset 2048 tokenin syötteen tai 768-ulotteisen vektorin, jonka voit katkaista 512, 256 tai 128 ulottuvuuteen – 308 miljoonaa parametria, mutta Googlen Gemma-käyttöehtojen eikä OSI-lisenssin alaisena. Kumpikaan kortti ei sisällä LLM EU:n suorittamaa hakuvertailua.

Tarvitsenko uudelleenjärjestäjän (reranker) upotusmallin lisäksi?

Niillä on eri tehtävät, joten uudelleenjärjestäjä ei korvaa upotusmallia. Molemmat tässä mainitut uudelleenjärjestäjät ovat ristiinkoodaajia: gte-multilingual-reranker-base sisältää 305 miljoonaa parametria Apache-2.0-lisenssillä, sen syöttöraja on 8192 tokenia ja siinä on 75 ilmoitettua kieltä. Llama-nemotron-rerank-1b-v2 sisältää 1,24 miljardia parametria OpenMDW-1.1-lisenssillä ja se on arvioitu 26 kielellä. Ne pisteyttävät kyselyn suhteessa tekstikatkelmaan eivätkä voi upottaa indeksiä. Putkessa ne tulevat vektorihakujen jälkeen, ja hakutehtävän huomautus osoittaa, että uudelleenjärjestäjällä on usein yhtä suuri merkitys kuin generaattorilla.

Tarjoaako tämä alusta upotuksia ja vektoritietokannan?

Upotusreitti on olemassa ja vaatii isännöidyn upotusmallin. Tässä rakennelmassa deterministinen paikallinen taustaohjelma palauttaa vektorit ja vastaus sisältää pilkkamerkinnän, koska todellisia upotuspainoja ei tarjoilla tässä käyttöönotossa. Vektori-indeksi on sinun käytettävissäsi: alusta upottaa tekstiä, se ei tallenna vektoreitasi tai tarjoa samankaltaisuushakua. Chat-pyyntö voi sisältää tehtävän rag, ja reititin suosii silloin generaattoria, jonka dokumentoitu konteksti-ikkuna voi todella sisältää palasesi, mieluummin kuin sellaista, joka vain sisältää hakutunnisteen.