כיצד להשתמש ב- Select by Maximal Marginal Relevance (MMR) ב-LangChain?

Kyzd Lhstms B Select By Maximal Marginal Relevance Mmr B Langchain



LangChain הוא מודול שניתן להשתמש בו לבניית מודלים של שפה לאינטראקציה עם בני אדם בשפות טבעיות. בני האדם מספקים את ההנחיה בצורה הטקסטואלית והמודל משתמש בבורר לדוגמה כדי לחלץ פלט באמצעות השאילתה. בוררים לדוגמה משמשים כדי להביא את הפלט על סמך הקלט על ידי בחירת הדוגמה הרלוונטית הקרובה ביותר לשאילתה או להנחיה.

מדריך זה ימחיש את תהליך השימוש בבורר הדוגמה של Select by Maximal Marginal Relevance ב-LangChain.

כיצד להשתמש ב- Select by Maximal Marginal Relevance (MMR) ב-LangChain?

בורר הדוגמה של Maximal Marginal Relevance משמש לחילוץ מידע באמצעות הדמיון הקוסינוס של ההנחיה והדוגמה. הדמיון הקוסינוס מחושב לאחר החלת שיטות ההטמעה על הנתונים והמרת טקסט לצורה מספרית.







כדי ללמוד את תהליך השימוש בבורר הדוגמאות של MMR ב-LangChain, פשוט עברו על השלבים המפורטים:



שלב 1: התקן מודולים



התחל את התהליך על ידי התקנת התלות של ה-LangChain באמצעות פקודת pip:





pip להתקין langchain

התקן את מודול OpenAI כדי להשתמש בסביבה שלו ליישום שיטת OpenAIEmbedding():



pip להתקין openai

התקן את מסגרת FAISS שבה ניתן להשתמש כדי לקבל את הפלט באמצעות דמיון סמנטי:

pip להתקין faiss-gpu

כעת, התקן את tiktoken tokenizer לפיצול הטקסט לנתחים קטנים יותר באמצעות הקוד הבא:

pip להתקין tiktoken

שלב 2: שימוש בספריות ובדוגמאות

השלב הבא הוא לייבא ספריות לבניית בורר לדוגמה של MMR, FAISS, OpenAIEmbeddings ו-PromptTemplate. לאחר ייבוא ​​הספריות, פשוט צור ערכת דוגמה שנותנת קלט ופלט עבור הכניסות שלהן בכמה מערכים:

מ langchain. הנחיות . בורר_דוגמה יְבוּא (
MaxMarginalRelevanceExampleSelector ,
בורר דוגמה סמנטי ,
)
מ langchain. חנויות וקטורים יְבוּא FAISS
מ langchain. הטבעות יְבוּא OpenAIEbeddings
מ langchain. הנחיות יְבוּא FewShotPromptTemplate , PromptTemplate

example_prompt = PromptTemplate (
משתני_קלט = [ 'קֶלֶט' , 'תְפוּקָה' ] ,
תבנית = 'קלט: {קלט} \n פלט: {פלט}' ,
)

דוגמאות = [
{ 'קֶלֶט' : 'שַׂמֵחַ' , 'תְפוּקָה' : 'עָצוּב' } ,
{ 'קֶלֶט' : 'גובה' , 'תְפוּקָה' : 'קצר' } ,
{ 'קֶלֶט' : 'נִמרָץ' , 'תְפוּקָה' : 'רָדוּם' } ,
{ 'קֶלֶט' : 'שִׁמשִׁי' , 'תְפוּקָה' : 'קודר' } ,
{ 'קֶלֶט' : 'סוער' , 'תְפוּקָה' : 'לְהַרְגִיעַ' } ,
]

שלב 3: בורר דוגמה לבנייה

כעת, התחל לבנות את בורר הדוגמאות של MMR באמצעות שיטת MaxMarginalRelevanceExampleSelector() המכילה פרמטרים שונים:

בורר_דוגמה = MaxMarginalRelevanceExampleSelector. מ_דוגמאות (
דוגמאות ,
OpenAIEbeddings ( ) ,
FAISS ,
ק = 2 ,
)
mmr_prompt = FewShotPromptTemplate (
בורר_דוגמה = בורר_דוגמה ,
example_prompt = example_prompt ,
קידומת = 'תן את הניגוד של כל קלט' ,
סִיוֹמֶת = 'קלט: {תואר} \n תְפוּקָה:' ,
משתני_קלט = [ 'תוֹאַר' ] ,
)

שלב 4: בדיקת בורר דוגמאות ה-MMR

בדוק את בורר הדוגמה של MMR לרלוונטיות שולית מקסימלית על ידי קריאה שלו בשיטת print() עם הקלט:

הדפס ( mmr_prompt. פוּרמָט ( תוֹאַר = 'מוּדְאָג' ) )

שלב 5: שימוש ב-SemanticSimilarity

שלב זה משתמש בשיטת SemanticSimilarityExampleSelector() ולאחר מכן משתמש בשיטת FewShotPromptTemplate() הנתמכת על ידי LangChain:

בורר_דוגמה = בורר דוגמה סמנטי. מ_דוגמאות (
דוגמאות ,
OpenAIEbeddings ( ) ,
FAISS ,
ק = 2 ,
)
דומה_הנחיה = FewShotPromptTemplate (
בורר_דוגמה = בורר_דוגמה ,
example_prompt = example_prompt ,
קידומת = 'תן את הניגוד של כל קלט' ,
סִיוֹמֶת = 'קלט: {תואר} \n תְפוּקָה:' ,
משתני_קלט = [ 'תוֹאַר' ] ,
)
הדפס ( דומה_הנחיה. פוּרמָט ( תוֹאַר = 'מוּדְאָג' ) )

זה הכל על שימוש ב- Select by Maximal Marginal Relevance או MMR ב-LangChain.

סיכום

כדי להשתמש בבורר ה- Select by Maximal Marginal Relevance או MMR לדוגמה ב-LangChain, התקן את המודולים הנדרשים. לאחר מכן, ייבא את הספריות כדי לבנות את ערכת הדוגמאות באמצעות תבנית הנחיות הקלט והפלט. בנו את בורר הדוגמאות של MMR כדי לבדוק אותו באמצעות בורר הדוגמאות של MMR ושיטת FewShotPromptTemplate() כדי לקבל פלט רלוונטי. מדריך זה הדגים את תהליך השימוש בבורר הדוגמה של select-by-MMR ב-LangChain.