V době exploze nejrůznějších neuronových sítí a samozvaných umělých inteligencí se mnoho firem snaží získat svých patnáct minut slávy a přijít na trh s novým využitím těchto působivých nástrojů. Jednoznačně nejvíce nových produktů vzniklo a vzniká na základě Large Language Modelů, neboli LLM. Tyto modely pro generování přirozené řeči jsou neuvěřitelně působivé v nejrůznějších oblastech až do té míry, že člověka napadne, jestli LLM, se kterým si píše, skutečně není umělou inteligencí obdobnou lidské inteligenci.
Kromě generování textu se lidé snaží tato LLM využít i pro automatizaci každodenních úkonů jako je objednávání jídla, odepisování přátelům, pouštění hudby nebo vyhledávání na internetu. Tyto úkoly však není možné provádět pouze s glorifikovaným generátorem náhodného textu, takže když OpenAI vytvořilo způsob, jak může jejich ChatGPT komunikovat i s externími nástroji (např. s WolframAlpha pro řešení matematických příkladů), otevřela se tím cesta k mnoha novým produktům. Největším pokrokem v tomto směru je model GPT-4o ("o" znamená “omni”), který kromě porozumění a generování textu uní i přijímat a generovat obrázky.
Na základě těchto pokroků vzniklo mnoho produktů, jmenovitě třeba Humane Pin nebo Rabbit R1, malé krabičky, které mají sloužit jako osobní asistenti. Tyto produkty staví na předpokladu, že uživatel řekne nějaký pokyn, např. “Vytvoř upomínku s ‘zavolat k doktorovi’”, krabička převede řeč do textu, text předá LLM a LLM tento příkaz provede pomocí nějakého předdefinovaného nástroje pro ukládání poznámek. Příkaz tohoto typu je poměrně jednoduchý a vštšina produktů ho také zvládá bez větších problémů. Kde ale často narazí jsou příkazy jako “Přehraj mi písničku Help od Beatles”, kdy velmi často přehrají jinou skladbu, nebo nepřehrají nic. Možná si teď říkáte: “Vžyť přehrávat hudbu umí i Amazon Alexa, která vyšla už v roce 2016 a žádné LLM v sobě neměla.” A měli byste pravdu…
Zaměříme-li se na produkt Rabbit R1, nejenom, že neumí přehrávat skladby, ale neumí ani objednat jídlo, zavolat taxi nebo odpovědět na zprávu, přestože všechny tyto funkce byly prezentovány v rámci jejich marketingové kampaně. Cílem tohoto článku však není kritizovat klamavou reklamu, ale podívat se na technickou část tohoto problému a vyzkoušet si, jak a jestli by šlo udělat osobního asistenta na základě LLM skutečně funkčního.
Nedlouho po vydání tohoto produktu vyšel na povrch jeden z hlavních důvodů, proč skoro žádná z prezentovaných funkcí R1 nefungovala. Přestože jeho tvůrci tvrdili, že používají vlastní LAM, neboli Large Action Model, který převádí pokyny uživatele na akce v rámci jednotlivých aplikací jako třeba Spotify, realita byla jiná. V praxi toto LAM bylo ve skutečnosti pouze LLM (konkrétně ChatGPT) a sada předdefinovaných skriptů, které interagovaly s webovými aplikacemi místo uživatele. LLM tedy pouze převedlo příkaz uživatele na parametry, které předalo scriptu, který následně proklikal např. aplikaci Spotify, vyhledal správnou skladbu a přehrál jí. Zásadním problémem tohoto přístupu je, že scripty musel nejdřív nějaký programátor napsat a jakmile Spotify změní svůj vzhled, posune tlačítko, přidá extra krok atd., script se rozpadne a žádnou skladbu už nepřehraje.
Když jsme se seznámili s tímto neúspěšným pokusem o automatizaci ovládání uživatelského rozhraní pomocí LLM, napadlo nás, že to přece musí jít udělat “poctivě”, tedy skutečně využít pouze LLM a nespoléhat se na předpřipravené průchody aplikacemi. Tím spíše, když existuje model GPT-4o, který umí porozumět obrázku. Kdyby tento model uměl nejen poznat, že na obrázku kočky je skutečně kočka, ale na obrázku webové aplikace identifikovat jednotlivé ovládací prvky, bylo by skutečně možné procházet aplikaci poze na základě příkazů od LLM. Struktura takového projektu by byla, že uživatel zadá příkaz, tedy třeba “Přehraj mi písničku Help od Beatles”, program tento příkaz předá LLM se screenshotem úvodní obrazovky Spotify a zeptá se: “Když chci provést ten příkaz, kam mám kliknout?". LLM odpoví s pozicí na obrazovce, náš program na to místo klikne, znovu udělá screenshot obrazovky a ptá se “co dál?" tak dlouho, než skutečně splní původní příkaz. Díky tomuto přístupu bychom eliminovali problém s měnícím se uživatelským rozhraním, protože LLM by bylo schopné najít tlačítko kdekoli na obrazovce, případně i nejdřív otevřít boční menu, pokud nenašlo to, co hledalo.
A světe div se, ono to skutečně fungovalo. GPT-4o bylo schopné velice přesně identifikovat ovládací prvky na obrazovce a poskytovalo víceméně korektní lokace tlačítek, na která bychom měli kliknout, abychom se posunuli do dalšího kroku. Kdyby to však bylo skutečně snadné, tak zde popisujeme náš průlomový nový produkt, který uvádíme na trh, a ne, že jsme provedli experiment. Kde je tedy problém? Hlavní problém je v době odpovědi. Co totiž zatím nebylo zmíněno je, jak dlouho vlastně trvá spustit takle písničku na Spotify? V praxi trvalo zhruba minutu, než jsme se z úvodní obrazovky dostali k přehrávání audia. Při takové době už si písničku pustím rychleji sám, než abych čekal až to za mě udělá můj asistent. S rychlostí odpovědi se potýkají i existujicí produkty jako Rabbit R1 a jim trvá projít aplikaci pomocí scriptu jen pár vteřin. Z různých hodnocení extistujících produktů vychází najevo, že pokud asistent neudělá do pěti vteřin to, co dostal příkazem, je uživatel otrávený a nemá s produktem pozitivní zážitek. Čekat tedy minutu na přehrání skladby je nemyslitelné a to je Spotify jednou z jednodušších aplikací. Pokud bychom se bavili např. o objednání dovážky jídla, kdy každý chce něco jiného a ke každému jídlu je ještě pití, omáčka nebo dezert, není reálné proklikat se aplikací dostatečně rychle na to, aby byl uživatel spokojený.
Je klidně možné, že tvůrci Rabbit R1 si udělali podobný experiment jako my, byli z něj nadšení a rozhodli se kolem něj postavit produkt. Začali ho prezentovat jako LAM, protože by se za něj dal skutečně považovat, získali spoustu peněz od investrorů, ale když začali produkt vyvíjet, narazili na to, že není možné získat odpovědi dostatečně rychle. Jelikož už bylo ale příliš pozdě změnit marketingovou kampaň či vrátit peníze, museli najit objektivně řečeno asi nejlepší možnou alternativu, která bude dostatečně rychlá. Jejich příběh poukazuje na to, že LLM je skutečně pouze glorifikovaný generátor textu a (alespoň zatím) není možné ho využít pro interakci s uživatelským rozhraním.
NoxLabs je tým inženýrů a designérů, kteří se specializují na vývoj webových a mobilních aplikací. S nadšením vytváříme krásný software a vítáme nové nápady na projekty.