วิธีใช้ Select by Maximal Marginal Relevance (MMR) ใน LangChain

Withi Chi Select By Maximal Marginal Relevance Mmr Ni Langchain



LangChain เป็นโมดูลที่สามารถใช้ในการสร้างโมเดลภาษาเพื่อโต้ตอบกับมนุษย์ในภาษาธรรมชาติ มนุษย์จัดเตรียมพรอมต์ในรูปแบบข้อความและโมเดลใช้ตัวเลือกตัวอย่างเพื่อแยกเอาต์พุตโดยใช้แบบสอบถาม ตัวเลือกตัวอย่างใช้เพื่อดึงผลลัพธ์ตามอินพุตโดยเลือกตัวอย่างที่เกี่ยวข้องมากที่สุดกับแบบสอบถามหรือพร้อมท์

คู่มือนี้จะแสดงขั้นตอนการใช้ตัวเลือกตัวอย่าง select by Maximal Marginal Relevance ใน LangChain

วิธีใช้ Select by Maximal Marginal Relevance (MMR) ใน LangChain

ตัวเลือกตัวอย่างความเกี่ยวข้องส่วนเพิ่มสูงสุดใช้เพื่อดึงข้อมูลโดยใช้ความคล้ายคลึงโคไซน์ของพร้อมท์และตัวอย่าง ความคล้ายคลึงของโคไซน์คำนวณหลังจากใช้วิธีการฝังกับข้อมูลและแปลงข้อความเป็นรูปแบบตัวเลข







หากต้องการเรียนรู้กระบวนการใช้ตัวเลือกตัวอย่าง MMR ใน LangChain เพียงทำตามขั้นตอนที่ระบุไว้:



ขั้นตอนที่ 1: ติดตั้งโมดูล



เริ่มต้นกระบวนการโดยการติดตั้งการพึ่งพาของ LangChain โดยใช้คำสั่ง pip:





pip ติดตั้ง langchain

ติดตั้งโมดูล OpenAI เพื่อใช้สภาพแวดล้อมในการใช้วิธีการ OpenAIEmbedding():



pip ติดตั้ง openai

ติดตั้งเฟรมเวิร์ก FAISS ซึ่งสามารถใช้เพื่อรับเอาต์พุตโดยใช้ความคล้ายคลึงทางความหมาย:

pip ติดตั้ง faiss-gpu

ตอนนี้ ให้ติดตั้ง tiktoken tokenizer เพื่อแบ่งข้อความออกเป็นส่วนเล็กๆ โดยใช้โค้ดต่อไปนี้:

pip ติดตั้ง tiktoken

ขั้นตอนที่ 2: การใช้ไลบรารีและตัวอย่าง

ขั้นตอนต่อไปคือการนำเข้าไลบรารีสำหรับสร้างตัวเลือกตัวอย่าง MMR, FAISS, OpenAIEmbeddings และ PromptTemplate หลังจากการนำเข้าไลบรารี เพียงสร้างชุดตัวอย่างที่ให้อินพุตและเอาต์พุตสำหรับอินพุตที่เกี่ยวข้องในหลายอาร์เรย์:

จาก แลงเชน แจ้ง . example_selector นำเข้า (
MaxMarginalRelevanceExampleSelector ,
SemanticSimilarityตัวอย่างSelector ,
)
จาก แลงเชน ร้านเวกเตอร์ นำเข้า ไฟส์
จาก แลงเชน การฝัง นำเข้า OpenAIEmbeddings
จาก แลงเชน แจ้ง นำเข้า เทมเพลต FewShotPrompt , พรอมต์เทมเพลต

example_prompt = พรอมต์เทมเพลต (
input_variables = [ 'ป้อนข้อมูล' , 'เอาท์พุท' ] ,
แม่แบบ = 'อินพุต: {อินพุต} \n เอาท์พุต: {เอาท์พุต}' ,
)

ตัวอย่าง = [
{ 'ป้อนข้อมูล' : : 'มีความสุข' , 'เอาท์พุท' : : 'เศร้า' } ,
{ 'ป้อนข้อมูล' : : 'สูง' , 'เอาท์พุท' : : 'สั้น' } ,
{ 'ป้อนข้อมูล' : : 'กระฉับกระเฉง' , 'เอาท์พุท' : : 'เซื่องซึม' } ,
{ 'ป้อนข้อมูล' : : 'แดดจัด' , 'เอาท์พุท' : : 'มืดมน' } ,
{ 'ป้อนข้อมูล' : : 'ลมแรง' , 'เอาท์พุท' : : 'เงียบสงบ' } ,
]

ขั้นตอนที่ 3: สร้างตัวเลือกตัวอย่าง

ตอนนี้ ให้เริ่มสร้างตัวเลือกตัวอย่าง MMR โดยใช้เมธอด MaxMarginalRelevanceExampleSelector() ที่มีพารามิเตอร์ที่แตกต่างกัน:

example_selector = MaxMarginalRelevanceExampleSelector จาก_ตัวอย่าง (
ตัวอย่าง ,
OpenAIEmbeddings ( ) ,
ไฟส์ ,
เค = 2 ,
)
mmr_prompt = เทมเพลต FewShotPrompt (
example_selector = example_selector ,
example_prompt = example_prompt ,
คำนำหน้า = 'ให้คำตรงข้ามของทุกอินพุต' ,
คำต่อท้าย = 'อินพุต: {คำคุณศัพท์} \n เอาท์พุต:' ,
input_variables = [ 'คุณศัพท์' ] ,
)

ขั้นตอนที่ 4: ทดสอบตัวเลือกตัวอย่าง MMR

ทดสอบตัวเลือกตัวอย่าง Maximal Marginal Relevance MMR โดยการเรียกมันในเมธอด print() ด้วยอินพุต:

พิมพ์ ( mmr_prompt. รูปแบบ ( คุณศัพท์ = 'กังวล' ) )

ขั้นตอนที่ 5: การใช้ SemanticSimilarity

ขั้นตอนนี้ใช้วิธี SemanticSimilarityExampleSelector() จากนั้นใช้วิธี FewShotPromptTemplate() ที่ได้รับการสนับสนุนโดย LangChain:

example_selector = SemanticSimilarityตัวอย่างSelector จาก_ตัวอย่าง (
ตัวอย่าง ,
OpenAIEmbeddings ( ) ,
ไฟส์ ,
เค = 2 ,
)
คล้ายกัน_พร้อมท์ = เทมเพลต FewShotPrompt (
example_selector = example_selector ,
example_prompt = example_prompt ,
คำนำหน้า = 'ให้คำตรงข้ามของทุกอินพุต' ,
คำต่อท้าย = 'อินพุต: {คำคุณศัพท์} \n เอาท์พุต:' ,
input_variables = [ 'คุณศัพท์' ] ,
)
พิมพ์ ( คล้ายกัน_พร้อมท์ รูปแบบ ( คุณศัพท์ = 'กังวล' ) )

นั่นคือทั้งหมดที่เกี่ยวกับการใช้การเลือกตาม Maximal Marginal Relevance หรือ MMR ใน LangChain

บทสรุป

หากต้องการใช้ตัวเลือกโดย Maximal Marginal Relevance หรือตัวเลือกตัวอย่าง MMR ใน LangChain ให้ติดตั้งโมดูลที่จำเป็น หลังจากนั้น ให้นำเข้าไลบรารีเพื่อสร้างชุดตัวอย่างโดยใช้เทมเพลตพร้อมท์อินพุตและเอาต์พุต สร้างตัวเลือกตัวอย่าง MMR เพื่อทดสอบโดยใช้ตัวเลือกตัวอย่าง MMR และเมธอด FewShotPromptTemplate() เพื่อรับเอาต์พุตที่เกี่ยวข้อง คู่มือนี้ได้อธิบายกระบวนการใช้ตัวเลือกตัวอย่างแบบ select-by-MMR ใน LangChain