ScanCode Toolkit on avatud tööriistakomplekt, mis on mõeldud koodi skaneerimiseks teiste autorite õiguste ristumiste, kasutatavate litsentside tuvastamise ja parandamata haavatavuste leidmiseks. See on kritiseerinud projekti, mis lõi AI abil ScanCode toote klooni, ümber kirjutatud Pythonist Rusti (klooni nimi pole mainitud, kuid kõik viitab, et tegemist on projektiga Provenant). Tootja väidab, et ümber kirjutatud projekt rikub ScanCode kaubamärki ja kustutab autoriõiguste ning litsentside mainimised. Kaebusi seletatakse sellega, et ümber kirjutatud kloonis on jätkuvalt kasutatud ScanCode'i põhialgoritme ning säilitatud projekti arhitektuur ja koodistruktuur.
ScanCode'i saatja arvates soodustas klooni edukat loomist projekti ulatuslik automaatne testkomplekt, mis hõlmab üle 90 000 testi, millest 40 000 on pühendatud koodis erinevate litsentside kasutamise tuvastamisele. Ümber kirjutatud versiooni autorid teatasid, et jõudlus on oluliselt paranenud (10-100 korda), kuid ScanCode'i saatja sõnul maksis kiirus maha testkomplekti puuduliku läbimise ja töö täpsuse ning esitatava teabe täielikkuse vähenemise (kloon andis vale tulemusi ja ei leidnud kogu teavet analüüsi käigus).
Kui spetsiaalsetes jõudlustestides Rusti port ületas oluliselt ScanCode'i, siis tavalise testkomplekti läbimisel osutus kloon siiski aeglasemaks, hoolimata sellest, et teatud kontrollid jäeti vahele. Pärast ScanCode'i optimeerimist, nagu näiteks vahemälu kasutamine, ei olnud ScanCode'i jõudlus koodi skaneerimisel halvem kui Rusti kloon, säilitades täielikult töö täpsuse.
Klooni autoritele heidetakse ette autoriõiguste ja Apache 2.0 litsentsi rikkumist, mille alusel ScanCode'i kood levib. On märgitud, et ümber kirjutamise käigus rikuti 4 põhinõuet litsentsist: originaalfaili jätmine märkusega (NOTICE), autoriõiguste mainimise säilitamine, muudatuste esitlemine ja nime muutmine tuletatud töös. Pärast märkuse tegemist lisasid klooni autorid faili NOTICE ja ümber nimetasid oma projekti, kuid kaks ülejäänud rikkumist on endiselt lahendamata.
ScanCode'i saatja usub, et kogukond peaks välja töötama kriteeriumid selle kohta, mida AI kasutamisel peetakse tuletatud tööks ja mida iseseiliseks rakenduseks. Tema arvates jääb tulemus pärast koodi tõlkimist teise keelde, säilitades algoritmid ja struktuuri, endiselt tuletatud tööks, isegi kui protsessi käigus on muudetud muutujaid ja kohandatud või eemaldatud kommentaare. Rusti sadama autorite väited sõltumatust ümbertegemisest, mis on lihtsalt inspireeritud ScanCode'i projektist, on sel juhul vale, kuna töö eesmärk on luua originaalse arenduse illusioon, mis on isegi halvem kui otsene kopeerimine, kuna sellised manipulatsioonid on raskem avastada.
Oluline probleem AI abil koodi genereerimisel on koodi päritolu jälgimise puudumine, mida kasutati tulemuse saavutamiseks. Vaikimisi ignoreerivad AI-agensid, kes kasutavad koodi avatud projektidest, autorite teavet, välja arvatud juhul, kui on spetsiaalselt rakendatud meetmed litsentside ja autorluse metainformatsiooni tuvastamiseks ja salvestamiseks. Atribuudiprobleem ei puuduta ainult koodi ümberkirjutamist ühest keelest teise, vaid ka koodi genereerimist üldiselt — tulemus võib sel juhul piisavalt täpselt jäljendada olemasolevat avatud koodi mustreid, mida mudeli koolitamisel kasutatakse.
Allikas: opennet.ru
