A Google szoftverfejlesztésében az elmúlt öt év forradalmi változásokat hozott: az AI már a cég kódjának jelentős részét generálja, drámaian megváltoztatva a mérnökök munkáját. Míg 2019-ben az AI-alapú kódsegítség még távoli álom volt, 2024-re a Google belső eszközeiben a kódkarakterek több mint felét már mesterséges intelligencia egészíti ki, ezzel felszabadítva a fejlesztőket az ismétlődő feladatok alól, hogy a komplexebb tervezésre és problémamegoldásra összpontosíthassanak.
- A szoftvermérnökök 37%-os elfogadási aránnyal használják az AI-alapú kódkiegészítést.
- A Google kódjában lévő karakterek 50%-át az AI generálja vagy egészíti ki.
- A fejlesztők egyre inkább ellenőrzővé válnak, nem pedig kizárólagosan kódíróvá.
A változás öt éve: A kezdetektől a tömeges elterjedésig
2019-ben a szoftverfejlesztők a gépi tanulás előretöréséről hallottak, de kevesen gondolták, hogy az miként segítheti majd a mindennapi munkájukat. Mindössze öt évvel később, 2024-ben, a Google mérnökei körében óriási a lelkesedés az AI iránt, amely ma már széles körben segíti a kódírást.
Satish Chandra, vezető mérnök, és Maxim Tabachnyk, vezető szoftverfejlesztő, a Google blogbejegyzésében mutatta be a cég belső szoftverfejlesztési eszközeibe beépített legújabb, AI-alapú fejlesztéseket, és vázolta fel a következő öt évben várható változásokat. Csapatuk felelős azokért a fejlesztői környezetekért, ahol a Google mérnökei idejük nagy részét töltik, beleértve az IDE-t, a kódellenőrzést és a hibakezelést. Az ezeken a területeken elért javulások közvetlenül befolyásolják a fejlesztők termelékenységét és elégedettségét, melyek kulcsfontosságú metrikák a Google számára.
Hogyan építi a Google az AI-alapú szoftvereszközöket?
Az AI technológia gyors fejlődése komoly kihívást jelent, különösen a gyakorlati alkalmazás és a termékesítés terén. A Google három fő irányelvet követ az AI-ötletek bevezetésénél:
- Technikai megvalósíthatóság és hatás priorizálása: Olyan ötleteken dolgoznak, amelyek technikai megvalósíthatósága már bizonyított, és amelyek várhatóan mérhetően nagy hatással lesznek a mérnökök munkafolyamataira.
- Gyors tanulás, UX és modellminőség javítása: Gyors iterációkra összpontosítanak, miközben biztosítják a fejlesztők termelékenységét és elégedettségét. A felhasználói élmény ugyanolyan fontos, mint a modell minősége.
- Hatékonyság mérése: Mivel a cél a termelékenység és elégedettség növelése, ezeket a metrikákat folyamatosan és alaposan figyelemmel kísérik.
Az LLM-ek forradalma a szoftverfejlesztésben
A transzformer architektúrák megjelenésével a Google megkezdte a nagy nyelvi modellek (LLM-ek) alkalmazásának feltárását a szoftverfejlesztésben. Az LLM-alapú beépített kódkiegészítés lett a legnépszerűbb alkalmazás: természetes módon illeszkedik a fejlesztők munkafolyamataiba, hiszen a szószintű automatikus kiegészítés évek óta az IDE-k alapvető funkciója.
A bevezetése óta az AI-alapú kódkiegészítés gyors növekedést mutatott: a szoftvermérnökök 37%-os elfogadási aránnyal használják, és a kódkarakterek 50%-ának kiegészítéséhez járul hozzá. Más szóval, a kódba beírt karakterek azonos mennyisége most már AI-alapú segítséggel kerül kiegészítésre, mint ahogy manuálisan írják be a fejlesztők. Bár a fejlesztőknek továbbra is időt kell fordítaniuk a javaslatok áttekintésére, több idejük marad a kódtervezésre.
A fejlesztések a modellek (nagyobb modellek, javított kódolási képességek, kontextus-heurisztikák) és a felhasználói élmény (UX) együttes javításából fakadnak. A Google belső, kiváló minőségű naplókat használja, amelyek hosszú évek alatt gyűltek össze a szoftverfejlesztési tevékenységekről, beleértve a kódmódosításokat, build folyamatokat, kódbemásolásokat és kódellenőrzéseket. Ez az adathalmaz alapvető a modellminőség folyamatos javításához.
Túl a kódgeneráláson: AI a hibakezelésben és a kódátalakításban
A kódkiegészítés mellett a Google további jelentős AI-alapú fejlesztéseket is bevezetett:
- A kódellenőrzési megjegyzések több mint 8%-át AI-alapú segítséggel kezelik.
- A beillesztett kód automatikus környezetbe illesztése a kód ~2%-áért felel az IDE-ben.
- Az IDE-nek természetes nyelven adhatók utasítások kódmódosításokra.
- A build hibák javításainak előrejelzése is lehetséges.
Ezek az alkalmazások együttesen rendkívül sikeresek és széles körben használtak a Google-nál, mérhető hatással a termelékenységre egy valós, ipari környezetben.
Tanulságok a Google AI-fejlesztéséből
Az eddigi munka során számos fontos tanulságot vontak le:
- A legnagyobb hatást az a felhasználói élmény (UX) érte el, amely természetesen illeszkedik a felhasználók munkafolyamatába. Az egyetlen kattintással vagy tabulátorral történő javaslatok sokkal sikeresebbek voltak, mint azok a funkciók, amelyek aktiválásához a felhasználóknak emlékezniük kellett.
- Az AI-alapú javaslatok révén a kód szerzője egyre inkább ellenőrzővé válik. Fontos megtalálni az egyensúlyt az ellenőrzés költsége és a hozzáadott érték között.
- A gyors iterációk online A/B tesztekkel kulcsfontosságúak, mivel az offline metrikák gyakran csak durva közelítései a felhasználói értéknek.
- A Google mérnökeinek tevékenységéből származó kiváló minőségű adatok, beleértve a funkciókkal való interakciókat is, alapvetőek a modell minőségéhez.
- Fontos az optimalizálás a lehetőségekből (pl. felhasználói tevékenység) az „impaktba” (alkalmazott AI-segítség) való konverzióra, a szűk keresztmetszetek megszüntetésével a munkafolyamat köztes lépéseiben.
A jövő: Gemini és szélesebb körű AI-alkalmazások
Az eddigi sikereken felbuzdulva a Google még intenzívebben építi be a legújabb Gemini sorozatú alapmodelleket a fejlesztői adatokkal (DIDACT) gazdagítva, hogy mind a meglévő, mind az új AI-alapú alkalmazásokat meghajtsák a szoftverfejlesztésben.
Az iparágban az ML-alapú kódkiegészítés hatalmas lendületet adott a szoftverfejlesztőknek. Bár a kódgenerálásban még vannak lehetőségek, a következő előnyhullám várhatóan az AI segítségéből származik majd a szoftverfejlesztési tevékenységek szélesebb körében, például a tesztelésben, kódértésben és kódkarbantartásban.
Két fő trend látható az iparágban:
- Az ember-számítógép interakció a természetes nyelv felé mozdult el, mint közös modalitás. Ez a szoftverfejlesztési feladatok interfészévé válik, és az információs igények kapujává a fejlesztők számára, mindez az IDE-be integrálva.
- A nagyobb léptékű feladatok ML-alapú automatizálása – egy probléma diagnosztizálásától a javítás bevezetéséig – kezdeti bizonyítékokat mutat a megvalósíthatóságra. Ezeket a lehetőségeket az agensek és eszköztámogatás innovációi hajtják, amelyek lehetővé teszik olyan rendszerek építését, amelyek egy vagy több LLM-et használnak komponensként egy nagyobb feladat elvégzéséhez.
Ahhoz, hogy ezek a következő generációs képességek tovább fejlődjenek, a gyakorló szakemberek és kutatók közösségének közös benchmarkokra van szüksége, amelyek segítenek a területet a gyakorlati mérnöki feladatok felé terelni. Jelenleg a benchmarkok főként a kódgenerálásra fókuszálnak (pl. HumanEval). Vállalati környezetben azonban a feladatok szélesebb skálájára (pl. kódmigrációk, termelési hibakeresés) vonatkozó benchmarkok különösen értékesek lennének. Már megjelentek benchmarkok a hibamegoldásra (pl. SWEBench) és prototípusok is megcélozták ezeket (pl. a Cognition AI-tól). A Google arra biztatja a közösséget, hogy gyűjtsön össze további benchmarkokat a szoftverfejlesztési feladatok szélesebb körének lefedésére.
Forrás: https://research.google/blog/ai-in-software-engineering-at-google-progress-and-the-path-ahead/