ڈیپ پاولوف ڈویلپرز کے لیے: #1 NLP ٹولز اور چیٹ بوٹ تخلیق

سب کو سلام! ہم قدرتی زبان کی پروسیسنگ (نیچرل لینگویج پروسیسنگ یا صرف NLP) سے متعلق عملی مسائل کو حل کرنے اور اوپن سورس لائبریری کا استعمال کرتے ہوئے ڈائیلاگ ایجنٹس (چیٹ بوٹس) بنانے کے لیے وقف مضامین کا ایک سلسلہ کھول رہے ہیں۔ دیپ پاولوفجسے ہماری ٹیم ایم آئی پی ٹی لیبارٹری آف نیورل سسٹمز اینڈ ڈیپ لرننگ میں تیار کر رہی ہے۔ سیریز کا بنیادی مقصد ڈیپ پاولوف کو ڈیولپرز کی ایک وسیع رینج سے متعارف کرانا ہے اور یہ بتانا ہے کہ آپ کس طرح مشین لرننگ اور ریاضی میں پی ایچ ڈی میں گہری معلومات کے بغیر لاگو NLP مسائل کو حل کر سکتے ہیں۔

این ایل پی کے کاموں میں متن کے جذبات کا تعین کرنا، نام شدہ اداروں کو پارس کرنا، اس بات کا تعین کرنا کہ بات کرنے والا آپ کے بوٹ سے کیا چاہتا ہے: پیزا آرڈر کرنا یا پس منظر کی معلومات حاصل کرنا، اور بہت کچھ۔ آپ NLP کاموں اور طریقوں کے بارے میں مزید پڑھ سکتے ہیں۔ یہاں.

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

ڈیپ پاولوف ڈویلپرز کے لیے: #1 NLP ٹولز اور چیٹ بوٹ تخلیق

ڈیپ پاولوف کی تنصیب

یہاں اور نیچے لینکس کے لیے ہدایات دی جائیں گی۔ ونڈوز کے لیے، ہمارا دیکھیں دستاویزات

  • Python کے موجودہ تعاون یافتہ ورژن کے ساتھ ایک ورچوئل ماحول بنائیں اور فعال کریں:
    virtualelnv env -p python3.7
    source env/bin/activate
  • ڈیپ پاولوف کو ورچوئل ماحول میں انسٹال کریں:
    pip install deeppavlov
    

DeepPavlov ماڈل کے ساتھ ایک REST سرور لانچ کرنا

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

ڈی پی میں کوئی بھی ماڈل پر مشتمل ہے:

  • ازگر کوڈ؛
  • ڈاؤن لوڈ کے قابل اجزاء - مخصوص ڈیٹا پر سیریلائزڈ ٹریننگ کے نتائج (ایمبیڈنگز، نیورل نیٹ ورکس کے وزن وغیرہ)؛
  • ایک کنفیگریشن فائل (اس کے بعد کنفیگریشن کہا جاتا ہے)، جس میں ماڈل کے ذریعے استعمال کی جانے والی کلاسز، ڈاؤن لوڈ کیے گئے اجزاء کے URLs، ازگر پر انحصار، وغیرہ کے بارے میں معلومات ہوتی ہیں۔

ہم آپ کو اس بارے میں مزید بتائیں گے کہ دیپ پاولوف کے زیر اثر کیا ہے، فی الحال ہمارے لیے یہ جان لینا کافی ہے:

  • DeepPavlov میں کسی بھی ماڈل کی شناخت اس کی تشکیل کے نام سے کی جاتی ہے۔
  • ماڈل کو چلانے کے لیے، آپ کو اس کے اجزاء کو DeepPavlov سرورز سے ڈاؤن لوڈ کرنے کی ضرورت ہے۔
  • اس کے علاوہ، ماڈل کو چلانے کے لیے، آپ کو Python لائبریریاں انسٹال کرنے کی ضرورت ہے جو یہ استعمال کرتی ہے۔

پہلا ماڈل جسے ہم لانچ کریں گے وہ کثیر لسانی نامی ہستی کی شناخت (NER) ہوگا۔ ماڈل متنی الفاظ کی درجہ بندی کرتا ہے اس قسم کے مطابق جس سے وہ تعلق رکھتے ہیں (مناسب نام، جغرافیائی نام، کرنسیوں کے نام، اور دیگر)۔ NER کے حالیہ تازہ ترین ورژن کے لیے ترتیب کا نام:

ner_ontonotes_bert_mult

ہم ماڈل کے ساتھ REST سرور لانچ کرتے ہیں:

  1. ہم اس کی تشکیل میں متعین ماڈل انحصار کو فعال ورچوئل ماحول میں انسٹال کرتے ہیں:
    python -m deeppavlov install ner_ontonotes_bert_mult
    
  2. ڈیپ پاولوف سرورز سے سیریلائزڈ ماڈل کے اجزاء ڈاؤن لوڈ کریں:
    python -m deeppavlov download ner_ontonotes_bert_mult
    

    سیریلائزڈ اجزاء کو DeepPavlov ہوم ڈائرکٹری میں ڈاؤن لوڈ کیا جائے گا، جو ڈیفالٹ کے طور پر واقع ہے

    ~/.deeppavlov

    ڈاؤن لوڈ کرتے وقت، پہلے سے ڈاؤن لوڈ کردہ اجزاء کی ہیش کو سرور پر موجود اجزاء کی ہیش کے خلاف چیک کیا جاتا ہے۔ اگر کوئی مماثلت ہے تو، ڈاؤن لوڈ کو چھوڑ دیا جاتا ہے اور موجودہ فائلوں کو استعمال کیا جاتا ہے۔ ڈاؤن لوڈ کردہ اجزاء کے سائز اوسطاً 0.5 سے 8 Gb تک مختلف ہو سکتے ہیں، بعض صورتوں میں ان زپ کرنے کے بعد 20 Gb تک پہنچ جاتے ہیں۔

  3. ہم ماڈل کے ساتھ REST سرور لانچ کرتے ہیں:
    python -m deeppavlov riseapi ner_ontonotes_bert_mult -p 5005
    

اس کمانڈ پر عمل کرنے کے نتیجے میں، ایک ماڈل کے ساتھ ایک REST سرور میزبان مشین کے پورٹ 5005 پر شروع کیا جائے گا (پہلے سے طے شدہ پورٹ 5000 ہے)۔

ماڈل کو شروع کرنے کے بعد، API دستاویزات کے ساتھ Swagger اور جانچ کرنے کی صلاحیت URL پر مل سکتی ہے۔ http://127.0.0.1:5005. آئیے ماڈل کو اینڈ پوائنٹ پر بھیج کر جانچتے ہیں۔ http://127.0.0.1:5005/model درج ذیل JSON مواد کے ساتھ درخواست پوسٹ کریں:

{
  "x": [
    "В МФТИ можно добраться на электричке с Савёловского Вокзала.",
    "В юго-западной Руси стог жита оценен в 15 гривен"
  ]
}

جواب میں ہمیں درج ذیل JSON موصول ہونا چاہیے:

[
  [
    ["В", "МФТИ", "можно", "добраться", "на", "электричке", "с", "Савёловского", "Вокзала", "."],
    ["O", "B-FAC", "O", "O", "O", "O", "O", "B-FAC", "I-FAC", "O"]
  ],
  [
    ["В", "юго", "-", "западной", "Руси", "стог", "жита", "оценен", "в", "15", "гривен"],
    ["O", "B-LOC", "I-LOC", "I-LOC", "I-LOC", "O", "O", "O", "O", "B-MONEY", "I-MONEY"]
  ]
]

ان مثالوں کو استعمال کرتے ہوئے، ہم DeepPavlov REST API کا تجزیہ کریں گے۔

API DeepPavlov

ہر DeepPavlov ماڈل میں کم از کم ایک ان پٹ دلیل ہوتی ہے۔ REST API میں، دلائل کا نام دیا گیا ہے، ان کے نام آنے والی لغت کی کلید ہیں۔ زیادہ تر معاملات میں، دلیل وہ متن ہے جس پر کارروائی کی ضرورت ہے۔ ماڈلز کے ذریعے لوٹائے گئے دلائل اور اقدار کے بارے میں مزید معلومات دستاویزات کے MODELS سیکشن میں مل سکتی ہیں۔ دیپ پاولوف

مثال میں، دو سٹرنگز کی ایک فہرست آرگیومینٹ x کو دی گئی تھی، جن میں سے ہر ایک کو الگ مارک اپ دیا گیا تھا۔ DeepPavlov میں، تمام ماڈلز ان پٹ کے طور پر اقدار کی فہرست (بیچ) لیتے ہیں جن پر آزادانہ طور پر کارروائی کی جاتی ہے۔

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

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

مندرجہ بالا مثال میں، ماڈل کا نتیجہ یہ تھا کہ ہر اسٹرنگ کو ٹوکنز (الفاظ اور اوقاف کے نشانات) میں توڑا جائے اور اس کی نمائندگی کرنے والی نامزد ہستی (تنظیم کا نام، کرنسی) کے نسبت ٹوکن کی درجہ بندی کی جائے۔ فی الحال ماڈل ner_ontonotes_bert_mult 18 قسم کے نامزد اداروں کو پہچاننے کے قابل، تفصیلی وضاحت مل سکتی ہے۔ یہاں.

دیپ پاولوف کے دوسرے آؤٹ آف دی باکس ماڈلز

NER کے علاوہ، درج ذیل آؤٹ آف دی باکس ماڈلز تحریر کے وقت DeepPavlov میں دستیاب ہیں:

متنی سوال کا جواب

اس متن کے ایک ٹکڑے کے ساتھ متن کے سوال کا جواب دیں۔ ماڈل کی تشکیل: squad_ru_bert_infer

مثال کی درخواست:

{
  "context_raw": [
    "DeepPavlov разрабатывается лабораторией МФТИ.",
    "В юго-западной Руси стог жита оценен в 15 гривен."
  ],
  "question_raw": [
    "Кем разрабатывается DeepPavlov?",
    "Сколько стоил стог жита на Руси?"
  ]
}

نتیجہ:

[
  ["лабораторией МФТИ", 27, 31042.484375],
  ["15 гривен", 39, 1049.598876953125]
]

توہین کا پتہ لگانا

اس شخص کی توہین کی موجودگی کا پتہ لگانا جس سے متن کو مخاطب کیا گیا ہے (تحریر کے وقت - صرف انگریزی کے لیے)۔ ماڈل کی تشکیل: insults_kaggle_conv_bert

مثال کی درخواست:


{
  "x": [
    "Money talks, bullshit walks.",
    "You are not the brightest one."
  ]
}

نتیجہ:

[
  ["Not Insult"],
  ["Insult"]
]

احساس تجزیہ

متنی جذبات کی درجہ بندی (مثبت، غیر جانبدار، منفی)۔ ماڈل کی تشکیل: rusentiment_elmo_twitter_cnn

مثال کی درخواست:

{
  "x": [
    "Мне нравится библиотека DeepPavlov.",
    "Я слышал о библиотеке DeepPavlov.",
    "Меня бесят тролли и анонимусы."
  ]
}

نتیجہ:

[
  ["positive"],
  ["neutral"],
  ["negative"]
]

پیرا فریس کا پتہ لگانا

اس بات کا تعین کرنا کہ آیا دو مختلف عبارتوں کا ایک ہی مطلب ہے۔ ماڈل کی تشکیل: stand_paraphraser_ru

درخواست:

{
  "text_a": [
    "Город погружается в сон, просыпается Мафия.",
    "Президент США пригрозил расторжением договора с Германией."
  ],
  "text_b": [
    "Наступает ночь, все жители города пошли спать, а преступники проснулись.",
    "Германия не собирается поддаваться угрозам со стороны США."
  ]
}

نتیجہ:

[
  [1],
  [0]
]

تمام آؤٹ آف دی باکس DeepPavlov ماڈلز کی موجودہ فہرست ہمیشہ مل سکتی ہے۔ یہاں.

حاصل يہ ہوا

اس مضمون میں، ہم DeepPavlov API اور لائبریری کی کچھ ٹیکسٹ پروسیسنگ صلاحیتوں سے واقف ہوئے جو باکس کے باہر فراہم کی گئی ہیں۔ یہ ذہن میں رکھنا چاہیے کہ کسی بھی NLP کام کے لیے، بہترین نتیجہ اس وقت حاصل کیا جائے گا جب ٹاسک کے موضوع کے علاقے (ڈومین) کے مطابق ڈیٹا سیٹ پر ماڈل کی تربیت کی جائے گی۔ اس کے علاوہ، اس سے بھی زیادہ ماڈل، اصولی طور پر، تمام حالات کے لیے تربیت یافتہ نہیں ہو سکتے۔

مندرجہ ذیل مضامین میں ہم لائبریری کی اضافی ترتیبات کو دیکھیں گے، ڈوکر سے DeepPavlov کا آغاز کریں گے، اور پھر ہم تربیتی ماڈلز کی طرف بڑھیں گے۔ اور یہ نہ بھولیں کہ DeepPavlov کے پاس ہے۔ فورم - لائبریری اور ماڈلز کے بارے میں اپنے سوالات پوچھیں۔ آپکی توجہ کا شکریہ!

ماخذ: www.habr.com

نیا تبصرہ شامل کریں