Šiame vadove bus parodytas „LangChain“ pavyzdžio parinkiklio „Select by Maximal Marginal Relevance“ naudojimo procesas.
Kaip naudoti „Select by Maximal Marginal Relevance“ (MMR) „LangChain“?
Maksimalios ribinės reikšmės pavyzdžio parinkiklis naudojamas informacijai išgauti naudojant raginimo ir pavyzdžio kosinuso panašumą. Kosinuso panašumas apskaičiuojamas pritaikius duomenims įterpimo metodus ir pavertus tekstą skaitine forma.
Norėdami sužinoti, kaip naudoti MMR pavyzdžių parinkiklį LangChain, tiesiog atlikite nurodytus veiksmus:
1 veiksmas: įdiekite modulius
Pradėkite procesą įdiegdami LangChain priklausomybes naudodami pip komandą:
pip įdiegti langchain
Įdiekite OpenAI modulį, kad galėtumėte naudoti jo aplinką OpenAIEMbedding() metodui taikyti:
pip install openai
Įdiekite FAISS sistemą, kurią galima naudoti norint gauti išvestį naudojant semantinį panašumą:
pip įdiegti faiss-gpu
Dabar įdiekite tiktoken tokenizer, kad padalintumėte tekstą į mažesnius gabalus naudodami šį kodą:
pip įdiegti tiktoken
2 veiksmas: bibliotekų ir pavyzdžių naudojimas
Kitas veiksmas – importuoti bibliotekas, skirtas MMR pavyzdiniam parinkikliui, FAISS, OpenAIEMbeddings ir PromptTemplate kurti. Importavę bibliotekas, tiesiog sukurkite pavyzdinį rinkinį, kuriame pateikiamos atitinkamos jų įvesties įvestis ir išvestis keliuose masyvuose:
iš langchain. raginimai . example_selector importuoti (MaxMarginalRelevanceExampleSelector ,
SemanticSimilarityExampleSelector ,
)
iš langchain. vektorių parduotuvės importuoti FAISS
iš langchain. įterpimai importuoti OpenAIEmbeddings
iš langchain. raginimai importuoti FewShotPromptTemplate , PromptTemplate
example_prompt = PromptTemplate (
įvesties_kintamieji = [ 'įvestis' , 'išvestis' ] ,
šabloną = 'Įvestis: {input} \n Išvestis: {output}' ,
)
pavyzdžių = [
{ 'įvestis' : 'laimingas' , 'išvestis' : 'liūdnas' } ,
{ 'įvestis' : 'aukštas' , 'išvestis' : 'trumpas' } ,
{ 'įvestis' : 'energetiškas' , 'išvestis' : 'letargiškas' } ,
{ 'įvestis' : 'saulėtas' , 'išvestis' : 'niūrus' } ,
{ 'įvestis' : 'vėjuotas' , 'išvestis' : 'Ramus' } ,
]
3 veiksmas: kūrimo pavyzdžio parinkiklis
Dabar pradėkite kurti MMR pavyzdžio parinkiklį naudodami MaxMarginalRelevanceExampleSelector() metodą su skirtingais parametrais:
example_selector = MaxMarginalRelevanceExampleSelector. from_examples (pavyzdžių ,
OpenAIEmbeddings ( ) ,
FAISS ,
k = 2 ,
)
mmr_prompt = FewShotPromptTemplate (
example_selector = example_selector ,
example_prompt = example_prompt ,
priešdėlis = „Suteikite kiekvieno įvesties antonimą“ ,
priesaga = 'Įvestis: {būdvardis} \n Išvestis:' ,
įvesties_kintamieji = [ 'būdvardis' ] ,
)
4 veiksmas: MMR pavyzdžio parinkiklio tikrinimas
Išbandykite maksimalios ribos atitikimo MMR pavyzdžio parinkiklį, iškviesdami jį print() metodu su įvestimi:
spausdinti ( mmr_prompt. formatu ( būdvardis = 'neramus' ) )
5 veiksmas: SemanticSimilarity naudojimas
Šiame veiksme naudojamas SemanticSimilarityExampleSelector() metodas, o tada naudojamas FewShotPromptTemplate() metodas, kurį palaiko LangChain:
example_selector = SemanticSimilarityExampleSelector. from_examples (pavyzdžių ,
OpenAIEmbeddings ( ) ,
FAISS ,
k = 2 ,
)
panašus_prompt = FewShotPromptTemplate (
example_selector = example_selector ,
example_prompt = example_prompt ,
priešdėlis = „Suteikite kiekvieno įvesties antonimą“ ,
priesaga = 'Įvestis: {būdvardis} \n Išvestis:' ,
įvesties_kintamieji = [ 'būdvardis' ] ,
)
spausdinti ( panašus_prompt. formatu ( būdvardis = 'neramus' ) )
Tai viskas apie tai, kad „LangChain“ reikia pasirinkti pagal maksimalų ribinį atitikimą arba MMR.
Išvada
Norėdami naudoti „Select by Maximal Marginal Relevance“ arba „MMR“ pavyzdžių parinkiklį „LangChain“, įdiekite reikiamus modulius. Po to importuokite bibliotekas, kad sukurtumėte pavyzdžių rinkinį naudodami įvesties ir išvesties raginimo šabloną. Sukurkite MMR pavyzdžio parinkiklį, kad jį išbandytumėte naudodami MMR pavyzdžio parinkiklį ir FewShotPromptTemplate() metodą, kad gautumėte atitinkamą išvestį. Šiame vadove iliustruotas „LangChain“ pasirinkimo pagal MMR pavyzdinio parinkiklio naudojimo procesas.