De ondersteunende open-source toolkit ScanCode Toolkit, ontworpen voor het scannen van code op mogelijke inbreuken op auteursrechten, het identificeren van gebruikte licenties en het opsporen van onverholpen kwetsbaarheden, heeft kritiek geuit op een project dat met behulp van AI een kloon van het ScanCode-product heeft gemaakt, herschreven van Python naar Rust (de naam van de kloon wordt niet genoemd, maar het lijkt te gaan om het project Provenant). Er wordt gesteld dat de herschreven versie inbreuk maakt op het handelsmerk ScanCode en verwijzingen naar auteursrechten en licenties heeft verwijderd. De beschuldigingen zijn gebaseerd op het feit dat in de herschreven kloon belangrijke algoritmen van ScanCode zijn hergebruikt, evenals de projectarchitectuur en de codestructuur.
Volgens de ondersteuner van ScanCode heeft de aanwezigheid van een uitgebreide geautomatiseerde testset, bestaande uit meer dan 90.000 testen, waarvan 40.000 zijn gericht op het detecteren van het gebruik van verschillende licenties in de code, bijgedragen aan het succesvolle creƫren van de kloon. De auteurs van de herschreven versie claimden een aanzienlijke prestatieverbetering (10-100 keer), maar volgens de ondersteuner van ScanCode heeft deze versnelling geleid tot een onvolledige doorloop van de testset, evenals een afname van de nauwkeurigheid van de resultaten en de volledigheid van de verstrekte informatie (de kloon gaf onjuiste resultaten en vond niet alle informatie tijdens de analyse).
Hoewel de Rust-port significant beter presteerde dan ScanCode in speciale prestatietests, was de kloon langzamer bij de standaard testset, ondanks dat sommige controles werden overgeslagen. Na optimalisaties in ScanCode, zoals caching, is de prestaties van ScanCode bij het scannen van code gelijkwaardig aan die van de Rust-kloon, met volledige behoud van de nauwkeurigheid.
De auteurs van de kloon worden ook beschuldigd van schending van auteursrechten en van de Apache 2.0-licentie waaronder de code van ScanCode wordt verspreid. Er wordt opgemerkt dat tijdens het herschrijven vier belangrijke vereisten van de licentie zijn geschonden: het behouden van het originele bestand met een opmerking (NOTICE), het behouden van verwijzingen naar auteursrechten, het markeren van aangebrachte wijzigingen en het wijzigen van de naam in de afgeleide werking. Na opmerkingen hebben de auteurs van de kloon het NOTICE-bestand geplaatst en hun project hernoemd, maar de andere twee schendingen zijn tot nu toe onopgelost gebleven.
De begeleider van ScanCode is van mening dat de gemeenschap criteria moet ontwikkelen om te scheiden wat bij het gebruik van AI als een afgeleid werk moet worden beschouwd en wat als een onafhankelijke uitvoering. Volgens hem blijft het resultaat, na het herschrijven van de code in een andere taal met behoud van algoritmen en structuur, een afgeleid werk, zelfs als er variabelen zijn hernoemd en commentaren zijn aangepast of verwijderd. De beweringen van de auteurs van de Rust-port over een onafhankelijke herwerking, die slechts door het ScanCode-project is geïnspireerd, zijn in dit geval onjuist, aangezien het werk gericht is op het creëren van de schijn van een originele ontwikkeling, wat zelfs slechter is dan directe kopieën, omdat dergelijke manipulaties moeilijker te detecteren zijn.
Een aanzienlijk probleem bij het genereren van code via AI is het ontbreken van traceerbaarheid van de oorsprong van de code die is gebruikt om het resultaat te verkrijgen. Standaard negeren AI-agenten die code uit open projecten gebruiken, informatie over de auteurs, tenzij er speciaal middelen zijn geĆÆmplementeerd voor het identificeren en behouden van metadata over licenties en auteurschap. Het probleem van toeschrijving raakt niet alleen de werkzaamheden aan het herschrijven van code van de ene taal naar de andere, maar ook de generatie van code in het algemeen ā het resultaat kan in dit geval vrij nauwkeurig de sjablonen van bestaande open code herhalen die in het proces van modeltraining zijn gebruikt.
Bron: opennet.ru
