Správce open-source sady nástrojů ScanCode, která je navržena pro skenování kódu a hledání porušení autorských práv, identifikaci licencí a detekci neopravených zranitelností, kritizoval projekt, který pomocí umělé inteligence vytvořil klon ScanCode přepsaný z Pythonu do Rustu (název klonu není uveden, ale vše ukazuje na projekt Provenant). Tvrzení spočívá v tom, že přepsaný projekt porušuje ochrannou známku ScanCode a odstraňuje odkazy na autorská práva a licence. Tvrzení vycházejí ze skutečnosti, že přepsaný klon nadále používá klíčové algoritmy ScanCode a zároveň zachovává architekturu a strukturu kódu projektu.
Podle správce ScanCode bylo úspěšné vytvoření klonu usnadněno komplexní automatizovanou testovací sadou projektu, která zahrnovala přes 90 000 testů, z nichž 40 000 bylo věnováno detekci použití určitých licencí v kódu. Autoři přepsané verze zaznamenali výrazné zlepšení výkonu (10–100krát), ale podle správce ScanCode bylo cenou za toto zrychlení neúplné otestování testovací sady a také snížení správnosti fungování a úplnosti poskytovaných informací (klon produkoval nesprávné výsledky a během analýzy nenašel všechny informace).
Zatímco port Rustu v testech výkonu výrazně překonal ScanCode, klon byl při spuštění standardní testovací sady pomalejší, a to i přes přeskakování některých kontrol. Po implementaci optimalizací ve ScanCode, jako je ukládání do mezipaměti, se výkon skenování kódu ScanCode nezhoršil oproti klonu Rustu a zároveň si zachoval plnou správnost.
Autoři klonu jsou také obviněni z porušení autorských práv a licence Apache 2.0, pod níž je kód ScanCode distribuován. Uvádí se, že během přepracování byly porušeny čtyři klíčové licenční požadavky: zachování původního souboru NOTICE, zachování oznámení o autorských právech, zvýraznění provedených změn a změna názvu v odvozeném díle. Po oznámení autoři klonu zveřejnili soubor NOTICE a přejmenovali svůj projekt, ale další dvě porušení zůstávají nevyřešena.
Správce ScanCode se domnívá, že komunita by měla vyvinout kritéria pro rozlišení mezi tím, co představuje odvozené dílo a nezávislou implementaci při použití umělé inteligence. Domnívá se, že přepisování kódu v jiném jazyce při zachování algoritmů a struktury zůstává odvozeným dílem, i když jsou proměnné přejmenovány a komentáře přepsány nebo odstraněny. Tvrzení portu Rust o nezávislém přepracování, které je pouze inspirováno projektem ScanCode, jsou v tomto případě nesprávná, protože jejich práce si klade za cíl vytvořit zdání originálního vývoje, což je ještě horší než přímé kopírování, protože takové manipulace je obtížnější odhalit.
Významnou výzvou generování kódu s využitím umělé inteligence je nedostatečná sledovatelnost původu kódu použitého ke generování výstupu. Agenti umělé inteligence, kteří konzumují kód z open-source projektů, standardně ignorují informace o autorovi, pokud nejsou speciálně implementovány pro identifikaci a zachování metadat licence a atribuce. Tento problém s atribucí ovlivňuje nejen proces přepisování kódu z jednoho jazyka do druhého, ale také generování kódu obecně – výstup v tomto případě dokáže poměrně přesně replikovat vzory z existujícího open-source kódu používaného při trénování modelů.
Zdroj: opennet.ru
