Kuinka työskennellä välimuistin kanssa LangChainissa?

Kuinka Tyoskennella Valimuistin Kanssa Langchainissa



Välimuisti on prosessi, jossa tallennetaan ja haetaan uusimmat tai usein käytetyt tiedot mallista, jotta niitä ei tarvitse laskea uudelleen koko ajan. Tekstin upotusten avulla voidaan muuntaa tekstitietoa numeroiksi, ja välimuistitekniikoiden soveltaminen siihen voi parantaa mallin tehokkuutta. LangChainin avulla kehittäjät voivat rakentaa välimuistimallin CacheBackedEmbeddings-kirjaston avulla.

Tämä viesti havainnollistaa välimuistin käyttämisen LangChainissa.







Kuinka työskennellä välimuistin kanssa LangChainissa?

Välimuistia LangChainissa tekstin upotusmalleissa voidaan käyttää erilaisten tietojoukkojen kautta, kuten käyttämällä vektorivarastoa, muistissa olevia tietoja tai tiedostojärjestelmien tietoja. Välimuistimenetelmiä käyttämällä saadaan tulos nopeasti ja malli voi soveltaa samankaltaisuushakuja dataan tehokkaammin.



Jos haluat oppia välimuistin käyttämisen LangChainissa, käy läpi luetellut vaiheet:



Vaihe 1: Asenna moduulit
Aloita ensin välimuistin käsittely asentamalla tarvittavat mallit, joista ensimmäinen on LangChain, joka sisältää kaikki prosessiin vaadittavat kirjastot:





pip Asentaa langchain

FAISS-moduulia vaaditaan suorittamaan samankaltaisuushaku lähdön poimimiseksi tai generoimiseksi käyttäjän syöttämän syötteen perusteella:



pip Asentaa faiss-gpu

Tämän oppaan viimeinen asentamiseen vaadittava moduuli on OpenAI, jota voidaan käyttää tietojen upottamiseksi OpenAIEMbeddings()-menetelmällä:

pip Asentaa openai

Kun olet asentanut kaikki moduulit, määritä ympäristö käyttämällä API-avainta OpenAI-ympäristöstä käyttämällä ' sinä ' ja ' getpass ”kirjastot:

tuo meille
tuoda getpass

os.environ [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API Key:' )

Vaihe 2: Kirjastojen tuonti
Kun asennus on valmis, tuo kirjastot LangChainin välimuistitekniikoiden käyttöä varten:

langchain.storage tuonti InMemoryStoresta
Tuo CacheBackedEmbeddings osoitteesta langchain.embeddings
langchain.storage-tuo LocalFileStoresta
langchain.embeddingsistä tuo OpenAIEmbeddings
langchain.document_loadersista tuo TextLoader
Tuo OpenAIEMbeddings osoitteesta langchain.embeddings.openai
langchain.text_splitter-tuo CharacterTextSplitter
langchain.vectorstoresista tuo FAISS

Vaihe 3: Välimuistimallin luominen
Kun olet tuonut kirjastot, kutsu OpenAIEMbeddings()-metodi rakentaaksesi mallin ja tallentaaksesi sen muuttujaan:

underlying_embeddings = OpenAIE-embeddings ( )

Käytä nyt välimuistia LocalFileStore()-metodilla ja CacheBackedEmbeddings()-menetelmillä useilla argumenteilla:

fs = LocalFileStore ( './kätkö/' )

cached_embedder = CacheBackedEmbeddings.from_bytes_store (
underlying_embeddings, fs, nimiavaruus =underlying_embeddings.model
)

Hanki vain upotusluettelo ja toistaiseksi luettelo on tyhjä, koska upotuksia ei ole tallennettu luetteloon:

lista ( fs.yield_keys ( ) )

Vaihe 4: Vector Storen luominen
Hae tiedosto paikallisesta järjestelmästä tiedostokirjaston avulla ja napsauta ' Valitse Tiedostot ' koodin suorittamisen jälkeen:

google.colab-tuontitiedostoista
lähetetty = tiedostot.lataus ( )

Luo nyt yksinkertaisesti vektorivarasto, jota voidaan käyttää upotusten tallentamiseen käyttämällä TextLoader()-metodia asiakirjan nimellä. Käytä sen jälkeen tekstinjakomenetelmiä palojen koon mukaan ja jaa tiedot pienempiin osiin:

raw_documents = TextLoader ( 'liiton_tila.txt' ) .ladata ( )
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
asiakirjat = text_splitter.split_documents ( raaka_asiakirjat )

Kun olet jakanut tekstin, tallenna tiedot tiedostoon db muuttuja käyttämällä FAISS-kirjastoa saadaksesi tulos samankaltaisuushakumenetelmällä:

db = FAISS.from_documents ( asiakirjat, cached_embedder )

Hanki nyt jälleen luettelo upotuksista, kun olet tallentanut ne tietokantaan, ja rajaa tulos vain viiteen indeksiin:

lista ( fs.yield_keys ( ) ) [ : 5 ]

Vaihe 5: Muistivälimuistin käyttäminen
Seuraavaa välimuistia voidaan käyttää InMemoryStore()-menetelmien avulla varastomuuttujan määrittämiseen:

Store = InMemoryStore ( )

Rakenna välimuistimalli käyttämällä OpenAIEMbeddings()- ja CacheBackedEmbeddings()-menetelmiä mallin, varaston ja nimitilan parametreinä:

underlying_embeddings = OpenAIE-embeddings ( )
embedder = CacheBackedEmbeddings.from_bytes_store (
underlying_embeddings, store, nimiavaruus =underlying_embeddings.model
)

Käytä upotuksia tallennettuun asiakirjaan käyttämättä välimuistin upotuksia saadaksesi tietoja asiakirjasta:

embeddings = embedder.embed_documents ( [ 'Hei' , 'Hyvästi' ] )

Käytä nyt välimuistia upotuksiin saadaksesi tiedot nopeasti asiakirjoista:

embeddings_from_cache = embedder.embed_documents ( [ 'Hei' , 'Hyvästi' ] )

Tallenna välimuistin upotukset upotusmuuttujaan niin, että upotusmuuttujaan on tallennettu välimuistissa olevat upotukset:

embeddings == upotukset_välimuistista

Vaihe 6: Tiedostojärjestelmän välimuistin käyttäminen
Viimeinen tapa käyttää välimuistia upotuksissa test_cache-asiakirjasta käyttämällä File System Storea:

fs = LocalFileStore ( './test_cache/' )

Käytä upotuksia käyttämällä CacheBackedEmbeddings()-metodia ja upotusmalli, tietovarasto ja nimiavaruus parametreina:

embedder2 = CacheBackedEmbeddings.from_bytes_store (
underlying_embeddings, fs, nimiavaruus =underlying_embeddings.model
)

Käytä embedding-muuttujaa, johon on tallennettu välimuistiin tallennettuja tietoja, kutsuaksesi embedder()-metodia:

embeddings = embedder2.embed_documents ( [ 'Hei' , 'Hyvästi' ] )

Hanki nyt upotukset näille kahdelle parametreiksi mainitulle maailmalle:

lista ( fs.yield_keys ( ) )

Tämä koskee LangChainin välimuistin luomista ja käyttöä.

Johtopäätös

Jos haluat työskennellä välimuistitekniikoiden kanssa LangChainin upottamista varten, hanki tarvittavat moduulit pip-komennolla, kuten FAISS, OpenAI jne. Tuo sen jälkeen kirjastot LangChainin välimuistin rakentamista ja käyttöä varten. Se saa tehokkaasti eri liikkeisiin tallennetut upotukset. Kehittäjät voivat käyttää useita varastoja tietokantoina tallentaakseen upotteita, kuten vektorisäilöjä, tiedostojärjestelmiä tai muistissa olevia varastoja. Tämä opas esitteli välimuistin käyttämisen LangChainissa.