Robert Važan

Úlohy pre jazykové modely by mali byť široké a plytké

Keď som písal o obmedzenej inteligencii súčasných jazykových modelov, stručne som spomenul, že im vyhovujú široké a plytké úlohy. Tu rozviniem, prečo si to myslím a čo to znamená v praxi, najmä v kontexte vývoja softvéru.

Pre úplnosť ešte vysvetlím, že:

Prečo široké a plytké?

A čo úlohy s nerovnomernou náročnosťou?

Píšem o vývoji softvéru, ktorý nevyhnutne zahŕňa úlohy so širokým rozptylom náročnosti v rámci tej istej úlohy. To nie je ideálne, pretože jazykové modely sa stratia v najzložitejších častiach kódu a práve tam budú všetky chyby.

Aby som sa s tým vyrovnal, vyrovnávam náročnosť v popise úlohy. Pridávam viac detailov do špecifikácie tam, kde má úloha príliš veľkú hĺbku. A z opačnej strany, nechávam jazykový model hádať tam, kde je úloha plytká. Počas kontroly kódu venujem viac pozornosti kódu, ktorý je zložitý, a triviálne zmeny len zbežne prejdem.

Zložitým úlohám v programovaní sa nedá úplne vyhnúť. Niekedy musíte niečo urobiť ručne. V konečnom dôsledku programovaniu vždy prospieva väčší a inteligentnejší model.

Príklady

Tu je niekoľko príkladov širokých a plytkých programátorských úloh:

Zložitejšie úlohy zvyčajne majú špecifikáciu s 5-20 bodmi, pričom každý obsahuje jasný príkaz alebo obmedzenie. Systémový prompt je štruktúrovaný podobne. Formulovanie špecifikácie ako zoznamu mi tiež umožňuje pripojiť menšie nesúvisiace úlohy k hlavnej úlohe bez toho, aby som musel zadávať ďalší dotaz jazykovému modelu.