Wirtualna asystentka Amazonu, zanim stała się zdolna do rozmowy z użytkownikami, musiała się tego szybko nauczyć.
Alexa jest rzeczywistym produktem inspirowanym przez fikcyjny serial Star Trek. To na pokładzie statku Enterprise załoga mogła w każdej chwili porozmawiać z komputerem pokładowym, zapytać o określone dane, wydać dyspozycje itd. Konwersacja była naturalna, intuicyjna, a komputer o miłym kobiecym głosie cierpliwie spełniał wszystkie zachcianki. Komputer w Star Trek nie miał imienia, wszyscy wołali na niego po prostu „Komputer”. Nie było potrzeby rozróżniania konkretnej konsoli, bo wszystkie były podłączone do tego jednego, wielkiego komputera. Podobnie jest z Alexą. Tutaj wywołanie brzmi „Hej Alexa”. Samo imię wirtualnej asystentki zostało dobrane tak by było stosunkowo krótkie i łatwe do rozpoznania przez maszynę. Choć zdarzają się sytuacje, kiedy Alexa nie rozumie albo przekręci to, co do niej mówimy, to iluzja swobodnej rozmowy bardzo przypomina to, co widzieliśmy w Star Trek. W jaki sposób komputer jest w stanie tak dobrze ogarnąć naturalną mowę?
Amazon zaprzągł do tego celu architekturę sieci neuronowej. W tradycyjnym podejściu do programowania definiujemy problem i musimy wiedzieć z góry jakie jest rozwiązanie danego zagadnienia, aby móc zakodować je jako algorytm do wykonania. W przypadku analizowania mowy należałoby uwzględnić wszystkie reguły gramatyczne, odstępstwa jakie ludzie czynią od tych reguł, różne sposoby i tempa mówienia, przewidzieć niezliczone szczególiki co byłoby bardzo pracochłonne. Jeśli natrafimy na sytuację, której nie przewidział programista, program sobie nie poradzi. A przecież ludzie tak różnie mówią, że takich przypadków byłoby bez liku.
Wykorzystując sieć neuronową podchodzimy do problemu na podobieństwo ludzkiego mózgu. Początkowo wagi przy wszystkich neuronach dobierane są losowo. Taka początkowa sieć neuronowa jest jak niemowlak, nie poradzi sobie z najprostszym zadaniem. Dopiero w procesie iteracyjnego uczenia się, czyli analizowania dużej ilości odpowiednio opisanych danych wagi neuronów są modyfikowane tak, by osiągać coraz lepszy rezultat, w tym wypadku coraz dokładniejsze rozpoznanie naturalnej mowy. Przy odpowiednio dużej sieci neuronowej nie ogarniemy dlaczego ona działa poprawnie i które neurony odpowiedzialne są za jaką część rozwiązania problemu. Sieć neuronowa, podobnie jak mózg, może brać pod uwagę kilka rozwiązań, którym przypisuje określone prawdopodobieństwa. Również jak mózg może się czasem mylić.
W przypadku Alexy pomocą naukową było 14,000 godzin odpowiednio przygotowanych próbek mowy ludzkiej, nad czym pracował pokaźny sztab ludzi przez długi czas. To mniej więcej tyle godzin mowy, ile zdąży sobie przyswoić przez całe życie mózg typowego 16-latka. O ile człowiek nabywa wiedzę latami, to Alexa nauczyła się mowy błyskawicznie. Wykorzystując zasoby sprzętowe chmury Amazon, konkretnie 80-ciu instancji EC2, każda odpowiadająca komputerowi z 8 CPU, 15GB RAM i GPU nVidia Kepler GK104 przerobiła cały materiał w kilka godzin. Imponujące tempo przez które wielu ludzi ma gdzieś tam z tyłu głowy pytanie, kiedy zdolny uczeń w końcu zbuntuje się przeciwko powolnemu nauczycielowi?
Źródło grafiki: (C) Piotr Mańkowski
Mimo wszystko bym wolał, żeby pan Bezos.mnie nie edukował.