Halucinace balíčků při vývoji softwaru pomocí modelů LLM vytváří nejen chyby, ale může vést i k bezpečnostním zranitelnostem. Komplexní studii na toto téma nyní provedli výzkumníci z University of Texas (San Antonio) a dalších akademických institucí.
Halucinace umělé inteligence budí největší pozornost, když velké jazykové modely produkují obsah v přirozeném jazyce. LLM se ale stále častěji používají k tvorbě kódu. Zde pak tzv. package hallucinations znamená generování programu odkazující se na neexistující softwarovou knihovnu třetí strany. Samo o sobě není na takovém odkazu nic podezřelého, knihovny třetích stran využívá drtivá většina programů. Navíc mnoho populárních programovacích jazyků, jako je PyPI pro Python a npm pro JavaScript, spoléhá na používání centralizovaného úložiště balíčků. Protože jsou tato úložiště často otevřená, mohou podvodníci nahrávat škodlivý kód maskovaný jako legitimní balíčky (tzv. package confusion attack).
Odtud se pak odvozuje i metoda zneužití halucinací LLM. Podvodník si všimne, že model vytváří odkazy na určitou knihovnu, a takto nazvaný balíček s podvodným obsahem nahraje do otevřeného repozitáře. Až příště LLM doporučí ve vygenerovaném kódu stejný balíček, bude už odkaz „funkční“ – tj. fungovat dle představ útočníka.
Co se týče nově provedené studie o těchto rizicích, vedla k následujícím výsledkům: v rámci 30 různých testů se 440 445 z 2,23 milionu vzorků kódu, které vygenerovali v jazycích Python a JavaScript pomocí modelů LLM, odkazovalo na halucinované balíčky. Modely řady GPT čtyřikrát méně často generovaly halucinované balíčky ve srovnání s modely open source, přičemž míra halucinací byla 5,2 % oproti 21,7 %, uvádí studie. Výzkumníci zjistili, že kód v jazyce Python byl méně náchylný k halucinacím než kód v JavaScriptu.
Podle studie až 97 % vývojářů softwaru začleňuje generativní AI do svých pracovních postupů a 30 % kódu, který je dnes napsán, je generováno AI. Toto procento dále poroste a s tím i závažnost daného problému. Vývojáři jsou si vědomi, že halucinace balíčků může být zdrojem chyb (s tím má zkušenost téměř každý), jen výjimečně to ale vnímají i jako problém zabezpečení.
Existují způsoby, jak tato rizika zmírnit (křížové porovnávání generovaných balíčků s hlavním seznamem apod., větší kontrola na straně správců repozitářů…), podle autorů výzkumu by se nicméně riziko mělo ideálně řešit už na úrovni fungování velkých jazykových modelů – tedy jejich tvůrců.
Joseph Spracklen et al, We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs, arXiv (2024). DOI: 10.48550/arxiv.2406.10279
Zdroj: University of Texas (San Antonio) / TechXplore.com