Održavatelj ScanCode Toolkita otvorenog koda, dizajniranog za skeniranje koda radi kršenja autorskih prava, identificiranje licenci i otkrivanje nezakrpanih ranjivosti, kritizirao je projekt koji je koristio umjetnu inteligenciju za stvaranje klona ScanCodea prepisanog iz Pythona u Rust (ime klona se ne spominje, ali sve naznake upućuju na projekt Provenant). Tvrdnja je da prepisani projekt krši zaštitni znak ScanCodea i uklanja reference na autorska prava i licence. Tvrdnje proizlaze iz činjenice da prepisani klon nastavlja koristiti ključne ScanCode algoritme uz očuvanje arhitekture i strukture koda projekta.
Prema održavatelju ScanCodea, uspješno stvaranje klona olakšano je sveobuhvatnim automatiziranim testnim paketom projekta, koji je uključivao preko 90 000 testova, od kojih je 40 000 bilo posvećeno otkrivanju korištenja određenih licenci u kodu. Autori prepisane verzije izvijestili su o značajnom poboljšanju performansi (10-100 puta), ali, prema održavatelju ScanCodea, cijena ovog ubrzanja bilo je nepotpuno testiranje testnog paketa, kao i smanjenje ispravnosti rada i potpunosti pruženih informacija (klon je dao netočne rezultate i nije pronašao sve informacije tijekom analize).
Iako je Rust port značajno nadmašio ScanCode u namjenskim testovima performansi, klon je bio sporiji pri pokretanju standardnog testnog paketa, unatoč preskakanju nekih provjera. Nakon implementacije optimizacija u ScanCodeu, poput predmemoriranja, performanse skeniranja koda ScanCodea nisu postale lošije od Rustovog klona, uz zadržavanje potpune ispravnosti.
Autori klona također su optuženi za kršenje autorskih prava i kršenje Apache 2.0 licence, pod kojom se distribuira ScanCodeov kod. Napominje se da su tijekom prepisivanja prekršena četiri ključna licencna zahtjeva: očuvanje izvorne NOTICE datoteke, očuvanje obavijesti o autorskim pravima, isticanje napravljenih promjena i promjena imena u izvedenom djelu. Nakon obavijesti, autori klona objavili su NOTICE datoteku i preimenovali svoj projekt, ali druga dva kršenja ostaju neriješena.
Održavatelj ScanCodea smatra da bi zajednica trebala razviti kriterije za razlikovanje između izvedenog rada i neovisne implementacije pri korištenju umjetne inteligencije. Smatra da prepisivanje koda u drugom jeziku uz očuvanje algoritama i strukture ostaje izvedeni rad, čak i ako se varijable preimenuju, a komentari prepišu ili uklone. Tvrdnje Rustovog porta o neovisnoj preradi, tek inspiriranoj ScanCode projektom, u ovom su slučaju netočne, jer njihov rad ima za cilj stvoriti privid originalnog razvoja, što je još gore od izravnog kopiranja, jer je takve manipulacije teže otkriti.
Značajan izazov kod generiranja koda pomoću umjetne inteligencije je nedostatak mogućnosti praćenja podrijetla koda koji se koristi za generiranje izlaza. Prema zadanim postavkama, AI agenti koji koriste kod iz projekata otvorenog koda ignoriraju podatke o autoru, osim ako nisu posebno implementirani za identifikaciju i očuvanje metapodataka o licenci i atribuciji. Ovaj problem atribucije utječe ne samo na proces prepisivanja koda iz jednog jezika u drugi, već i na generiranje koda općenito - izlaz u ovom slučaju može prilično točno replicirati obrasce iz postojećeg koda otvorenog koda koji se koristi u obuci modela.
Izvor: opennet.ru
