A Google a Gemini LLM-et használja a szoftversebezhetőségek automatikus javítására
A Google nemrégiben nyelvi modelleket kezdett használni a C/C++, Java és Go kódjaiban található hibák felderítésére és kiszűrésére. Az eredmények biztatóak: a Gemini modellen alapuló LLM segítségével „sikeresen javították a unit tesztek során felfedezett sanitizer hibák 15%-át, ami több száz foltozott hibát eredményezett”. Az eredmények ismertetése mellett egy olyan szoftvert is közzétettek, amely hibákat generál C/C++ kódokban. A cikk írásakor a Google már több száz ilyen, LLM által generált commitot fogadott be a kódalapjába, és további több száz áll validálás és benyújtás alatt. Ahelyett, hogy egy szoftvermérnök átlagosan két órát töltene minden egyes commit elkészítésével, a szükséges javítások most másodpercek alatt, automatikusan jönnek létre.
- Egy kisméretű, testreszabott ML modellt használtak annak meghatározására, hogy mely fájlok okozhatják a problémát
- Az LLM-et specifikus promptok segítségével kérték fel a hibák javítására, amelyek azonosítják a hiba típusát és a veremnyomokat (stack trace)
- A modellek jobban teljesítettek, ha pontosan megmutatták nekik, hol történt a hiba
- Az automatizált elemzés felett kettős emberi szűrőt alkalmaztak a téves riasztások vagy rossz megoldások elutasítására
- 95%-os elfogadási arányt értek el a kódtulajdonosoknál, ami magasabb, mint az emberek által generált kódmódosításoké
- Megjelentették az OSS-Fuzz-t, lehetővé téve a kutatóknak az új sebezhetőségek felfedezését olyan népszerű projektekben, mint a cJSON és a libplist
Miért fontos?
Az ilyen tanulmányok megmutatják, hogyan gyorsíthatja fel az AI a szervezeteket; a Google itt egy rendkívül specifikus, egyedi AI alkalmazást (fuzzing) épített, és gondosan integrálta más meglévő automatizált és emberi rendszerekkel. Ennek eredményeként felgyorsult egy fontos funkció (hibakeresés és javítás) átfutási ideje. Arra számítok, hogy az AI forradalom jelentős része így fog kinézni: egy sor különálló projekt, amelyek egy közös, hatalmas modellre (itt: Gemini) épülnek, és egyenként felgyorsítanak részfolyamatokat, összességében pedig drámaian javítják a nagy szervezetek hatékonyságát és sebességét. ---