DeepPavlov airson luchd-leasachaidh: #1 innealan NLP agus cruthachadh chatbot

Hi uile! Tha sinn a’ fosgladh sreath de dh’ artaigilean a tha coisrigte ri bhith a’ fuasgladh dhuilgheadasan practaigeach co-cheangailte ri giullachd cànain nàdarrach (Gnìomh Cànain Nàdarra no dìreach NLP) agus a’ cruthachadh riochdairean còmhraidh (chatbots) a’ cleachdadh leabharlann stòr fosgailte. Deep Pavlov, a tha ga leasachadh leis an sgioba againn aig Saotharlann MIPT air Siostaman Neural agus Ionnsachadh domhainn. Is e prìomh amas an t-sreath DeepPavlov a thoirt a-steach do raon farsaing de luchd-leasachaidh agus sealltainn mar as urrainn dhut fuasgladh fhaighinn air duilgheadasan NLP gnìomhaichte gun eòlas domhainn a bhith agad ann an Ionnsachadh Inneal agus PhD ann am Matamataig.

Tha gnìomhan NLP a’ toirt a-steach a bhith a’ dearbhadh faireachdainn an teacsa, a’ parsadh bhuidhnean ainmichte, a’ dearbhadh dè a tha an neach-conaltraidh ag iarraidh bhon bhot agad: òrdaich piotsa no faigh cùl-fhiosrachadh, agus mòran a bharrachd. Faodaidh tu barrachd a leughadh mu ghnìomhan agus dhòighean NLP an seo.

San artaigil seo, seallaidh sinn dhut mar a ruitheas tu frithealaiche REST le modalan NLP ro-thrèanadh, deiseil airson a chleachdadh gun rèiteachadh no trèanadh a bharrachd.

DeepPavlov airson luchd-leasachaidh: #1 innealan NLP agus cruthachadh chatbot

Stàladh Deep Pavlov

An seo agus gu h-ìosal, thèid stiùireadh airson Linux a thoirt seachad. Airson Windows, faic ar sgrìobhainnean

  • Cruthaich agus cuir an gnìomh àrainneachd bhrìgheil leis an dreach làithreach de Python le taic:
    virtualelnv env -p python3.7
    source env/bin/activate
  • Stàlaich DeepPavlov ann an àrainneachd bhrìgheil:
    pip install deeppavlov
    

A 'cur air bhog frithealaiche REST leis a' mhodail DeepPavlov

Mus cuir sinn air bhog frithealaiche leis a 'mhodail DeepPavlov airson a' chiad uair, bidh e feumail bruidhinn mu chuid de fheartan ailtireachd an leabharlainn.

Tha modail sam bith ann an DP air a dhèanamh suas de:

  • còd Python;
  • Co-phàirtean a ghabhas luchdachadh a-nuas - toraidhean trèanaidh sreathach air dàta sònraichte (bun-stèidh, cuideaman lìonraidhean neural, msaa);
  • Faidhle rèiteachaidh (ris an canar an config an-seo), anns a bheil fiosrachadh mu na clasaichean a chleachdas am modail, URLan de phàirtean a chaidh a luchdachadh sìos, eisimeileachd Python, msaa.

Innsidh sinn barrachd dhut mu na tha fo chochall DeepPavlov anns na h-artaigilean a leanas, airson a-nis tha e gu leòr dhuinn fios a bhith agad:

  • Tha modail sam bith ann an DeepPavlov air a chomharrachadh leis an ainm a config;
  • Gus am modail a ruith, feumaidh tu na co-phàirtean aige a luchdachadh sìos bho na frithealaichean DeepPavlov;
  • Cuideachd, gus am modail a ruith, feumaidh tu na leabharlannan Python a chleachdas e a stàladh.

Bidh a’ chiad mhodail a chuireas sinn air bhog mar Aithneachadh Aonad Ainmichte ioma-chànanach (NER). Bidh am modail a’ seòrsachadh fhaclan teacsa a rèir an t-seòrsa de bhuidhnean ainmichte dham buin iad (ainmean ceart, ainmean cruinn-eòlasach, ainmean airgeadan, agus feadhainn eile). Ainm rèiteachaidh airson an dreach as ùire de NER:

ner_ontonotes_bert_mult

Bidh sinn a’ cur air bhog am frithealaiche REST leis a’ mhodail:

  1. Bidh sinn a’ stàladh na h-eisimeileachd modail a tha air an sònrachadh san rèiteachadh aige a-steach don àrainneachd bhrìgheil ghnìomhach:
    python -m deeppavlov install ner_ontonotes_bert_mult
    
  2. Luchdaich sìos co-phàirtean modail sreathach bho luchd-frithealaidh DeepPavlov:
    python -m deeppavlov download ner_ontonotes_bert_mult
    

    Thèid na pàirtean sreathach a luchdachadh sìos gu eòlaire dachaigh DeepPavlov, a tha stèidhichte gu bunaiteach

    ~/.deeppavlov

    Nuair a bhios tu a’ luchdachadh sìos, thèid an hash de cho-phàirtean a chaidh a luchdachadh sìos mu thràth a sgrùdadh an aghaidh hashes nan co-phàirtean a tha suidhichte air an fhrithealaiche. Ma tha maids ann, thèid an luchdachadh sìos a leum agus thèid na faidhlichean a tha ann mu thràth a chleachdadh. Faodaidh meudan phàirtean a chaidh a luchdachadh sìos atharrachadh gu cuibheasach bho 0.5 gu 8 Gb, ann an cuid de chùisean a’ ruighinn 20 Gb às deidh an unzipping.

  3. Bidh sinn a’ cur air bhog am frithealaiche REST leis a’ mhodail:
    python -m deeppavlov riseapi ner_ontonotes_bert_mult -p 5005
    

Mar thoradh air an àithne seo a chuir an gnìomh, thèid frithealaiche REST le modail a chuir air bhog air port 5005 den inneal aoigheachd (is e am port bunaiteach 5000).

Às deidh dhut am modail a thòiseachadh, lorgar Swagger le sgrìobhainnean API agus an comas deuchainn aig an URL http://127.0.0.1:5005. Feuch an dèan sinn deuchainn air a’ mhodail le bhith ga chuir chun phuing crìochnachaidh http://127.0.0.1:5005/model Iarrtas POST leis an t-susbaint JSON a leanas:

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

Mar fhreagairt bu chòir dhuinn an JSON a leanas fhaighinn:

[
  [
    ["В", "МФТИ", "можно", "добраться", "на", "электричке", "с", "Савёловского", "Вокзала", "."],
    ["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"]
  ]
]

A’ cleachdadh nan eisimpleirean sin, nì sinn mion-sgrùdadh air an DeepPavlov REST API.

API DeepPavlov

Tha co-dhiù aon argamaid inntrigidh aig gach modail DeepPavlov. Anns an REST API, tha argamaidean air an ainmeachadh, is e na h-ainmean aca iuchraichean an fhaclair a tha a’ tighinn a-steach. Anns a 'mhòr-chuid de chùisean, is e an argamaid an teacsa a dh'fheumar a phròiseasadh. Gheibhear tuilleadh fiosrachaidh mu argamaidean agus luachan air an tilleadh le modailean anns an earrann MODELS de na sgrìobhainnean Deep Pavlov

Anns an eisimpleir, chaidh liosta de dhà shreath a chuir gu argamaid x, agus chaidh comharradh fa leth a thoirt do gach fear dhiubh. Ann an DeepPavlov, bidh a h-uile modal a ’toirt a-steach liosta (batch) de luachan a tha air an giullachd gu neo-eisimeileach.

Tha am facal “batch” a’ toirt iomradh air raon ionnsachadh innealan agus a’ toirt iomradh air baidse de luachan cuir a-steach neo-eisimeileach air an giullachd le algairim no lìonra neural aig an aon àm. Leigidh an dòigh-obrach seo leat an ùine a bhios am modail a’ pròiseasadh aon eileamaid de bhaidse a lughdachadh (gu tric gu mòr) an coimeas ris an aon luach a chaidh a thoirt don chur-a-steach fa leth. Ach chan eil an toradh giollachd air a thoirt seachad ach às deidh na h-eileamaidean uile a bhith air an giullachd. Mar sin, nuair a bhios tu a 'cruthachadh baidse a tha a' tighinn a-steach, feumar aire a thoirt do astar a 'mhodail agus an ùine giollachd a tha a dhìth airson gach aon de na h-eileamaidean fa leth aige.

Ma tha grunn argamaidean ann airson modal DeepPavlov, gheibh gach fear dhiubh a bhaidse fhèin de luachan, agus aig an toradh bidh am modail an-còmhnaidh a ’toirt a-mach aon bhaidse de fhreagairtean. Tha na h-eileamaidean den bhaidse a tha a’ dol a-mach mar thoradh air a bhith a’ giullachd nan eileamaidean de na batches a tha a’ tighinn a-steach leis an aon chlàr-amais.

Anns an eisimpleir gu h-àrd, b’ e toradh a’ mhodail gach sreang a bhriseadh sìos gu comharran (faclan agus comharran puingeachaidh) agus an comharradh a sheòrsachadh an coimeas ris an eintiteas ainmichte (ainm na buidhne, airgead-crìche) a tha e a’ riochdachadh. An-dràsta am modail ner_ontonotes_bert_mult comasach air 18 seòrsa de bhuidhnean ainmichte aithneachadh, gheibhear tuairisgeul mionaideach an seo.

Modalan taobh a-muigh eile le DeepPavlov

A bharrachd air NER, tha na modalan taobh a-muigh a’ bhogsa a leanas rim faighinn ann an DeepPavlov aig àm sgrìobhaidh:

Freagairt Ceist Text

Freagair a’ cheist don teacsa le criomag den teacsa seo. Modail config: squad_ru_bert_infer

Eisimpleir iarrtas:

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

Toradh:

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

Dearbhadh Insult

A’ lorg làthaireachd masladh don neach ris a bheil an teacsa air a sheòladh (aig àm sgrìobhaidh - dìreach airson Beurla). Modail config: insults_kaggle_conv_bert

Eisimpleir iarrtas:


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

Toradh:

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

Mion-sgrùdadh sentiment

Seòrsachadh faireachdainn teacsa (dearbhach, neodrach, àicheil). Modail config: rusentiment_elmo_twitter_cnn

Eisimpleir iarrtas:

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

Toradh:

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

Dearbhadh paraphrase

Co-dhùnadh a bheil an aon chiall aig dà theacsa eadar-dhealaichte. Modail config: seasamh_paraphraser_ru

Iarrtas:

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

Toradh:

[
  [1],
  [0]
]

Gheibhear an liosta gnàthach de na modalan DeepPavlov taobh a-muigh a ’bhogsa an-còmhnaidh an seo.

co-dhùnadh

San artaigil seo, fhuair sinn eòlas air API DeepPavlov agus cuid de na comasan giullachd teacsa san leabharlann a chaidh a thoirt seachad a-mach às a’ bhogsa. Bu chòir cuimhneachadh, airson gnìomh NLP sam bith, gun tèid an toradh as fheàrr a choileanadh nuair a bhios tu a’ trèanadh a’ mhodail air seata dàta a tha co-chosmhail ri raon cuspair (àrainn) na h-obrach. A bharrachd air an sin, chan urrainn eadhon barrachd mhodalan, ann am prionnsapal, a bhith air an trèanadh airson a h-uile suidheachadh.

Anns na h-artaigilean a leanas bheir sinn sùil air suidheachaidhean a bharrachd den leabharlann, a 'cur air bhog DeepPavlov bho Docker, agus an uairsin gluaisidh sinn air adhart gu modalan trèanaidh. Agus na dì-chuimhnich gu bheil DeepPavlov air am fòram - faighnich do cheistean mun leabharlann agus na modailean. Tapadh leibh airson an aire agad!

Source: www.habr.com

Cuir beachd ann