Comparthing Logo
dirbtinis intelektasLLMkodavimasprograminės įrangos kūrimasdirbtinio intelekto įrankiaiprogramavimas

Didelių kalbų modeliai ir žmogaus kodavimas

Dideli kalbos modeliai generuoja kodą atpažindami šablonus ir statistines prognozes, o žmonių programavimas remiasi sąmoningu samprotavimu, kūrybiškumu ir konteksto supratimu. Abu metodai turi savų stipriųjų pusių: teisės magistro (LLM) specialistai pasižymi greičiu ir standartinių kodų generavimu, o žmonės į programinės įrangos kūrimą įneša gilesnį problemų sprendimą ir architektūrinį mąstymą.

Akcentai

  • LLMs generuoja kodą remdamiesi statistine prognoze, o ne tikru programos semantikos supratimu.
  • Žmonės programuotojai pasitelkia kontekstinį samprotavimą ir architektūrinį mąstymą, kurio teisės magistro (LLM) specialistai negali atkartoti.
  • LLM sugeneruotas kodas dažnai kompiliuojasi, tačiau jame yra subtilių klaidų, saugumo problemų arba suklastotų API.
  • Produktyviausi darbo eigos procesai sujungia LLM greitį su žmogaus atliekama peržiūra ir dizaino sprendimais.

Kas yra Didelių kalbų modeliai?

Dirbtinio intelekto sistemos, apmokytos naudojant didžiulius kodo ir teksto duomenų rinkinius, kurie generuoja programavimo rezultatus, pagrįstus statistiniais modeliais ir išmoktais pavyzdžiais.

  • Tokie modeliai kaip GPT-4, Claude ir Gemini yra apmokyti naudojant milijardus viešojo kodo eilučių iš saugyklų, dokumentacijos ir forumų.
  • LLMs prognozuoja labiausiai tikėtiną kitą sekos žetoną, o tai reiškia, kad generuojami tikėtini kodo užbaigimai, o ne patikrinti teisingi sprendimai.
  • Jie gali kurti kodą dešimtimis programavimo kalbų – nuo Python ir JavaScript iki Rust ir Haskell, dažnai net ir tiesiogiai nemokydami kiekvienos iš jų.
  • Tokie lyginamosios analizės kaip „HumanEval“ ir „SWE-bench“ matuoja LLM kodavimo gebėjimus, o geriausi modeliai, priklausomai nuo testo, išsprendžia maždaug 60–90 % pradinio lygio problemų.
  • LLM studentams trūksta tikro programos semantikos supratimo ir jie gali sukurti kodą, kuris kompiliuojasi, bet jame yra subtilių loginių klaidų ar saugumo spragų.

Kas yra Žmogaus kodavimas?

Tradicinis procesas, kai programuotojai rašo programinę įrangą naudodami kalbas, sistemas ir įrankius, vadovaudamiesi samprotavimais, patirtimi ir projekto reikalavimais.

  • Profesionalūs kūrėjai paprastai parašo nuo 10 iki 100 gamybinio kodo eilučių per dieną, įskaitant derinimą, testavimą ir peržiūrą.
  • Žmonės programuotojai supranta verslo kontekstą, vartotojų poreikius ir ilgalaikį palaikymą ne tik sintaksės teisingumu.
  • Programavimui reikalingos algoritmų, duomenų struktūrų, projektavimo modelių ir sistemos architektūros žinios, kurių kūrimas užtrunka metus.
  • Tyrimai iš tokių šaltinių kaip „Standish Group“ rodo, kad maždaug 70 % programinės įrangos projektų susiduria su iššūkiais, susijusiais su reikalavimų supratimu ir perdavimu.
  • Žmonės kūrėjai gali derinti sudėtingas sistemas formuluodami hipotezes, atsekdami vykdymo kelius ir samprotaudami apie kraštutinius atvejus, apimančius kelis failus ir paslaugas.

Palyginimo lentelė

Funkcija Didelių kalbų modeliai Žmogaus kodavimas
Išvesties greitis Sukuria kodą per kelias sekundes ar minutes Užtrunka valandas ar net dienas, kol pasiekiamos lygiavertės funkcijos
Samprotavimo gylis Šablonų atitikimas ir statistinis prognozavimas Tikras loginis samprotavimas ir problemų skaidymas
Klaidų dažnis Didesnis subtilių klaidų ir haliucinacijų dažnis Mažesnis klaidų dažnis, bet lėčiau generuojamas rezultatas
Konteksto supratimas Apribota pateiktu kontekstiniu langu Gilus verslo ir vartotojų poreikių supratimas
Mokymosi kreivė Reikalingi greiti inžinerijos ir patikros įgūdžiai Kalbų ir sistemų mokėjimo studijų metai
Sąnaudų aspektai API kainos arba prenumeratos mokesčiai, priklausomai nuo naudojimo Atlyginimų išlaidos, atsižvelgiant į komandos dydį ir laiką
Kūrybiškumas ir architektūra Perjungia esamus modelius, retai išranda naujus Gali kurti naujas architektūras ir metodus
Derinimo galimybė Sunku išspręsti kelių failų arba vykdymo aplinkos problemas Gali atsekti, iškelti hipotezes ir išspręsti sudėtingas klaidas
Nuoseklumas Nuoseklus stilius ir formatavimas, kai paraginta Skiriasi tarp kūrėjų ir komandų

Išsamus palyginimas

Kaip jie iš tikrųjų kuria kodą

Dideli kalbos modeliai veikia numatydami, kokie žetonai turėtų būti toliau sekoje, remdamiesi modeliais, įsisavintais mokymo dideliuose kodo korpusuose metu. Kai prašote teisės magistro (LLM) parašyti funkciją, jis iš esmės atlieka labai sudėtingą automatinį užbaigimą, pagrįstą statistine tikimybe. Žmonės, priešingai, pradeda nuo mentalinio modelio, ką programa turi pasiekti, suskaido problemą į komponentus ir tada paverčia šį supratimą sintakse. Skirtumas yra svarbus: LLM gali sukurti kodą, kuris atrodo teisingas, bet kraštutiniais atvejais neveikia, o žmogus, kuris iš tikrųjų supranta problemą, labiau linkęs numatyti tokius atvejus nuo pat pradžių.

Stiprybės skirtinguose scenarijuose

LLM puikiai tinka, kai reikia standartinio kodo, įprastų šablonų ar greitų vertimų tarp kalbų. REST API kliento, rūšiavimo algoritmo ar reguliariosios išraiškos šablono užklausa dažnai duoda naudingų rezultatų per kelias sekundes. Žmonės puikiai atlieka savo darbą, kai užduočiai atlikti reikia architektūrinių sprendimų, naujų problemų sprendimo būdų arba integracijos su painiomis realaus pasaulio sistemomis. Paskirstytos sistemos kūrimas, duomenų bazės schemos, skirtos kintantiems reikalavimams, kūrimas arba lenktynių sąlygos, kuri atsiranda tik esant tam tikriems apkrovos šablonams, derinimas yra sritys, kuriose žmogaus sprendimas išlieka esminis. Šie du metodai vis labiau vienas kitą papildo, o ne konkuruoja.

Klaidų modeliai ir patikimumas

LLM sugeneruotas kodas turi savitą gedimų režimą: jis dažnai kompiliuojasi ir veikia, tačiau jame yra loginių klaidų, saugumo spragų arba sufabrikuotų API iškvietimų, kurių nėra. 2023 m. Stanfordo tyrėjų atliktas tyrimas parodė, kad kūrėjai, naudojantys dirbtinio intelekto kodavimo asistentus, kartais rašė mažiau saugų kodą, manydami, kad jis yra saugesnis. Žmogaus parašytas kodas turi savo gedimų režimus, įskaitant vienkartines klaidas, neteisingai suprastus reikalavimus ir susikaupusias technines skolas, tačiau jie paprastai yra labiau nuspėjami ir lengviau pastebimi kodo peržiūros metu. Nei vienas iš šių metodų negarantuoja teisingumo, todėl testavimas ir peržiūra išlieka labai svarbūs, nepriklausomai nuo to, kas ar kas parašė kodą.

Konteksto ir supratimo vaidmuo

Vienas didžiausių skirtumų tarp teisės magistro (LLM) ir žmonių programuotojų yra konteksto supratimas. Žmogus programuotojas žino, kodėl egzistuoja funkcija, kas ją naudos, kokie apribojimai egzistuoja kitose sistemos dalyse ir kaip kodas gali būti tobulinamas. LLM žino tik tai, ką jiems sakote raginime ir ką jie matė mokymo duomenyse. Tai reiškia, kad LLM sugeneruotas kodas gali būti techniškai teisingas, bet visiškai nesuprasti esmės. Žmogus gali parašyti šiek tiek mažiau elegantišką funkciją, bet iš tikrųjų išspręsti tikrąją problemą, o LLM gali parašyti gražų sprendimą į neteisingą klausimą.

Sąnaudų, mastelio ir darbo eigos integracija

Praktiškai LLM siūlo kitokią sąnaudų struktūrą nei žmonės programuotojai. API pagrįsti kodavimo asistentai ima mokestį už kiekvieną žetoną arba užklausą, todėl jie ekonomiški atliekant greitas užduotis, tačiau potencialiai brangūs dideliu mastu. Žmonėms programuotojams reikia atlyginimų, išmokų ir valdymo išlaidų, tačiau jie gali dirbti autonomiškai ilgesnį laiką. Dabar daugelis komandų naudoja hibridinį metodą: LLM tvarko įprastą kodo generavimą, dokumentavimą ir testų rašymą, o žmonės sutelkia dėmesį į projektavimą, sudėtingą derinimą ir kodo peržiūrą. Toks darbo pasidalijimas dažnai duoda geresnių rezultatų nei taikant kiekvieną iš šių metodų atskirai.

Privalumai ir trūkumai

Didelių kalbų modeliai

Privalumai

  • + Ypač greitas išėjimas
  • + Gerai susidoroja su standartiniais standartais
  • + Kelių kalbų palaikymas
  • + Mažos ribinės išlaidos

Pasirinkta

  • Subtilios loginės klaidos
  • Saugumo pažeidžiamumai
  • Nėra tikro supratimo
  • Haliucinuotų API

Žmogaus kodavimas

Privalumai

  • + Gilus kontekstinis samprotavimas
  • + Naujų problemų sprendimas
  • + Patikimas derinimas
  • + Architektūrinis mąstymas

Pasirinkta

  • Lėtesnis išvesties greitis
  • Didesnė išankstinė kaina
  • Kintama kokybė
  • Žinių spragų yra

Dažni klaidingi įsitikinimai

Mitas

LLMs supranta savo generuojamą kodą lygiai taip pat, kaip ir žmogus programuotojas.

Realybė

LLM apdoroja kodą kaip žetonų sekas ir numato tikėtinus tęsinius, remdamiesi mokymo šablonais. Jie nevykdo kodo mintyse ir netikrina jo teisingumo. Štai kodėl jie gali užtikrintai kurti kodą su klaidomis arba kodą, kuris nurodo neegzistuojančias funkcijas.

Mitas

Dirbtinio intelekto kodavimo įrankiai per kelerius metus pakeis žmones programuotojus.

Realybė

Nepaisant spartaus tobulėjimo, LLM vis dar reikalauja žmogaus priežiūros reikšmingiems programinės įrangos projektams. Jie paspartina tam tikras užduotis, bet negali savarankiškai valdyti reikalavimų, architektūros, testavimo strategijos ar nesuskaičiuojamų sprendimų, kurie atliekami kuriant gamybinę programinę įrangą.

Mitas

LLM sugeneruotas kodas visada yra mažiau saugus nei žmogaus parašytas kodas.

Realybė

Saugumas priklauso nuo daugelio veiksnių, įskaitant raginimą, modelio mokymą ir peržiūros procesą. Kai kurie tyrimai parodė, kad LLM (licencijuotos kalbos) sukuria tam tikrus pažeidžiamumo modelius, tačiau gerai paraginti LLM su saugumui skirtomis instrukcijomis gali sukurti kodą, tokį pat saugų, kaip ir vidutinio žmogaus išvestis. Tikroji problema yra ta, kad kūrėjai kartais pasitiki LLM išvestimi be tinkamos peržiūros.

Mitas

Žmonių programavimas tampa nebeaktualus, nes dirbtinis intelektas gali koduoti greičiau.

Realybė

Programinės įrangos kūrimas apima daug daugiau nei sintaksės rašymą. Reikalavimų analizė, sistemos projektavimas, suinteresuotųjų šalių bendravimas, testavimo strategija ir priežiūra yra žmogaus valdoma veikla. Dirbtinis intelektas greičiau spausdina, tačiau mąstymas, dėl kurio programinė įranga tampa vertinga, išlieka žmogaus indėliu.

Mitas

LLM gali mokytis ir tobulėti iš jūsų kodo bazės laikui bėgant.

Realybė

Dauguma komercinių teisės magistro (LLM) specialistų neatnaujina savo svorių pagal jūsų kodą. Jie gali naudoti jūsų kodą vieno pokalbio metu per kontekstinius langus, tačiau jie nekaupia žinių iš jūsų projekto. Tikslesnis derinimas yra įmanomas, bet brangus ir reikalauja didelių techninių pastangų.

Dažnai užduodami klausimai

Ar dideli kalbos modeliai gali pakeisti žmones programuotojus?
Ne visa apimančia prasme. Teisės magistro (LLM) specialistai gali automatizuoti tam tikras kodavimo užduotis, ypač įprastas, tokias kaip standartinių tekstų generavimas, testų rašymas ar vertimas tarp kalbų. Tačiau jie negali savarankiškai valdyti programinės įrangos projektų, priimti architektūrinių sprendimų, suprasti verslo reikalavimų ar tvarkyti viso gamybinės programinės įrangos gyvavimo ciklo. Dauguma ekspertų LLM specialistus laiko galingais įrankiais, kurie papildo žmonių kūrėjus, o ne juos pakeičia.
Kiek tikslus yra LLM sugeneruotas kodas?
Tikslumas labai skiriasi priklausomai nuo užduoties sudėtingumo ir kalbos. Tokiuose testuose kaip „HumanEval“ geriausi modeliai išsprendžia 60–90 % pradinio lygio problemų. Realaus pasaulio užduočių, apimančių kelis failus, specifines sistemas ar neįprastus reikalavimus, tikslumas gerokai sumažėja. Tyrimai rodo, kad net ir kompiliuojamas LLM kodas dažnai turi klaidų, saugumo problemų arba naudoja neegzistuojančias API, kurias reikia peržiūrėti žmogui.
Kokia yra pagrindinė LLM naudojimo programavimui rizika?
Didžiausios rizikos apima subtilias klaidas, kurios praeina pradinį testavimą, saugumo spragas, tokias kaip SQL injekcija ar netinkamas įvesties patvirtinimas, haliucinuoti API iškvietimai į neegzistuojančias funkcijas, licencijavimo problemos, susijusios su mokymo duomenų atkūrimu, ir per didelis pasitikėjimas, kuris mažina kūrėjų įgūdžius. Naudojant dirbtinio intelekto sugeneruotą kodą, kodo peržiūra ir testavimas tampa vis svarbesni, o ne mažiau svarbūs.
Ar žmonių programuotojams vis dar reikia mokytis programuoti dirbtinio intelekto amžiuje?
Be abejo. Kodo supratimas yra būtinas norint patikrinti dirbtinio intelekto išvestį, derinti klaidas ir priimti architektūrinius sprendimus. Kūrėjai, kurie negali skaityti ir suprasti kodo, tampa pavojingai priklausomi nuo dirbtinio intelekto. Kodavimo įgūdžiai taip pat padeda rašyti geresnius raginimus, atskirti gerą ir blogą dirbtinio intelekto išvestį ir įsikišti, kai dirbtinio intelekto įrankiai sugenda arba pateikia nesaugius rezultatus.
Su kuriomis programavimo kalbomis LLM studentai dirba geriausiai?
LLM kalbos paprastai geriausiai veikia su populiariomis kalbomis, turinčiomis daug mokymo duomenų, įskaitant Python, JavaScript, TypeScript, Java, C++ ir Go. Jos apdoroja šias kalbas dideliu tikslumu atlikdamos įprastas užduotis. Rečiau naudojamos kalbos, tokios kaip Haskell, OCaml arba nišinėms sritims būdingos kalbos, gali pasižymėti mažesniu tikslumu dėl mažesnio mokymo duomenų kiekio, nors LLM kalbos vis tiek gali pateikti naudingą rezultatą, kruopščiai pateikiant užklausas.
Kuo LLM ir žmonių programuotojai skiriasi derinimo srityje?
LLM gali padėti atlikti paprastas derinimo užduotis, pavyzdžiui, paaiškinti klaidų pranešimus arba siūlyti dažniausiai pasitaikančius sprendimus, tačiau jiems sunku susidoroti su sudėtingu kelių failų derinimu, lenktynių sąlygomis ar problemomis, kurioms reikia gilių sistemos žinių. Žmonės kūrėjai puikiai geba formuluoti hipotezes, atsekti vykdymo kelius ir samprotauti apie sistemos elgseną. Dauguma kūrėjų LLM naudoja kaip derinimo asistentą, o ne kaip savo derinimo įgūdžių pakaitalą.
Ar LLM sukurtas kodas yra be autorių teisių?
Nebūtinai. Teisės magistro (LLM) specialistai gali atkurti kodo šablonus iš savo mokymo duomenų, kurie gali apimti autorių teisių saugomą kodą pagal įvairias licencijas. Nuolat kyla teisinis netikrumas dėl to, ar dirbtinio intelekto generuojamas kodas gali pažeisti autorių teises ar atvirojo kodo licencijas. Kai kurios organizacijos reikalauja kodo kilmės stebėjimo, todėl kūrėjai turėtų būti atsargūs naudodami LLM išvestį komerciniuose projektuose be peržiūros.
Kiek greičiau LLM gali atlikti kodavimo užduotį?
Tinkamoms užduotims atlikti teisės magistro (LLM) specialistai gali sukurti veikiantį kodą per kelias sekundes, o žmogui tai užtruktų nuo 30 minučių iki valandos. Tačiau šis greičio pranašumas sumažėja, kai įskaičiuojamas tikrinimo, derinimo ir integravimo laikas. Tyrimai rodo, kad patyrusių kūrėjų, naudojančių dirbtinio intelekto įrankius, produktyvumas padidėja 20–55 %, o didesnis padidėjimas pasiekiamas atliekant įprastas užduotis ir mažesnis – atliekant sudėtingą ar naują darbą.
Ar LLM gali rašyti visas paraiškas nuo nulio?
LLM gali generuoti programų pagrindus ir komponentus, tačiau norint sukurti pilną, gamybai paruoštą programą, reikia daug daugiau nei kodo generavimo. Tai apima reikalavimų rinkimą, architektūrinius sprendimus, saugumo aspektus, testavimo strategijas, diegimo procesus ir nuolatinę priežiūrą. LLM gali padėti atlikti daugelį šių užduočių, tačiau negali savarankiškai valdyti viso proceso.
Ar žmogaus programavimo įgūdžiai taps mažiau vertingi, tobulėjant dirbtiniam intelektui?
Tikėtina, kad programavimo įgūdžiai taps vertingesni, o ne menkesni, plintant dirbtinio intelekto įrankiams. Gebėjimas projektuoti sistemas, kritiškai peržiūrėti dirbtinio intelekto rezultatus, spręsti naujas problemas ir priimti architektūrinius sprendimus tampa aukščiausio lygio įgūdžiu. Programuotojai, kurie derina gilias programavimo žinias su efektyviu dirbtinio intelekto įrankių naudojimu, yra žymiai produktyvesni nei grynai programuotojai arba nekoduotojai, kurie pasikliauja vien tik dirbtiniu intelektu.

Nuosprendis

Rinkitės didelius kalbos modelius, kai jums reikia greito kodo generavimo tiksliai apibrėžtoms, įprastoms užduotims, tokioms kaip standartiniai kodai, vertimai ar standartiniai algoritmai, ypač kai turite patirties patikrinti rezultatą. Rinkitės žmogaus kodavimą architektūriniams sprendimams, naujoms problemoms, sudėtingam derinimui ir viskam, kam reikalingas gilus kontekstinis verslo reikalavimų supratimas. Veiksmingiausias požiūris 2025 m. ir vėliau – derinti abu šiuos dalykus: leisti teisės magistro (LLM) specialistams paspartinti įprastą darbą, o žmonėms – vertinti, kurti ir atskaitomybę.

Susiję palyginimai

„DeepSeek V4“ ir „GPT-4“ klasės modeliai

„DeepSeek V4“ yra kylantis atvirojo svorio didelių kalbų modelis, sukurtas Kinijos dirbtinio intelekto laboratorijoje, o GPT-4 klasės modeliai nurodo „OpenAI“ flagmanines uždarojo kodo sistemas. Šiame palyginime nagrinėjama jų architektūra, galimybės, kainos, prieinamumas ir našumas realiame pasaulyje, siekiant padėti kūrėjams ir įmonėms išmintingai pasirinkti.

„Google“ paieška ir žinių grafiko paieška

„Google“ paieška yra plataus masto žiniatinklio indeksavimo variklis, kurį dauguma žmonių naudoja kasdien, o „Knowledge Graph Search“ yra „Google“ struktūrizuotų objektų duomenų bazė, kurioje pateikiami tiesioginiai atsakymai ir informacijos skydeliai. Supratimas, kuo jie skiriasi, padeda paaiškinti, kodėl kai kurios užklausos pateikia išsamius faktus, o kitos – tradicines mėlynas nuorodas.

„Google“ paieškos algoritmas ir supaprastinti klasės modeliai

„Google“ paieškos algoritmas reitinguoja milijardus tinklalapių, naudodamas mašininį mokymąsi ir šimtus signalų, o supaprastinti klasių modeliai perteikia dirbtinio intelekto koncepcijas į lengvai mokomas, prieinamas sistemas. Viena sistema veikia planetos mastu gamyboje; kita tarnauja kaip pedagoginis tiltas mokiniams, mokantis, kaip iš tikrųjų veikia dirbtinis intelektas.

„Vienas su vienu“ atitikimas aptikimo ir daugelio su vienu atitikimo metodų srityse

„Vienas su vienu“ atitikimo metodas kiekvienam pagrindiniam objektui priskiria vieną numatomą langelį, o „daugelis su vienu“ atitikimo metodas leidžia kelias prognozes suderinti su vienu taikiniu. Abi strategijos formuoja tai, kaip šiuolaikiniai detektoriai, tokie kaip DETR ir „Faster R-CNN“, mokosi lokalizuoti objektus, kiekvienas iš jų turi skirtingus kompromisus tikslumo, mokymo stabilumo ir pasikartojančių aptikimų tvarkymo srityse.

A/B testavimas modelių aptarnavime ir vieno modelio diegime

A/B testavimas modeliuose nukreipia srautą tarp konkuruojančių modelio versijų, kad būtų galima įvertinti realų našumą, o diegiant vieną modelį visiems vartotojams pateikiamas vienas modelis. Komandos renkasi iš jų pagal rizikos toleranciją, srauto kiekį ir statistinio patvirtinimo poreikį prieš visišką diegimą.