A nyílt forráskódú projektek (Gentoo, NetBSD) elkezdték konkrétan kitiltani az AI-generált kódokat

Címkék

A nagy nyelvi modellekre (LLM) épülő, generatív mesterséges intelligencia chatbotok elterjedése gondot okoz a nyílt forráskódú projekteknek is, amelyek elkezdtek erre a jelenségre reagálni. Az elsők közt van a Gentoo projekt, amelyik konkrétan, írásban tiltja az NLP AI eszközök használatát a kódhozzájárulásokban:

It is expressly forbidden to contribute to Gentoo any content that has been created with the assistance of Natural Language Processing artificial intelligence tools. This motion can be revisited, should a case been made over such a tool that does not pose copyright, ethical and quality concerns.

A Gentoo projekt három fő problémát azonosított a generatív AI eszközök használatával kapcsolatban: szerzői jogi, minőségbeli és etikai problémákat.

Hasonlóan jár el a NetBSD projekt is:

Code generated by a large language model or similar technology, such as GitHub/Microsoft's Copilot, OpenAI's ChatGPT, or Facebook/Meta's Code Llama, is presumed to be tainted code, and must not be committed without prior written approval by core.

A nyílt forráskódú projektek közül a Debian is megkezdte a téma tárgyalását. Elhangoztak érvek pro és kontra a generatív AI eszközök betiltásával kapcsolatban. A betiltás ellen főként olyan érvek hangzottak el, hogy az emberi hozzájárulásokat sem tiltják minőségi aggályok miatt (ember is hibázhat), illetve kb. betarthatatlan az AI eszközök által generált kódok kitiltása. Ez utóbbit a Gentoo is elismerte. Egyelőre a Debian nem tilt, hanem a konzervatív "várunk és meglátjuk mi lesz" megközelítést alkalmazza.

Linkek:

Hozzászólások

Leforditom nemzetkozi jogaszrol magyarra:

Ha az egyik contributor hasznal is pl. copilotot, nekunk volt szabalyunk arra, hogy nem szabad, le kellett igy ezt elottunk tagadnia, hogy hasznalta. Innentol kezdve a copyright alatt allo kod akaratunk ellenere kerult be a kodbazisba. Nekunk itt nincs felelossegunk, mindent megtettunk, csak a contributorunk nem volt oszinte.

Pontosan.

Jelenleg nagyon nagy kulonbsegek vannak a kulonbozo orszagok vonatkozo torvenyei kozott. Van, ahol kijelentettek, hogy hiaba inspiralodott az AI valami jogvedett termekbol, nem zavarja oket, es van, ahol meg tanitani is tilos lenne ilyen anyagbol.

Ja, es mi van, ha az AI valami GPL kodbol tanult, majd azt az ifju programozo beemeli egy nem GPL-nek szant kodba? Ezt is uldozzuk, ugye...

Mindez eddig is megvolt. Most meg nagy boci szemekkel nez a "szakma", hogy milyen fejfajast okoz az AI.

Majd kinovi magat ez is.

Az a lo tuloldala. Ne vicceljunk mar. Ingyen beraksz kodot es meg fizess is, ha "loptad"? Ne mar. Ez az open source halala lenne, ha ez altalanos gyakorlat lenne, mert ertelmes ember tobbe nem contribute-olna open source projectbe.

A projectnek epp eleg, hogy "volt ra szabaly", es "azt mondtak nincs benne" es "esku majd toroljuk".

Attól, hogy ingyen okozol kárt még nem mentesülsz a következményektől.

A projektnek drága lehet, ha beperlik és kifizettetnek valami díjat az összes letöltés vagy a szoftvert használó készülékek száma után. Persze magánszemélyre képtelenek rátolni a teljes kár összegét, de elrettentő erejű, hogy ne légy hülye. Nagyobb projekteknél komoly következmények lehetnek jogi problémáknak. A fenti példát a webkit contributor 10 évvel ezelőtti szerződés alapján mondtam. (Aminek a lefordított kódja annó felkerül kb minden apple készülékre, android telefonra, sokféle okostévére és sok pécére is)

de elrettentő erejű, hogy ne légy hülye

Ja, ne legy hulye, es ne contributolj oda, ahol penzt is csak veszthetsz.

A webkit mondjuk mas pelda, ott a contributionok 99%-a alkalmazott valamelyik oriascegnel vagy annak kozvetlen partnerenel. De a cikkben szereplo Gentoo meg a NetBSD meg is halna, ha ilyet iratna ala a contributoraival, hogy "anyagilag is felel" az ingyenmunka melle.

Hát ez egy ilyen hobbi, nagyon minimális lehet az, amit teljesen ingyen csinálnak és közvetve sem kapnak érte pénzt. Valamiből élni is kell és a nap mindnekinek 24 órából áll. 
Amerikában pedig szarrá perelhetnek bármiért, nyerniük sem kell. Ezért szoktak felelősségbiztosítást kötni. Csak itthon mi ehhez túl csórók vagyunk és bízunk abban, hogy úgysem lesz baj.

Ideje lenne a teljes nyílt forrású kódbázist archiválni.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Kézműves nyílt forráskód.. Ízlelgetem..

Mi van akkor, ha egy üzleti célra fizetős, egyéb célra ingyenes, akármilyen licenccel rendelkező program ingyenesen elérhető forráskódjával tanítják az AI-t? Mondjuk úgy, hogy annak a forráskódnak a részeit "átemelik" más programokba, az AI segítségével.

A minőségi kérdésekben is teljesen igazuk van. Emberi hozzáállás, hogy sok programozónak fogalma nincs, hogy működik a programjuk, minden esetben jó-e, csak a leggyorsabban "megoldották". És az is érhető, hogy ha az AI is meg tud írni egy programot, az valószínűleg akkor is csak egy középszar megoldás. Értem, hogy elvárják projektek, hogy a fejlesztő vegye a fáradtságot, és gondolkodjon.

Most a tanfolyami innen-onnan átképzett juniorokról ne is beszéljünk, akik próbálnak programozni, mert ezeken a projekteken nem azok fejlesztenek. (de ez is egy AI kérdés, életveszélyes. Inkább derüljön ki, hogy nem tudja megírni.)

Mondjuk úgy, hogy annak a forráskódnak a részeit "átemelik" más programokba, az AI segítségével.

A Copilot pontosan ezt csinálja, és ezzel ipari méretekben sérti a szerzői jogokat. A jogi csatározás emiatt most is folyamatban van (lassan két éve megy már a jogi huzavona).

Jelenleg azzal próbál érvelni a Microsoft, hogy "Copilot withdraws nothing from the body of open source code available to the public", amit ugyancsak nehéz lesz megvédenie, hiszen az eredeti beadványban ennek az ellenkezőjét konkrét példákkal bizonyították, és azt egyszer már elfogadta a bíróság. A kérdés inkább az, hogy mennyire korrupt a bíró, és hogy eleget fizetnek-e neki az IT óriások, hogy ejtse az ügyet, vagy szorult belé némi becsület.

Helyes. Nem csak jogi oldalról védik be, ha később gond lenne miatta, de kóklerek AI-val nem tudjkák a kódbázist fossá felhígítani, ami miatt később borulgatnak a dolgok, ha kiderül, hogy nem működik, a kód nem karbantartható. Szerintem előbb-utóbb minden komoly projekt adoptálni fogja ezt a szabályzatában, egyszerűen, hogy kizárják az AI-vel gányoló kóklereket.

The world runs on Excel spreadsheets. (Dylan Beattie)

Olyan egyszerűségnél nem is kell ellenőrizni. Ha nagyon alap kód, vagy boilerplate, akkor az nem érdekes, azt ha AI is írja, nem különbözik, azok benne vannak bármelyik progkönyvben. Az sem baj, ha valami nem a te fejedből pattant ki, hogy ha átírod, pl. ez régen is gond volt, hogy pár hülye a Stockexchange-ről a kódokat ész/módosítás nélkül vagdalta be a kódba, anélkül, hogy a többi kódjához hozzáigazította volna, vagy értette volna mit csinál a kód.

Itt a lényeg komplexebb részeken van, és nem, nem fogják ellenőrizni, csak ha valaki jelenti, hogy AI-vel elő tudta állítani ugyanazt a kódot, akkor eltávolítják. Kb. ennyi. Ehhez nem is kell nagy ellenőrzés, sok kódon kapásból látszik, ha az AI írta, vagy egy ilyen üres, definíciós jellege, kb. mintha C headerfile-t olvasna az ember, és mikor a konkrét algoritmushoz érsz, akkor az meg túl van egyszerűsítve, rövidítve, itt már gyanút kell fogni, hogy esetleg AI írta. Nem biztos, de egy elég jó gyanúpont.

The world runs on Excel spreadsheets. (Dylan Beattie)

Mit csinalnak a 3rd partyval, ami a kod jelentos reszet adja? Szoval ha - csak a pelda kedveert - a legnagyobb bongeszok beengednek AI generalt - de atnezett - kodot, akkor onnantol csak a Dillo es a Lynx lesz elerheto a repoban?

Vagy ez a tiltas csak az emerge-re es a Gentoo-specifikus toolokra vonatkozik?

Mi van, ha a kodot en irom, de atfuttatom AI-on, hogy rendezze, kommentelje es egysegesitse, de erdemi valtozast nem ad hozza? (pythonhoz pl. kivalo, ir docstringet meg type hinteket, csak akkor kell atirni, ha felreerti, de ez nagyon ritka)

Generalt teszteknel sem megengedett? (mukodest megint nem befolyasolja, userhez el sem jut, de a minoseget noveli)

A strange game. The only winning move is not to play. How about a nice game of chess?

beengednek AI generalt - de atnezett - kodot

Szerintem itt alapvetően azzal van bajuk, hogy ha valaki AI-val irat kódot, az azért teszi ezt, mert maga képtelen lenne rá (akár tudás, akár időszűke miatt), ebből kifolyólag az AI kódját is képtelen lesz átnézni és kellően leellenőrizni.

Tehát azzal számolnak, hogy a gyakorlatban nem létezik olyan, hogy "AI-val generált, de kellően átnézett kód". És hát lássuk be, ismerve az emberi lustaságot, van ennek némi alapja.

Mi van, ha a kodot en irom, de atfuttatom AI-on, hogy rendezze, kommentelje es egysegesitse, de erdemi valtozast nem ad hozza?

Nem hiszem, hogy az átrendezés és az egységesítés után biztos lehetsz benne, hogy nem történt-e véletlenül érdemi változás. Pont a Python olyan, hogy egy utasítás és az azt követő if között a whitespace-ket egyetlen szóközre cserélve megváltozhat a szemantika, annélkül, hogy bármi kulcsszó változott volna.

Generalt teszteknel sem megengedett?

Ez sosem értettem. Minek akarna bárki is úgy teszteket generáltatni, ha sosem lehet biztos benne, hogy azok tényleg azt tesztelik, amit kell, és hogy nem adnak-e fals pozitív vagy negatív eredményt (egy AI-val generált kódnál sosem lehetsz biztos, hogy pont akkor épp nem haluzott-e). Ezzel lényegében pont a tesztelés értelmét veszíti el az egész, ennyi erővel miért nem hagyja akkor már az egész tesztelést a fenébe?

Generalt teszteknel sem megengedett?

Ez sosem értettem. Minek akarna bárki is úgy teszteket generáltatni, ha sosem lehet biztos benne, hogy azok tényleg azt tesztelik, amit kell, és hogy nem adnak-e fals pozitív vagy negatív eredményt (egy AI-val generált kódnál sosem lehetsz biztos, hogy pont akkor épp nem haluzott-e). Ezzel lényegében pont a tesztelés értelmét veszíti el az egész, ennyi erővel miért nem hagyja akkor már az egész tesztelést a fenébe?

Mondjátok el, ha félreértek valamit, de eddig is voltak generált kódok. Láttam sok esetben olyan megoldást, hogy valamiből (pl. Rational Rose diagramból) készült a generált kód. Láttam olyan megoldást is, ahol a tesztek voltak generálva automatikusan. Pl. gherkin formátumban készült egy acceptance criterium leírás, abból generálva készült az teszt.

Sokszor a generált kód / teszt egy kis része hiányzott, azt kézzel kellett kiegészíteni.

Ha jól értem, az AI-val készült kód és teszt kb. ugyanez lehet, csak kevésbé kell kézzel kiegészíteni a végén.

Gondolom, ahogy eddig is le kellett ellenőrizni a generált kódot és tesztet, ezután is ugyanúgy meg kell ezt tenni, csak az elékszítés még gyorsabb tud lenni.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Mondjátok el, ha félreértek valamit, de eddig is voltak generált kódok. Láttam sok esetben olyan megoldást, hogy valamiből (pl. Rational Rose diagramból) készült a generált kód. Láttam olyan megoldást is, ahol a tesztek voltak generálva automatikusan. Pl. gherkin formátumban készült egy acceptance criterium leírás, abból generálva készült az teszt.

A diagram pontosan hordoz minden információt, hogy mit kell generálni, ezekkel a tool-okkal 1-az-1 összerendelés az input és az outputban. Az AI-val meg valami statisztikai alapon, mikor melyik neuronjában milyen súlyok vannak a tanítás után (de igazából senki nem lát bele), probál kif*sni valami értelmeset. És vagy sikerül, vagy nem.

Meg az AI megoldásokra, hogy miért mondom azt, hogy középszar amit csinál: Egy példa: ha megkéred hogy írjon egy rutint, ami kiszámolja, hogy mennyire van messzire egymástól két szín, akkor arra ír egy olyan rutint, ami veszi a két pont geometriai távolságát (rgb kódokban). közben egy csomó doksi van fent a neten, hogy lehet úgy kiszámítani ezt, ami a szem képességeit is figyelembe veszi, mert nem lineárisan érzékeled az eltéréseket a színekben sem. De ez csak egy példa, hogy miért használhatatlan a copilot, vagy a tabnine, bizonyos helyeken, projektekben.

Szerintem olyanoknak akik távolabbról szemlélik a programozókat, azoknak szemfényvesztés egyelőre. Egy csomó marketinggel mögötte, hogy "most aztán már senkinek nem kell programozni tanulnia", és a termelékenység 200%-ra nő. Persze olyantól aki tud is programozni, még nem hallottam ilyet. :)

Ha meg eljutunk oda, hogy az AI komolyabban használható ezen a területen is, ahhoz is kellenek majd a programozók.

van értelme a generált tesztnek, főleg regresszióra

pl munkában kapok egy idegen kódot ami évek óta működik, változtatni kell rajta, vagy migrálni kell

de nincs hozzá unit of course, és sürgős, és nem is értek hozzá

honnan tudom majd hogy jól migráltam-e

ilyenkor jól jön vmi ami 100% unitot generál, regresszió miatt

Ez sosem értettem. Minek akarna bárki is úgy teszteket generáltatni, ha sosem lehet biztos benne, hogy azok tényleg azt tesztelik, amit kell, és hogy nem adnak-e fals pozitív vagy negatív eredményt (egy AI-val generált kódnál sosem lehetsz biztos, hogy pont akkor épp nem haluzott-e). Ezzel lényegében pont a tesztelés értelmét veszíti el az egész, ennyi erővel miért nem hagyja akkor már az egész tesztelést a fenébe?

Gondolom, pár mondatban megírod, hogy miket szeretnél tesztelni, 1 perc alatt kihányja, átnézed, hogy hol van benne marhaság, azt javítod, és örülsz, hogy gyorsabban megvagy?

Szerkesztve: 2024. 05. 19., v – 15:45

ekkora baromsagot...

1. hogy a faxba fogjak ellenorizni?

2. miben rosszabb az AI altal irt kod mint a stackoverflowrol osszeollozott? akar minoseg akar copyright szempontbol.

X. ahelyett, hogy az AI-t arra hasznalnak, hogy ellenorizzek az emberek altal eddig osszekokanyolt szemetet...

Jogilag védik magukat, a beküldők felelőssége, hogy ne szegjék meg a szabályt.

Ahogy pár éve az ms dos 1-2.0 forrás kiadás után megtiltotta a  freedos, hogy bárki olyan küldjön be kódot, aki látta az ms dos megnyitott kódját, mert olyan licensz alatt tették ki, amire hivatkozva megtámadhat bárkit az ms, hogy az ő kódjukból vettek ihletet, ha látták. A múltkori 4.0 már mit licensszel jött ki, az már rendben volt.

De ugyanez megvan szoftverszabadalmakkal is. Ha olvastál bármilyen szabadalmat, akkor később erre hivatkozva tönkretehetik a munkádat, céget, ahová kódot küldtél be. Nagyon tetű az amcsi jogrendszer.

Később lehet, de a computer museumnak adott kód licensze "fertőző" volt (2014). Aki megnézte, annak az embernek a kódja támadható volt, hogy felhasználta az ms cuccát hozzá. 2018-ban jött ki MIT licensszel.

Ha tudsz róla, akkor befolyásolt, ez az alapfelvetés és beperelhetik érte. Üdv a szabadalmak (angolszász) világában. Csak, ha nem tudsz róla és "clean room" találod ki újra, akkor lehet védekezni vele, hogy nem lopott a tudás. 

Az usában maga a per tönkretehet, az ügyvédek rengeteg pénzt kérnek és nem alap, hogy vesztes fizetné a per költségeit. Elég úgy gyanúsítani, hogy a bíró hajlandó legyen tárgyalni, akkor egy kisebb cég csődbe is mehet, mielőtt nyerne. Ha ismered a szabadalmat, akár csak a felvezető szövegét, az már elég alap arra, hogy mélyebben vizsgálódjanak és az rengeteg pénzbe fog kerülni. Ezért kéne beszántani az egészet. Arról nem is beszélve, hogy hiába nem él a szoftverszabadalom európában, mégis ki kell fizetnünk, mert egyszerűen beleszámítják az árba.

203x:

A nyílt forráskódú projektek betiltják az ember által készített kód használatát ;)

Jelenleg próbálgatom a különböző fejlesztő eszközökbe épülő LLM-eket, és azt tapasztaltam, hogy nagyon nyelvtől függ hogy mennyire jól vagy nem jól tud segíteni. Java-ban pl. elég sok kódot le tud egy tab nyomásra generálni, ráadásul mivel analizalja a kódot (legalábbis a Copilot) ezért elég jó megoldásokat tud adni. Amire nem alkalmas még az a megfelelő kód struktúra/architektúra kialakítása, de ha ez megvan, akkor tényleg jó pár óra gépelést meg tud spórolni. Viszont mindent át kell nézni amit csinál, illetve ugyanúgy körbe kell rakni mindent tesztekkel. A lényeg: nem látom sok esélyét hogy bárki meg tudja mondani egy adott idő után hogy a kód mely része AI generált, pláne ha párhuzamosan történik kódgenerálás és refactoring. 

Minden esetben ellenőrzi ember az AI által generát kódot? Amennyiben nem, biztonsági kickázat-e az AI generálta kódhalmaz?

Ugye ezzel nem lesz olyan szívás mint a zárt driverekkel, hogy csakazértisszívjálvelehailyenhardveredvanmertazártdiver/fw/tudjafenerossz?