ٹیکسٹ انداز ماڈلز
ٹیکسٹ انداز ماڈلز عموماً ٹیکسٹ کے سمتی نمائیوں کی قیمتوں کا حساب کرنے کے لئے استعمال ہوتے ہیں۔ یہاں، "سمتی" الفاظ میں ایک ریاضیاتی سمتی، جسے خصوصی خوبی سمتی بھی کہا جاتا ہے، کا تذکرہ کیا گیا ہے۔ ڈویلپر کے لئے، آپ کو صرف یہی معلوم ہونا ضروری ہے کہ ایک ٹیکسٹ انداز ماڈل سکیچر ویکٹر کی قیمت حاصل کر سکتا ہے، اور پھر ویکٹر مشابہت کے حساب کی مدد سے وہ ٹیکسٹ مواد تلاش کر سکتا ہے جس کی ویکٹر میں مشابہتیں ہوں۔
نصیحت: ٹیکسٹ انداز ماڈلز کی بنیادی معلومات کے لئے براہ کرم ٹیکسٹ انداز ماڈلز کا تعارف کرنے والے تھیمز پر دیکھیں
سمتی تلاش اور کلید کی بنیاد پر تلاش کے درمیان فرق
- سمتی تلاش الفاظ کے سمتی مشابہت پر مشتمل ہوتا ہے۔ یہ وصول کر سکتا ہے کہ جو تلاش ہو رہی ہو، وہ لفظوں کی بہترین سمتی مشابہت کے نتائج حاصل کر سکتا ہے، حتیٰ کہ تلاش لفظ اور نتائج کے لفظ صرف ممکنہ طور پر برابر نہیں ہوں۔ سمتی تلاش الفاظ کو ایک بلند بُعدی سمتی فضا میں عکس کرتا ہے اور سمتوں کے درمیان مشابہت کو حساب کرتا ہے۔ یہ مطلب ہے کہ حتیٰ اگر لفظ خود ہم آہنگ نہ ہوں، بس یہ کہ وہ معنوی طور پر مشابہ ہوں، تو مشابہت رکھنے والے نتائج حاصل کیے جا سکتے ہیں۔
- ورد کلید کی بنیاد پر تلاش، دوسری جانب، ایک سادہ ریشہ موافقت کرنے کا عمل ہے۔ یہ صرف نتائج واپس کرتا ہے جو تلاش کے الفاظ کو بالکل برابر کرتے ہوں۔ اگر دستاویز میں مختلف الفاظ استعمال کیے جائیں، حتیٰ کہ وہ معنوی طور پر مشابہ ہوں، تو ان کو موافقت نہیں دی جائے گی۔
Embeddings کلاس ایک ایسی کلاس کی قسم ہے جو خصوصی طور پر ٹیکسٹ انداز ماڈلز کے ساتھ ٹکرانے کے لئے بنائی گئی ہے۔ Embeddings ماڈلز کے متعدد فراہم کنندگان ہوتے ہیں (جیسے اوپن اے آئی، کوہیر، ہگنگ فیس وغیرہ)، اور اس کلاس کا ڈیزائن تمام فراہم کنندگان کے لئے ایک معیاری انٹرفیس فراہم کرنے کا ہے۔
Embeddings کلاس ٹیکسٹ کی ویکٹر تصویر بنانے کی اوری ہے۔ ویکٹر تلاش کے ساتھ، معنوی تلاشیں کرنی ہو سکتی ہیں، مثلاً، ویکٹر فضا میں سب سے مشابہ ٹیکسٹ انڈیکس کرنا۔
لینگ چین کی بنیادی Embeddings کلاس دو تراکیب فراہم کرتا ہے: ایک برائے دستاویزات کو سمیٹینگ اور دوسرا برائے سوالات کو سمیٹینگ۔ پہلی ٹیکسٹ کی شکل میں ان پٹ لے گا جبکہ دوسری صرف ایک ٹیکسٹ کا ان پٹ لے گا۔ ان کو دو مختلف تراکیب کی طرح چارج کیا جاتا ہے، چنانچہ بعض Embedding فراہم کنندگان کے پاس جو دستاویزات کو تلاش کرنے ہیں اور سوالات (خود تلاش کے جملے) کو تلاش کرنے کے لئے مختلف سمیٹنگ کے جرم کرنے ہوتے ہیں۔
تیز گام شروع کریں
نیچے ایک مثال دی گئی ہے جو اوپن اے آئی کے انداز ماڈل کا استعمال کر رہی ہے۔
تنظیم
پہلے، ہمیں اوپن اے آئی پائتھن پیکیج کو انسٹال کرنا ہوگا۔ چونکہ لینگ چین کے پاس مختلف ٹیکسٹ انداز ماڈلز کے مختلف ترتیبوں کے ساتھ مختلف ٹیکسٹ انداز ماڈلز کے مطلب ہوتے ہیں، ڈویلپرز کو اپنے انتخاب کے مطابق مختلف ماڈلز کے تابعیتوں کو انسٹال کرنے کی ضرورت ہوتی ہے۔
pip install langchain-openai
اوپن اے آئی کی کلید کو ماحولیاتی متغیرات کے ذریعے تشکیل دیں:
export OPENAI_API_KEY="..."
اگر آپ ماحولیاتی متغیرات سیٹ نہیں کرنا چاہتے ہیں، تو آپ پیشخانہ کلید openai_api_key
کو سیدھے نامدار پیٹامیٹر کے طور پر منصوبہ بنانے کے لئے اوپن اے آئی ایلایم کلاس کا ابتدائیکرنے کے دوران بیرونی کر سکتے ہیں:
from langchain_openai import OpenAIEmbeddings
embeddings_model = OpenAIEmbeddings(openai_api_key="...")
دیگر صورت میں، آپ بغیر کسی پیرامیٹر کے تعجب کر سکتے ہیں:
from langchain_openai import OpenAIEmbeddings
embeddings_model = OpenAIEmbeddings()
embed_documents
ایک بیچ کے ٹیکسٹ کی سمتی خصوصیات کو حساب کریں:
embeddings = embeddings_model.embed_documents(
[
"ہیلو!",
"ہاں، سلام!",
"آپ کا نام کیا ہے؟",
"میرے دوست مجھے دنیا کہتے ہیں",
"ہیلو دنیا!"
]
)
len(embeddings), len(embeddings[0])
(5, 1536)
embed_query
یہ فعالیت یہ اقدام کرتی ہے کہ کوئی جواب قیمت حاصل کرنے کے لئے سوال میں بدل دی جاتی ہے۔ معمولاً، یہ شامل کیا جاتا ہے کہ سوال کو سمیٹینگ پیچھے کی طرف بدل کر، اور پھر اس ویکٹر کا استعمال کر کے مشابہ ٹیکسٹ کو ویکٹر ڈیٹابیس میں جھانپ لے۔
embedded_query = embeddings_model.embed_query("کونسا نام مشہور ہوا؟")
embedded_query[:5]
[0.0053587136790156364,
-0.0004999046213924885,
0.038883671164512634,
-0.003001077566295862,
-0.00900818221271038]