Tokenová chudoba: dá sa s voľne dostupnou AI robiť produktívna práca?

A child pumps a few glowing drops from an old hand pump into a tin cup on a dusty plain, while a huge luminous city overflows with light on the horizon

Written by

in

Prečo som hľadal bezplatné modely

Ollama Cloud úplne prestal ponúkať bezplatné modely. Pre svojho agenta Hermes som chcel záložnú možnosť, ktorá nevyžaduje predplatné a stojí za mojím hlavným poskytovateľom. Na Mac Mini mi beží aj lokálny model, ale je taký pomalý, že ho používam, až keď nemám na výber.

Tak som vyskúšal FreeLLMAPI. Je to open-source proxy, ktorá vie, aké bezplatné modely existujú u ktorých poskytovateľov, ako sa tam volajú a aké majú limity. Zaregistruješ sa na bezplatné tarify, dáš jej kľúče a ona vystaví jeden endpoint kompatibilný s OpenAI. Keď model narazí na limit alebo skončí chybou, prepne na ďalší. Nastavil som ju pre Hermesa aj pre OpenCode.

Tokenová chudoba

Potom prišla iná otázka. Ak je AI páka, čo ľudia, ktorí nemajú peniaze vôbec, možno ani kreditnú kartu? Bezplatný chat nájdeš ľahko. Okno chatu však nie je to isté ako agent, ktorý číta súbory, spúšťa buildy a pracuje celé hodiny. Dokáže niekto, kto nemá čo minúť, postaviť skutočnú aplikáciu?

Rozhodol som sa to zistiť a vybral som si reálnu úlohu.

Test: náhrada za QR Encoder

Roky som používal malú macOS aplikáciu QR Encoder. Ovláda sa z klávesnice a je to najrýchlejší spôsob, aký poznám, ako zmeniť text na QR kód. Už sa neudržiava a verzia, ktorú mám, je pre Macy s procesorom Intel.

Spravil som pár screenshotov starej aplikácie a zadal OpenCode v2 úlohu postaviť náhradu s niekoľkými zmenami. Na dizajn som ho nechal použiť skill Impeccable, čo s bezplatnými modelmi nefungovalo veľmi dobre (inak ho mám rád). Pravidlo bolo jednoduché: v celej slučke žiadny platený model.

Nová aplikácia QREncoder vo svetlom režime, s textovým poľom a náhľadom QR kódu
Náhrada, svetlý režim.
Nová aplikácia QREncoder v tmavom režime
Tá istá obrazovka v tmavom režime.

Ako to dopadlo

Trvalo to dlho. História gitu ide od prvého commitu so scaffoldom o 20:44 po poslednú snahu opraviť schránku o 02:05, teda viac ako päť hodín, a veľa z toho bolo čakanie.

Na konci sa aplikácia otvorila a väčšinou fungovala, čo ma prekvapilo. Kopírovanie do schránky a uloženie ako PNG nefungovali. Posledné dva commity sa volajú rovnako, „Fix: Save as PNG shows native dialog, copy image copies QR to clipboard“, čo o poslednej hodine hovorí všetko. Ikona sa vygenerovala, ale nenastavila sa, kým som o to párkrát nepožiadal. Modely vyrobili aj web projektu:

Webová stránka projektu QREncoder so sťahovaním, funkciami a screenshotmi
Web projektu, ktorý napísali bezplatné modely.

Aplikácia je na github.com/jooray/qrencoder (na vetve freellmapis nájdeš tento starý kód, ale radšej sa ani nepozeraj).

Prvé dojmy som zverejnil na Nostri, kým boli čerstvé. Boli to tieto:

  • Bezplatné modely sú pomalé. S auto:smart som veľa čakal.
  • Modely sa stále striedajú. S cachovaním sa netreba zaťažovať. Celý projekt pravdepodobne napísali tri až päť rôznych modelov, ktoré sa striedali. Nemusí to byť zlý nápad, keď žiadny z nich nie je frontier model.
  • Odstup od frontieru je obrovský, aj voči niečomu lacnému ako DeepSeek 4.1 Flash. Skoro som zabudol, koľko dozoru slabšie modely potrebujú. Nepomáha ani /goal.
  • Napriek tomu sa aplikácia otvorila a väčšinou fungovala.

Ktoré modely robili prácu a čo sa pokazilo

FreeLLMAPI zapisuje každý pokus. Za okno buildu, od 20:44 do 02:10, ukazuje log 666 pokusov. 549 z nich prinieslo odpoveď a 117 zlyhalo. Odpovedalo osemnásť rôznych modelov od piatich poskytovateľov. Log nehovorí, ktorý model napísal ktorý súbor, takže ti nepoviem, kto môže za schránku.

Tieto grafy ukazujú každý pokus v čase. Krúžok je úspech, krížik zlyhanie a farba je poskytovateľ. Prvý graf ukazuje poskytovateľov, ďalšie dva rozdeľujú modely na tie, ktoré odpovedali, a tie, ktoré zlyhali.

Graf pokusov podľa poskytovateľa v čase, krúžky pre úspechy a krížiky pre zlyhania
Poskytovatelia v čase. Krúžok: odpovedal. Krížik: zlyhal. Dlhé nečinné medzery sú skrátené.
Graf úspešných pokusov podľa modelu v čase
Len úspechy podľa modelu, vpravo podiel, ktorý fungoval.
Graf neúspešných pokusov podľa modelu v čase
Len zlyhania. Väčšina modelov dole bola vyskúšaná raz a nikdy neodpovedala.

Rýchlosť sa mení extrémne. laguna-xs-2.1 od poolside (cez NVIDIA) odpovedala 133-krát s mediánom 1,9 sekundy. muse-glimmer-30b od Mety odpovedal 91-krát s mediánom 21 sekúnd. glm-5.3-flash často trval viac ako minútu a najpomalšie volanie v tomto okne trvalo šesť minút. Celkový medián bol príjemných päť sekúnd, ale 90. percentil bol 45. Agent urobí pri jednej úlohe desiatky volaní, takže o tom, aký bude večer, rozhodujú tie pomalé.

Jeden model zlyhával viac ako ostatné: dots-3 note preview, 13 zlyhaní proti 48 odpovediam. Pätnásť zlyhaní celkovo tvorili prázdne odpovede, keď stream skončí bez textu aj bez volania nástroja. Agent dostane prázdnu odpoveď a musí to skúsiť znova.

Niektoré zlyhania spôsobil zastaraný katalóg. Google odpovedal 404 na modely Gemini 2.5, ktoré katalóg stále uvádzal, a NVIDIA odpovedala 404 na function id, ktoré už nemala. Každé z toho stojí jeden zlyhaný pokus a zlyhaný pokus môže stáť minútu.

Screenshot v konverzácii mení výber. Požiadavka s obrázkom môže ísť len na modely s vision a text chyby z jednej mojej relácie ukazuje, aké malé to robí: skontrolovaných 105 ciest, 69 bez vision, 10 bez volania nástrojov. Zostáva krátky zoznam. Modely llama-3.2 vision od NVIDIA tieto požiadavky dostávali a zakaždým, keď ich router vybral, zlyhali s 400 Bad Request.

Zlyhania boli v tomto okne väčšinou o kvóte: 46 zo 117 bolo odpovedí 429, 25 časových limitov, 15 prázdnych odpovedí a 10 preťažených poskytovateľov, zvyšok boli 404 a 400. Spolu stáli zlyhané pokusy asi hodinu a dvadsať minút čakania.

Problém s kontextom

Každé kolo agenta posiela celú konverzáciu znova. Medián požiadavky v tomto okne mal asi 98 000 tokenov. Z 549 zodpovedaných požiadaviek 268 presiahlo 100 000 a najväčšia mala 153 000.

OpenCode som povedal, že tieto modely majú okno 262 144 tokenov, pretože niektoré ho majú. Mnohé bezplatné majú 128 k alebo 131 k. OpenCode kompaktuje konverzáciu, až keď si myslí, že mu dochádza miesto, takže čakal príliš dlho a router poslal konverzáciu so 150 k tokenmi modelu s oknom 131 k. Pravdepodobne odtiaľ pochádzajú chyby 400.

Najhoršie je samotné kompaktovanie. Je to požiadavka ako každá iná. Na screenshote nižšie zlyhalo s „All models exhausted“, napísal som „continue, wake up subagents“ a dúfal v lepší výber, a ďalšia požiadavka išla na model llama-3.2 vision a vrátila 400.

Terminál OpenCode s hláškou All models exhausted, zlyhaným kompaktovaním a chybou 400 Bad Request od modelu NVIDIA llama-3.2 vision
Zlyhané kompaktovanie a po ňom 400 od modelu, ktorý router vybral ako ďalší.

Potom som znížil kontext, ktorý OpenCode predpokladá pre všetky modely FreeLLMAPI, na 110 000 tokenov, takže kompaktuje okolo 100 k, pod najmenšími oknami, ktoré sa v bežnej rotácii objavujú. Ak router vyberie model, ktorý konverzáciu zvládne, kompaktovanie funguje. Stále je to šťastie, lebo router pri výbere neberie ohľad na veľkosť okna.

Limity bezplatnej tarify

Každá bezplatná tarifa má strop a žiadna nie je stavaná na model, ktorý celú noc číta 100 k tokenov v každom kole. Jeden poskytovateľ mi napísal „You’ve reached today’s free-model token quota“. Google odpovedal chybami kvóty a 503 „high demand“. Router drží pre každý kľúč cooldown a na screenshote vyššie skontroloval 105 ciest, z ktorých 26 bolo obmedzených limitom alebo v cooldowne.

V tomto je FreeLLMAPI dobrý. Bez neho by som sa zastavil pri prvom limite. S ním práca pokračovala, pomaly, prepínaním na model, ktorý mal voľno. Zoznam modelov, ktoré majú voľno, sa však mení z hodiny na hodinu, takže sa nedá spoliehať na žiadny konkrétny, ani na prompt cache, pretože ďalšie kolo pôjde pravdepodobne inému modelu.

Druhá časť: tá istá aplikácia s modelom, ktorý stojí takmer nič

FreeLLMAPI uvádza iba modely, ktoré nepotrebujú kreditnú kartu, a to je celý zmysel experimentu. Existuje iná cesta, ktorá je výrazne lepšia a kartu potrebuje. OpenCode Zen občas ponúka bezplatné modely a OpenRouter tiež. Obe robia bezplatné promo akcie na nových modeloch a niekedy len testujú nové modely pod tajnými kódovými menami. Tieto modely často nie sú také rýchle ako platené, ale k najpomalšej triede majú ďaleko a môže sa stať, že keď sa pozrieš, nebude žiadny bezplatný.

Keď som to skúšal, DeepSeek 4.1 Flash bol na OpenCode Zen označený ako bezplatný, takže som úlohu s QR Encoderom spravil znova s ním.

Nebol taký rýchly ako platený model, ale k pomalému plazeniu bezplatnej ponuky mal ďaleko. Celú prácu spravil jeden model, takže som sa nemusel pýtať, kto čo napísal.

Funguje všetko. Kopírovanie do schránky a uloženie ako PNG, dve veci, ktoré bezplatné modely nikdy nedotiahli, fungujú, rovnako ako zvyšok. Výsledok je QREncoder 1.1.0 a jeho stránka je na jooray.github.io/qrencoder. Aj stránka má skutočný dizajnový nápad: každý modul QR kódu je celý pixel, nakreslený pixelovým písmom, čierna s limetkovým akcentom.

Nová stránka projektu QREncoder s pixelovým nadpisom Every module a whole pixel a screenshotom aplikácie
Stránka projektu z druhého buildu.

Aplikácia má štrnásť druhov obsahu (Wi-Fi, vCard, Bitcoin, Lightning, Monero, Zcash, Ethereum a ďalšie), ktoré sa skladajú z typovaných polí, tri štýly symbolu a exportuje s modulmi v celých pixeloch a so štvormodulovou tichou zónou, akú QR štandard vyžaduje. Nevolá vôbec žiadnu sieť. Beží na macOS a Androide a na Linuxe, ak si ju zostavíš sám.

Nový editor QREncoder s obsahom Wi-Fi, opravou chýb, farbou, mierkou modulu a tromi štýlmi symbolu
Editor, svetlá téma.
Formulár Wi-Fi v QREncoder na telefóne, QR kód je pod poľami
Formulár Wi-Fi na telefóne.

Stiahnuť si ju môžeš z GitHub releases alebo nainštalovať verziu pre Android zo Zapstore.

Čo si z toho beriem

S bezplatnými zdrojmi sa to dá. Skončil som s aplikáciou, ktorá sa otvorí a väčšinou funguje, postavenou bez peňazí a bez kreditnej karty, a to niečo znamená. Kto nemôže za nič platiť, vie z týchto modelov dostať prácu, ak má trpezlivosť a je ochotný ich strážiť.

Odstup medzi ponukou bezplatných modelov a aj lacným flash modelom dnešného frontieru je však obrovský. OpenCode v2 nedávno pridal /goal, ktorý drží agenta v behu, kým sa nesplní podmienka. Ja som ho v Claude Code prestal používať ešte predtým, než ho dostal OpenCode v2. S DeepSeek 4.1 Flash 1017, ktorý používam veľa a je veľmi lacný, alebo so Sonnetom či Opusom ho nepotrebujem, lebo modely cieľ dosiahnu samy. So staršími bezplatnými modelmi nezachránil nič. Večer namiesto toho strávieš riadením.

Na nový frontier sme si zvykli rýchlo. Modely staré šesť mesiacov už pôsobia ako doba kamenná a ponuka bezplatných modelov je z veľkej časti z takých a ešte slabších. Je zvláštne byť netrpezlivý voči technike, ktorá by pred dvoma rokmi vyzerala ako mágia.

Nepovedal by som preto, aby všetci používali bezplatné modely. AI pre programovanie, tvorbu webov a podobnú prácu je obrovská páka a lacné platené modely sú skutočná odpoveď na tokenovú chudobu. Pár dolárov ti dá tú úžasnú časť. Postaviť QR Encoder na DeepSeek v4.1 Flash 1017 by stálo pod dolár (keby som nepoužil bezplatnú tarifu).

Bezplatná možnosť tu je a vďaka nej nie sú dvere úplne zatvorené.