Pridružite se našim dnevnim i tjednim biltenima za najnovija ažuriranja i ekskluzivni sadržaj o vodećoj pokrivenosti umjetne inteligencije u industriji. Saznajte više
Kako se veliki jezični modeli (LLM) nastavljaju poboljšavati u kodiranju, referentne vrijednosti koje se koriste za procjenu njihove izvedbe postaju sve manje korisne.
To je zato što iako mnogi LLM-ovi imaju slične visoke rezultate na tim mjerilima, može biti teško razumjeti koje od njih koristiti na određenim projektima razvoja softvera i poduzećima.
Novi rad Sveučilišta Yale i Sveučilišta Tsinghua predstavlja novu metodu za testiranje sposobnosti modela da se pozabave “samopozivno generiranje koda” problemi koji zahtijevaju razmišljanje, generiranje koda i ponovno korištenje postojećeg koda u rješavanju problema.
Samopozivno generiranje koda puno je sličnije realističnim programskim scenarijima nego benchmark testovi i pruža bolje razumijevanje sposobnosti trenutnih LLM-ova da riješe probleme kodiranja u stvarnom svijetu.
Sadržaj objave
Samopozivno generiranje koda
Dva popularna mjerila koja se koriste za procjenu sposobnosti kodiranja LLM-a su HumanEval i MBPP (Uglavnom osnovni problemi s Pythonom). Ovo su skupovi podataka ručno izrađenih problema koji zahtijevaju da model napiše kod za jednostavne zadatke.
Međutim, ova mjerila pokrivaju samo podskup izazova s kojima se programeri softvera suočavaju u stvarnom svijetu. U praktičnim scenarijima, programeri softvera ne pišu samo novi kod — oni također moraju razumjeti i ponovno upotrijebiti postojeći kod te stvoriti komponente koje se mogu ponovno koristiti za rješavanje složenih problema.
“Sposobnost razumijevanja i kasnijeg iskorištavanja vlastitog generiranog koda, [in other words] samopozivno generiranje koda, igra važnu ulogu za LLM-ove u iskorištavanju svojih sposobnosti razmišljanja za generiranje koda koji trenutna mjerila ne uspijevaju obuhvatiti,” pišu istraživači.
Kako bi testirali sposobnost LLM-a u samopozivanju generiranja koda, istraživači su stvorili dva nova mjerila, HumanEval Pro i MBPP Prokoji proširuju postojeće skupove podataka. Svaki problem u HumanEval Pro i MBPP Pro nadograđuje se na postojeći primjer u izvornom skupu podataka i uvodi dodatne elemente koji zahtijevaju da model riješi osnovni problem i pozove to rješenje za rješavanje složenijeg problema.
Na primjer, izvorni problem može biti nešto jednostavno, poput pisanja funkcije koja zamjenjuje sva pojavljivanja danog znaka u nizu s novim znakom.
Prošireni problem bio bi napisati funkciju koja mijenja pojavljivanje više znakova u nizu s njihovim danim zamjenama. Ovo bi zahtijevalo da model napiše novu funkciju koja poziva prethodnu funkciju koju je generirao u jednostavnom problemu.
“Ova procjena generiranja samopozivnog koda nudi dublji uvid u mogućnosti programiranja LLM-a, proširujući se izvan opsega generiranja koda s jednim problemom”, pišu istraživači.
LLM-i imaju loše rezultate kod generiranja koda koji se sami pozivaju
Istraživači su testirali HumanEval Pro i MBPP Pro na više od 20 otvorenih i privatnih modela, uključujući GPT-4o, OpenAI o1-mini i Claude 3.5 Sonnet, kao i serije Qwen, DeepSeek i Codestral.
Njihovi nalazi pokazuju značajan nesrazmjer između tradicionalnih referentnih vrijednosti kodiranja i zadataka generiranja koda koji se sami pozivaju. „Iako se prednji LLM-ovi ističu u generiranju pojedinačnih isječaka koda, često se bore da učinkovito [utilize] vlastiti generirani kod za rješavanje složenijih problema”, pišu istraživači.
Na primjer, s jednom generacijom (pass@1), o1-mini postiže 96,2% na HumanEval, ali samo 76,2% na HumanEval Pro.
Još jedno zanimljivo otkriće je da, iako fino podešavanje instrukcija pruža značajna poboljšanja kod jednostavnih zadataka kodiranja, ono pokazuje smanjene povrate kod generiranja koda koji se sam poziva. Istraživači primjećuju da su “trenutni pristupi finog podešavanja temeljeni na uputama nedovoljno učinkoviti za složenije zadatke generiranja koda koji se sami pozivaju”, što sugerira da moramo ponovno razmisliti o tome kako obučavamo osnovne modele za zadatke kodiranja i razmišljanja.
Kako bi se unaprijedilo istraživanje generiranja samopozivnog koda, istraživači predlažu tehniku za automatsku prenamjenu postojećih referentnih vrijednosti kodiranja za generiranje samopozivnog koda. Pristup koristi granične LLM-ove za generiranje problema koji se sami pozivaju na temelju izvornih problema. Zatim generiraju rješenja kandidata i provjeravaju njihovu ispravnost izvršavanjem koda i pokretanjem testnih slučajeva na njima. Cjevovod minimizira potrebu za ručnim pregledom koda kako bi pomogao u stvaranju više primjera uz manje napora.
Složen krajolik
Ova nova obitelj mjerila dolazi u vrijeme kada stare referentne vrijednosti kodiranja brzo osvajaju granični modeli. Trenutačni granični modeli kao što su GPT-4o, o1 i Claude 3.5 Sonnet već imaju vrlo visoke rezultate na HumanEval i MBPP, kao i na njihovim naprednijim verzijama, HumanEval+ i MBPP+.
U isto vrijeme, postoje i složeniji benchmarkovi kao što su SWE-Klupakoji procjenjuju mogućnosti modela u end-to-end zadacima softverskog inženjeringa koji zahtijevaju širok raspon vještina kao što je korištenje vanjskih biblioteka i datoteka te upravljanje DevOps alatima. SWE-Bench je vrlo teško mjerilo i čak i najnapredniji modeli pokazuju samo skromne performanse. Na primjer, OpenAI o1 nije dosljedan na SWE-Bench Verified.
Samopozivno generiranje koda nalazi se negdje između jednostavnih mjerila i SWE-Bench-a. Pomaže u procjeni vrlo specifične vrste sposobnosti zaključivanja: korištenje postojećeg koda unutar modula za rješavanje složenih problema. Referentne vrijednosti koda koje se sami pozivaju mogu se pokazati kao vrlo praktična zamjena za korisnost LLM-ova u stvarnim okruženjima, gdje ljudski programeri imaju kontrolu, a AI kopiloti im pomažu u ispunjavanju specifičnih zadataka kodiranja u procesu razvoja softvera.
“HumanEval Pro i MBPP Pro pozicionirani su da služe kao vrijedna mjerila za evaluacije vezane uz kod i da nadahnu budući razvoj LLM-a rasvjetljavajući trenutne nedostatke modela i potičući inovacije u metodologijama obuke,” pišu istraživači.
Web izvor