paint-brush
Embeddings mpo na RAG - Botali ya mozindo ya mobimbapene@aibites
Lisolo ya sika

Embeddings mpo na RAG - Botali ya mozindo ya mobimba

pene Shrinivasan Sankar9m2024/11/30
Read on Terminal Reader

Molai mingi; Mpo na kotánga

Bokotisi ezali litambe ya motuya pe ya moboko pona kotonga pipeline ya Retrieval Augmented Generation(RAG). BERT na SBERT ezali ba modèles ya intégration ya sika. Ba transformateurs ya Sentence ezali bibliothèque ya python oyo e mettre en œuvre ba modèles nionso mibale. Lisolo oyo ezali kozinda na mozindo na kati ya théorie mpe na misala ya maboko
featured image - Embeddings mpo na RAG - Botali ya mozindo ya mobimba
Shrinivasan Sankar HackerNoon profile picture

Lisolo oyo ebandi na ba transformateurs mpe etali ba manques na yango lokola modèle ya intégration. Na sima epesi aperçu ya BERT pe ba plongées profondes na Sentence BERT (SBERT) oyo ezali état-de-art na ba embeddings ya phrase pona ba LLM pe ba pipelines RAG.

Ndimbola oyo emonanaka na miso

Soki ozali moto ya komona lokola ngai mpe olingi kotala ndimbola ya komona, tala video oyo:

Ba transformateurs ya ba transformateurs

Ba transformateurs bazali na besoin ya introduction te. Atako na ebandeli esalemaki mpo na misala ya kobongola minɔkɔ, ezali bampunda oyo etambwisaka nsima ya pene na ba LLM nyonso lelo oyo.


Na niveau ya likolo, bazali composés na deux blocs — encodeur na décodeur. Bloc ya encodeur ezuaka entrée pe ebimisaka representation ya matrice. Bloc ya décodeur ezuaka sortie ya encodeur ya suka pe ebimisaka sortie. Ba blocs ya encodeur na décodeur ekoki kozala composés na ba couches ebele, atako transformateur original ezali na 6 couches na bloc moko na moko.


Ba couches nionso ezali composées ya multi-tête auto-attention. Kasi, bokeseni bobele moko kati na encodeur mpe décodeur ezali ete sortie ya encodeur epesamaka na couche moko na moko ya décodeur. Na oyo etali ba couches ya attention, ba couches ya attention ya décodeur ezali masquée. Donc, sortie na position nionso ezali influencé na sortie na ba positions ya kala.


Bloc ya encodeur na décodeur ezali lisusu composé na norme ya couche na ba couches ya réseau neuronal feed-forward.


Na bokeseni na ba modèles ya kala lokola ba RNN to ba LSTM oyo e traité ba jetons indépendamment, puissance ya ba transformateurs ezali na makoki na bango ya ko capter contexte ya jeton moko na moko na oyo etali séquence mobimba. Na yango, ezuaka contexte mingi soki tokokanisi yango na architecture nionso ya kala oyo ebongisamaki mpo na traitement ya langue.

Nini Ezali Mabe Na ba Transformateurs?

Ba transformateurs ezali ba architectures oyo elongi mingi oyo ezali ko diriger révolution ya AI lelo oyo. Na yango, bakoki kolakisa ngai porte soki namonisi ndelo na yango. Kasi, mpo na koloba solo, mpo na kokitisa ba frais ya calcul, ba couches ya attention na yango esalemi kaka mpo na ko attendir ba jetons ya kala. Yango ezali malamu mpo na misala mingi. Kasi ekoki kozala ekoki te mpo na mosala lokola koyanola na mituna. Tózwa ndakisa oyo ezali awa na nse.


John ayaki elongo na Milo mpo na fɛti yango. Milo asepelaki mingi na fɛti yango. Azali mbwa kitoko, ya mpɛmbɛ oyo ezali na nsuki.


Tóloba ete totuni motuna oyo, “Milo amɛlaki na fɛti elongo na John?” Kaka na kotalela bafraze 2 ya liboso na ndakisa oyo ezali awa na likoló, ezali mpenza na likoki ete LLM ekoyanola ete, “Na kotalela ete Milo asepelaki mingi emonisi ete Milo amɛlaki na fɛti yango.”


Kasi, modèle oyo a former na contexte avant akozala conscient ya 3ème phrase oyo ezali, “Azali mbwa kitoko, amical ”. Mpe bongo, akoyanola, “Milo azali mbwa, mpe bongo ezali mbala mosusu te ete amɛlaki na fɛti.”


Atako oyo ezali ndakisa ya hypothétique, ozwi likanisi yango. Na mosala ya koyanola na mituna, koyekola ezala contexte ya liboso mpe ya sima ekomi na ntina mingi. Oyo nde esika modèle ya BERT ekoti.

BERT

BERT ezali na nkombo ya ba Représentations ya Encodeurs Bidirectionnels oyo euti na ba Transformateurs. Ndenge kombo yango emonisi yango, esalemi na ba Transformers, mpe esangisi contexte ya liboso mpe ya sima. Atako ebimisamaki na ebandeli mpo na misala lokola koyanola na mituna mpe bokuse, ezali na makoki ya kobimisa ba embeddings ya nguya mpo na lolenge na yango ya bidirectionnel.

Modèle ya BERT

BERT ezali eloko mosusu te kaka ba encodeurs ya transformateur oyo ekangami esika moko na molongo. Différence ezali kaka que BERT esalelaka bidirectional auto-attention , alors que transformateur ya vanille esalelaka auto-attention constreint esika jeton nionso ekoki kaka ko attendir contexte oyo ezali na gauche na yango.


Liyebisi: molongo vs fraze. Kaka note moko na terminologie pona ko éviter confusion tango ozali kosala na modèle ya BERT. Fraze ezali molɔngɔ́ ya maloba oyo ekabwani na bilembo. Molɔngɔ́ ekokaki kozala motángo nyonso ya bafraze oyo etandami esika moko.


Mpo na kososola BERT, tozwa ndakisa ya koyanola na mituna. Lokola koyanola na mituna esangisi ata bafraze mibale, BERT ebongisami mpo na kondima masakola mibale na format <eyano-motuna>. Yango ememaka na ba jetons ya séparateur lokola [CLS] oyo elekisami na ebandeli mpo na kolakisa ebandeli ya molongo. Na nsima, basalelaka elembo [SEP] mpo na kokabola motuna mpe eyano.


Donc, entrée simple ekomi sikoyo, [CLS]<question>[SEP]<answer>[SEP] ndenge elakisami na figure oyo ezali awa na se.

Ba phrases mibale A na B elekisamaka na modèle ya intégration ya WordPiece sima ya ko inclure ba jetons [CLS] na [SEP]. Lokola tozali na ba phrases mibale, modèle esengeli na ba embeddings ya kobakisa mpo na ko différencier yango. Yango eyaka na lolenge ya ba embeddings ya segment na position.


Embedding ya segment oyo elakisami na vert na se elakisi soki ba jetons ya entrée ezali ya phrase A to B. Na sima ekoya embedding ya position oyo elakisaka position ya jeton moko na moko na séquence.

Figure ezuami na papier BERT oyo ezali kolakisa représentation ya entrée ya modèle.


Ba embeddings nionso misato esangisi esika moko pe epesamaka na modèle BERT oyo ezali bidirectionnel ndenge elakisami na figure ya liboso. Ezali kokanga kaka te contexte ya liboso kasi mpe contexte ya sima liboso ya kopesa biso ba sorties mpo na jeton moko na moko.

Pré-Formation BERT

Ezali na banzela mibale oyo modèle ya BERT epesameli formasyo liboso na kosalelaka misala mibale oyo etalelami te :

  • Modèle ya langue masquée(MLM). Awa tozali ko masquer mua pourcentage ya ba jetons na sequence pe totiki modèle e prédire ba jetons masqués. Eyebani pe na kombo ya mosala ya cloze . Na pratique, 15% ya ba jetons ezali masqué pona musala oyo.

  • Bosakoli ya fraze oyo elandi(NSP). Awa, tozali kosala ete modèle esakola fraze oyo ekolanda na molongo. Tango nionso fraze ezali oyo elandi ya solo, tosalelaka étiquette IsNext mpe tango ezali te, tosalelaka étiquette NotNext .

    Pré-formation ya modèle BERT na ba jetons NSP na MLM na sortie.


Ndenge ekoki komonana na figure oyo ezali likolo uta na papier, jeton ya liboso ya sortie esalelami pona mosala ya NSP pe ba jetons na kati oyo ezali masqué esalelami pona mosala ya MLM.


Lokola tozali kosala formation na niveau ya jeton, jeton moko na moko ya entrée ebimisaka jeton ya sortie. Lokola na mosala nyonso ya botangi, bobungisi ya entropie croisée esalelamaka mpo na kopesa mateya na modèle.

Nini Ezali Mabe Na BERT?

Atako BERT ekoki kozala malamu mpo na kokanga makambo oyo ezali liboso mpe nsima, ekoki kozala malamu te koluka bokokani kati na bankóto ya bafraze. Tótalela mosala ya koluka mibale ya bafraze oyo ekokani mingi na kati ya liboke monene ya bafraze 10 000. Na maloba mosusu, tokolinga “kozwa” fraze oyo ekokani mingi na fraze A na kati ya bafraze 10.000.


Pona kosala yango, esengeli to pair combinaison nionso possible ya 2 phrases à partir ya 10.000. Yango ekozala n * (n — 1) / 2 = 4 999 500 ba paires! Malédiction, wana ezali complexité quadratique. Ekozua modèle BERT 65 heures pona ko créer ba embeddings pe ko résoudre pona comparaison oyo.


Na pete, modèle ya BERT ezali malamu te pona boluki ya bokokani. Kasi bozui mpe boluki ya bokokani ezali na motema ya pipeline nionso ya RAG. Solution ezali na SBERT.

SBERT — Niveau ya fraze BERT

Limite ya BERT euti mingi mingi na architecture na yango ya croix-encodeur esika tozali koleisa ba phrases mibale esika moko na molongo na jeton [SEP] na kati. Soki kaka fraze mokomoko esengelaki kotalelama na ndenge ekeseni, tokokaki kosala ba calculs liboso ya ba embeddings mpe kosalela yango mbala moko mpo na kosala calcul ndenge moko ndenge mpe ntango esengeli. Oyo ezali exactement proposition ya Frase BERT to SBERT na mokuse.


SBERT ekotisi réseau Siamese na architecture ya BERT. Liloba yango elimboli mapasa to oyo ezali na boyokani makasi.

Ndimbola ya Siamese ezwami na dictionary.com


Donc, na SBERT tozali na réseau ya BERT moko oyo ekangami na « mapasa ». Modèle yango ekɔtisaka fraze ya liboso oyo elandi na oyo ya mibale na esika ya kosala na yango na molɔngɔ.

Note: Ya ngo pratique assez commun ya ko benda 2 réseau côté à côté pona ko visualiser ba réseaux siamés. Mais en pratique, ya ngo réseau moko kozua deux entrées différentes.

SBERT Architecture ya mosala

Na se ezali na diagramme oyo epesi botali ya architecture ya SBERT.

Architecture ya réseau Siamese na objectif ya classification pona perte. Ba sorties U na V oyo ewutaka na ba branches mibale ekangami elongo na différence na yango

.

Ya liboso, tokoki komona ete SBERT ekotisi couche ya pooling noki sima ya BERT. Yango ekitisaka dimension ya sortie ya BERT mpo na kokitisa calcul. BERT mingi mingi ebimisaka ba sorties na 512 X 768 dimensions. Couche ya pooling ekitisaka yango na 1 X 768. Pooling par défaut ezali moyenne atako pooling moyenne na max esalaka mosala.


Na sima, totala approche ya formation esika SBERT e diverger na BERT.

Pré-Formation ya liboso

SBERT a proposer ba façons misato ya ko former modèle. Tótala mokomoko na bango.


Inférence ya monoko ya bozalisi (NLI) — Mokano ya botangi

SBERT ebongisami malamu na ba ensembles ya ba données ya Stanford Natural Language Inference (SNLI) mpe Multi-Genre NLI mpo na yango. SNLI ezali na ba paires ya ba phrases 570K mpe MNLI ezali na 430K. Ba paires ezali na prémisse (P) na hypothèse (H) oyo ememaka na moko ya 3 étiquettes :


  • Eltailment — prémisse epesi likanisi ya hypothèse
  • Neutre — prémisse na hypothèse ekokaki kozala vrai mais pas forcément lié
  • Contradiction — prémisse na hypothèse ezo contradir moko na mosusu


Na kotalaka ba phrases mibale P na H, modèle SBERT ebimisaka ba sorties mibale U na V. Na sima yango esanganami lokola (U, V na |U — V|).


Sortie concaténée esalelamaka pona ko former SBERT na Objectif ya Classification. Sortie concaténée oyo ezo alimenter na réseau neuronal Feed Forward na 3 sorties ya classe (Eltailment, Neutral, na Contradiction). Softmax cross-entry esalelamaka pona formation ndenge moko na ndenge to se former pona musala nionso ya classification.


Bokokani ya fraze — Objectif ya régression

Na esika ya ko concatener U na V, to calculer directement similarité ya cosine entre ba vecteurs mibale. Ndenge moko na problème nionso ya régression standard, tosalelaka perte ya erreur carré moyenne pona ko se former pona régression. Na tango ya inférence, réseau moko ekoki kosalelama directement pona ko comparer ba phrases nionso mibale. SBERT apesi score mpo na koyeba ndenge nini bafraze yango mibale ekokani.


Bokokani ya Triplet — Objectif ya Triplet

Objectif ya similarité triplet ekotisama liboso na reconnaissance ya elongi mpe e adapter malembe malembe na ba domaines misusu ya AI lokola texte na robotique.


Awa 3 entrées ezo alimenter na SBERT au lieu ya 2 — ancre, positif, na négatif. Esengeli kopona ensemble ya ba données oyo esalelami pona yango na ndenge esengeli. Mpo na kosala yango, tokoki kopona ba données ya texte nionso, mpe kopona ba phrases mibale oyo elandi lokola entailment positif. Na nsima, pona fraze moko ya kozanga kokana na paragrafe mosusu échantillon ya mabe.


Na nsima, ba calculer perte ya triplet na ko comparer ndenge nini positif ezali pene na ancre contre ndenge nini ezali pene na négatif.

Na maloba wana ya ebandeli ya BERT mpe SBERT, tosala loboko ya mbangu mpo na kososola lolenge nini tokoki kozwa ba embeddings ya (ba)fraze nyonso epesami na kosalelaka ba modèles oyo.

Maboko na maboko SBERT

Ata banda ebimaki, bibliothèque officielle ya SBERT oyo ezali sentence-transformer ezui popularité mpe e maturer. Ezali malamu mpo na kosalelama na ba cas d’utilisation ya production mpo na RAG. Na yango, tósalela yango libanda ya sanduku.


Mpo na kobanda, tobanda na installation na environnement ya sika ya sika ya Python.

 !pip install sentence-transformers


Ezali na ba variations ebele ya modèle SBERT oyo tokoki ko charger depuis bibliothèque. To charger modèle pona illustration.

 from sentence_transformers import SentenceTransformer model = SentenceTransformer('bert-base-nli-mean-tokens')


Tokoki kaka kosala liste ya ba phrases mpe ko invoquer fonction encode ya modèle mpo na kosala ba embeddings. Ezali pete boye!

 sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium.", ] embeddings = model.encode(sentences) print(embeddings.shape)


Et tozuaka tokoki koluka ba scores ya similarité entre ba embeddings en utilisant le bas 1 ligne:

 similarities = model.similarity(embeddings, embeddings) print(similarities)


Simbá ete bokokani kati na fraze moko ezali 1 ndenge ekanisamaki:

 tensor([[1.0000, 0.6660, 0.1046], [0.6660, 1.0000, 0.1411], [0.1046, 0.1411, 1.0000]])

Maloba ya nsuka

Kokɔtisa ezali likambo ya ntina mpe ya moboko mpo na kosala ete pipeline ya RAG esalaka na ndenge ya malamu koleka. Espoir wana ezalaki utile mpe efungolaki miso na yo lokola nini ezali koleka na se ya capote tango nionso tosalelaka ba transformateurs ya phrase libanda ya boîte.


Bozala na posa ya ba articles oyo ekoya na RAG na ba fonctionnement na yango ya kati couplé na ba tutoriels ya maboko trop.

L O A D I N G
. . . comments & more!

About Author

Shrinivasan Sankar HackerNoon profile picture
Shrinivasan Sankar@aibites
I am an AI Reseach Engineer. I was formerly a researcher @Oxford VGG before founding the AI Bites YouTube channel.

KOKANGA BA ÉTIQUES

ARTICLE OYO EZALAKI PRESENTE NA...