Felhasználja az AI-innovációt szórakozás közben

Nagy rajongói vagyunk a nyitott együttműködésnek, hogy tanuljunk, fejlődjünk és ösztönözzük az innovációt, de néha meg kell érezni egy versenytárs melegét, hogy előre mozdítsuk magunkat. Cégünk belső mesterséges intelligencia-versenyével pontosan ezt tettük. Kiválasztottunk egy releváns kihívást, és mérnökeink kis csoportokban versenyeztek egymással, hogy kidolgozzák – egyidejűleg – a legjobb és leghatékonyabb gépi tanulási modellt.

Ez így van: itt kompromisszumot alkalmaztunk, mert valós mesterséges intelligencia-problémák esetén nem mindig lehet megragadni a legnagyobb, a legnagyobb teljesítményű modellt. Vannak költség- és időkorlátok, amelyeket figyelembe kell venni.

A verseny a Slimmer AI által kedvelt AI Fellowship program része volt. Ez a program külön kutatás-fejlesztési időt szab ki és strukturál, amelynek során gépi tanulási mérnökeink együttműködnek, kísérleteznek, tanulnak, és haladnak a legmodernebb technikákon a nagy problémák megoldása érdekében. A cél az, hogy erősítsük személyes fejlődésüket, és előremozdítsuk közeljövő vállalati céljainkat. Negyedéves ciklusokban dolgozunk, ezért egy teljes három hónapos ciklust vállaltunk, hogy belevágjunk ebbe a versenybe.

Végső soron a verseny formátuma határozza meg, hogy segít-e a cég és az emberek növekedésében, vagy csak egy szórakoztató esemény az idő eltöltésére. Ahhoz, hogy szándékosan elérje céljait, meg kell találnia az ideális témát, meg kell alakítania a megfelelő csapatokat, és meg kell teremtenie a tökéletes feltételeket.

Ebben a cikkben megosztok néhány döntésünket, és azt, hogy miként értékelték azokat utólag, hogy még sikeresebb versenyt rendezhessen a saját csapatán belül.

A szabályok

A tökéletes kihívás

A maximális hatékonyság érdekében a versenynek egyrészt meg kellett erősítenie az elmúlt év során megszerzett tudásunkat,és-nek tartalmaznia kellett egy újszerű elemet a szakértelmünk továbbfejlesztéséhez. Úgy döntöttünk, hogy a Natural Language Processing (NLP) tartományon belül dolgozunk egy kihíváson, mivel az elmúlt évi innovációnk jelentős része ott történt. Korábban olyan témákat kutattunk, mint az elnevezett entitások felismerése és a néhány lépésben történő tanulás, és úgy gondoltuk, hogy érdemes mélyebbre merülnünk ezekben a fogalmak kombinálásával. Ezenkívül stratégiai ésszerű volt, hogy a nem is olyan távoli jövőben járatossá váljunk a többnyelvű mesterségesintelligencia-megoldások terén valamelyik termékünk esetében. Tudtuk, hogy ezzel is foglalkoznunk kell.

A több ezer adatkészletet tartalmazó „The Hugging Face Hub” felbecsülhetetlen segítség volt a megfelelő kihívás megtalálásában. Lehetővé tette számunkra, hogy felfedezzük az XTREME adatkészletet, amely egy többnyelvű, többfeladatos NLP benchmark. 40 tipológiailag változatos nyelvet fed le, és kilenc olyan feladatot tartalmaz, amelyek a szintaxis és a szemantika különböző szintjeivel kapcsolatos érvelést igényelnek. A kilenc feladat közül négyet választottunk ki, amelyek összhangban voltak legutóbbi K+F munkánkkal. Mind a többfeladatos, mind a többnyelvűség új kihívást jelentett a csapat számára, ezáltal biztosítva, hogy a verseny releváns tanulási élmény legyen.

Nincs leiratkozás

A Fellowship program többi részéhez hasonlóan a versenyen való részvétel sem volt fakultatív. A csapat nagyra értékeli a folyamatos tanulást, így az innovációs tevékenységekben való aktív részvétel egyszerűen a munka része. Cserébe heti fél napot az ösztöndíjas tevékenységekre, például a versenyre tartanak fenn.

A versenynek volt egy másik kötelező szempontja is, amelyre a csapatok nagyon büszkék voltak: egy nagyszerű csapatnév kitalálása. Ezért olyan csapatok próbálták megszerezni első helyüket, mint a Ditto (egy „Transformer” Pokémon), a Neurotic Networks és az Astrology (amely korábban csillagászdiplomásokból állt).

Aranypárok

Gépi tanulással foglalkozó mérnökeinkből álló csapatunkat két párba osztottuk. Nem akartuk, hogy az emberek egyedül dolgozzanak a kihíváson, mert szerettük volna elősegíteni az együttműködést és a tanulást egymás erősségeiből. Nem akartuk azonban megnagyobbítani a csapatokat, és nem akartuk a szabadlovaglásra csábítani.

A párok kiválasztása meglehetősen megfontolt folyamat volt, melynek során szerettük volna az idősebbeket összehozni a juniorokkal, hogy minden páron belül legyen legalább egy releváns témában tapasztalattal rendelkező személy, és új kötelékeket erősítsünk azáltal, hogy olyan embereket egyesítünk, akik nem sokat dolgoztak együtt előző év. És persze a csapatok szakértelmét összességében kiegyensúlyozottnak kellett lennie ahhoz, hogy mindenki tisztességes lövést kapjon. Igen, valóban megkísértett bennünket, hogy írjunk egy optimalizálási algoritmust, hogy megoldjuk ezt, de végül kézzel is elég sikeresek voltunk.

Hatékonyan jó

Eleinte nagyon világosak voltunk a győztes kritériumokat illetően. A négy kiválasztott feladat pontszámait átlagoltuk, hogy az egyes csapatok modelljét teljesítmény szempontjából rangsoroljuk.

A csapatokat azonban a tesztfázisban a hatékonyság alapján is pontozták. A „Experiment Impact Tracker” által kiszámított teljesítménymutatót szándékoztunk használni, de ez nem hozta meg a várt megbízható eredményeket. Ezért áttértünk arra, hogy egyszerűen a tesztfázis teljes időtartamát használjuk a modell hatékonyságának közelítéseként. Végül is, ha minden modell ugyanazon a hardveren fut, a kevésbé hatékony modellek általában lassabbak.

A végső győzteshez egy újrasorolási szabályt hoztunk létre a leghatékonyabb modellekkel rendelkező két csapat számára. A leghatékonyabb modellel rendelkező csapat két hellyel feljebb került az összesített teljesítményrangsorban. A második leghatékonyabb csapat egy hellyel feljebb került. Vegye figyelembe, hogy ez az átsorolás csak akkor érvényes, ha az átlagos feladatpontszám teljesítménykülönbsége 100-as skálán kisebb, mint 10, és a hatékonyságbeli különbség meghaladja az 5%-ot. Nem szerettük volna, ha egy szupergyors, de véletlenszerű modell kúszna felfelé a ranglétrán.

Független értékelés

Amíg az edzési adatkészletet átadták a versenyző csapatoknak, egy kiértékelő tesztadatkészletet és egy végső tesztadatkészletet visszatartottak. Ezután egy nem részt vevő mérnököt bíztak meg, hogy értékelje a modelleket a megtartott adatok alapján. Három lehetőség volt modell futtatására az értékelési teszt adatkészletén, és minden kísérlet után frissült a köztes ranglista. A végső tesztadatkészletet csak egyszer használták fel a végén a végső rangsor meghatározásához.

Együttműködési verseny

Természetesen a csapatoknak versenyezniük kellett, de azt is szerettük volna, hogy az emberek gyorsan tanuljanak és újítsák meg egymás eredményeit. Hetente tartottunk stand-upokat, ahol az emberek érdekes módszereket osztottak meg egymással, amelyekkel találkoztak vagy teszteltek. A pontos megvalósításokat és paramétereket minden csapat titokban tartotta.

Ezenkívül az összes beadványt meg kellett osztani a verseny befejezése után. Bár ez a több tanulás és a tiszta kód népszerűsítése érdekében történt, a csalás ellen is hibamentes volt, mivel a tesztkészlet szabadon elérhető volt az interneten.

A verseny

Minden csapatnak egy olyan modellt kellett beküldenie, amely 40 nagyon különböző nyelvet és négy különböző NLP feladatot tudott kezelni:

  • Határozza meg, hogy egy premissza mondat magában foglal-e, ellentmond-e vagy semleges-e egy hipotézismondattal szemben.
  • Határozza meg, hogy két mondat egymás parafrázisa-e!
  • Végezzen beszédrész-címkézést (pl. főnevek, igék, névmások stb. azonosítása).
  • Végezze el a megnevezett entitás felismerését (például azonosítsa a megnevezett személyeket, szervezeteket, helyszíneket stb.).

Heti négy óra három hónapon keresztül közel sem elég idő ahhoz, hogy egy győztes modellt a semmiből képezzen ki. Nem is igazán kell tenned az előre betanított, nyílt forráskódú modell kiváló minőségével. A csapatok kísérleteztek a legmegfelelőbb előre kiképzett modell megtalálásával és finomhangolásával, mindig emlékezve arra, hogy a szükségtelen terjedelmesség büntetést von maga után.

Technikák

Most itt kapunk technikai ismereteket azok számára, akik haldoklik, hogy bepillantást nyerhessenek csapataink munkájába. Ha ez nem érdekli, nyugodtan ugorjon a következő részre.

A legtöbb csapat mBERT modellt használt alapként. Nem azért, mert ez volt a legjobb, hanem mert ez egy olyan építészet, amelyet nagyon ismerünk. A BERT modellek csak egy 512-es token sorozatot engedélyeznek bemenetként, ami problémát jelentett az adatkészlet néhány hosszabb mintájánál. A csapatok különféle technikákkal kísérleteztek a hosszabb beviteli sorozatok legjobb kiszolgálása érdekében, például nem vágtak el egy sorozatot a szó közepén, vagy nem adtak több kontextust a következő mondatokhoz. Kísérleteztek a modell felépítésével is. Jobb eredményeket értek el, ha például egy második réteget adtak az osztályozófejhez.

A tanulási sebesség kritikus a finomhangolás során, és két művelet különösen hasznosnak bizonyult. Először is, egyes csapatok nem csak a fejet betanították, hanem feloldották a kódolót is, és folyamatosan alacsonyabb tanulási sebességet használtak a modell alsóbb rétegeihez. Másodszor, a tanulási ütem ütemezése bemelegítéssel jobb eredményekhez vezetett. A bemelegítés során a tanulási sebesség először alacsony értékről a kezdeti tanulási sebességre emelkedik, majd ismét alacsonyabb értékekre csökken.

Az egyik csapat sikeresen felgyorsította modelljét és javította a hatékonyságot azáltal, hogy nem töltötte ki a mintáit. Ehelyett az összes mintát egymás mellé csatolták, és egy elválasztó token segítségével jelezték a felosztásukat. Természetesen egy gyártási rendszerben ez csak akkor működne, ha a mintákat tételesen is bemutatják. További jelentős fejlesztéseket találtak a vegyes precíziós képzés és a párhuzamos tokenizálás lehetővé tétele révén.

Mi az „adatközpontú AI mozgalom” mellett állunk, amelyet Andrew Ng jelenleg is támogat. Egy bizonyos ponton nagyobb nyereség érhető el az adatok javításával a modell további finomhangolása helyett. A nem gyakori nyelveken való teljesítmény fokozása érdekében a csapatok sikeresen kísérleteztek túlmintavételezéssel és lefordított minták hozzáadásával. A nyelvek egyenkénti betanítása helyett több nyelvből történő mintavételezés egy kötegben javította a modell általánosítási képességét.

A győztes csapat

A végeredmény végül nagyon szoros lett. Az egyik csapat annyira merész volt, hogy InfoXML architektúrát nyújtott be az mBERT használata helyett. Ezzel a modellállattal a teljesítmény tekintetében az első helyre kerültek. A modelljük azonban annyira nem volt hatékony – több mint háromszor lassabb, mint a második teljesítményt nyújtó csapat –, hogy sajnos elvesztették első helyüket a Great Re-rank során (olvass vissza, ha elfelejtetted, hogyan értékeltük a modelleket). Valójában ez a modell annyira nem volt hatékony, hogy még a harmadik fellépő csapat is megelőzte őket. Ez azt jelentette, hogy a legjobban teljesítő modell a harmadik helyen végzett a végső ranglistán. A második fellépő csapat lett a győztes. Micsoda utazás!

Levont tanulságok

A verseny végén végzett felmérés szerint:

  • 10-ből 9 mérnök úgy érezte, hogy bővítette tudását a témában és készségeit a mély tanulási modellek felépítésében.
  • 10-ből 8-an a feladatot érdekesnek találták, a versenyt pedig értékes vagy rendkívül értékes tapasztalatnak.
  • Mindenki eléggé képesnek és támogatottnak érezte magát ahhoz, hogy elvégezze saját kísérleteit.
  • A többség úgy érezte, hogy nincs elég idő és számítási erőforrás az összes kívánt kísérlet elvégzésére.

Adatvezérelt vállalat vagyunk, ezért nyilvánvalóan szeretjük a számszerűsíthető felmérési eredményeket, amelyek számszerűen nyomon követhetik, hogy jó irányba haladunk. Nem nélkülözzük azonban a visszatekintések során kapott mélyebb személyes visszajelzéseket. Ezek azok a felismerések, amelyek segítenek a folyamatos fejlődésben.

Szóval, mit tanultunk a retrótól?

Kezdje egy működő verzióval

Sok időt fordítottak az adatbetöltők létrehozására és egy végponttól végpontig működő folyamat beszerzésére. Kevesebb teret hagyva a tényleges ML innovációnak. Bár néhány mérnök nagyon kifizetődőnek találta ezt a tapasztalatot, nem érezzük úgy, hogy ezt meg kell ismételnünk, és valószínűleg egy alapmodellt és adatbetöltőt fogunk szállítani a következő versenyünkhöz, hogy az emberek azonnal belevágjanak a jó dolgokba.

A feltételek további finomítása

Utólag visszagondolva, egy modell szigorú büntetése azért, mert 5%-kal kevésbé hatékony, mint a második, túl keménynek tűnik. Szerencsére esetünkben jól működött az átsorolási szabály, mert a legjobban teljesítő csapatok között ekkora volt a hatékonyságbeli különbség. De legközelebb valószínűleg kalibrálni fogjuk ezeket a küszöbértékeket annak az alapmodellnek a teljesítménye alapján, amelyet megadunk, és bejelentkezünk az egész csapattal, mielőtt kőbe vésnénk ezeket a számokat. Kísérletezhetünk a kevésbé kiképzett modellek ösztönzésével is.

GPU-k mindenki számára

A versenyen kívül még vannak kiszolgálandó felhasználók, így az időkorlát megmarad. Az erőforrás-korlátozások leküzdése érdekében azonban legközelebb minden csapat számára külön felhőalapú GPU-t kapunk, ahelyett, hogy a házon belüli GPU-inkat megosztanánk. Valószínűleg minden csapat számára azonos erőforrás-költségvetést biztosítunk, hogy ösztönözzük a modellek hatékonyabb és környezetbarátabb képzését.

Új eszközök bevezetése

Bár számos Deep Learning könyvtár már évek óta a technológiai halmazunkban van, a „PyTorch Lightning könyvtár” sok mérnök számára új volt, és a verseny lehetővé tette, hogy a teljes csapat tapasztalatot szerezzen vele. Sok mérnök élvezte ezt a gyakorlati tapasztalatot, és ez lehetővé tette számunkra, hogy végérvényesen kibővítsük technológiai készletünket most, hogy mindenki ismeri. Legközelebb gyorsan átkutatjuk azokat a hasznos könyvtárakat, amelyeket be kívánunk vonni a versenybe.

Hozd vissza a zent

Az emberek annyira lelkesedtek a versenyért, hogy elég megterhelővé vált, hogy más feladatok mellett zsonglőrködjenek vele. Nem az a dolgunk, hogy stresszt keltsünk, ezért legközelebb ezt szeretnénk elkerülni. Nagyobb csapatok segíthetnének, de mindannyian egyetértünk abban, hogy el akarjuk kerülni a szabadlovaglást, ami mindenki számára demotiváló lehet. Ezért a következő versenyünk során valószínűleg jobban díjazzuk a köztes pályaműveket. Még az is előfordulhat, hogy minden köztes szakaszban győzteseket hirdetünk, mindenki nyíltan megosztja a kódját, majd hagyjuk, hogy a többi csapat javítsa ezt a következő beküldéshez. Remélhetőleg így egyenletesen oszlik el a munkateher, és kellemes szinten tartja a feszültséget.

Maradjon akadémikus

Megbeszéltük, hogy jó ötlet-e az adathalmaz kissé mesterséges, inkább akadémikus jellege. Alkalmazott mesterséges intelligencia vállalatként nem kellene valós adatokat használnunk? Összességében arra a következtetésre jutottunk, hogy a kiválasztott adatkészlet nagyon jól működött a célunknak. Az év minden napján a valós AI-problémákon dolgozunk. Az akadémikusabb feladatra való összpontosítás lehetőséget adott mindenkinek, hogy az innovatív részekre összpontosítson, és javítsa a technikai készségeket, ahelyett, hogy egy zűrös adatokat tartalmazó, fejlődő problémafelvetésen próbálta volna megragadni a fejét.

Kicsit kevesebb beszélgetés?

Kezdettől fogva tudtuk, hogy egy szövetkezeti verseny előmozdítása kissé butaság lehet. Próbálod megenni a tortádat, és még mindig megvan. És valóban, bár a csapatok határozottan megosztották az előrehaladást és az áttöréseket a heti stand-upok során, azt is megemlítették, hogy érthető módon kissé vonakodtak megosztani legjobb ötleteiket. Legközelebb valószínűleg kérdezz-felelek formátumot használunk a stand-upoknál, hiszen mindenki több mint hajlandó segíteni másokon, akik elakadtak. Ez a közbenső beküldések utáni kódmegosztással együtt még mindig nyitott légkört teremthet anélkül, hogy tönkretenné a versenyelemet.

Következtetés

A versenyt azért tartottuk, hogy technikai képességeinket előremozdítsuk, és közben jól érezzük magunkat. Habár legközelebb változtathatunk néhány szabályon, örülünk, hogy mindkét célt nyilvánvalóan elértük.

A verseny során újszerű gyakorlati tapasztalatokat szereztünk a többfeladatos modellek betanításában és az adatok elkészítésében. Ez a tapasztalat már a következő negyedévben hasznosnak bizonyult, amikor a versenyből származó kód közvetlenül alkalmazható volt egy kereskedelmi termék fejlesztésében. A többnyelvű képzésben szerzett tapasztalataink jelenleg egy újszerű AI-alkalmazás tervezési folyamatában segítenek. Gyakorlati tapasztalatának köszönhetően minden mérnök jobban tisztában van azokkal a lehetőségekkel és kihívásokkal, amelyekre számíthat. Technikai szinten pedig az egész csapatunk gyakorlati tapasztalatot szerzett egy új ML könyvtárral, amely jelentősen felgyorsítja az új termékek fejlesztési idejét.

Az AI Fellowship és versenye azonban nem csaka tanulásról és az innováció ösztönzéséről szól. Ez is egy hely a kapcsolatteremtésre és a siker megünneplésére. Míg a résztvevők láthatóan élvezték a versenyt, a társaság többi tagja csatlakozott a heti összejövetelekhez, amelyekben a köztes helyezéseket ismertették. A győztes csapat cégünk karácsonyi partiján a reflektorfénybe került, és örök dicsőségre lel majd egy falilapon, amelyen a nevük szerepel étkezdénk Hírességek Csarnokában. Abban az évben, amikor a távmunka fizikailag távolabb sodort minket egymástól, mint ahogy szerettük volna, a verseny remek lehetőséget kínált a szórakozásra és a közös cél melletti kötődésre.

Külön köszönet Sybren Jansen-nek – az AI innovációs részlegünknek – az esemény aprólékos tervezéséért és megszervezéséért! Lehet, hogy hamarosan ismét egy versenynek adunk otthont, de az innováció ösztönzésére szolgáló egyéb szórakoztató ötleteink is folyamatosan gyarapodnak. Azt hiszem, az a legjobb, ha azt mondod… maradj velünk!

Ha többet szeretne megtudni a Slimmer AI-nél végzett munkánkról, keresse fel bátran, vagy látogasson el webhelyünkre, hogy többet megtudjon.

Ha más kreatív sémákra gondolt a folyamatos tanulás és innováció szórakoztatására, kérjük, ossza meg az örömét kommentben!