Robert Važan

Programovanie s Gemini Pro

Claude je v poslednom čase nedostupný častejšie než dostupný. Tak často som ho musel nahrádzať pomocou Gemini Pro 2.5, až som na Gemini v podstate úplne prešiel. Keď si naň zvyknete, je v programovaní celkom dobrý.

Agent

Gemini Pro používam cez API namiesto Google CLI pre programovanie, pretože uprednostňujem vlastného agenta postaveného na llobot knižnici. Som na platenej úrovni Gemini, ktorá zahŕňa vágny prísľub dôvernosti. Dokonca som prišiel na to, ako v Google Cloud Console sledovať spotrebu tokenov a náklady.

Skutočná veľkosť kontextu

Gemini Pro má lacnejšie vstupné tokeny než Claude a vyšší limit dĺžky kontextu, čo ma spočiatku motivovalo vyplniť kontext, aby sa model čo najviac prispôsobil práve upravovanému projektu. Model však v skutočnosti nie je dosť silný na to, aby využil okno s kapacitou 1 milióna tokenov. Výkon viditeľne degraduje s dlhším kontextom aj s ďalšími kolami četu. Za hranicou približne 100 tisíc tokenov sa výkon dramaticky zosype: model začne opakovať predošlé úpravy, nesprávne vykladá aj jednoduché pokyny a robí iné hlúpe chyby. Preto držím kontext krátky, výrazne pod deklarovaným limitom modelu. Vedie to k zvláštnej nákladovej štruktúre, v ktorej dominujú výstupné tokeny.

Viackolové čety

Nemyslím si však, že ide len o dĺžku kontextu, hoci tá k tomu určite prispieva. Podľa mňa Gemini Pro rýchlo degraduje vo viackolovej konverzácii. Má problém aplikovať dodatočné úpravy nad tými, ktoré už urobil. Možno jeho trénovanie nejakým spôsobom uprednostňuje jednokrokové postupy. Alebo mechanizmus pozornosti v Gemini Pro nevie pracovať s viacerými verziami toho istého dokumentu. Alebo jeho mechanizmus dlhej povornosti vôbec nekóduje pozíciu tokenov. To by vysvetľovalo, prečo sa mýli v tom, čo už je hotové a čo ešte treba urobiť.

Najlepšie je používať Gemini Pro na jednoduchšie úlohy, ktoré zvládne na prvý pokus. Ak sú potrebné dodatočné úpravy, často je lepšie založiť na ne novú konverzáciu.

Náklady

V llobotovi zatiaľ používam prepísanie celého súboru ako jediný podporovaný formát úprav, čo nafukuje výstupné tokeny. Podľa mňa však väčšina výstupných tokenov v reportoch sú v skutočnosti tokeny na premýšľanie. Neviem to s istotou, pretože Google Cloud Console nerozlišuje typy výstupných tokenov. Viem však, že Gemini Pro má tendenciu premýšľať tisíce tokenov v každom kole konverzácie. Preto je lacnejšie požiadať v každom prompte o sériu príbuzných zmien, aspoň pokiaľ model zvládne úlohu na prvý pokus. Svoje aktuálne náklady odhadujem na približne 0,20€ na dotaz, čo je veľa v porovnaní s $0,04 za celý čet v Copilote, ale Gemini Pro urobí oveľa viac práce na jeden dotaz, takže mi to zatiaľ vyhovuje.

Premýšľanie

Všetko to premýšľanie je aktuálne užitočné. Už nedostávam hlúpe, polovičaté úpravy, aké produkoval Claude. Claude príliš málo premýšľal, často len pár stoviek tokenov aj pri komplikovaných úlohách. Mám podozrenie, že premýšľanie v Claude je len pozmenený systémový prompt a nie výsledok poctivého spätnoväzobného učenia (posilňovacie učenie, reinforcement learning). Hoci Gemini Pro nerobí polovičaté úpravy ako Claude, stále nedodržiava pokyny úplne a zmrví prakticky každý netriviálny algoritmus.

Verdikt

Gemini Pro stále pôsobí ako menší model než Claude Sonnet, ale začal som sa ňom oceňovať jeho spoľahlivú dostupnosť, dôkladné premýšľanie a vysoké limity tokenov. Najmä sa mi páči jeho schopnosť realizovať rozsiahle úpravy na prvý pokus. Hoci je pre mňa užitočný v každodennej práci, stále hľadám lepšie alternatívy, ktoré zlyhávajú menej často a zvládnu náročnejšie úlohy.