Kuidas luua DeepPavlovi abil robot „Tere maailm!” 4 sammuga

DeepPavlov on jutukas tehisintellekti raamistik, mis sisaldab kõiki vestlusprogrammide loomiseks vajalikke komponente. DeepPavlov on välja töötatud avatud lähtekoodiga masinõpperaamistike TensorFlow ja Keras peal. See on tasuta ja hõlpsasti kasutatav. See on esimene artiklite seerias loodusliku keele töötlemise (NLP) DeepPavlovi raamistiku kohta. See näitab, kuidas luua meie raamistikuga mustritele vastavat vestlusprogrammi.

Sissejuhatus

Vestlusbot on jutukas AI-süsteem, mis suudab inimesega suhelda loomulikus keeles. Seda saab integreerida veebisaitidesse, sõnumsideplatvormidesse ja seadmesse. Teie ettevõte võib rutiinsed toimingud delegeerida vestlusprogrammile, mis saab korraga töödelda mitu kasutaja taotlust. Erinevalt inimestest on vestlusbotid alati teie abistamiseks saadaval ja tohutu tööjõukulude kokkuhoiu võimaldamiseks. Lisaks armastavad inimesed sageli uurida chatboti võimeid ja proovida midagi uut.

Ajalooliselt võib vestlusprogrammid jagada kahte suurde rühma: reeglipõhised ja andmepõhised. Reeglipõhised vestlusbotid tuginevad eelnevalt määratletud käskudele ja mallidele. Mõlemad neist käskudest peaks kirjutama chatboti arendaja, kasutades tavalisi avaldisi ja tekstide andmete analüüsi. Selle asemel tuginevad andmepõhised vestlusprogrammid dialoogi andmetele eelnevalt koolitatud masinõppe mudelitele.

Kui soovite oma esimese vestlusbooti luua, on kõige raskem probleem kuidas alustada. Mis on boti põhiosad? Kuidas neid üles ehitada ja panna need koos toimima? Nendele küsimustele leiate vastused sellest artiklist.

Asjade lihtsuse huvides alustame dialoogi kõige põhielementidest. Esiteks peab vestlusbot mõistma lauset loomulikus keeles. Looduskeele mõistmise moodul (NLU) teisendab kasutaja päringu loomulikust keelest märgistatud semantiliseks esitusviisiks. Näiteks tõlgitakse lausung „Palun määrake äratus kaheksaks hommikul“ masinalt arusaadavasse vormi, näiteks set_alarm (kell 8 hommikul). Siis peab robot otsustama, mida temalt oodatakse. Dialoogihaldur jälgib dialoogi olekut ja otsustab, mida tuleks kasutajale vastata. Viimases etapis tõlgib looduskeele generaator (NLG) semantilise esituse tagasi inimkeelde. Näiteks rent_price (Atlanta) = 3000 USD tähendab: „Atlanta keskmine üürihind on umbes 3000 dollarit.” Allolev pilt näitab tüüpilist dialoogisüsteemi arhitektuuri.

Pilt 1. Dialoogisüsteemi arhitektuur

Nüüd teate piisavalt teooriat, et rakendada sissejuhatava taseme vestlusprogrammi avatud lähtekoodiga DeepPavlovi raamistikuga. Artikli koodi leiate Colabi märkmikust.

DeepPavlov: 1. jooks

Uue programmeerimisraamistiku avastamise kõige rõõmustavam osa on näide „Tere, maailm!“. Meie HelloBot suudab ära tunda tervitussõnumi ja vastata sõnumiga “Tere maailm!”. Lisaks vastab hüvastijätuga sõnum ühe etteantud hüvastijätmise sõnumiga. Vastasel juhul vastab ta sõnumiga "Ma ei saa aru, vabandust".

Enne koodi uurimist oleks kasulik selgitada üldiselt, kuidas DeepPavlov töötab. Kõik oskustega seotud klassid on tavaliselt seotud dialoogiülesannetega ja lahendavad ühe NLP-ülesande. Agent koosneb mitmest oskusest ja saab nende vahel vahetada. See võib olla dialoogisüsteem, mis sisaldab erinevaid eesmärgile orienteeritud ja chatboti oskusi ning valib sõltuvalt kasutaja sisendist, millist neist vastuse genereerimiseks kasutada. Skill Manager valib oskuse vastuse genereerimiseks vastavalt allolevale skeemile.

Pilt 2. Agentarhitektuur

Samm 1

DeepPavlovi saate installida kohapeal pip install deeppavlov'iga või lingi kaudu mängida koos HelloBot-koodiga.

2. samm

Importige kõik olulised pakendid.

3. samm

Seejärel looge oskused vastavate mustrite ja eelnevalt määratletud vastustega.

4. samm

Agent täidab oskused ja võtab neilt kõige usaldusväärsema vastuse.

Põhimõtteliselt on HelloBot klassikaline reeglipõhine vestlusprogramm: see otsib teadaolevaid märksõnu ja tagastab ühe mitmest võimalikust vastusest. Liigume nüüd vestlusbooti juurde, mis suudab mingil määral jäljendada inimlikku loomulikku suhtlust. ELIZA oli esimene robot, mis töötati välja inimeste ja masinate vahelise suhtluse pealiskaudsuse demonstreerimiseks. Selle lõi Joseph Weizenbaum 1966. aastal MIT AI laboris. See on esimene teadaolev vestlusbot, mis suudab Turingi testi sooritada. ELIZA jäljendas inimeste suhtlemist mustrite sobitamise ja asenduste kaudu, ilma et oleks vaja mõista lausungite tähendust. See genereeris eelkirjutatud skriptide abil loomulikke dialooge. Need skriptid said dialoogi sisendeid vastavalt reageerida. Liigume nüüd otse juurutamisele. Iga dialoogistsenaariumi jaoks loome oskuse.

Ärge kahelge, et lisate samal viisil rohkem oskusi. Nüüd teate, kuidas DeepPavlovi raamistiku abil luua lihtsaid reeglipõhiseid vestlusprogramme. Järgmises artiklis kirjeldame tehnikaid, mis aitavad teil arendada täpsemaid vestlusprogramme.

DeepPavlovi dokumentatsiooni ja koodide hoidlaga saab tutvuda aadressil deeppavlov.ai.

Tänan Mihhail Burtsevit, Luiza Sayfullinat, Olga Kairovat ja kogu iPavlovi labori meeskonda arusaadavate kommentaaride eest.