Det öppna verktyget ScanCode Toolkit, som är avsett att skanna koden för att identifiera överträdelser av andras upphovsrätt, identifiera använda licenser och upptäcka ofixade sårbarheter, har kritiserat ett projekt som med hjälp av AI har skapat en klon av ScanCode-produkten, omskriven från Python till Rust (namnet på klonen nämns inte, men det verkar handla om projektet Provenant). Det påstås att den omskrivna versionen av projektet bryter mot varumärket ScanCode och tar bort omnämnanden av upphovsrätt och licenser. Klart är att den omskrivna klonen fortsätter att använda nyckelalgoritmer från ScanCode och behåller projektets arkitektur och kodstruktur.
Enligt ScanCodes följeslagare bidrog det omfattande automatiserade testpaketet, som omfattar mer än 90 000 tester, därav 40 000 specifikt för att identifiera användningen av olika licenser i koden, till att framgångsrikt skapa klonen. Författarna till den omskrivna versionen har påstått en väsentlig ökning av prestanda (10–100 gånger), men enligt ScanCodes följare kom detta priset med att inte alla tester i uppsättningen klarades av, samt en minskning av korrektheten och fullständigheten av den information som tillhandahölls (klonen gav inkorrekta resultat och fann inte all information vid analys).
Om den Rust-porten presterade betydligt bättre än ScanCode i speciella prestandatester, så var klonen långsammare vid genomgången av standardtestuppsättningen, trots att vissa kontroller utelämnades. Efter att ha gjort optimeringar i ScanCode, såsom caching, blev ScanCodes prestanda vid koden skanning i nivå med klonen i Rust, samtidigt som korrektheten i arbetet bevarades.
Författarna till klonen åtalas också för att ha brutit mot upphovsrätt och licensvillkor för Apache 2.0, under vilken ScanCodes kod sprids. Det noteras att fyra grundläggande krav i licensen kränktes under omskrivningsprocessen: bevarande av den ursprungliga filen med meddelande (NOTICE), bevarande av omnämnanden om upphovsrätt, tydliggörande av gjorda ändringar och namnbyten i det avledda arbetet. Efter anmärkningar publicerade författarna till klonen en NOTICE-fil och döpte om sitt projekt, men två av de andra överträdelserna har ännu inte åtgärdats.
Den medföljande ScanCode anser att samhället bör utveckla kriterier för att särskilja vad som vid användning av AI betraktas som ett derivatverk och vad som är en oberoende implementering. Enligt honom förblir resultatet ett derivatverk även efter att koden skrivits om på ett annat språk med bevarande av algoritmer och struktur, även om variabler har omdöpts och kommentarer har ändrats eller tagits bort. Uttalandena från författarna till Rust-porten om en oberoende översyn, som endast inspirerats av projektet ScanCode, är i detta fall felaktiga, eftersom arbetet syftar till att skapa en illusion av originalutveckling, vilket är ännu värre än direkt kopiering, eftersom sådana manipulationer är svårare att upptäcka.
Ett betydande problem vid kodgenerering genom AI är bristen på spårbarhet för ursprunget av koden som använts för att få fram resultatet. Som standard ignorerar AI-agenter som använder kod från öppna projekt information om författarna, om det inte specifikt implementeras medel för att upptäcka och bevara metadata om licenser och upphovsrätt. Problemet med attribuering berör inte bara arbete med att skriva om kod från ett språk till ett annat, utan även kodgenerering i allmänhet — resultatet i detta fall kan relativt noggrant återspegla mallar från befintlig öppen kod som används under modelleringsprocessen.
Källa: opennet.ru
