LLM یاداشت
زیادہ تر LLM مبنی ایپلیکیشنز میں چیٹ انٹرفیس ہوتا ہے جو وی چیٹ کی طرح ہوتا ہے۔ AI مکالمے کے عمل کی اہمیت کا حصہ پہلے کی باتوں کا حوالہ دینے کی صلاحیت ہے، بالکل انسانی مکالمے کی طرح، پچھلے مواد کو دوبارہ نہ سنانا۔ انسان خود بخود معلومات کو یاد کرتے ہیں۔
LLM فیلڈ میں مکالماتی معلومات کو محفوظ کرنے کی صلاحیت کو عام طور پر "یاد" کہا جاتا ہے، بالکل اس طرح کے ہوتے ہیں جیسے انسانوں کی یاد رکھنے کی صلاحیت ہوتی ہے۔ LangChain مختلف یادگار کارروائی کے components کو encapsulate کرتا ہے، جو الگ الگ یا چین میں بے روک ساتھ مارے جا سکتے ہیں۔
یاد components کو دو بنیادی عمل\عملینات نافذ کرنے کی ضرورت ہوتی ہے: پڑھنا اور لکھنا۔
LangChain کے مختلف چین ٹاسک components کے لیے، اگر آپ یاد کی صلاحیت فعال کریں تو وہ مندرجہ ذیل منطق کے مطابق چلائیں گے:
- جب ابتدائی صارف کی ان پٹ کو ملتے ہیں، چین ٹاسک کوشش کریں گے کہ یاد component سے متعلق قدیم معلومات کو پڑھیں، پھر قدیم معلومات کو یوسر کی ان پٹ کے ساتھ جوڑ کر prompts میں منتقل کریں تاکہ LLM کو پاس کریں۔
- جب LLM سے واپسی کونٹینٹ ملتا ہے، وہ خود بخود نتیجہ کو یاد مندرجہ ذیل وقت کے لیے میں محفوظ کریں گا۔
LangChain میں یاد کی صلاحیت کو نافذ کرنے کا عمل مندرجہ ذیل چارٹ کی طرح ہے:
سسٹم میں یاد کارتوسار کمپوننٹس شامل کرنا
یاد کارتوسار کمپوننٹس کا استعمال کرنے سے پہلے، آپ کے پاس مندرجہ ذیل دو سوالات کا خیال کرنا چاہئے::
- تاریخی پیغامات کو محفوظ کرنے کا طریقہ
- تاریخی پیغامات کو کیسے معلوم کیا جائے
محفوظیت: چیٹ پیغام لسٹ
اگر چیٹ ماڈل استعمال ہوتا ہے تو بات چیت پیغامات کی ایک لسٹ ہوتی ہے۔ LangChain تاریخی پیغامات کو محفوظ کرنے کے لئے مختلف ذخیرہ انجنز کی حمایت کرتا ہے، سب سے آسان طریقہ ہے ان کو یاد میں محفوظ کرنا۔ عمل میں، سب سے زیادہ استعمال ہونے والی میتھڈ ہے کہ انہیں ڈیٹا بیس میں محفوظ کیا جائے۔
معلومات حاصل کرنا: محترم تاریخی بات چیتی پیغامات کو کیسے متعلق کریں
LLM کی یاد کارتوسار صلاحیت نافذ کرنے کے لئے چیف معیار ہے: تاریخی پیغام کو پرومپٹ کے طور پر پس منظر کے تحت شامل کرنے کا طرکہ۔ اس طریقے سے، LLM سوالات کے جواب دیتے وقت پس منظر کی معلومات سے حوالہ دے سکتا ہے۔
تاریخی پیغامات کو محفوظ کرنا نسبتاً آسان ہے، اور زیادہ مشکل وجہ یہ ہے کہ موجودہ مکالمات سے مربوط تاریخی پیغامات کیسے تلاش کی جائیں۔ موصول کی گئی بات چیت کی مقدار کی حد غور سے، ہم لام سے مقدار کو پرمپٹس میں بھرنے کے قابل نہیں ہیں،
عام تاریخی پیغام کوئری استراتیجیز میں شامل ہیں::
- صرف سب سے حال میں کی گئی N نمبر کی میسجز کو پرومپٹس کی پس منظر کی معلومات کے طور پر سوال کرنا
- AI کو استعمال کر کے تاریخی پیغامات کی خلاصہ کرنا، جو پرومپٹس کی پس منظر کی معلومات کے طور پر کام کرتی ہو
- ویکٹر ڈیٹا بیس کا فائدہ اُٹھانا کے جہاں تاریخی پیغامات جاری مکالمہ سے مشابہت رکھتے ہوں کو پرومپٹس کی پس منظر کی معلومات کے طور پر سوال کرنا
LangChain کمپوننٹ کا استعمال کرنے کا مثال
چلیں دیکھتے ہیں کے LangChain کے یاد component کیا ہوتی ہے۔ یہاں، ہم یاد component کے ساتھ تعامل کا بنیادی علم پیش کریں گے۔
پہلے، آئیں دیکھیں کہ کیسے ConversationBufferMemory کو ٹاسک چین میں کیسے استعمال کیا جاتا ہے۔ ConversationBufferMemory بہت سادہ یاد کارتوسار کمپوننٹ ہے جو صرف میموری میں چیٹ پیغاموں کی ایک لسٹ کو محفوظ کر سکتا ہے اور نئے مکالماتی پرومپٹ ٹیمپلیٹ میں منتقل کر سکتا ہے۔
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
memory.chat_memory.add_user_message("hi!")
memory.chat_memory.add_ai_message("what's up?")
- نوٹ: LangChain کئی Memory کمپوننٹس فراہم کرتا ہے جن کو اسی طرح سے استعمال کیا جا سکتا ہے۔
مثال: LangChain کیں میموری کمپوننٹ استعمال کرتے ہوئے
اب, دیکھتے ہیں کہ چین میں میموری کمپوننٹ کو کیسے استعمال کیا جاتا ہے۔ نیچے, ہم آپ کو دیکھائیں گے کہ LLM اور چیٹ ماڈل، دو کپ کئے گئے ماڈلز کیسے یاد کمپوننٹ استعمال کرتی ہیں۔
مثال: LLM یاد کمپوننٹ استعمال کرکے
from langchain_openai import OpenAI
from langchain_core.prompts import PromptTemplate
from langchain.chains import LLMChain
from langchain.memory import ConversationBufferMemory
llm = OpenAI(temperature=0)
template = """You are a great chatbot having a conversation with a human.
Previous conversation:
{chat_history}
New question: {question}
AI's answer:"""
prompt = PromptTemplate.from_template(template)
memory = ConversationBufferMemory(memory_key="chat_history")
conversation = LLMChain(
llm=llm,
prompt=prompt,
verbose=True,
memory=memory
)
conversation({"question": "hi"})
from langchain_openai import ChatOpenAI
from langchain.prompts import (
ChatPromptTemplate,
MessagesPlaceholder,
SystemMessagePromptTemplate,
HumanMessagePromptTemplate,
)
from langchain.chains import LLMChain
from langchain.memory import ConversationBufferMemory
llm = ChatOpenAI()
prompt = ChatPromptTemplate(
messages=[
SystemMessagePromptTemplate.from_template(
"تم ایک اچھے چیٹ بوٹ ہو جو ایک انسان کے ساتھ بات چیت کر رہا ہے۔"
),
MessagesPlaceholder(variable_name="chat_history"),
HumanMessagePromptTemplate.from_template("{question}")
]
)
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
conversation = LLMChain(
llm=llm,
prompt=prompt,
verbose=True,
memory=memory
)
conversation({"question": "ہیلو"})