Jupyter a umělá inteligence
Jupyter notebook umožňuje spolupráci s umělou inteligencí (AI, artificial intelligence). Ta může
- předpřipravit zápisník podle požadavků uživatele,
- generovat kód pro specifické úkoly,
- opravovat nefunkční kód
- a případně vysvětlovat existující programový kód.
To skvěle zapadá do trendu, kdy se málokdy programový kód pro manipulaci s daty nebo pro simulaci píše od nuly. Zpravidla se skládá z modulů a tyto moduly jsou tvořeny hotovými kusy kódu, které si uživatel pouze přizpůsobuje. Proto je nutné být schopen rozumět napsanému kódu a mít představu, jak jej modifikovat.
- Skvělá integrace umělé inteligence do Jupyter zápisníků je na serveru AnacondaCloud.
- Požitelná je i varianta práce na webu ChatGPT. Pouze je navíc kopírování kódu mezi zápisnjíkem a chatem.
Ukázka práce
Na webu AnacondaCloud jsem si nechal vygnerovat řešič pro model růstu koncentrace proteinu s konstantní syntézou a degradací úměrnou množství proteinu. To je modelováno diferenciální rovnicí
\[\frac{\mathrm dx}{\mathrm dt}=k_1-k_2x.\]AI vygenerovala použitelný kód, dokázala jej modifikovat podle požadavků (jiná funkce pro řešení diferenciální rovnice, uložení dat do tabulky Pandas) a dokázala jej krok po kroku vysvětlit.
Záznam je na Youtube a výsledný zápisník je na GitHubu
Závěr
Umělá inteligence skvěle pomáhá při analýze dat, může posloužit pro automatizaci základních věcí či pro vytvoření výchozího bodu pro výpočet. Díky tomu se uživateli stačí upravovat požadavky a soustředit se na důležité věci, ve kterých mu umělá inteligence nemá jak pomoci.
Na člověkovi je
- vymyslet, jakou úlohu je potřeba řešit,
- zkontrolovat, že umělá inteligence ji řeší smysluplně,
- doladit výpočet v místech kde je potřeba,
- doladit prezentaci.
K tomu je potřeba zaměřit se na následující dovednosti.
- Znalost problematiky, co chci modelovat, jak to chci modelovat. Schopnost vybrat, jaký prostředek je z dostupných možností nejlepší pro řešení.
- Pasivní znalost použitého jazyka, schopnost porozumět existujícímu kódu.
- V případě potřeby schopnost modifikovat stávající kód s využitím asistence v různých formách (dotazy na internetových fórech, využití AI, studium nápovědy).
Varování
Je nutné mít na paměti následující vedlejší efekty, se kterými jsem se mnohokrát při využití umělé inteligence při výpočtech setkal.
- AI dokáže se suverenitou opakovaně předkládat chybné řešení. To je nebezpečné pro začátečníky, pro které může být na první pohled krásně vypracované řešení jakousi autoritou. Pokud se student snaží porozumět špatně vypracovanému řešení, je to nejen ztráta času, ale i těžce napravitelná škoda na celkovém přístupu k probíranému tématu.
- AI často prezentuje řešení jinak, než si to uživatel představuje. Snaha zpřesnit postup nebo formu výstupu postupnou komunikací s AI je potom obrovským žroutem času. Tento čas hravě několikanásobně překoná čas, který by potřeboval člověk k tomu, aby kód napsal sám (a v případě začátečníků si jenom od AI nechal opravit chyby v syntaxi).
- Aby člověk posoudil, jestli AI nedává nesmyslné odpovědi v odborných otázkách, musí sám problematice dobře rozumět. Není tedy možné rezignovat na hloubku porozumění problematice. Je nutno mít na paměti, že AI je možné svěřovat jenom dílčí úkoly a pečlivě kontrolovat výstupy.