Programiranje

Imam novog juniora


OrnithAI agentiLLMVibe coding

Već neko vrijeme koristim lokalne modele. Ili bi možda bilo preciznije da kažem kako pokušavam koristiti lokalne modele. Grafička kartica ima 16 GB memorije i treba naći neki kompromis između veličine modela, brzine i kvalitete odgovora. Prošao sam razdoblja ljubavi i mržnje s modelima Qwen 9B, Gemma 12B Q8, Gemma 26B A4B, Qwen 27B IQ3. Gemma 4 E4B je brza, treba znati njezina ograničenja, GPT-OSS 20B FP4 nekad iznenadi pa uprska.

I dalje se ne mogu mjeriti s Claude Codeom i njegovim modelima. Pronašao sam primjenu za lokalne modele - ubrzavaju mi pisanje koda za koji znam što treba raditi i kako treba izgledati, a agenti ga uz dobre, ali ipak ne previše detaljne upute, napišu. Mržnja se obično javljala kad bi modeli zapeli na jednostavnom zadatku. Dobri su i za stvari za koje su raspisani skillovi.

Ornith-1.0 - novi junior

Danas sam pročitao najavu za Ornith-1.0 i odlučio dati priliku Ornith-1.0-9B modelu da pokaže što zna. Obično kao prvi korak dam modelu da analizira kod i napiše kratke upute za agente. Nijedan model na tom koraku me nije osvojio, svi se raspišu, napišu previše teksta, obraćaju pažnju na nevažne detalje. Ornith je napisao upute kakve bih ja napisao. Lažem, napisao je bolje upute jer je naveo stvari koje bih ja iz lijenosti izostavio jer su vidljive iz koda.

Prvi zadatak je riješio odlično i bez tipičnih problema. Znao sam da je samo pitanje vremena kada će početne simpatije zamijeniti razočaranje. Uprskao je već na drugom zadatku, obrisao je jedan model, napravio novi, povukao neke čudne strane ključeve. U redu, uputio sam ga gdje je pogriješio, zašto su modeli tako definirani i malo detaljnije pojasnio priču. Očekivao sam nekoliko iteracija, kao i kod ostalih modela, dok se problem ne ispravi. Ornith je to riješio od prve. Bravo. Krenuo sam s novim zadatkom.

Ornith je dovoljno brz, generira 38-40 tokena u sekundi. Neki od modela koje sam spomenuo su brži (Gemma, od 50-80, GPT-OSS do 80, Qwen oko 60), ali nisu bili tako pouzdani.

Nakon nekoliko isporuka sjetio sam se na koga me Ornith podsjeća. Znate one juniore bistrog uma i brzih prstiju koji bi često riješili zadatak dok vi još niste ni kavu popili? Oni koji hitaju najbržim putem prema cilju i ne obaziru se na prepreke. Oni koji često znaju neobične detalje i nove mogućnosti biblioteka koje koristite, oni koji vas iznenade. Oni koji će bez ikakvih ograda vrtjeti SQL upite na produkciji.

Takav je i Ornith. Nije uspio napraviti Django migraciju na standardan način pa je sam generirao kod migracije. Totalno je uprskao stvar i sam je krenuo u popravljanje te je napisao SQL upit koji je mijenjao podatke u internim Django tablicama za migraciju. Tu je napravio totalni džumbus i migracije više nisu radile. Kako je to bio projekt u razvoju ja sam obrisao sve migracije i napravio jednu novu. U AGENTS.md dodao sam uputu da ne piše sam migracije, da koristi Django migracije i da stane ako zapne. I nikada, ali baš nikada da ne mijenja podatke u bazi koristeći čisti SQL. :-)

Prvi veći zadatak importa podataka s jednog javnog endpointa je napravio, opet od prve. Ali neki podaci su nedostajali, odabrao je pogrešan podatak za jedinstveni identifikator sloga pa je import progutao neke podatke, iako je u podacima bio id za kojeg logika nalaže da je on najbolji kandidat za tu ulogu. Otkrio sam grešku i dao sam Ornithu precizniju uputu. Popravio je problem u prvoj iteraciji. I po tome se razlikuje od drugih koje sam koristio, ne zapinje u krugu i ne treba mu bezbroj pokušaja za jednostavna rješenja. Jednom je zapeo vrteći iste odgovore, postavio sam repeat-penalty parametar i nije se ponovilo.

Čini mi se da bi uz dobre i precizne upute Ornith mogao biti jako dobro rješenje ako želite kodirati koristeći lokalne modele na hadveru s pristupačnom cijenom (na hrvatskom tržištu možete nabaviti NVIDIA RTX kartice s 16 GB memorije već od 600 €).



Ako prvi put komentirate moguće je da se vaš komentar neće isti tren pojaviti na stranici već nakon dodatne provjere. Hvala na doprinosu i strpljenju.