Kako raditi s predmemoriranjem u LangChainu?

Kako Raditi S Predmemoriranjem U Langchainu



Predmemoriranje je proces pohranjivanja i dohvaćanja najnovijih ili često korištenih podataka iz modela tako da se ne moraju cijelo vrijeme ponovno izračunavati. Tekstualne ugradnje mogu se koristiti za pretvaranje tekstualnih podataka u brojeve, a primjenom tehnika predmemoriranja na njih može se poboljšati učinkovitost modela. LangChain omogućuje programerima da izgrade model predmemoriranja pomoću biblioteke CacheBackedEmbeddings.

Ovaj će post demonstrirati proces rada s predmemoriranjem u LangChainu.







Kako raditi s predmemoriranjem u LangChainu?

Predmemoriranje u LangChainu na modelima za ugrađivanje teksta može se koristiti putem različitih skupova podataka poput korištenja vektorske pohrane, podataka u memoriji ili podataka iz datotečnih sustava. Primjenom metoda predmemorije može se brzo dobiti izlaz, a model može učinkovitije primijeniti pretraživanja sličnosti podataka.



Da biste naučili proces rada s predmemoriranjem u LangChainu, jednostavno prođite kroz navedene korake:



Korak 1: Instalirajte module
Prvo započnite proces rada s predmemoriranjem instaliranjem potrebnih modela, prvi ovdje je LangChain koji sadrži sve potrebne biblioteke za proces:





pip instalirati langchain

Modul FAISS potreban je za izvođenje pretrage sličnosti za izdvajanje ili generiranje izlaza na temelju unosa koje daje korisnik:



pip instalirati faiss-gpu

Posljednji modul za ovaj vodič koji je potrebno instalirati je OpenAI koji se može koristiti za stvaranje umetanja podataka pomoću metode OpenAIEmbeddings():

pip instalirati openai

Nakon instalacije svih modula, jednostavno postavite okruženje pomoću API ključa iz okruženja OpenAI koristeći ' vas ' i ' getpass ” knjižnice:

uvezi nas
import getpass

os.okolina [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API ključ:' )

Korak 2: Uvoz biblioteka
Nakon što je postavljanje dovršeno, jednostavno uvezite biblioteke za rad s tehnikama predmemoriranja u LangChain:

iz langchain.storage import InMemoryStore
iz langchain.embeddings uvozi CacheBackedEmbeddings
iz langchain.storage uvoz LocalFileStore
iz langchain.embeddings uvozi OpenAIEmbeddings
iz langchain.document_loaders uvesti TextLoader
iz langchain.embeddings.openai uvozi OpenAIEmbeddings
iz langchain.text_splitter uvozi CharacterTextSplitter
iz langchain.vectorstores uvoz FAISS

Korak 3: Izrada modela predmemoriranja
Nakon uvoza biblioteka, jednostavno pozovite metodu OpenAIEmbeddings() da biste izgradili model i pohranili ga u varijablu:

underlying_embeddings = OpenAIEembeddings ( )

Sada primijenite predmemoriju pomoću metode LocalFileStore() i metode CacheBackedEmbeddings() s višestrukim argumentima:

fs = LocalFileStore ( './cache/' )

cached_embedder = CacheBackedEmbeddings.from_bytes_store (
temeljne_ugradnje, fs, imenski prostor =podložne_ugradnje.model
)

Jednostavno nabavite popis ugrađivanja i za sada je popis prazan jer ugrađivanja nisu pohranjena na popisu:

popis ( fs.ključevi_prinosa ( ) )

Korak 4: Stvaranje vektorske trgovine
Preuzmite datoteku iz lokalnog sustava pomoću biblioteke datoteka i kliknite na ' Odaberite Datoteke ” nakon izvršavanja koda:

iz datoteka za uvoz google.colab
učitano = datoteke.upload ( )

Sada jednostavno stvorite vektorsku pohranu koja se može koristiti za pohranjivanje umetanja pomoću metode TextLoader() s nazivom dokumenta. Nakon toga primijenite metode razdjelnika teksta s veličinom dijelova i podijelite podatke u manje dijelove:

raw_documents = TextLoader ( 'state_of_the_union.txt' ) .opterećenje ( )
text_splitter = CharacterTextSplitter ( veličina_komadka = 1000 , komad_preklapanja = 0 )
dokumenti = text_splitter.split_documents ( sirovi_dokumenti )

Nakon razdvajanja teksta, pohranite podatke u db varijablu pomoću FAISS biblioteke da biste dobili izlaz pomoću metode pretraživanja sličnosti:

db = FAISS.iz_dokumenata ( dokumenti, cached_embedder )

Sada ponovno dohvatite popis ugrađivanja nakon što ih pohranite u bazu podataka i ograničite izlaz na samo 5 indeksa:

popis ( fs.ključevi_prinosa ( ) ) [ : 5 ]

Korak 5: Korištenje predmemorije u memoriji
Sljedeće predmemoriranje može se koristiti kroz metode InMemoryStore() za definiranje varijable pohrane:

trgovina = InMemoryStore ( )

Izgradite model predmemoriranja pomoću metoda OpenAIEmbeddings() i CacheBackedEmbeddings() s modelom, pohranom i prostorom naziva kao parametrima:

underlying_embeddings = OpenAIEembeddings ( )
embedder = CacheBackedEmbeddings.from_bytes_store (
temeljne_ugradnje, pohrana, imenski prostor =podložne_ugradnje.model
)

Primijenite ugradnje na pohranjeni dokument bez upotrebe umetanja predmemorije da biste dobili podatke iz dokumenta:

embeddings = embedder.embed_documents ( [ 'zdravo' , 'Doviđenja' ] )

Sada primijenite predmemoriju na ugradnje kako biste brzo dohvatili podatke iz dokumenata:

embeddings_from_cache = embedder.embed_documents ( [ 'zdravo' , 'Doviđenja' ] )

Pohranite predmemorirana ugrađivanja u varijablu ugrađivanja tako da varijabla ugrađivanja ima pohranjena predmemorirana ugrađivanja:

embeddings == embeddings_from_cache

Korak 6: Korištenje predmemorije sustava datoteka
Posljednja metoda za primjenu predmemoriranja u ugrađivanjima iz dokumenta test_cache pomoću Store System File:

fs = LocalFileStore ( './test_cache/' )

Primijenite ugradnje pomoću metode CacheBackedEmbeddings() s modelom ugradnje, pohranom podataka i prostorom imena kao parametrima:

embedder2 = CacheBackedEmbeddings.from_bytes_store (
temeljne_ugradnje, fs, imenski prostor =podložne_ugradnje.model
)

Upotrijebite varijablu ugrađivanja s predmemoriranim podacima pohranjenim u njoj za poziv metode embedder():

ugradnje = embedder2.embed_documents ( [ 'zdravo' , 'Doviđenja' ] )

Sada nabavite ugradnje za gornja dva svijeta spomenuta kao parametri:

popis ( fs.ključevi_prinosa ( ) )

To je sve o procesu izgradnje i rada s predmemoriranjem u LangChainu.

Zaključak

Za rad s tehnikama predmemoriranja za ugradnje u LangChain jednostavno nabavite potrebne module pomoću naredbe pip kao što su FAISS, OpenAI itd. Nakon toga uvezite biblioteke za izgradnju i rad s predmemoriranjem u LangChainu. Učinkovito pohranjuje ugradnje u različitim trgovinama. Programeri mogu koristiti više pohrana kao baze podataka za pohranu umetanja poput vektorskih pohrana, datotečnih sustava ili pohrana u memoriji. Ovaj vodič demonstrira proces rada s predmemorijom u LangChainu.