Chatbot oparty na NLP w PyTorch. Wdrożenie Bonus Flask i JavaScript

Węzeł źródłowy: 1123050
Wiktoria Masłowa

Wśród różnych sposobów na poprawę zadowolenia klientów, chatboty to m.in potężne rozwiązanie pomagające klientom. Chatboty są niedrogie, pomagają skalować Twoją firmę, w pełni konfigurowalne, pomagają Twoim klientom znaleźć odpowiednie produkty/usługi i pomagają budować zaufanie do Twojej firmy. Aby to udowodnić, przejrzę następującą treść:

  1. Co to jest chatbot uczący się maszynowo?
  2. Dlaczego chatboty są ważne w różnych sferach biznesu?
  3. Zbuduj własnego chatbota opartego na NLP za pomocą PyTorch.
  4. Wdróż chatbota w Javascript i Flask.

Chatbot (konwersacyjna sztuczna inteligencja) to zautomatyzowany program, który symuluje ludzką rozmowę za pomocą wiadomości tekstowych, czatów głosowych lub obu. Uczy się to robić na podstawie wielu danych wejściowych i Przetwarzanie języka naturalnego (NLP).

Ze względu na semantykę, chatboty i asystenci konwersacji będą w tym artykule używane zamiennie, mają na myśli to samo.

Business Insider poinformował, że globalny rynek chatbotów miał wzrosnąć z 2.6 mld USD w 2019 r. do 9.4 mld USD w 2024 r., prognozując złożoną roczną stopę wzrostu na poziomie 29.7%. W tym samym raporcie zasugerowano również, że największy wzrost implementacji chatbotów nastąpi w branżach handlu detalicznego i e-commerce, ze względu na rosnące zapotrzebowanie na zapewnienie klientom płynnych doświadczeń wielokanałowych.

Już samo to powinno wystarczyć, aby Cię o tym przekonać chatboty to sposób na obsługę relacji z klientami posuwają się naprzód, ale będą również nadal rozwijać się jako narzędzia wewnętrzne dla narzędzi korporacyjnych, a prawie każda branża przyjmie tę technologię, jeśli jeszcze tego nie zrobiła.

Poniżej znajdują się kluczowe powody, dla których coraz więcej firm przyjmuje strategię chatbotów i sposób, w jaki są one korzystne dla wszystkich w pozyskiwaniu i utrzymywaniu klientów.

  • Skróć czas oczekiwania klienta - 21% konsumentów postrzegają chatboty jako najłatwiejszy sposób na kontakt z firmą. Boty to sprytniejszy sposób na zapewnienie klientom natychmiastowej odpowiedzi, której szukają, bez konieczności czekania w kolejce.
  • Dostępność 24 × 7 — Boty są zawsze dostępne, aby zaangażować klientów w natychmiastowe odpowiedzi na często zadawane przez nich pytania. Największą potencjalną korzyścią korzystania z chatbotów jest całodobowa obsługa klienta.
  • Lepsze zaangażowanie klientów — Boty konwersacyjne mogą angażować klientów przez całą dobę, rozpoczynając proaktywną ochronę i oferując spersonalizowane rekomendacje, które poprawiają wrażenia klientów.
  • Oszczędzaj koszty obsługi klienta — Chatboty pomogą firmom zaoszczędzić więcej niż $ 8 mld na rok. Boty można łatwo skalować, co pozwala zaoszczędzić koszty obsługi klienta związane z zatrudnianiem większej liczby zasobów, kosztami infrastruktury itp.
  • Zautomatyzuj kwalifikację leadów i sprzedaż — Możesz zautomatyzować lejek sprzedaży za pomocą chatbotów, aby wstępnie kwalifikować potencjalnych klientów i kierować ich do odpowiedniego zespołu w celu dalszej pielęgnacji. Możliwość natychmiastowego zaangażowania klientów zwiększa liczbę potencjalnych klientów i współczynniki konwersji.

1. Jak konwersacyjna sztuczna inteligencja może zautomatyzować obsługę klienta

2. Czaty automatyczne a czaty na żywo: jak będzie wyglądać przyszłość obsługi klienta?

3. Chatboty jako asystenci medyczni w pandemii COVID-19

4. Chatbot vs. Inteligentny wirtualny asystent — jaka jest różnica i dlaczego warto?

Istnieje wiele platform, na których programiści, naukowcy zajmujący się danymi i inżynierowie uczenia maszynowego mogą tworzyć i utrzymywać chatboty, takie jak Przepływ dialogów i Amazonka Lex. Ale moim celem w tym artykule jest pokazanie, jak stworzyć chatbota od podstaw, aby pomóc Ci zrozumieć koncepcje sieci Feed-Forward do przetwarzania języka naturalnego.

Zacznijmy!

Możesz łatwo znaleźć pełny kod w my GitHub repo.

Oto krótki plan, który chcę wykonać, aby zbudować model.

  1. Teoria + koncepcje NLP (Stemming, Tokenizacja, worek słów)
  2. Twórz dane treningowe
  3. Model i szkolenie PyTorch
  4. Zapisz/wczytaj model i zaimplementuj czat

Zbudujemy chatbota dla dostawcy kawy i herbaty, który będzie obsługiwał proste pytania dotyczące godzin pracy, opcji rezerwacji i tak dalej.

Framework chatbota potrzebuje struktury, w której zdefiniowane są intencje konwersacyjne. Jednym czystym sposobem na to jest użycie pliku JSON, takiego jak ten.

Intencje chatbota

Każda intencja konwersacyjna zawiera:

  • a etykieta (unikalna nazwa)
  • wzory (wzorce zdań dla naszego klasyfikatora tekstu w sieci neuronowej)
  • Odpowiedzi (jedna zostanie użyta jako odpowiedź)

Więc nasz potok NLP wygląda tak

  • tokenize
  • Dolny + trzon
  • Wyklucz znaki interpunkcyjne
  • Worek słów

Tworzymy listę dokumentów (zdań), każde zdanie jest listą słowa macierzyste a każdy dokument jest powiązany z intencją (klasą). Pełny kod jest ten plik.

Następnie musimy ustawić dane treningowe i hiperparametry.

Po wszystkich niezbędnych krokach przetwarzania wstępnego tworzymy plik model.py plik do zdefiniowania sieci neuronowej FeedForward.

Są to sieci neuronowe sprzężone z wyprzedzeniem sztuczne sieci neuronowe gdzie połączenia między jednostkami nie tworzą a cykl. Sieci neuronowe ze sprzężeniem zwrotnym były pierwszym rodzajem wynalezionych sztucznych sieci neuronowych i są prostsze niż ich odpowiedniki, nawracające sieci neuronowe. Nazywają się naprzód ponieważ informacje przemieszczają się tylko do przodu w sieci (bez pętli), najpierw przez węzły wejściowe, a następnie przez ukryte węzły (jeśli jest obecny), a na końcu przez węzły wyjściowe.

Bądź ostrożny! W końcu nie potrzebujemy funkcji aktywacji, ponieważ później użyjemy utraty entropii krzyżowej i automatycznie zastosujemy dla nas funkcję aktywacji.

Dlaczego używamy ReLU?

Są proste, szybkie w obliczeniach i nie cierpią z powodu zanikających gradientów, takich jak funkcje sigmoidalne (logistic, tanh, erf i podobne). Prostota implementacji sprawia, że ​​nadają się do stosowania na procesorach graficznych, które są dziś bardzo popularne ze względu na optymalizację pod kątem operacji na macierzach (które są również potrzebne w grafice 3D).

Po zdefiniowaniu CrossEntropy Loss i Adama wdrażamy krok wstecz i optymalizator.

Co oznaczają te wszystkie linie?

Ustawiamy zero_grad() na optymalizator, ponieważ w PyTorch, dla każdej mini-batch podczas fazy szkoleniowej, musimy jawnie ustawić gradienty na zero przed rozpoczęciem wstecznej propagacji (tj. aktualizacji wag i odchyleń), ponieważ PyTorch gromadzi gradienty na kolejne podania w tył.

Wielokrotne wywołanie .backward() powoduje akumulację gradientu (przez dodanie) dla każdego parametru. Dlatego po każdym wywołaniu .step() powinieneś wywoływać optymalizator.zero_grad(). Zwróć uwagę, że po pierwszej zapowiedzi w tył, druga zapowiedź jest możliwa dopiero po wykonaniu kolejnego podania w przód.

Optimizer.step przeprowadza aktualizację parametrów na podstawie aktualnego gradientu (przechowywanego w atrybucie .grad parametru) i reguły aktualizacji.

Wreszcie, po uruchomieniu skryptu train.py, jaki wspaniały wynik otrzymaliśmy!

A w ostatniej części musimy zapisać nasz model. Tutaj sposób, w jaki zrobiłem to łatwo.

Postanowiłem pójść dalej i stworzyć tę niesamowitą wizualizację ChatBota.

Wszystkie moje skrypty HTML, CSS i JavaScript znajdziesz w moim repozytorium GitHub.

Enjoy!

Teraz, gdy już wiesz, czym jest chatbot i jak ważna jest technologia botów dla każdego rodzaju biznesu. Z pewnością zgodzisz się, że boty drastycznie zmieniły sposób interakcji firm z klientami.

Technologie Chatbota staną się istotną częścią strategii zaangażowania klientów w przyszłości. W niedalekiej przyszłości boty będą rozwijać zdolności ludzkie, a ludzie będą bardziej innowacyjni w obsłudze działań strategicznych.

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

Znak czasu:

Więcej z Życie chatbotów