Chatbot v PyTorchu, ki temelji na NLP. Bonus Flask in uvedba JavaScripta

Izvorno vozlišče: 1123050
Viktorija Maslova

Med različnimi načini, kako lahko izboljšate zadovoljstvo strank, so chatboti a zmogljiva rešitev za pomoč bazi strank. Klepetalni roboti so cenovno dostopni, pomagajo razširiti vaše podjetje, so popolnoma prilagodljivi, vašim strankam pomagajo najti prave izdelke/storitve in pomagajo zgraditi zaupanje v vaše podjetje. Da bi to dokazal, bom šel skozi naslednjo vsebino:

  1. Kaj je chatbot za strojno učenje?
  2. Zakaj so chatboti pomembni v različnih poslovnih sferah?
  3. Z PyTorchom zgradite lastnega klepetalnika, ki temelji na NLP.
  4. Namestite chatbot v Javascript in Flask.

Klepetalni robot (pogovorni AI) je avtomatiziran program, ki simulira človeški pogovor prek besedilnih sporočil, glasovnih klepetov ali obojega. To se nauči na podlagi številnih vnosov in Obdelava naravnega jezika (NLP).

Zaradi semantike se bodo klepetalni roboti in pogovorni pomočniki v tem članku uporabljali izmenično, saj pomenijo isto stvar.

Business Insider je poročal, da naj bi svetovni trg klepetalnih robotov zrasel z 2.6 milijarde dolarjev leta 2019 na 9.4 milijarde dolarjev leta 2024, pri čemer je napovedal skupno letno stopnjo rasti 29.7 %. V istem poročilu je bilo tudi navedeno, da bi bila največja rast implementacije chatbotov v panogah maloprodaje in e-trgovine zaradi naraščajočega povpraševanja po zagotavljanju brezhibnih izkušenj z vsemi kanali strankam.

Že samo to bi moralo biti dovolj, da vas o tem prepriča chatboti so način za urejanje odnosov s strankami napredujejo, vendar bodo še naprej rasla kot notranja orodja za poslovna orodja in skoraj vsaka panoga bo sprejela tehnologijo, če je še ni.

Spodaj so navedeni ključni razlogi, zakaj vse več podjetij sprejema strategijo chatbotov in kako so ti formula, v kateri zmagajo vsi, za pridobivanje in ohranjanje strank.

  • Zmanjšajte čakalni čas strank - 21% potrošnikov Klepetalne robote glejte kot najlažji način za stik s podjetjem. Boti so pametnejši način za zagotovitev, da stranke prejmejo takojšen odgovor, ki ga iščejo, ne da bi morali čakati v čakalni vrsti.
  • 24 × 7 razpoložljivost — Boti so vedno na voljo, da pritegnejo stranke s takojšnjimi odgovori na pogosta vprašanja, ki jih zastavljajo. Največja potencialna prednost uporabe chatbotov je 24-urna podpora strankam.
  • Boljše sodelovanje strank — Pogovorni roboti lahko pritegnejo stranke XNUMX ur na dan, tako da začnejo proaktivno ohranjati in ponujajo prilagojena priporočila, ki povečujejo uporabniško izkušnjo.
  • Prihranite stroške storitev za stranke — Klepetalni roboti bodo podjetjem pomagali prihraniti več kot $ 8 milijarde letno. Bote je mogoče preprosto prilagoditi, kar prihrani stroške podpore strankam zaradi najemanja več virov, stroške infrastrukture itd.
  • Avtomatizirajte kvalifikacije možnih strank in prodajo — Svoj prodajni tok lahko avtomatizirate s klepetalnimi roboti, da predhodno kvalificirate potencialne stranke in jih usmerite k pravi ekipi za nadaljnjo nego. Zmožnost takojšnjega pritegnitve strank poveča število potencialnih strank in stopnje konverzije.

1. Kako pogovorna umetna inteligenca lahko avtomatizira storitve za stranke

2. Avtomatizirani klepeti v živo: kakšna bo prihodnost storitve za stranke?

3. Chatboti kot zdravniški asistenti pri pandemiji COVID-19

4. Chatbot Vs. Inteligentni virtualni pomočnik - v čem je razlika in zakaj skrb?

Obstaja veliko platform, kjer lahko razvijalci, podatkovni znanstveniki in inženirji strojnega učenja ustvarijo in vzdržujejo chatbote, kot so Potek dialoga in Amazon Lex. Toda moj cilj v tem članku je, da vam pokažem, kako ustvariti chatbota iz nič, da vam pomaga razumeti koncepte omrežij za posredovanje podatkov za obdelavo naravnega jezika.

Začnimo!

Celotno kodo lahko preprosto najdete v mojem GitHub repo.

Tukaj je kratek načrt, ki mu želim slediti pri izdelavi modela.

  1. Teorija + koncepti NLP (stemming, tokenization, bag of words)
  2. Ustvarite podatke o usposabljanju
  3. Model PyTorch in usposabljanje
  4. Shranite/naložite model in implementirajte klepet

Za potrebe dobavitelja kave in čaja bomo zgradili chatbot za obravnavo preprostih vprašanj o delovnem času, možnostih rezervacije in tako naprej.

Ogrodje chatbota potrebuje strukturo, v kateri so definirane pogovorne namere. En čisti način za to je z datoteko JSON, kot je ta.

Namere klepetalnice

Vsak pogovorni namen vsebuje:

  • a oznaka (enolično ime)
  • vzorci (stavčni vzorci za naš klasifikator besedil nevronske mreže)
  • odgovorov (ena bo uporabljena kot odgovor)

Torej je naš NLP cevovod videti takole

  • Tokenizirati
  • Spodnji + steblo
  • Izključi ločila
  • Vreča besed

Ustvarimo seznam dokumentov (stavkov), vsak stavek je seznam izvirne besede in vsak dokument je povezan z namenom (razred). Celotna koda je notri ta datoteka.

Nato moramo nastaviti podatke o usposabljanju in hiperparametre.

Po vseh potrebnih korakih predprocesiranja ustvarimo a model.py datoteko za definiranje nevronske mreže FeedForward.

Napredne nevronske mreže so umetne nevronske mreže kjer povezave med enotami ne tvorijo a cikel. Napovedne nevronske mreže so bile prva izumljena vrsta umetne nevronske mreže in so enostavnejše od svojih nasprotnikov, ponavljajoče se nevronske mreže. Pokličejo se naprej ker informacije potujejo samo naprej v omrežju (brez zank), najprej skozi vhodna vozlišča, nato skozi skrita vozlišča (če je prisoten) in končno skozi izhodna vozlišča.

Bodi previden! Na koncu ne potrebujemo aktivacijske funkcije, ker bomo kasneje uporabili navzkrižno entropijsko izgubo in ta samodejno uporabi aktivacijsko funkcijo namesto nas.

Zakaj uporabljamo ReLU?

So enostavni, hitri za računanje in ne trpijo zaradi izginjajočih gradientov, kot so sigmoidne funkcije (logistične, tanh, erf in podobne). Enostavna implementacija jih naredi primerne za uporabo na grafičnih procesorjih, ki so danes zelo pogosti, ker so optimizirani za matrične operacije (ki so potrebne tudi za 3D grafiko).

Po definiranju CrossEntropy Loss in Adama implementiramo korak nazaj in optimizacijo.

Kaj pomenijo vse te vrstice?

Zero_grad() smo nastavili na optimizator, ker moramo v PyTorchu za vsako mini serijo med fazo usposabljanja gradiente izrecno nastaviti na nič, preden začnemo izvajati povratno širjenje (tj. posodabljanje uteži in pristranskosti), ker PyTorch kopiči gradiente na nadaljnjimi prehodi nazaj.

Večkratni klic .backward() zbere gradient (z dodajanjem) za vsak parameter. Zato morate poklicati optimizer.zero_grad() po vsakem klicu .step(). Upoštevajte, da je po prvem klicu .backward drugi klic možen šele, ko ste izvedli še en prehod naprej.

optimizer.step izvede posodobitev parametrov na podlagi trenutnega gradienta (shranjenega v atributu .grad parametra) in pravila za posodobitev.

Končno smo po zagonu skripta train.py dobili čudovit rezultat!

In v zadnjem delu moramo shraniti naš model. Tukaj sem to enostavno naredil.

Odločil sem se, da grem dlje in ustvarim to neverjetno vizualizacijo ChatBota.

Vse moje skripte HTML, CSS in JavaScript boste našli v mojem skladišču GitHub.

Uživajte!

Zdaj, ko se zavedate, kaj je chatbot in kako pomembna je tehnologija botov za vse vrste poslovanja. Zagotovo se strinjate, da so roboti drastično spremenili način interakcije podjetij s strankami.

Tehnologije klepetalnih robotov bodo v prihodnje postale pomemben del strategije vključevanja strank. V bližnji prihodnosti bodo roboti napredovali, da bi izboljšali človeške zmogljivosti in človeški agenti, da bi postali bolj inovativni pri upravljanju strateških dejavnosti.

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

Časovni žig:

Več od Življenje chatbotov