ڊولپرز لاءِ ڊيپ پاولوف: #1 اين ايل پي ٽولز ۽ چيٽ بوٽ ٺاهڻ

هيلو سڀ! اسان مضمونن جو هڪ سلسلو شروع ڪري رهيا آهيون جيڪي عملي مسئلن کي حل ڪرڻ لاءِ وقف ڪري رهيا آهيون قدرتي ٻولي پروسيسنگ (قدرتي ٻولي پروسيسنگ يا صرف اين ايل پي) ۽ هڪ اوپن سورس لائبريري استعمال ڪندي ڊائلاگ ايجنٽ (چيٽ بوٽس) ٺاهڻ. ديپ پاولوف، جيڪو اسان جي ٽيم پاران MIPT ليبارٽري آف نيورل سسٽم ۽ ڊيپ لرننگ ۾ تيار ڪيو پيو وڃي. سيريز جو بنيادي مقصد DeepPavlov کي ڊولپرز جي وسيع رينج سان متعارف ڪرائڻ آهي ۽ ڏيکاريو ته توهان مشين لرننگ ۽ رياضي ۾ پي ايڇ ڊي ۾ گهڻي ڄاڻ حاصل ڪرڻ کان سواءِ لاڳو ٿيل NLP مسئلن کي ڪيئن حل ڪري سگهو ٿا.

NLP ڪمن ۾ متن جي جذبي جو تعين ڪرڻ، نامزد ٿيل ادارن کي پارس ڪرڻ، اھو طئي ڪرڻ شامل آھي ته ڳالھائيندڙ توھان جي بوٽ مان ڇا گھري ٿو: پيزا آرڊر ڪريو يا پس منظر جي معلومات حاصل ڪريو، ۽ گھڻو ڪجھ. توھان NLP ڪمن ۽ طريقن بابت وڌيڪ پڙھي سگھو ٿا هتي.

هن آرٽيڪل ۾، اسين توهان کي ڏيکارينداسين ته ڪيئن هلائڻ لاءِ هڪ REST سرور اڳ-تربيت ٿيل NLP ماڊلز سان، ڪنهن به اضافي ترتيب يا تربيت کان سواءِ استعمال ڪرڻ لاءِ تيار.

ڊولپرز لاءِ ڊيپ پاولوف: #1 اين ايل پي ٽولز ۽ چيٽ بوٽ ٺاهڻ

DeepPavlov جي انسٽاليشن

هتي ۽ هيٺ، لينڪس لاء هدايتون ڏنيون وينديون. ونڊوز لاءِ، ڏسو اسان جو دستاويز

  • Python جي موجوده سپورٽ ٿيل ورزن سان هڪ مجازي ماحول ٺاهيو ۽ فعال ڪريو:
    virtualelnv env -p python3.7
    source env/bin/activate
  • هڪ مجازي ماحول ۾ DeepPavlov انسٽال ڪريو:
    pip install deeppavlov
    

ڊيپ پاولوف ماڊل سان گڏ هڪ REST سرور لانچ ڪرڻ

ان کان اڳ جو اسان پهريون ڀيرو ڊيپ پاولوف ماڊل سان سرور شروع ڪريون، اهو مفيد ٿيندو ته لائبريري جي فن تعمير جي ڪجهه خاصيتن بابت ڳالهايو.

DP ۾ ڪنهن به ماڊل تي مشتمل آهي:

  • پٿون ڪوڊ؛
  • ڊائون لوڊ جا حصا - مخصوص ڊيٽا تي سيريل ٿيل ٽريننگ جا نتيجا (ايمبيڊنگ، نيورل نيٽ ورڪ جو وزن، وغيره)؛
  • هڪ ترتيب واري فائيل (هتان کان پوءِ config جي طور تي حوالو ڏنو ويو آهي)، جنهن ۾ ماڊل پاران استعمال ڪيل طبقن بابت معلومات، ڊائون لوڊ ڪيل اجزاء جا URL، پٿون انحصار، وغيره شامل آهن.

اسان توھان کي وڌيڪ ٻڌائينداسين ته ڇا آھي DeepPavlov جي ھيٺان ھيٺ ڏنل مضمونن ۾، ھاڻي اسان لاء اھو ڄاڻڻ ڪافي آھي ته:

  • 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 کان علاوه، ھيٺ ڏنل دٻي جا ماڊل ڊيپ پاولوف ۾ موجود آھن لکڻ جي وقت:

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

ھن متن جي ھڪڙي ٽڪري سان متن جي سوال جو جواب ڏيو. ماڊل ترتيب: اسڪواڊ_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_en

درخواست:

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

نتيجو

[
  [1],
  [0]
]

سڀ کان ٻاهر جي دٻي جي موجوده فهرست DeepPavlov ماڊلز هميشه ملي سگهي ٿو هتي.

ٿڪل

هن آرٽيڪل ۾، اسان ڊيپ پاولوف API سان واقف ٿي چڪا آهيون ۽ لائبريري جي ڪجهه ٽيڪسٽ پروسيسنگ صلاحيتن کي باڪس مان مهيا ڪيل آهي. اهو ذهن ۾ پيدا ٿيڻ گهرجي ته ڪنهن به NLP ڪم لاء، بهترين نتيجو حاصل ڪيو ويندو جڏهن ماڊل کي تربيت ڏيڻ واري ڊيٽا سيٽ تي ڪم جي موضوع واري علائقي (ڊومين) سان لاڳاپيل آهي. ان کان سواء، اڃا به وڌيڪ ماڊل، اصول ۾، سڀني حالتن لاء تربيت نه ٿا ڪري سگهو.

هيٺ ڏنل مضمونن ۾ اسان لائبريري جي اضافي سيٽنگن تي نظر ڪنداسين، ڊاکر کان DeepPavlov کي لانچ ڪندي، ۽ پوء اسين ٽريننگ ماڊل ڏانهن منتقل ڪنداسين. ۽ اهو نه وساريو ته DeepPavlov آهي فورم - لائبريري ۽ ماڊل بابت پنهنجا سوال پڇو. توهان جي توجه لاء مهرباني!

جو ذريعو: www.habr.com

تبصرو شامل ڪريو