Alexa od Amazonu „chatuje“ i díky českým programátorům

Alexa od Amazonu „chatuje“ i díky českým programátorům

Umělá inteligence láká lidstvo stejně jako před staletími třeba létání. Se zlepšujícími se možnostmi počítačů a schopnostmi programátorů roste touha naprogramovat stroj, který by „uvažoval“ stejně jako člověk. O tom, jak obtížné je předávat lidské vědomosti a zkušenosti strojům, ví své tým Alquist z ČVUT, který již druhým rokem pracuje na vylepšení konverzačních schopností chatbota Alexa pro retailového giganta Amazon.

Pětice studentů po vedením Jana Šedivého z CIIRC ČVUT vyvíjí sociálního chatbota, který by uměl konverzovat s lidmi o populárních tématech jako jsou film, sport nebo hudba. Vývoj probíhá v rámci soutěže Alexa Prize vyhlášené americkou společností Amazon, která sice již hlasového chatbota používá pro své zákazníky, ale ráda by jim nabídla rozšířené možnosti konverzace. 

Tým ve složení Jan Pichl, Petr Marek, Jakub Konrád, Martin Matulík a Petr Lorenc letos v listopadu obhájil druhé místo v náročné mezinárodní soutěži a již podruhé uspěl v konkurenci mnohem početnějších týmů z předních univerzit z celého světa. Do finále kluci postoupili z prvního semifinálového místa a opět byli jediným týmem z neanglicky mluvící země.

 Jak vznikl Alquist

Tým Alquist vznikl v roce 2016, když do eClubu (vědeckého inkubátoru ČVUT) přišel požadavek od jedné internetové společnosti na vývoj jednoduchého chatbota-asistenta, který by zákazníkům usnadnil a zpříjemnil nákup přes internet. Zrodil se dialogový manažer Alquist, verze 0.1, jenž dostal své symbolické jméno po postavě stavitele ze hry R.U.R. od Karla Čapka. Za jeho vytvořením tenkrát stáli studenti ČVUT FEL - Petr Marek a Jakub Konrád se svým mentorem Janem Šedivým, vedoucím vědeckého inkubátoru.

V říjnu téhož roku se kluci dozvěděli, že Amazon pořádá soutěž studentských týmů za účelem vyvinout na svých zařízeních Alexa chatovacího robota, který bude schopen s člověkem udržovat plynulou dvacetiminutovou konverzaci na různá témata jako je politika, sport, zprávy, filmy či hudba. Rozhodli se vytvořit tým a do soutěže přihlásit, a i když si nedávali moc velké naděje, byli čeští studenti vybráni mezi dvanáct semifinalistů z více než stovky zaregistrovaných, kde se utkali s týmy z amerických univerzit jako je Berkeley, Princeton nebo Carnegie Mellon. Mimochodem, meta dvacetiminutové konverzace zatím pokořena nebyla, neboť ani letošní vítěz soutěže nepřekonal 10 minut rozhovoru. Alquist dokázal udržovat konverzaci 8 minut a 10 sec., což bylo o 5 minut déle než v prvním roce soutěže.

Jak se programuje AI

Cesta ke konverzačnímu chatbotu, který by uměl spárovat běžnou konverzační otázku se správnou přeprogramovanou odpovědí, nebyla snadná a několikrát skončila ve slepé uličce. Na druhou stranu i chybami se člověk učí a programátoři Alquistu si alespoň v praxi ověřili, které postupy fungují a které naopak práci ztěžují.

Na počátku projektu používali studenti komentáře z webové stránky Reddit k tomu, aby získali co největší množství reakcí na různá sdělení, které by následně použili při tvorbě modelových konverzací. Tento postup se však ukázal jako nevhodný, neboť nevytvořil dostatečně zajímavé konverzace, a tak jej programátoři opustili. Místo toho se zkusili věnovat pouze jednomu tématu - filmům. Ani tyto dialogy však nebyly logicky koherentní a navíc tvůrci nikdy neměli kontrolu nad tím, co umělá inteligence odpoví a jak zareaguje.

Strojové učení tak nakonec tým použil pouze k řízení dialogu, kde klasifikuje zájem, nalézá entity či detekuje sentiment. Ani experimentování s modelem Seq2Seq založeným na strojovém učení se moc neosvědčilo, neboť limitovalo množství odpovědí na tři.  Nakonec programátoři dospěli k závěru, že nejlepší je vytvořit obsah dialogů ručně, čímž se zajistí, že budou pro uživatele atraktivnější a smysluplnější.

Podobně časem vyhodnotili i pokus vytvářet dialogy jakožto tzv. „state automata,“ tedy konečný stavový automat. Tato metoda požadovala vytvořit pro jednotlivá témata vlastní stavy, z nichž každý měl výkonnou a přechodovou fázi, kdy jedna vykonávala příkaz uživatele a druhá na základě výsledků první rozhodla, do jakého dalšího stavu se přejde dále. To ale vedlo k situacím, ve kterých například dialog o oblíbených filmech, hercích a žánrech měl přes 300 stavů a jeho vývoj zabral jednomu členu týmu minimálně měsíc. Udržovat takto obrovský dialog bylo nepředstavitelné.

Při programování bylo také nutné navrhnout více variant dialogu, umět dialog rozvést a oživit. K tomu se naopak hodil již dříve opuštěný Reddit. Jakožto zdroj zábavných replik poskytoval uživateli informace vtipnou a zábavnou formou a neservíroval suše pouze surová data. Zcela bez problémů nebylo ani automatické rozeznávání řeči (ASR), které nebylo ideální zejména při komunikaci v hlučném prostředí nebo pokud uživatel nebyl rodilý mluvčí (což byl problém celého týmu). A kapitola sama pro sebe byly neslušné výrazy či klení. Ty samozřejmě nebyly použity záměrně (do konverzací se natáhly spolu s texty z internetu), ale bylo nutno je odfiltrovat, jinak by byl Alquist ze soutěže vyřazen.

Na základě zkušeností získaných v prvním roce soutěže se tým letos rozhodl přístup poněkud změnit. Zaprvé, stavové automaty programátoři již vůbec nepoužili a zcela je nahradili strojovým učením. Dialog je sice opět poskládaný z několika stavů, ale oproti stavovým automatům nebylo nutné ručně vytvářet pravidla určující, do kterého dalšího stavu se bude dialog dále posouvat. Tímto novým přístupem se Alquist díky strojovému učení sám naučil, kam má pokračovat. K tomu bylo nejprve nutné vytvořit příkladové konverzace, k nimž posloužila technologie Hybrid Code Networks, která byla pro účely Alquista lehce modifikována.

Druhý důležitý rozdíl byl, že došlo k výraznému zkrácení dialogů. Místo již zmiňovaného jednoho velkého dialogu se 300 stavy je teď Alquist vybaven přibližně 150 malými dialogy s maximálně 4 dialogovými otáčkami (otázka - odpověď). Tyto dialogy jsou propojeny v grafu témat a Alquist si je sám náhodně skládá za sebe a může i navázat příbuzným tématem. To, že jsou dialogy letos krátké, je výhodné z mnoha důvodů: lze je náhodně kombinovat do sebe (tudíž každý uživatel má trochu jiné pořadí), jsou ještě jednodušší na vytvoření a čím je dialog menší, tím je pro strojové učení snazší naučit se, jak správně pokračovat. I přes větší podíl využití strojového učení jsou stále všechny odpovědi připraveny ručně.

Budoucnost hlasového ovládání

Kromě práce na vývoji chatbota pro Amazon se tým snažil najít i jiné praktické využití pro schopnosti konverzačního robota. Ve spolupráci se společností Factorio Solutions, která má své vývojové středisko pod stejnou střechou jako tým Alquist, vybavili hlasovou kontrolou robotického baristu. Návštěvníci Testbedu CIIRC tak měli možnost v rámci jednoho ze Dnů otevřených dveří objednat si kávu od robobaristy právě prostřednictvím Alexy.

Své zkušenosti tým aplikoval i mnohem kreativněji, a to při vývoji mobilní aplikace, která využívá technologii rozeznávání hlasu, nabízenou Googlem na telefonech s OS Android. Vytvořili experimentální krátký film nazvaný „The Story of Alquist“, který propojuje nejnovější technologie s filmovou produkcí a vytváří tak inovativní interaktivní zážitek. Celá aplikace je v angličtině a klade si za cíl především nastínit současné technologické možnosti. Je dostupná zdarma na internetu nebo ke stažení na Google Play.

Opakovaná účast v soutěži a zkušenosti z loňského roku umožnila týmu spoustu věcí na svém chatbotovi vylepšit, najít nové metody při vývoji a strukturování dialogů, zpestřit konverzace, a také vyladit strojový zvuk chatbota do přirozenějšího „lidského“ tónu. I přes úžasný úspěch v soutěži Alexa Prize ale práce týmu nekončí. Naopak, získané zkušenosti kluci využijí k vylepšování Alquista pro příští ročník soutěže, do které se opět plánují přihlásit. A zákazníci Amazonu, kteří k nákupům používají hlasového asistenta Amazon Echo, a rádi si při tom povídají o filmech, módě či sportu, dostanou odpovědi, které připravil i tým mladých vývojářů z Prahy.

autor článku: Pavla Karychová a tým Alquist
psáno pro Bulletin Průmyslu 4.0