Ukladanie do vyrovnávacej pamäte je proces ukladania a získavania najnovších alebo často používaných údajov z modelu, takže ich nie je potrebné neustále prepočítavať. Vloženie textu možno použiť na konverziu textových údajov na čísla a použitie techník ukladania do vyrovnávacej pamäte môže zlepšiť efektivitu modelu. LangChain umožňuje vývojárom zostaviť model ukladania do vyrovnávacej pamäte pomocou knižnice CacheBackedEmbeddings.
Tento príspevok bude demonštrovať proces práce s vyrovnávacou pamäťou v LangChain.
Ako pracovať s ukladaním do vyrovnávacej pamäte v LangChain?
Ukladanie do vyrovnávacej pamäte v LangChain na modeloch vkladania textu možno použiť prostredníctvom rôznych množín údajov, ako je použitie vektorového úložiska, údajov v pamäti alebo údajov zo súborových systémov. Použitie metód vyrovnávacej pamäte môže získať výstup rýchlo a model môže efektívnejšie aplikovať vyhľadávanie podobností na údaje.
Ak sa chcete naučiť proces práce s vyrovnávacou pamäťou v LangChain, jednoducho prejdite uvedenými krokmi:
Krok 1: Nainštalujte moduly
Najprv začnite proces práce s vyrovnávacou pamäťou inštaláciou požadovaných modelov, prvým je LangChain, ktorý obsahuje všetky potrebné knižnice pre tento proces:
pip Inštalácia langchain
Modul FAISS je potrebný na vykonanie podobnostného vyhľadávania na extrakciu alebo generovanie výstupu na základe vstupu poskytnutého používateľom:
pip Inštalácia faiss-gpu
Posledný modul pre túto príručku, ktorý je potrebné nainštalovať, je OpenAI, ktorý možno použiť na vytvorenie vloženia údajov pomocou metódy OpenAIEmbeddings():
pip Inštalácia openai
Po inštalácii všetkých modulov stačí nastaviť prostredie pomocou API kľúča z prostredia OpenAI pomocou „ vy “ a „ getpass “knižnice:
importujte násimportovať getpass
os.environ [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API Key:' )
Krok 2: Importovanie knižníc
Po dokončení nastavenia jednoducho importujte knižnice na prácu s technikami ukladania do vyrovnávacej pamäte v LangChain:
z langchain.embeddings importovať CacheBackedEmbeddings
z langchain.storage importujte LocalFileStore
z langchain.embeddings importovať OpenAIEmbeddings
z langchain.document_loaders importujte TextLoader
z langchain.embeddings.openai importovať OpenAIEmbeddings
z langchain.text_splitter importujte CharacterTextSplitter
z langchain.vectorstores import FAISS
Krok 3: Vytvorenie modelu ukladania do vyrovnávacej pamäte
Po importovaní knižníc jednoducho zavolajte metódu OpenAIEmbeddings() na zostavenie modelu a jeho uloženie do premennej:
Teraz použite vyrovnávaciu pamäť pomocou metódy LocalFileStore() a metód CacheBackedEmbeddings() s viacerými argumentmi:
fs = LocalFileStore ( './cache/' )cached_embedder = CacheBackedEmbeddings.from_bytes_store (
podkladové_embeddings, fs, menný priestor =podkladové_embeddings.model
)
Stačí získať zoznam vložení a zatiaľ je zoznam prázdny, pretože vloženia nie sú uložené v zozname:
zoznam ( fs.yield_keys ( ) )
Krok 4: Vytvorenie Vector Store
Získajte súbor z lokálneho systému pomocou knižnice súborov a kliknite na „ Vyberte Súbory “ po vykonaní kódu:
nahrané = súbory.nahrať ( )
Teraz jednoducho vytvorte vektorový obchod, ktorý možno použiť na ukladanie vložených prvkov pomocou metódy TextLoader() s názvom dokumentu. Potom použite metódy rozdeľovania textu s veľkosťou častí a rozdeľte údaje na menšie časti:
raw_documents = TextLoader ( 'state_of_the_union.txt' ) .naložiť ( )text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
dokumenty = text_splitter.split_documents ( nespracované_dokumenty )
Po rozdelení textu uložte údaje do db premennej pomocou knižnice FAISS na získanie výstupu pomocou metódy vyhľadávania podobnosti:
db = FAISS.from_documents ( dokumenty, cache_embedder )
Teraz znova získajte zoznam vložení po ich uložení do databázy a obmedzte výstup iba na 5 indexov:
zoznam ( fs.yield_keys ( ) ) [ : 5 ]
Krok 5: Používanie vyrovnávacej pamäte v pamäti
Ďalšie ukladanie do vyrovnávacej pamäte možno použiť prostredníctvom metód InMemoryStore() na definovanie premennej store:
Zostavte model ukladania do vyrovnávacej pamäte pomocou metód OpenAIEmbeddings() a CacheBackedEmbeddings() s modelom, úložiskom a priestorom názvov ako jeho parametrami:
podkladové_embeddings = OpenAIEmbeddings ( )embedder = CacheBackedEmbeddings.from_bytes_store (
podkladové_embeddings, store, menný priestor =podkladové_embeddings.model
)
Použiť vloženia na uložený dokument bez použitia vloženia vyrovnávacej pamäte na získanie údajov z dokumentu:
embeddings = embedder.embed_documents ( [ 'Ahoj' , 'Zbohom' ] )Teraz použite vyrovnávaciu pamäť na vloženia, aby ste rýchlo získali údaje z dokumentov:
embeddings_from_cache = embedder.embed_documents ( [ 'Ahoj' , 'Zbohom' ] )Uložte vloženia do vyrovnávacej pamäte do premennej vloženia, aby premenná vloženia mala uložené vloženia vo vyrovnávacej pamäti:
embeddings == embeddings_from_cache
Krok 6: Používanie vyrovnávacej pamäte systému súborov
Posledná metóda na použitie ukladania do vyrovnávacej pamäte vo vloženiach z dokumentu test_cache pomocou úložiska systému súborov:
Aplikujte vloženia pomocou metódy CacheBackedEmbeddings() s modelom vkladania, úložiskom údajov a priestorom názvov ako parametrami:
embedder2 = CacheBackedEmbeddings.from_bytes_store (podkladové_embeddings, fs, menný priestor =podkladové_embeddings.model
)
Na zavolanie metódy embedder() použite premennú embeddings s údajmi uloženými vo vyrovnávacej pamäti:
embeddings = embedder2.embed_documents ( [ 'Ahoj' , 'Zbohom' ] )Teraz získajte vloženia pre vyššie uvedené dva svety uvedené ako parametre:
zoznam ( fs.yield_keys ( ) )
To je všetko o procese budovania a práce s cachovaním v LangChain.
Záver
Ak chcete pracovať s technikami ukladania do vyrovnávacej pamäte pre vkladanie v LangChain, jednoducho získajte požadované moduly pomocou príkazu pip, ako je FAISS, OpenAI atď. Potom importujte knižnice na vytváranie a prácu s ukladania do vyrovnávacej pamäte v LangChain. Efektívne získava vložky uložené v rôznych obchodoch. Vývojári môžu použiť viacero obchodov ako databázy na ukladanie vložení, ako sú vektorové obchody, systémy súborov alebo obchody v pamäti. Táto príručka demonštrovala proces práce s vyrovnávacou pamäťou v LangChain.