Skip to content

Latest commit

 

History

History
169 lines (108 loc) · 18.3 KB

File metadata and controls

169 lines (108 loc) · 18.3 KB

سرچ ایپلیکیشن بنانا

اوپر دی گئی تصویر پر کلک کریں تاکہ آپ اس سبق کی ویڈیو دیکھ سکیں

ایل ایل ایمز صرف چیٹ بوٹس اور ٹیکسٹ جنریشن کے لئے نہیں ہیں۔ آپ ایمبیڈنگز کا استعمال کرکے سرچ ایپلیکیشن بھی بنا سکتے ہیں۔ ایمبیڈنگز ڈیٹا کی عددی نمائندگی ہیں جنہیں ویکٹر بھی کہا جاتا ہے، اور یہ ڈیٹا کی معنوی تلاش کے لئے استعمال کی جا سکتی ہیں۔

اس سبق میں، آپ ہمارے تعلیمی اسٹارٹ اپ کے لئے ایک سرچ ایپلیکیشن بنائیں گے۔ ہمارا اسٹارٹ اپ ایک غیر منافع بخش تنظیم ہے جو ترقی پذیر ممالک کے طلباء کو مفت تعلیم فراہم کرتا ہے۔ ہمارے اسٹارٹ اپ کے پاس بہت سارے یوٹیوب ویڈیوز ہیں جنہیں طلباء اے آئی کے بارے میں سیکھنے کے لئے استعمال کر سکتے ہیں۔ ہمارا اسٹارٹ اپ ایک سرچ ایپلیکیشن بنانا چاہتا ہے جو طلباء کو یوٹیوب ویڈیو تلاش کرنے کی اجازت دے جس میں وہ ایک سوال ٹائپ کریں۔

مثال کے طور پر، ایک طالب علم 'جیوپیٹر نوٹ بکس کیا ہیں؟' یا 'Azure ML کیا ہے؟' ٹائپ کر سکتا ہے اور سرچ ایپلیکیشن اس سوال سے متعلق یوٹیوب ویڈیوز کی فہرست واپس کرے گی، اور بہتر یہ کہ سرچ ایپلیکیشن ویڈیو کے اس جگہ کا لنک واپس کرے گی جہاں سوال کا جواب موجود ہے۔

تعارف

اس سبق میں، ہم کور کریں گے:

  • معنوی بمقابلہ کی ورڈ تلاش۔
  • ٹیکسٹ ایمبیڈنگز کیا ہیں۔
  • ٹیکسٹ ایمبیڈنگز انڈیکس بنانا۔
  • ٹیکسٹ ایمبیڈنگز انڈیکس میں تلاش کرنا۔

سیکھنے کے مقاصد

اس سبق کو مکمل کرنے کے بعد، آپ یہ کرنے کے قابل ہوں گے:

  • معنوی اور کی ورڈ تلاش کے درمیان فرق بتائیں۔
  • ٹیکسٹ ایمبیڈنگز کیا ہیں، وضاحت کریں۔
  • ایمبیڈنگز کا استعمال کرکے ڈیٹا کی تلاش کے لئے ایک ایپلیکیشن بنائیں۔

سرچ ایپلیکیشن کیوں بنائیں؟

ایک سرچ ایپلیکیشن بنانا آپ کو ایمبیڈنگز کا استعمال کرکے ڈیٹا کی تلاش کرنے کا طریقہ سمجھنے میں مدد دے گا۔ آپ یہ بھی سیکھیں گے کہ کیسے ایک سرچ ایپلیکیشن بنائیں جو طلباء کو جلدی سے معلومات تلاش کرنے کے لئے استعمال کی جا سکے۔

سبق میں مائیکروسافٹ AI شو یوٹیوب چینل کے یوٹیوب ٹرانسکرپٹس کے لئے ایک ایمبیڈنگ انڈیکس شامل ہے۔ AI شو ایک یوٹیوب چینل ہے جو آپ کو AI اور مشین لرننگ کے بارے میں سکھاتا ہے۔ ایمبیڈنگ انڈیکس میں اکتوبر 2023 تک کے یوٹیوب ٹرانسکرپٹس کے لئے ایمبیڈنگز شامل ہیں۔ آپ ہمارے اسٹارٹ اپ کے لئے ایک سرچ ایپلیکیشن بنانے کے لئے ایمبیڈنگ انڈیکس استعمال کریں گے۔ سرچ ایپلیکیشن ویڈیو کے اس جگہ کا لنک واپس کرے گی جہاں سوال کا جواب موجود ہے۔ یہ طلباء کو جلدی سے مطلوبہ معلومات تلاش کرنے کا ایک بہترین طریقہ ہے۔

یہاں ایک مثال ہے 'کیا آپ Azure ML کے ساتھ rstudio استعمال کر سکتے ہیں؟' سوال کے لئے معنوی تلاش کی۔ یوٹیوب یو آر ایل دیکھیں، آپ کو یو آر ایل میں ایک ٹائم اسٹیمپ ملے گا جو آپ کو ویڈیو کے اس جگہ پر لے جائے گا جہاں سوال کا جواب موجود ہے۔

معنوی تلاش کیا ہے؟

اب آپ سوچ رہے ہوں گے، معنوی تلاش کیا ہے؟ معنوی تلاش ایک تلاش کی تکنیک ہے جو سوال میں الفاظ کے معنی استعمال کرتی ہے تاکہ متعلقہ نتائج واپس کرے۔

یہاں ایک مثال ہے معنوی تلاش کی۔ فرض کریں آپ گاڑی خریدنے کے خواہاں ہیں، آپ 'میری خوابوں کی گاڑی' تلاش کر سکتے ہیں، معنوی تلاش سمجھتی ہے کہ آپ گاڑی کے بارے میں dreaming نہیں ہیں، بلکہ آپ اپنی ideal گاڑی خریدنے کے خواہاں ہیں۔ معنوی تلاش آپ کے ارادے کو سمجھتی ہے اور متعلقہ نتائج واپس کرتی ہے۔ متبادل keyword search ہے جو گاڑیوں کے خوابوں کی تلاش کرے گا اور اکثر غیر متعلقہ نتائج واپس کرے گا۔

ٹیکسٹ ایمبیڈنگز کیا ہیں؟

ٹیکسٹ ایمبیڈنگز ایک ٹیکسٹ نمائندگی تکنیک ہے جو قدرتی زبان کی پراسیسنگ میں استعمال ہوتی ہے۔ ٹیکسٹ ایمبیڈنگز ٹیکسٹ کی معنوی عددی نمائندگی ہیں۔ ایمبیڈنگز ڈیٹا کی نمائندگی کے لئے استعمال ہوتی ہیں تاکہ مشین کے لئے سمجھنا آسان ہو۔ ٹیکسٹ ایمبیڈنگز بنانے کے لئے بہت سے ماڈلز ہیں، اس سبق میں ہم OpenAI ایمبیڈنگ ماڈل کا استعمال کرکے ایمبیڈنگز بنانے پر توجہ دیں گے۔

یہاں ایک مثال ہے، تصور کریں کہ یہ ٹیکسٹ AI شو یوٹیوب چینل کے ایک قسط کے ٹرانسکرپٹ میں موجود ہے:

Today we are going to learn about Azure Machine Learning.

ہم ٹیکسٹ کو OpenAI ایمبیڈنگ API کو پاس کریں گے اور یہ 1536 نمبروں کی ایمبیڈنگ واپس کرے گا جسے ویکٹر بھی کہا جاتا ہے۔ ویکٹر میں ہر نمبر ٹیکسٹ کے مختلف پہلو کی نمائندگی کرتا ہے۔ اختصار کے لئے، یہاں ویکٹر کے پہلے 10 نمبروں کی مثال دی گئی ہے۔

[-0.006655829958617687, 0.0026128944009542465, 0.008792596869170666, -0.02446001023054123, -0.008540431968867779, 0.022071078419685364, -0.010703742504119873, 0.003311325330287218, -0.011632772162556648, -0.02187200076878071, ...]

ایمبیڈنگ انڈیکس کیسے بنایا گیا؟

اس سبق کے لئے ایمبیڈنگ انڈیکس ایک سلسلہ پائتھن اسکرپٹس کے ذریعے بنایا گیا تھا۔ آپ اس سبق کے 'scripts` فولڈر میں README میں اسکرپٹس اور ہدایات پائیں گے۔ آپ کو یہ سبق مکمل کرنے کے لئے ان اسکرپٹس کو چلانے کی ضرورت نہیں ہے کیونکہ ایمبیڈنگ انڈیکس آپ کے لئے فراہم کیا گیا ہے۔

اسکرپٹس درج ذیل آپریشنز انجام دیتے ہیں:

  1. AI شو پلے لسٹ میں موجود ہر یوٹیوب ویڈیو کے لئے ٹرانسکرپٹ ڈاؤن لوڈ کی جاتی ہے۔
  2. OpenAI Functions کا استعمال کرکے یوٹیوب ٹرانسکرپٹ کے پہلے 3 منٹ سے اسپیکر کا نام نکالنے کی کوشش کی جاتی ہے۔ ہر ویڈیو کے لئے اسپیکر کا نام ایمبیڈنگ انڈیکس میں embedding_index_3m.json میں محفوظ کیا جاتا ہے۔
  3. ٹرانسکرپٹ ٹیکسٹ کو 3 منٹ کے ٹیکسٹ حصوں میں تقسیم کیا جاتا ہے۔ ہر حصہ میں اگلے حصے سے تقریبا 20 الفاظ شامل ہوتے ہیں تاکہ حصے کے ایمبیڈنگ کو کاٹنے سے بچایا جا سکے اور بہتر تلاش کا سیاق و سباق فراہم کیا جا سکے۔
  4. ہر ٹیکسٹ حصے کو OpenAI Chat API کو پاس کیا جاتا ہے تاکہ ٹیکسٹ کو 60 الفاظ میں خلاصہ کیا جا سکے۔ خلاصہ بھی ایمبیڈنگ انڈیکس embedding_index_3m.json میں محفوظ کیا جاتا ہے۔
  5. آخر میں، حصے کے ٹیکسٹ کو OpenAI ایمبیڈنگ API کو پاس کیا جاتا ہے۔ ایمبیڈنگ API 1536 نمبروں کا ویکٹر واپس کرتا ہے جو حصے کے معنوی معنی کی نمائندگی کرتا ہے۔ حصہ کے ساتھ OpenAI ایمبیڈنگ ویکٹر ایمبیڈنگ انڈیکس embedding_index_3m.json میں محفوظ کیا جاتا ہے۔

ویکٹر ڈیٹا بیسز

سبق کی سادگی کے لئے، ایمبیڈنگ انڈیکس ایک JSON فائل embedding_index_3m.json میں محفوظ کیا جاتا ہے اور Pandas DataFrame میں لوڈ کیا جاتا ہے۔ تاہم، پروڈکشن میں، ایمبیڈنگ انڈیکس کو ویکٹر ڈیٹا بیس جیسے Azure Cognitive Search، Redis، Pinecone، Weaviate میں محفوظ کیا جاتا ہے۔

کوسائن مماثلت کو سمجھنا

ہم نے ٹیکسٹ ایمبیڈنگز کے بارے میں سیکھا ہے، اگلا قدم یہ ہے کہ ٹیکسٹ ایمبیڈنگز کو ڈیٹا کی تلاش کے لئے کیسے استعمال کیا جائے اور خاص طور پر کوسائن مماثلت کا استعمال کرکے دی گئی سوال کے لئے سب سے زیادہ مماثل ایمبیڈنگز کو کیسے تلاش کیا جائے۔

کوسائن مماثلت کیا ہے؟

کوسائن مماثلت دو ویکٹرز کے درمیان مماثلت کی پیمائش ہے، آپ اسے nearest neighbor search بھی سنیں گے۔ کوسائن مماثلت کی تلاش کرنے کے لئے آپ کو سوال ٹیکسٹ کے لئے OpenAI ایمبیڈنگ API کا استعمال کرکے ویکٹرائز کرنے کی ضرورت ہوتی ہے۔ پھر سوال ویکٹر اور ایمبیڈنگ انڈیکس میں ہر ویکٹر کے درمیان کوسائن مماثلت کا حساب لگائیں۔ یاد رکھیں، ایمبیڈنگ انڈیکس میں ہر یوٹیوب ٹرانسکرپٹ ٹیکسٹ حصے کے لئے ایک ویکٹر ہوتا ہے۔ آخر میں، کوسائن مماثلت کے ذریعے نتائج کو ترتیب دیں اور سب سے زیادہ کوسائن مماثلت والے ٹیکسٹ حصے سوال کے لئے سب سے زیادہ مماثل ہوتے ہیں۔

ریاضی کے نقطہ نظر سے، کوسائن مماثلت دو ویکٹرز کے درمیان زاویہ کا کوسائن کی پیمائش کرتی ہے جو کثیر جہتی خلاء میں پروجیکٹ کیے جاتے ہیں۔ یہ پیمائش فائدہ مند ہوتی ہے، کیونکہ اگر دو دستاویزات یورپی فاصلے کے لحاظ سے دور ہیں کیونکہ ان کا حجم بڑا ہے، تو ان کے درمیان زاویہ چھوٹا ہو سکتا ہے اور اس وجہ سے ان کی کوسائن مماثلت زیادہ ہو سکتی ہے۔ کوسائن مماثلت مساوات کے بارے میں مزید معلومات کے لئے، کوسائن مماثلت دیکھیں۔

اپنا پہلا سرچ ایپلیکیشن بنانا

اگلا، ہم ایمبیڈنگز کا استعمال کرکے سرچ ایپلیکیشن بنانا سیکھیں گے۔ سرچ ایپلیکیشن طلباء کو سوال ٹائپ کرکے ویڈیو تلاش کرنے کی اجازت دے گی۔ سرچ ایپلیکیشن سوال کے لئے متعلقہ ویڈیوز کی فہرست واپس کرے گی۔ سرچ ایپلیکیشن ویڈیو کے اس جگہ کا لنک بھی واپس کرے گی جہاں سوال کا جواب موجود ہے۔

یہ حل ونڈوز 11، میک او ایس، اور اوبنٹو 22.04 پر پائتھن 3.10 یا بعد میں استعمال کرکے بنایا اور ٹیسٹ کیا گیا تھا۔ آپ python.org سے پائتھن ڈاؤن لوڈ کر سکتے ہیں۔

اسائنمنٹ - طلباء کو فعال کرنے کے لئے سرچ ایپلیکیشن بنانا

ہم نے سبق کے آغاز میں اپنے اسٹارٹ اپ کا تعارف کرایا۔ اب وقت ہے کہ طلباء کو ان کے اسائنمنٹس کے لئے سرچ ایپلیکیشن بنانے کے قابل بنائیں۔

اس اسائنمنٹ میں، آپ Azure OpenAI سروسز بنائیں گے جو سرچ ایپلیکیشن بنانے کے لئے استعمال کی جائیں گی۔ آپ درج ذیل Azure OpenAI سروسز بنائیں گے۔ اس اسائنمنٹ کو مکمل کرنے کے لئے آپ کو Azure سبسکرپشن کی ضرورت ہوگی۔

Azure کلاؤڈ شیل شروع کریں

  1. Azure پورٹل میں سائن ان کریں۔
  2. Azure پورٹل کے اوپری دائیں کونے میں کلاؤڈ شیل آئیکن منتخب کریں۔
  3. ماحول کی قسم کے لئے Bash منتخب کریں۔

ایک ریسورس گروپ بنائیں

ان ہدایات کے لئے، ہم مشرقی امریکہ میں "semantic-video-search" نامی ریسورس گروپ استعمال کر رہے ہیں۔ آپ ریسورس گروپ کا نام تبدیل کر سکتے ہیں، لیکن جب ریسورسز کے لئے مقام تبدیل کریں، ماڈل دستیابی کی جدول چیک کریں۔

az group create --name semantic-video-search --location eastus

Azure OpenAI سروس ریسورس بنائیں

Azure کلاؤڈ شیل سے، درج ذیل کمانڈ چلائیں تاکہ Azure OpenAI سروس ریسورس بنایا جا سکے۔

az cognitiveservices account create --name semantic-video-openai --resource-group semantic-video-search \
    --location eastus --kind OpenAI --sku s0

اس ایپلیکیشن میں استعمال کے لئے اختتامی نقطہ اور کلیدیں حاصل کریں

Azure کلاؤڈ شیل سے، Azure OpenAI سروس ریسورس کے لئے اختتامی نقطہ اور کلیدیں حاصل کرنے کے لئے درج ذیل کمانڈز چلائیں۔

az cognitiveservices account show --name semantic-video-openai \
   --resource-group  semantic-video-search | jq -r .properties.endpoint
az cognitiveservices account keys list --name semantic-video-openai \
   --resource-group semantic-video-search | jq -r .key1

OpenAI ایمبیڈنگ ماڈل تعینات کریں

Azure کلاؤڈ شیل سے، OpenAI ایمبیڈنگ ماڈل تعینات کرنے کے لئے درج ذیل کمانڈ چلائیں۔

az cognitiveservices account deployment create \
    --name semantic-video-openai \
    --resource-group  semantic-video-search \
    --deployment-name text-embedding-ada-002 \
    --model-name text-embedding-ada-002 \
    --model-version "2"  \
    --model-format OpenAI \
    --sku-capacity 100 --sku-name "Standard"

حل

GitHub Codespaces میں حل کا نوٹ بک کھولیں اور Jupyter نوٹ بک میں دی گئی ہدایات پر عمل کریں۔

جب آپ نوٹ بک چلائیں گے، تو آپ کو ایک سوال درج کرنے کے لئے کہا جائے گا۔ ان پٹ باکس اس طرح نظر آئے گا:

زبردست کام! اپنی تعلیم جاری رکھیں

اس سبق کو مکمل کرنے کے بعد، ہماری جنریٹو AI لرننگ کلیکشن چیک کریں تاکہ اپنی جنریٹو AI کی معلومات کو مزید بڑھائیں!

سبق 9 میں جائیں جہاں ہم دیکھیں گے کہ کیسے تصویری جنریشن ایپلیکیشنز بنائیں!

ڈس کلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لیے کوشش کرتے ہیں، براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غلط فہمیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ورانہ انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تعبیر کے ذمہ دار نہیں ہیں۔