Pohled na AI a chatboty pro byznys (3. díl)

Pojem AI (artificial intelligence, umělá inteligence) je v současné době asi nejfrekventovanějším výrazem posledních let v oblasti internetu nebo IT vůbec. V třídílném seriálu se podíváme, jak využít AI pro tvorbu chatbota. Závěrečná část seriálu se podrobněji zabývá příklady postavení chatbota a typickou technologickou výbavu pro chatbota.

Příklady postavení chatbota

Vše začíná u „kreslicího prkna“. Návrh dialogu a cíle chatbota jsou také naprostým základem. Pokud se tento domácí úkol obejde a staví se chatbot na monolitické téma, bude se jednat o projekt odsouzený k zániku. U kreslícího prkna se musí sejít více lidí a rozhodně by se tohoto setkání neměl účastnit nikdo z IT. Cílem je graficky znázornit, co uživatel vkládá do chatovacího okna, co očekává za reakci a jaký cíl chceme v konverzaci dosáhnout. Může jím být doporučení k nákupu, nalezení informace, pomoc s technickým, zdravotním nebo jiným problémem.

V dalším kroku se každé „krabičce“ v dialogovém návrhu přiřadí sada dostupných dat zevnitř organizace, nebo cesta, kde hledat data externí.

Velmi klíčovou a vlastně často opomíjenou dovedností chatbotů je schopnost pamatovat si předchozí konverzace s uživatelem. Představte si chatbota, který se vás po měsíci zeptá, zda se vám zimní bunda, nebo telefon, kterou jste si pořídili líbila. Nebo se zeptá, zda již s vaším mobilem vše funguje, jak má, a zda není třeba další pomoci. Tato dovednost chatbotů se nazývá uživatelská persistence. Pokud ji ještě doplníme o elementární znalost zákazníkova jména, pak jde o hezký start projektu.

Všeho se dá dosáhnout s různou mírou obtížnosti na komerčních i open source platformách. Ve všech případech je nutné počítat s trochou programování. V platformě IBM Watson se velmi dobře hledají chyby v trénování. U Google nebo Tensorflow máte zase větší flexibilitu v nápadech a následně nižší provozní náklady.

Nutné a téměř nutné je mít následující data: vlastní byznysová data, historii dialogů, data o počasí, obecné zprávy, zprávy z kultury, sportovní výsledky, počasí, geografie; každá z těchto oblastí se pak může zpracovat jako samostatná neuronová síť nebo AI. V rámci dialog managera se pak tyto jednotlivé sítě propojují a komunikují spolu. Je to vhodný postup pro případné rozšiřování nebo jednodušší správu dané problematiky. Při úpravách pak není třeba přetrénovat celý sofistikovaný model, ale pouze jeho jednu část. Pokud jde o uživatelskou znalost – perzistenci, tam je třeba „dotrénovat“ tuto vrstvu za pochodu. Tedy s každou ukončenou konverzací nebo dokonce řádkou naučit chatbota něčemu novému.

Typická technologická výbava pro chatbota

Každá ze zvolených cest přípravy chatbota vyžaduje hromadu infrastruktury. V případě tvorby chatbota v prostředí IBM a Google není třeba se starat o hardware starat, účtují se pouze tzv. interakce, tedy kontakty s rozhraním dané služby. Pokud si tvůrce zvolí cestu open source, je třeba počítat se samostatnou infrastrukturou. V obou případech bude zapotřebí více zdrojů pro testy a trénování. Následný vlastní provoz již nemá takové potřeby zdrojů.

Představte si, že máte 100 000 záznamů chatů z podpory nebo vašeho diskusního fóra. To již není malý objem dat. Ať půjde o technologii od IBM, Google nebo Tensorflow, je třeba trénovat chatbota rychle. Nikdo z vašeho týmu nebude chtít čekat 48 hodin, než proběhne trénovací cyklus na uvedeném nastavení. Toho lze dosáhnout pomocí výkonných GPU. Vzhledem k deformovaným ceny kvůli kryptoměnám lze doporučit výkonnější karty Nvidia 1080 a výše, podmínkou je podpora CUDA, nebo je možné použít vlastní moduly s podporou AVX512. Obě řešení jsou velmi rychlá a efektivní a dají se kombinovat. Tensorflow si velmi rozumí s Nvidia GPU, ale pro 100 000 řádků chatu je třeba počítat s 8 hodinami s výše uvedenou kartou. Pokud se bude hloubka, tj. deep learning postupně zpřesňovat, a data přitom nebudou kvalitní, je nutné se vybavit farmou takových karet ve vlastním datovém centru nebo cloudu.

Pokud se máme dotknout vlastní potřeby výpočetního výkonu, tak je třeba se pobavit o objemu dat. Každých 10 000 záznamů konverzace si vezme svůj čas. Každodenní dávka zpráv, příspěvků na redditu nebo wiki je také náročným soustem. Výhodnou platforem IBM Watson, Google apod. je, že není třeba řešit strojový čas. Pokud byla zvolena platforma Tensorflow, je třeba počítat se strojovým časem GPU, a toho bude potřeba hodně. Generické cloudové GPU jsou stále velmi drahou cloudovou jednotkou na pronájem. V porovnání s komerčními GTX kartami od Nvidia nenabízejí až na paměť větší počet jader. Dvojitá přesnost v desetinné řádce se pro trénování chatbota nevyužije, není zapotřebí. Nové licenční podmínky Nvidia dnes ale trhem s GPU velmi zamíchaly. Google nově nabízí vlastní TPU čip s podporou Tensorflow, který se zdá být slibný. Nvidia Tesla V100 má zase naopak několik hardwarových implementovaných jader Tensorflow. Cenově daleko lépe a bez dvojité aritmetiky a menší paměťové propustnosti vychází Titan V. Je tedy třeba se podívat na objem dat a potřebu frekvence trénování, aby produkční rozpočet provozu chatbota dával smysl.

Filip Korbel donedávna zastával pozici obchodního ředitele IBM pro segment Commercial a CSP v Čechách a na Slovensku.

Vybrané odkazy:

https://chatbotsmagazine.com/natural-language-processing-and-machine-learning-the-core-of-the-modern-smart-chatbot-8755c6343fa5

https://hackernoon.com/i-built-a-chatbot-in-2-hours-and-this-is-what-i-learned-f5dbb4ba5fcc

https://blog.kovalevskyi.com/rnn-based-chatbot-for-6-hours-b847d2d92c43

https://www.youtube.com/watch?v=bLB3Bsj-WRQ

Přecházející díly
Pohled na AI a chatboty pro byznys (1. díl)
Pohled na AI a chatboty pro byznys (2. díl)

Exit mobile version