NLP -pohjainen Chatbot PyTorchissa. Bonuspullon ja JavaScriptin käyttöönotto

Lähdesolmu: 1123050
Victoria Maslova

Monien tapojen joukossa, joilla voit parantaa asiakastyytyväisyyttä, chatbotit ovat a tehokas ratkaisu asiakaskunnan auttamiseksi. Chatbotit ovat edullisia, auttavat skaalaamaan liiketoimintaasi, ovat täysin muokattavissa, auttavat asiakkaitasi löytämään oikeat tuotteet/palvelut ja auttavat rakentamaan luottamusta yritykseesi. Todistaakseni tämän käyn läpi seuraavan sisällön:

  1. Mikä on koneoppiva chatbot?
  2. Miksi chatbotit ovat tärkeitä eri liiketoiminta-alueilla?
  3. Rakenna oma NLP-pohjainen chatbot PyTorchin avulla.
  4. Ota chatbot käyttöön Javascriptissä ja Flaskissa.

Chatbot (Conversational AI) on automatisoitu ohjelma, joka simuloi ihmisten keskusteluja tekstiviestien, äänikeskustelun tai molempien kautta. Se oppii tekemään sen monien syötteiden perusteella ja Luonnollinen kielenkäsittely (NLP).

Semantiikan vuoksi chatbotteja ja keskusteluapulaisia ​​käytetään tässä artikkelissa vuorotellen, ne tarkoittavat tavallaan samaa asiaa.

Business Insider raportoi, että globaalien chatbot-markkinoiden odotetaan kasvavan 2.6 miljardista dollarista vuonna 2019 9.4 miljardiin dollariin vuonna 2024, mikä ennustaa 29.7 prosentin vuosikasvua. Sama raportti ehdotti myös, että suurin kasvu chatbottien käyttöönotossa olisi vähittäiskaupan ja verkkokaupan aloilla, mikä johtuu kasvavasta tarpeesta tarjota asiakkaille saumattomia monikanavaisia ​​kokemuksia.

Pelkästään sen pitäisi riittää vakuuttamaan sinut siitä chatbotit ovat tapa hoitaa asiakassuhteita eteenpäin, mutta ne myös jatkavat kasvuaan yritystyökalujen sisäisinä työkaluina, ja lähes kaikki toimialat ottavat teknologian käyttöön, jos se ei ole jo tehnyt sitä.

Alla on tärkeimmät syyt siihen, miksi yhä useammat yritykset ottavat käyttöön chatbot-strategian ja kuinka ne ovat kaikille osapuolille hyödyllinen kaava asiakkaiden hankkimiseksi ja säilyttämiseksi.

  • Lyhennä asiakkaiden odotusaikaa - 21% kuluttajista nähdä chatbotit helpoimpana tapana ottaa yhteyttä yritykseen. Botit ovat älykkäämpi tapa varmistaa, että asiakkaat saavat välittömästi etsimäänsä vastausta ilman, että he joutuvat odottamaan jonossa.
  • 24 × 7 saatavuus — Botit ovat aina käytettävissä saadakseen asiakkaille välittömiä vastauksia heidän esittämiinsä yleisiin kysymyksiin. Suurin mahdollinen hyöty chatbottien käytöstä on 24 tunnin asiakaspalvelu.
  • Parempi asiakkaiden sitoutuminen — Keskustelubotit voivat sitouttaa asiakkaita kellon ympäri aloittamalla ennakoivan konservoinnin ja tarjoamalla henkilökohtaisia ​​suosituksia, jotka parantavat asiakaskokemusta.
  • Säästä asiakaspalvelukuluja - Chatbotit auttavat yrityksiä säästämään enemmän kuin $ 8 miljardia vuodessa. Botit voidaan skaalata helposti, mikä säästää asiakastuen kustannuksia, jotka aiheutuvat lisäresurssien palkkaamisesta, infrastruktuurikustannuksista jne.
  • Automatisoi liidien pätevyys ja myynti — Voit automatisoida myyntisuppilosi chatbottien avulla esikelpoistaaksesi liidejä ja ohjataksesi heidät oikealle tiimille lisähoitoa varten. Asiakkaiden sitouttaminen lisää välittömästi liidien määrää ja tulosprosentteja.

1. Kuinka keskustelutekniikka voi automatisoida asiakaspalvelua

2. Automatisoidut vs live-chatit: miltä asiakaspalvelun tulevaisuus näyttää?

3. Chatbotit lääketieteellisenä avustajana COVID-19-pandemiassa

4. Chatbot vs. Älykäs virtuaaliassistentti - mikä ero ja miksi hoito?

On monia alustoja, joilla kehittäjät, datatieteilijät ja koneoppimisinsinöörit voivat luoda ja ylläpitää chatbotteja, kuten Dialogflow ja Amazon-Lex. Mutta tavoitteeni tässä artikkelissa näyttää sinulle, kuinka chatbot luodaan tyhjästä, jotta voit ymmärtää luonnollisen kielen käsittelyn syöttöverkkojen käsitteitä.

Aloitetaan!

Löydät täydellisen koodin helposti minun GitHub repo.

Tässä on lyhyt suunnitelma, jota haluan noudattaa mallin rakentamisessa.

  1. Teoria + NLP-käsitteet (johtiminen, tokenointi, sanapussi)
  2. Luo harjoitustietoja
  3. PyTorch malli ja koulutus
  4. Tallenna/lataa malli ja toteuta chat

Rakennamme chatbotin kahvin ja teen toimittajan tarpeisiin käsittelemään yksinkertaisia ​​kysymyksiä aukioloajoista, varausvaihtoehdoista ja niin edelleen.

Chatbot-kehys tarvitsee rakenteen, jossa keskustelutarkoitukset määritellään. Yksi puhdas tapa tehdä tämä on JSON-tiedosto, kuten tämä.

Chatbotin tarkoitus

Jokainen keskustelun tarkoitus sisältää:

  • a tag (ainutlaatuinen nimi)
  • kuviot (lausemallit hermoverkkotekstin luokittimellemme)
  • vasteet (yksi käytetään vastauksena)

Joten NLP-putkistomme näyttää tältä

  • tokenize
  • Alempi + varsi
  • Sulje pois välimerkit
  • Sanapussi

Luomme luettelon asiakirjoista (lauseista), jokainen lause on luettelo varrellisia sanoja ja jokainen asiakirja liittyy tarkoitukseen (luokkaan). Täysi koodi sisään tämä tiedosto.

Sitten meidän on asetettava harjoitustiedot ja hyperparametrit.

Kaikkien tarvittavien esikäsittelyvaiheiden jälkeen luomme a malli.py tiedostoa FeedForward-hermoverkon määrittämiseksi.

Feedforward-hermoverkot ovat keinotekoiset hermoverkot jossa yksiköiden väliset yhteydet eivät muodosta a sykli. Feedforward-hermoverkot olivat ensimmäinen keksitty keinotekoinen hermoverkko, ja ne ovat yksinkertaisempia kuin niiden vastine. toistuvat hermoverkot. Niitä kutsutaan feedforward koska tieto kulkee verkossa vain eteenpäin (ei silmukoita), ensin syöttösolmujen kautta, sitten piilotetut solmut (jos olemassa) ja lopuksi lähtösolmujen kautta.

Ole varovainen! Loppujen lopuksi emme tarvitse aktivointitoimintoa, koska myöhemmin käytämme ristientropiahäviötä ja se käyttää automaattisesti aktivointitoimintoa puolestamme.

Miksi käytämme ReLU:ta?

Ne ovat yksinkertaisia, nopeita laskea, eivätkä ne kärsi katoavista gradienteista, kuten sigmoidifunktioista (logistiset, tanh, erf ja vastaavat). Toteutuksen yksinkertaisuus tekee niistä sopivia käytettäväksi GPU:illa, jotka ovat nykyään hyvin yleisiä, koska ne on optimoitu matriisitoimintoihin (jota tarvitaan myös 3D-grafiikkaan).

Kun CrossEntropy Loss ja Adam on määritelty, toteutamme taaksepäin ja optimointivaiheen.

Mitä kaikki nämä rivit tarkoittavat?

Asetamme zero_grad()-parametrin optimoijaksi, koska PyTorchissa jokaisen harjoitusvaiheen minierän gradientit on nimenomaisesti asetettava nollaan ennen kuin aloitamme takaisinprogradientin (eli painojen ja harhojen päivittämisen), koska PyTorch kerää gradientit myöhemmät siirrot taaksepäin.

.backward():n kutsuminen useita kertoja kerää gradientin (lisäämällä) jokaiselle parametrille. Tästä syystä sinun tulee kutsua optimizer.zero_grad() jokaisen .step()-kutsun jälkeen. Huomaa, että ensimmäisen .backward-puhelun jälkeen toinen puhelu on mahdollinen vasta, kun olet suorittanut toisen eteenpäin menemisen.

optimizer.step suorittaa parametrin päivityksen nykyisen gradientin (tallennettu parametrin .grad-määritteeseen) ja päivityssäännön perusteella.

Viimeinkin, train.py-skriptin suorittamisen jälkeen, saimme upean tuloksen!

Ja viimeisessä osassa meidän on tallennettava mallimme. Näin tein sen helposti.

Päätin mennä pidemmälle ja luoda tämän hämmästyttävän ChatBotin visualisoinnin.

Kaikki HTML-, CSS- ja JavaScript-skriptini löydät GitHub-varastostani.

Enjoy!

Nyt kun tiedät, mikä chatbot on ja kuinka tärkeä bottitekniikka on kaikenlaiselle liiketoiminnalle. Olet varmasti samaa mieltä siitä, että robotit ovat muuttaneet radikaalisti tapaa, jolla yritykset ovat vuorovaikutuksessa asiakkaidensa kanssa.

Chatbot-tekniikoista tulee jatkossa tärkeä osa asiakkaiden sitouttamisstrategiaa. Lähitulevaisuudessa botit etenevät parantamaan ihmisten valmiuksia ja inhimillisiä agentteja innovatiivisemmiksi strategisten toimintojen käsittelyssä.

Source: https://chatbotslife.com/nlp-based-chatbot-in-pytorch-bonus-flask-and-javascript-deployment-474c4e59ceff?source=rss—-a49517e4c30b—4

Aikaleima:

Lisää aiheesta Chatbots-elämä