A jövőben lehetséges, hogy a forráskód egy részletes promt alapján lesz generálva?
Hozzáértők és tapasztaltak véleményére lennék kíváncsi, akik már valóban használták valós dologra a ChatGPT-t és egyéb AI-s cuccot. Kifejezetten azt figyeltem meg, ha egy olyan területre megyek a ChatGPT-vel amihez nem értek, vagy csak simán nagyon részletesen leírom neki mit szeretnék, komoly kódot tud generálni és gyorsabban, mintha én írnám. Olyan, mintha én lennék a manager, és egy aszisztens kódolná azt, amit mondok neki - de ezt nagyon részletesen a szájába kell rágni. Persze utána kell ellenőrözni, de képes korrigálni a hibákat ha megmondom neki hol van és mi az. Lehetséges, hogy a jövőben a cégek valahogy megegyeznek/megbíznak az OpenAI-ban az adatvédelem terén, és nagyon komolyan befut a ChatGPT féle AI a szoftverfejlesztésbe? Ha a bemenő adat mennyisége még nagyobb lenne és gyorsabban generálna, kb semmi értelme nem lenne forráskódként tárolni bizonyos applikációkat, csak magát a nagyon részletes promt-ot és azt generáltatni újra és újra. Nyilván ez rengeteg erőforrást igényel, csak elméleti síkon úgy látom, hogy a szoftverfejlesztés ebbe az irányba fog megváltozni idővel.
Előző munkahelyemen egy gyűjtőmultiba ticket-eket oldottunk, hibajavításokat és egyéb dolgokat csináltunk egy óriási kódbázisban amik visszajöttek a tesztelésről. Na az a helyzet, ha arra a kódbázisra a ChatGPT rá lett volna engedve, (nyilván nem lett mert nem publikus és egyéb adatvédelmi dolgok miatt nem is lesz), akkor az AI a leírás alapján valószinű képes lett volna seperc alatt javítani bizonyos ticketeket, amivel a fejlesztő fél napos munkája pár perc alatt meg lett volna oldva. Ennek köszönhetően annyi ember nem is kellett volna a projectre.
Utoljára például embedded C fejlesztőként webodalat generáltattam C++ backendel, kb. nulla tapasztalattal HTML és .JS-ben, backend pedig boost beast. Csak szimulációra kellett egyelőre, kipróbálni mit tudok összehozni. Sokat vitatkoztam vele, de fingom sem volt a dolgokról, szépen lassan haladtam. Kb 3 óra alatt egy prototípus weboldalat csináltam egy berendezéshez, amihez eznélkül webfjlesztőre lett volna szükség, mivel ennyi idő alatt a hozzá szükséges dolgoknak lehetetlen lett volna utánagooglezni.
Mit gondoltok a meglátásaimról, valóban ez irányba fog menni a szoftverfejlesztés, és aki nem adaptálódik ehhez, az ki fog esni a szakmából? Úgy látom rengeteg mindenre kell rálátással lenni, ha már ez az AI ennyire bejött, tudd fejben össze kapcsolni a dolgokat és az AI leprogramozza helyetted. 7 éve vagyok szoftverfejlesztő, C és C++ a fő vonalam, nem arra gondolok, amikor a full kezdő beül a ChatGPT elé és valamit mókol vele. Hanem arra, hogy ez egy nagyon kétéltű fegyver.
A ChatGPT egy LLM, ami nem egyenló a mesterséges intelligenciával. AI-nak azért hívják, mert annak jó a marketingje, de az "I" használata teljesen indokolatlan. Egy LLM olyan szöveget generál, ami (az általa látott dolgok alapján) a kérdés alapján statisztikailag nagy eséllyel előfordulhat, mint válasz. Ez két dolgot jelent.
Az egyik, hogy mivel statisztika alapján dolgozik, simán be tud hallucinálni hülyeségeket, hiszen ha csak 98%-ban jó a válasz, az már lehet, hogy neki "elég jó", de ha egy kód csak 98%-ban fordul le, az ugye nem akkora jóság.
A másik, hogy az alapján dolgozik, amit látott, nem gondolkozik, nem kombinál. Ha olyat kérdezel tőle, amire kismillió példa van a neten, akkor nyilván meg fogja tudni mondani, hogy mit kell csinálnod, de ha olyasmire akarsz választ találni, amit nem tud felszívni a StackOverflow-ról, akkor neked sem fog értelmes választ adni.
Emiatt nem fog egyedi rendszereket fejleszteni, általad kódolt programokban hibát keresni, különösen nem fogja kijavítani a hibáit egy olyan kódnak, amit soha nem látott.
Érdeklődésből nemrég előfizettem a chatGPT plus-ra, hogy kipróbáljam az új 4o-t. Előbányásztam a régi második féléves(!!) webfejlesztés anyagot, hogy meg tudja-e oldani a feladatokat. Nem kell semmi extrára gondolni, vanilla JS meg PHP, nagyon alap dolgok.
Egy összesen <1000 soros, viszonylag egyszerű weboldalt sem volt képes összerakni, nagyon részletes leírás alapján. Próbálgattam mondogatni, hogy ez is hibás, az is hibás, de sokszor kb a 6.-8. jelzésre tudott olyan kódot generálni, ami úgy működik, ahogy kell.
A #2 tökéletesen leírta a működési hátterét. Ez alapján, gondolná az ember, hogy a webes dolgokhoz értene a legjobban, meg merem kockáztatni, hogy arra kapta a legtöbb samplet. Ezért is ilyen projekttel játszadoztam.
Most akkor vessük össze ezt, egy komolyabb céges projekttel. Szerinted, ha egy ezer soros, webfejl intro beadandóval így küszködött, mit fog kezdeni egy sok százezer vagy millió soros, komplex, célfeladatot ellátó programmal?
"A másik, hogy az alapján dolgozik, amit látott, nem gondolkozik, nem kombinál. Ha olyat kérdezel tőle, amire kismillió példa van a neten, akkor nyilván meg fogja tudni mondani, hogy mit kell csinálnod, de ha olyasmire akarsz választ találni, amit nem tud felszívni a StackOverflow-ról, akkor neked sem fog értelmes választ adni."
Ez való igaz. Csak sok programot ha lebontasz apró részekre, akkor ismétlődő neten elérhető részekből tevődik össze. Nyilván embedded fejlesztéshez nekem se sokat tudott segíteni, mert óriási káosz amit kigenerál.
"Most akkor vessük össze ezt, egy komolyabb céges projekttel. Szerinted, ha egy ezer soros, webfejl intro beadandóval így küszködött, mit fog kezdeni egy sok százezer vagy millió soros, komplex, célfeladatot ellátó programmal?"
Ha csak simán bemásoltad neki a benadandót, akkor azt abban a formában holtbiztos, hogy nem fogja megoldani. Majdnem pszeudokód szintűen lekell neki írni, hogy mit akarsz, akkor fog normális kódot generálni. Nekem így még mindig gyorsabban születik eredmény, főleg olyan területeken, ahol nem vagyok jártas és csomót kéne googlezni a részletek miatt. De ez szerintem egyéni, kinek mi felel meg jobban.
Valamikor a jövőben talán... mint ahogy az is valamikor a jövőben megeshet, hogy a Star Trekhez hasonlóan hatalmas csillagközi űrhajókon utazhatunk majd távoli bolygókra.
De ez nem a kvöetkező pár év, vagy évtized meséje. Amit most mesterséges intelligenciának mondanak, az - ahogy már elpttem rávilágítottak - a legkevésbé sem intelligens entitás. Működési módjából következik, hogy bizonyos területeken nagyon hatékony tud lenni, de a megbízhatósága pocsék. Arra tök jó, hogy ha Fb-ra feltöltesz egy képet, akkor megtippelje, hogy azon vajon kik láthatóak, és előre fel is ajánlja, hogy megjelöld őket (nyilván a megbízhatósága kétséges, de ha 10-ből 9-szer jól tippel, akkor már a fél világ hasraesik tőle), vagy pl. tök jó segítség az orvostudományban, pl. ahol képek alapján meg kell állapítani, hogy egy elváltozás valószínűleg rákos-e. Nyilván nem ez lesz a perdöntő, és nem ez alapján fognak bárkit kezelni vagy sem, hanem a hagyományos vizsgálatok után, de ez sok olyan esetben fel tudja ismerni a rákot, amit eddig nem vettek észre. És ha felismerte, akkor jöhet a szokásos vizsgálat, szövettan, és ha tényleg baj van, akkor jó időben el tudják kezdeni a kezelést, ha meg tévedett, akkor nem történt katasztrófa, mert a szövettanból kiderült, hogy tévedés történt.
A "mesterséges intelligencia" arra jó, hogy bizonyos folyamatokat felgyorsítson, segítsen kategorizálni, de nem fog gondolkodni, és nem fog pontosan dolgozni.
Ez egy segédeszköz, ami megkönnyíthet sok folyamatot, de nem szabad megfeledkezni róla, hogy csak egy segédeszköz. Sok mindent megkönnyíthet, de nem fog a fejlesztő helyett gondolkodni.
De hasonló gondolatok születtek sokakban, amikor a RAD fejlesztőeszközök megjelentek. Innentől már nem kell programozni, csak egérrel összekattintgatod a szoftvert, és kész... Hát.. azóta látjuk, hogy ez a legkevésbé sincs így. Való igaz, hogy nagyon megkönnyítette a munkát, és sok dolog van, amit ma már egy fejlesztőnek nem kell tudnia ahhoz, hogy komoly szoftvert fejlesszen, előtte pedig létfontosságú volt (pl. Windows alkalmazás esetén az üzenetkezelő ciklus működése), de ettől még a program logikáját ugyanúgy a programozónak kellett megalkotnia, csak a repetitív, időrabló dolgokat a fejlesztőeszköz átvállalja tőle.
Most is hasonló a helyzet. Az "MI" a programozó keze alá dolgozik, de nem gondolkodik helyette. Persze, apróságokat, amire millió példa van a neten, "meg tud oldani" (mint ahogy a Delphi is "meg tudta oldani", hogy programozói tudás nélkül kirajzoltassunk vele egy ablakot nyomógombokkal, miegymással), de amikor már tényleg fejleszteni kell, ott már nem fog dolgozni helyettünk.
Ráadásul minél specifikusabb egy feladat, annál nagyobb a hibázás valószínűsége. Komplexebb dolgokban használhatatlan, több idő és munka átnézni, és korrigálni a "munkáját", mint magunknak megírni. És ugye ne felejtsük el, hogy attól, hogy valami látszatra működik, még nem biztos, hogy jól is működik. Mert lehet, hogy 1-2 tesztadattal igen, de könnyen belefuthat az ember, hogy amúgy tele van rémesen problémás hibákkal.
A megbízhatóságáról meg annyit, hogy múltkor kértem, hogy mondjon 5 betűs angol szavakat, amikben két betű előre adott. Nagyon szépen felsorolt nekem tíz hatbetűs szót...
Szakmai kérdésekben is néha akkora marhaságokat szokott állítani, amiért egy elsőves hallgatnak is inkább már a takarítói állást javasolnák.
Félreértés ne essék, én nagyon szeretem, és használom a ChatGPT-t, de... nem kell túlmisztifikálni. Van, amire jó, és arra tényleg nagyon jó, de másra nem.
"Majdnem pszeudokód szintűen lekell neki írni, hogy mit akarsz"
Onnan meg már egy kicsit is kompetens programozónak már nem nagy művészet megírni... ráadásul nem is kell utólag azon agyalnom, hogy vajon tényleg mindent jól oldott-e meg?
Szerintem két dolog miatt nem lenne célszerü a promptot tárolni csak:
Az egyik az, hogy (legalábbis egyelöre, legalábbis a saját tapasztalataim alapján) nem generál túl jó minöségü kódot. Persze rá lehet venni elöbb-utóbb, hogy pont azt generálja, amit szeretnél, de jelenleg sokkal egyszerübb úgy dolgozni vele, hogy
1. Elmondod neki nagy vonalakban, hogy mit szeretnél
2. Kiköp valami szart
3. Finomítod az igényeidet
4. Kiköp valami majdnem jót.
Ezen a ponton jelenleg sokkal hatékonyabb átvenni az irányítást és kézzel meglépni a maradék módosításokat, mint még 5-6 iteráción keresztül rávenni, hogy tökéletes kódot generáljon(ami nem is mindíg sikerül).
A másik dolog, hogy ezek sztochasztikus modellek. Ugyanarra a promptra más-más választ tudnak adni. Nem értek hozzá annyira, hogy meg tudjam mondani, hogy ezt mennyire lenne nehéz kiküszöbölni. Persze lehet, hogy valaki tud ezzel együtt élni. Ha mondjuk egy UI-t rajzoltatsz vele, gondolom nem nagy gond, hogy néha picit máshogy néz ki... De ha mondjuk valami hálózati protokol implementációján dolgozol, akkor az ilyesmi probléma tud lenni.
A kérdező első sorában ott van, hogy hozzáértők és tapasztaltak véleményére kiváncsi.
Akik eddig válaszoltak, azok egyike sem tartozik ebbe a halmazba.
Eleve, fel nem fogom ésszel, hogy várhatják el egy generális csevegő bot-tól, hogy egy füttyre megírja nekik a GTA huszonkilencet?
ChatGPT. Ez az NLP/AI első érdemi bemutatkozása.
Már az hatalmas dolog, hogy úgy működik, ahogy. Fel sem fogja a sok kis gyutacsagyú, hogy mit is jelent ez, hogy mi meló van emögött a teljesítmény mögött, de azért járatják a szájukat.
A ChatGPT hasonló szerkezetű, mint a google translatora. Az is akkor lett használható, amikor már kismillió ember korrigálta/validálta a kimeneteit.
A chatGPT-nek is szüksége van visszaigazolásra, hogy amit csinál az jó-e, mert másképpen olyan lesz, mint a fehér, ablaktalkan szobában felnövő zseni. Azt fogja valóságnak tekinteni, amitr betanítanak neki és ha azt tanítják, hogy karácsonykor télapókat szokás lőni, sütni és enni, akkor ez lesz számára a valóság.
Azt senki ne várja már el, hogy a kis nyuszifasznyi, ingyenes tokenjeit majd operációs rendszerek meg photoshopok, 3D game engine-ek generálására fogja tudni beváltani. Ennyi ésszel inkább hozzá se vakkantson.
Vegye tudomásul mindenki, hogy jelenleg itt egy irtózatosan nagy (csak részben validált) lexikális tudásbázisnak és az ezt használó háttérteljesítménynek csak a milliomod részét kapja meg, akárhogy is terpeszkedik.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!