Post_Detail

Jak działa Chatbot? Techniczne tajniki, o których nie miałeś pojęcia

Technologia Chmury

Jak działa Chatbot? Techniczne tajniki, o których nie miałeś pojęcia

Czym jest sztuczna inteligencja?

Sztuczna Inteligencja często opisywana skrótem SI lub AI (z ang. artificial intelligence) to termin stworzony przez Johna McCarthy, założyciela (istniejącego do dzisiaj) laboratorium o tej tematyce na Massachusetts Institute of Technology. W 1955 roku tak zdefiniował on zjawisko AI: „konstruowanie maszyn, o których działaniu dałoby się powiedzieć, że są podobne do ludzkich przejawów inteligencji”.

Definicje sztucznej inteligencji

Pojęcie sztucznej inteligencji funkcjonuje w społeczeństwie i mediach z ogromną częstotliwością, a powszechne jej rozumienie zdaje się nie różnić od definicji z lat 50-tych. Przytłaczająca liczba różnorodnych definicji tego zjawiska sprawia, że nie będąc specjalistą trudno jest ocenić ich prawdziwość oraz zdecydować czy coś zalicza się do obszaru AI czy też nie. Szeroką, ale jednocześnie poprawną i stworzoną przystępnym nawet dla laika językiem definicję znaleźć można w słowniku języka polskiego PWN, według którego sztuczna inteligencja to:

Sztuczna inteligencja a uczenie maszynowe

AI często utożsamiana jest z pojęciem machine learning, a więc tzw. uczenia maszynowego. Warto wiedzieć, że choć obie dziedziny różnią się znaczeniem to są ze sobą powiązane. Uczenie maszynowe zalicza się do nauk zajmujących się problematyką SI i jest dziedziną interdyscyplinarną ze szczególnym uwzględnieniem takich dziedzin jak informatyka, robotyka i statystyka. W obszarze machine learning wyróżnia się cztery główne rodzaje:

nadzorowane (ang. supervised);

nienadzorowe (ang. unsupervised);

półnadzorowane (ang. semi-supervised);

ze wzmocnieniem (ang. reinforcement).

Sztuczna inteligencja – jak ją rozumieć

Jak szeroką dziedziną wiedzy jest w rzeczywistości AI? Możemy wyróżnić dwa podstawowe znaczenia sztucznej inteligencji. Pierwsze określa ją jako dział informatyki, zajmujący się kreowaniem inteligentnych modeli zachowań stymulowanych następnie przez programy komputerowe. Mówiąc potocznie, jest to tworzenie narzędzi informatycznych, wzorowanych na funkcjonowaniu ludzkiego umysłu. Z drugiej strony, artificial intelligence to rozległa dziedzina technologii i badań naukowych obejmująca logikę rozmytą, obliczenia ewolucyjne, sieci neuronowe, sztuczne życie, a także robotykę. Co ważne, z naukowego punktu widzenia nie ma jednej technologii sztucznej inteligencji. AI to zbiór technologii, obejmujących machine learning (ML), systemy rozpoznawania dźwięku i obrazów, przetwarzania języka naturalnego (NLP), transkrypcji i symulacji głosu oraz innych specjalistycznych narzędzi, wykorzystujących głębokie sieci neuronowe (deep learning).

Przykłady zastosowań sztucznej inteligencji

Pojęcie AI może wydawać się odległe, to choć często nie zdajemy sobie z tego sprawy, oparto na niej sporo zastosowań, z których korzystamy na co dzień. Netflix i Spotify to przykłady serwisów, które wyświetlają użytkownikom rekomendacje treści, jakie mogą go zainteresować wykorzystując informacje o jego wcześniejszych wyborach czy czasie poświęconych danym treściom. Dzięki sztucznej inteligencji, system może gromadzić dane o naszych wyborach, analizować je i na tej podstawie dobierać propozycje filmów lub utworów. Niedawno odbyła się głośna premiera Asystent Głosowego Google, którego działanie również opiera się na AI, co pozwala mu reagować na „wyuczone” komendy dźwiękowe. Już funkcjonujących przykładów zastosowań tej dziedziny jest mnóstwo i ciągle trwają prace nad kolejnymi. Wśród najczęściej wymienianych są m.in. autonomiczne samochody, rozwiązania z zakresu smart home, systemy monitoringu oraz wykorzystanie AI do tworzenia i analizy tekstów, muzyki, a nawet wideo.

Etapy rozwoju sztucznej inteligencji

Biorąc pod uwagę stopień rozwoju sztucznej inteligencji, dzielimy ją na:

Narrow AI – to tzw. wąska SI, w której technologie dorównują ludzkim możliwościom w niewielkim zakresie.

General AI – etap rozwoju, w którym sztuczna inteligencja może z powodzeniem wykonywać każde zadanie intelektualne, tak dobrze, jak człowiek.

Super AI – profesor Nick Bostrom z University of Oxford opisuje ją jako „znacznie przewyższającą zdolności poznawcze ludzi praktycznie we wszystkich dziedzinach zainteresowania”.

Według specjalistów, obecnie znajdujemy się na etapie przejściowym z Narrow do General AI, a Super AI to ostatnia przewidywana faza rozwoju.

Choć sceptycznie podchodzimy do prognoz niektórych ekspertów, twierdzących, że era Super AI nastąpi w ciągu najbliższej dekady, jesteśmy pewni, że jedynym sposobem, aby odpowiednio przygotować się na zmiany, jest edukacja. Bazując na naszym 12-letnim doświadczeniu w prowadzeniu projektów związanych z nowymi technologiami stworzyliśmy cykl spotkań Future Talks, gdzie zapraszamy specjalistów z różnych dziedzin i wspólnie z nimi omawiamy wpływ AI na poszczególne aspekty ludzkiego życia. Seria wpisów na naszym blogu, którą rozpoczyna powyższy tekst, to kolejny sposób dzielenia się wiedzą i doświadczeniem ekspertów Planet Partners, nie tylko z zakresu sztucznej inteligencji, ale szeroko pojętych nowych technologii. Już niebawem omówimy dla Was kolejne zagadnienia z tego obszaru.

Rodzaje sztucznej inteligencji

Jeśli weźmiemy pod uwagę klasyfikację, którą w obrębie sztucznej inteligencji wprowadził amerykański filozof profesor Uniwersytetu Kalifornijskiego John R. Searle możemy mówić o:

słabej sztucznej inteligencji

Sztuczna inteligencja jest w stanie wykonywać jedynie pojedyncze, proste zadania, nie potrafi natomiast przejawiać zdolności poznawczych. Oznacza to, że słaba sztuczna inteligencja nie jest rozumna, świadoma czy w inny sposób czuła na bodźce poznawcze.

silnej sztucznej inteligencji

To zamknięty w maszynie zbiór algorytmów dorównujący poziomem ludzkiej inteligencji, który jest w stanie obserwować świat dookoła, nieustająco uczyć się samodzielnie i jest w stanie zrozumieć z czym ma do czynienia i poprawiać się zupełnie tak samo jak to robią ludzie.

Inny podział, który zależy od liczby ukrytych warstw w architekturze sieci neuronowej

sztuczna inteligencja płytka

sztuczna inteligencja głęboka

Płytka sztuczna inteligencja to rozwiązanie z jedną ukrytą warstwą, podczas gdy głęboka sztuczna inteligencja to rozwiązanie, które tworzą sieci z większą liczbą ukrytych warstw.

Obecnie najbardziej rozwiniętymi technikami w AI są sieci neuronowe, uczenie głębokie, uczenie przez przeniesienie i uczenie przez wzmocnienie. Te techniki koncentrują się na pojedynczym, bardzo określonym zadaniu. Sieć neuronowa w uczeniu głębokim przystosowana na przykład tylko do rozpoznawania twarzy na zdjęciach nie jest jednocześnie zdolna przewidzieć naszego wyglądu za 10 lat. Potrafi jedynie rozpoznać twarz na zdjęciu. Potrafi wykonać tylko to do czego została wytrenowana. Jeśli potrzebny będzie model predykcyjnego do określenia naszego przyszłego wyglądu, koniecznie jest stworzenie i wytrenowanie innego modelu na podstawie zupełnie innego zbioru danych.

Sztuczna inteligencja jest możliwa dzięki trenowaniu i optymalizowaniu procesów przy wykorzystaniu właściwych danych do konkretnego zadania. Zastosowania AI mogą być zmieniane i ulepszane z biegiem czasu, w miarę jak stają się dostępne nowe dane, i to właśnie stanowi element uczenia na podstawie doświadczenia w przypadku sztucznej inteligencji. Nieustające uczenie się na podstawie nowych danych jest ważne bo wszystko wokół nas się zmienia w miarę upływu czasu. W związku z tym zbiory danych z procesu z dzisiaj mogą się diametralnie różnić od tych które zostaną pozyskane jutro czy za kilka lat. Może się zdarzyć tak, że zarówno dane i jak i modele wytrenowane na podstawie tych danych mogą się okazać przestarzałe. Jest to zjawisko tzw. model drift. Dlatego niezmiernie istotnym staje się konieczność wprowadzania takich mechanizmów, w których rozwiązania oparte na AI będą aktualizowane, będą zdobywać nowe doświadczenie i wiedzę za pomocą uczenia się na podstawie nowych i stale aktualizowanych zbiorów danych. Klasycznym przykładem tego, kiedy może się to zdarzyć, jest sytuacja, w której wzorce w danych zmieniają się z powodu sezonowości. Jeden model działa w lecie ale nie może już działać w zimie.

Jak działają mechanizmy aktualizacji modeli?

Najlepszym sposobem na rozwiązanie tego problemu jest ciągłe dopasowywanie modeli. Na podstawie doświadczeń można oszacować moment w którym rozpoczyna się model dryft. Na tej podstawie model może być aktywnie przebudowywany w celu zmniejszenia ryzyka związanego z dryftem.

W sytuacjach, gdy dane zmieniają się wraz z upływem czasu, dobrym rozwiązaniem może być ważenie danych. Na przykład, modele finansowe decydujące o pewnych parametrach w oparciu o ostatnie transakcje mogą zawierać cechy, które nadają większą wagę najnowszym transakcjom i mniejszą wagę poprzednim transakcjom. Zapewnia to nie tylko solidność modelu, ale również pomaga utrzymać potencjalne problemy związane ze zjawiskiem dryftu modelu.

Bardziej złożoną metodologią walki z dryfem modelu jest modelowanie samej zmiany. Pierwszy opracowany model jest statyczny i służy jako punkt odniesienia. W wyniku zmiany zachowania się ostatnich danych, można budować nowe modele w celu skorygowania przewidywań modelu bazowego.

Pojawiają się pytania o to, jak często należy przebudowywać modele. Istnieje wiele rozwiązań w tym zakresie, z których każde różni się w zależności od sytuacji.

Kiedy pojawi się problem, można zbadać dlaczego coś poszło nie tak, a następnie wprowadzić stosowne modyfikacje, które pozwolą wyeliminować takie problemy w przyszłości. Choć nie jest to najlepsze rozwiązanie bo jest to działanie ex post.

W innych przypadkach dane związane z podmiotami uwzględnionymi w modelu mają też na uwadze wzorce sezonowości. Po wykryciu zmian model powinien być automatycznie przekwalifikowany zgodnie ze zmianami zarejestrowanymi w ramach sezonowości.

Najlepszym sposobem na wykrycie dryftu jest ciągłe monitorowanie modelu w stałych odstępach czasu uzależnionych od dziedziny i działalności. Proces monitorowania może być ręczny lub za pomocą automatycznego skryptu, który zgłasza powiadomienia w przypadku zaobserwowania nagłych anomalii.

Chcesz nawiązać współpracę z Python Software House, który tworzy dedykowane aplikacje webowe, dedykowane aplikacje mobilne i strony internetowe na zamówienie?

Poszukujesz Software House, który ma w swojej ofercie tworzenie dedykowanych aplikacji internetowych z wykorzystaniem Python, Django i Flask?

Jesteśmy Python Software House, który istnieje na rynku 20 lat i ma w swoim portfolio wykonane dedykowane aplikacje webowe i desktopowe i oprogramowanie na zamówienie, jak również zaawansowane systemy informatyczne. Tworzymy narzędzia cyfrowe i rozwiązania, które nie tylko pozwalają wizualizować dane, ale także integrujemy je z regularnymi procesami biznesowymi, tworzymy oparte na danych pełnoprawne dedykowane aplikacje mobilne i webowe, które sprawiają, że dane stają się bardziej dostępne dla całej organizacji.

Może chcesz wykorzystać rozwiązania oparte na algorytmach sztucznej inteligencji, machine learning lub deep learning?

Technologie informacyjne z usługi dla biznesu zamieniły się w jego podstawę. Budujemy cyfrowe kompetencje w obszarze zainteresowań Klienta i pomagamy znaleźć nowe modele dla biznesu.

To nasza misja.

Porozmawiaj z nami o swoim projekcie, a my weźmiemy pod uwagę specyfikę Twojej działalności, przewidziany czas i budżet i wybierzemy najlepszą z dostępnych opcji jego realizacji.

Jak działa Chatbot? Techniczne tajniki, o których nie miałeś pojęcia

Chatboty szturmem zdobywają popularność wśród małych, średnich i dużych firm głównie jako rozwiązania automatyzujące obsługę klienta, lecz także w wielu innych zastosowaniach.

Owiane są także pewnego rodzaju tajemnicą i niedopowiedzeniami: Czy chatbot to sztuczna inteligencja? Czy potrafi w 100% zastąpić interakcję z człowiekiem? Czy mamy powód żeby obawiać się chatbotów? Jakie technologie za nimi stoją?

W tym artykule zdradzimy techniczne aspekty chatbotów oraz wytłumaczymy proces ich tworzenia aby rozwiać wątpliwości co do ich działania.

Techniczne rodzaje chatbotów

Nie patrząc na zastosowanie, rodzaj interakcji chatbotów można podzielić na 3 kategorie:

Konwersacyjny - czyli najbardziej imitujący rozmowę z prawdziwym człowiekiem,

- czyli najbardziej imitujący rozmowę z prawdziwym człowiekiem, Scenariuszowy - składający się ze sztywno ustalonych pytań, w stylu formularzy,

- składający się ze sztywno ustalonych pytań, w stylu formularzy, Mieszany - wykorzystujący oba podejścia.

W wyobrażeniach większości z nas chatbot kojarzy się z trybem konwersacyjnym i łączy się z oczekiwaniem, by chatbot był w stanie w 100% zastąpić człowieka. O ile tak na pewno wkrótce się stanie, to obecnie technologia nie jest jeszcze aż tak zaawansowana, by rozpoznać każdą intencję osoby piszącej.

Sprawa ma się trochę inaczej z językiem angielskim, który jest prostszy gramatycznie niż język polski i istnieje znacznie więcej rozwiązań stworzonych dla tego języka.

W Polsce musimy jeszcze trochę poczekać na narzędzia, ale na szczęście Google’owski DialogFlow (kiedyś API.AI) posiada już język polski w wersji eksperymentalnej.

Podsumowując, fakty są takie: w 2018 roku stworzenie chatbota, który płynnie by rozmawiał, umiał odpowiedzieć na pytania z dowolnej dziedziny jest bardzo trudne. Ale warto sobie odpowiedzieć na pytanie czy takich chatbotów potrzebujemy? Czy ich zadaniem nie jest automatyzacja powtarzalnych czynności?

Chatbot scenariuszowy

Podejście scenariuszowe obecnie jest najczęściej używanym rozwiązaniem w chatbotach w biznesie: jest bardzo skuteczne, proste w implementacji i przyspieszające czas interakcji również dla klientów. Podążając za złotą zasadą UX: im szybciej użytkownik wykona swoją potrzebę dzięki twojemu narzędziu, tym lepiej dla niego, i ciebie (no chyba, że jesteś Facebookiem).

Rozwiązaniem pośrednim jest wykorzystanie obu podejść - wpierw spróbować odgadnąć intencję użytkownika (na podstawie słów kluczowych), a następnie wprowadzić konkretny scenariusz rozmowy. To podejście wykorzystaliśmy w naszym firmowym Chatbocie.

Problem z jakim się jednak spotkaliśmy to chęć testowania jego zdolności konwersacyjnych przez użytkowników. Doskonale wiecie, o czym mówimy - kreatywność ludzka w tym aspekcie nie zna granic. A nasz chatbot jest bardzo konkretny i pomimo 20 scenariuszy, nie umie odpowiedzieć na pytanie o pogodę.

Kiedy bot scenariuszowy napotyka na problem. Źródło:

Oczywiście moglibyśmy dodać taką funkcję, ale jaki to by miało sens biznesowy? Mając na uwadze ciekawość ludzką, mieszane podejście wygląda na idealny trade-off :)

Jak się tworzy Chatbota?

Przejdźmy do sedna, czyli jak stworzyć takiego chatbota. Proces można rozpisać na kilka kroków:

Zidentyfikowanie potrzeby na automatyzację pewnego obszaru komunikacji z klientem,

Rozpisanie możliwych scenariuszy, zapytań i odpowiedzi - ten etap przeprowadzamy podczas warsztatu z klientem,

Rozpoczęcie prac programistycznych,

Zaprogramowanie chatbota zgodnie z zaprojektowanymi scenariuszami,

Testy konwersacji (m.in. testy korytarzowe, analiza użyteczności scenariuszy),

Integracja chatbota z profilem na Facebooku (jeśli chatbot ma być połączony z Facebook Messengerem, a nie np. tylko na stronie www),

Analiza konwersacji w celu wyłapania błędów i wprowadzenia możliwych usprawnień.

Z powyższej listy wyróżniłbym przede wszystkim wszystkie składowe, które nie są stricte techniczne, czyli analizę potrzeby zastosowania chatbota, zaprojektowanie jego możliwych scenariuszy, a następnie testy i ciągłe jego usprawnianie. To one będą świadczyć o sukcesie wdrożenia tego rozwiązania.

Kluczowy jest także warsztat, w wyniku którego powstanie świetnie zaprojektowana komunikacja chatbota, będąca podstawą wszystkich dalszych prac. W HighSolutions stawiamy bardzo mocny nacisk na ten etap procesu. Jako zewnętrzni konsultanci jesteśmy w stanie ocenić obecną komunikację klienta z boku i dzięki doświadczeniu zasugerować usprawnienia i uproszczenia komunikacji.

Czy chatbot to AI?

Często też spotykamy się ze sprzecznymi opiniami, że chatboty to jest sztuczna inteligencja albo że to nie jest sztuczna inteligencja.

Żeby odpowiedzieć na to pytanie, trzeba wpierw zdefiniować pojęcie sztucznej inteligencji, która zawiera trzy rodzaje zaawansowania: od ANI (Articial Narrow Intelligence), przez AGI (Artificial General Intelligence), po ASI (Artificial Super Intelligence).

Estymowany rozwój sztucznej inteligencji w czasie. Źródło: UBS.

Standardowo za sztuczną inteligencję uważa się AGI. Jednakże, ANI to też sztuczna inteligencja, a jako przykłady to może być np. filtr do spamu. Chatboty także mogą symulować AGI, ale zazwyczaj są one typowymi ANI np. usługa do rezerwowania stolików w restauracji czy zadająca pytania, by przygotować ofertę.

Wyjaśniając bardziej obrazowo - ANI to bardzo wyspecjalizowany mechanizm/algorytm, który robi jedną rzecz bardzo dobrze w sposób symulujący inteligencję, czyli np. potrafi się uczyć. Przykładem tego podejścia są wcześniej wspomniane filtry do spamu czy wyszukiwarki połączeń (Google Maps, jakdojade). I w tej grupie także znajdują się chatboty, które mają robić jedną rzecz, ale bardzo dobrze i jeśli zostaną odpowiednio zaprojektowane - także uczyć się na podstawie wcześniejszych konwersacji.

AGI, czyli uniwersalna sztuczna inteligencja porównywalna z ludzką, jeszcze nie występuje “w naturze”. A właśnie to rozumiemy przez sztuczną inteligencję potocznie. O ASI na razie nie będ wspominał ;).

Podsumowując: czy chatboty to sztuczna inteligencja? Tak. Ale nie w potocznym rozumienia tego pojęcia.

A czy w takim razie można wykorzystać uczenie maszynowe (machine learning) w tworzeniu chatbota?

Jak najbardziej, jeśli nasza usługa polegałaby np. na rekomendowaniu rozwiązań. Ale te mechanizmy powinny być już żywe w naszym systemie wcześniej, a nie stworzone specjalnie dla chatbota. Nie mamy wątpliwości, że machine learning będzie coraz częściej wykorzystywany przez chatboty, by jeszcze lepiej oferować swoje usługi.

Przyszłość - czy chatboty będą sztuczną inteligencją?

Nawiązując do poprzedniego rozdziału - chatboty już SĄ sztuczną inteligencją. Ale na pewno w ciągu kilku następnych lat postęp w dziedzinie rozumienia słowa pisanego wejdzie na taki poziom, że rozumienie intencji człowieka będzie bardzo proste i wykorzystywane wszędzie.

Z każdym rokiem będzie też wzrastać rola wirtualnych asystentów, którzy de facto też są chatbotami. A im bardziej będziemy przyzwyczajeni do rozmowy z komputerami, tym ten rynek będzie się rozwijał. Zamiast odpisywać na powtarzalne maile i zapytania, będziemy mogli się skupić na bardziej kreatywnych działaniach.

Ale od czegoś trzeba zacząć. Może od chatbota dla Twojej firmy?