Az adattisztítás egy elég fontos, viszont rettenetesen unalmas része az adatfeldolgozásnak. Ha a tisztítási lépés sok adatot érint, célszerű rá programot írni, ami elvégzi helyettünk. Ez az én esetemben egy iteratív folyamat szokott lenni, mert minden egyes lépés után ellenőrzöm, hogy a program nem módosított-e valamit azokon az adatokon, ahol nem kell módosítani semmit. Például ha az NA-t kicserélem 0-ra, akkor a nátrium vegyjelét hagyja békén.
Előbb-utóbb eljutok arra a pontra, amikor a programkód módosítás több időt vesz igénybe, mint szövegszerkesztővel végigmenni a kérdéses cellákon, és kézzel átírni, amit kell.
Ezzel csak azt akarom mondani, hogy tudni kell, mikor ne használjunk egy eszközt vagy módszert.
Az LLM-ek megjelenésével hirtelen nagyon sok, bonyolultnak tűnő feladatot lehet megoldani egy olyan módszerrel, ami közelebb áll hozzánk: emberi kommunikációval. Ez egy teljesen jogos igény, még Scotty, az Enterprise űrhajó gépésze is beszélni kezdett a PC-hez.
A fejlődés nagyon gyors. Részt vettem egy nagyképűen csak AI képzésnek nevezett izén - ahol csak LLM-ekről beszéltek - és adtak egy feladatot: készítsünk élvezhető kigyó játékot Excelben, VBA-t használva. A képzésen abból is látszott, hogy én voltam a legöregebb, hogy én még programoztam VBA-ban. Mindegy, elkalandoztam, a korral jár. Az élvezhető kitételt én úgy valósítottam meg, hogy kértem különböző power-up-okat, és egy ellenséget, ami üldözi a kígyót. Az első verzió nem működött, mert az irányításra nem reagált a játék. Mikor ezt megírtam neki, kijavította. A második verzióban volt egy szintaktikai hiba, amit kézzel kijavítottam (az előnye, ha valaki érti a VBA-t), és ezzel volt egy működő snake játékom Excelben.
Mint kiderült, ezt a példát azért adta az oktató, hogy lássuk, hogy az LLM-ek nem tudnak mindent megoldani. Nekem meg ott csücsült a gépemen egy működő verzió. Vagyis az oktató sem volt tisztában a jelenlegi LLM-ek képességeivel.
Az oktató egyébként magáról azt állította, hogy LLM-szkeptikus, de én ezt egy felvett szerepnek láttam, amivel az ódzkodó hallgatókat akarta bevonni. Az oktató ugyanis annyira szkeptikus volt, hogy már nem olvas könyvet, csak a könyvből készített podcastot hallgatja meg, amit nyelvi modell készít. LLM felügyeli az egészségét, mert élete minden percét elküldi egy agent-nek, ami figyelmezteti, ha egy héten túl sokat dolgozik. (Külön kihangsúlyozta, hogy 70 óra volt, amikor jelzett neki a program, hogy mindenki érezze, milyen nagy a munkabírása.)
Egy másik feladatban mikrobiológiai adatokat kellett elemezni. Itt egyértelműen elhasalt a rendszer, nem jött rá, hogy log traszformációra van szükség. Persze az oktató sem tudta, úgy beszélt az eredményekről, mintha minden rendben lenne a kiadott táblázatokkal.
A képzésen beszélt egy másik ember is, aki saját elmondása szerint "nem hagy tokeneket kihasználatlanul". Ezt a fajta hozzáállást a prog.hu-n is láttam, ahol egyik ember úgy mutatta, hogy mennyire jobb fejlesztő, hogy már három nap alatt elhasználta az egész havi token adagját.
Megmondom őszintén, nem értem, hogy a token használat miért jelenti a produktivitás fokmérőjét. Ez olyan, mintha egy katona Schwarzeneggerkét elhasználná az összes lőszert. Vajon ő a jobb, vagy a mesterlövész, akinek az a mottója, hogy "egy golyó, egy célpont"?
Régebben az volt az előnyös, ha egy problémát kevesebb erőforrással oldottunk meg. Ez a token égetés mintha pontosan az ellenkezője lenne. Hatalmas erőforrásokkal, pénzbeni ráfordítással oldanánk meg olyan problémákat, amelyeket korábban meg tudtunk oldani magunk is.
Hozzám is eljutnak a csoda-számba menő hírek a bugokról, amik évtizedekig rejtve ülnek a kódban, míg az aktuális csúcskategóriás modell meg nem találta a másodperc tört része alatt. Biztos van ilyen. Én a magam részéről ezekkel a csodákkal nem találkoztam, de tanúságos esetekkel igen:
Az egyik munka során osztályoznom kellett a promótereket méret szerint. Nem viccelek, azt akarták, hogy keressek összefüggést a promóter mérete és a kísérleti csoportok között. Ez biológiailag értelmezhetetlen, de már megtanultam, hogy nem szó szerint kell érteni a biológusok igényeit. Ezért, hogy ne legyek nagyon támadó, visszakérdeztem, hogy mi az a promóter méret, és hogyan lehet meghatározni?
A biológusok nem válaszoltak, hanem megkérdezték a ChatGPT-t, és elküldték a válaszát. A válaszban szép kódok voltak, adatbázis hivatkozások, tanácsok. Egyetlen gond volt vele: az egésznek nem volt semmi értelme. A nyelvi modell szerint a CAGE adatbázisból kell kiszednem a promóter szélességre vonatkozó információkat. A válasszal több baj is van. Először is, a CAGE transzkripciós start helyeket gyűjt, nem promótereket. Másrészt a génszabályozás térben és időben változik, ezért a promóter nem egy fix képződmény.
Egy másik munka során cikkek alapján kellett eldönteni génekről, hogy tisztán carrier-ek (recesszív formában okoznak gondot), vagy heterozigóta alakban is mutatnak klinikai tüneteket. Azért döntöttünk a nyelvi modellek mellett, mert a genetikussal való beszélgetésnél kiderült, hogy az OMIM adatbázis hiába tartalmaz öröklésre vonatkozó információkat, a különböző fenotípusok szabad-szavas leírásai részletesebb képet adhatnak.
A problémára Claude workflow-t vetettünk be. Kértük, hogy cikkekkel támassza alá az érvelést, de használhat adatbázisokat, stb. Elkezdett dolgozni. Készített ügynököket, szkripteket, leírásokat. Az egésznek alig látszott az értelme. Az egyik szkript például tartalmazott egy 100 soros statikus változót, majd futtatás után kiírta teljes egészében. Más szkriptek indokolatlan kulcs-érték transzformációkat végeztek.
Először elhülve néztem káosz ezen megnyilvánulását, majd leesett, mi történt! Bioinformatikusként, amikor egyik adatot egy másik formátumra hozom, gyakran használok hash-eket. Ezt utánozza ez a szerencsétlen! Nem azért, mert szükség van rá, hanem mert ezt tartalmazza a tanuló adat. Újabb bizonyíték, hogy a nyelvi modellek - hiába jönnek a marketing szövegek a "reasoning", "deep thinking" és egyéb hangzatos szavakkal - nem gondolkodnak.
Visszatérve az eredményekre: több ügynök is ugyan azokat a cikkeket találta meg, de másképp értelmezték. Valahogy úgy, mint a politikusok, akik csak a saját narratívájukat hajtogatják, bármilyen hír hallatán.
Az eredmény nagyjából jó volt. Arra nem volt elég, hogy elfogadjuk azt, nem volt elég részletes, hogy esetleg kézzel tovább finomítsuk. Egyszerűen csak elpazaroltunk rá egy csomó időt, pénzt, bármilyen látható eredmény nélkül.
Személyes tapaszatalatom, hogy az LLM alapú munkák kétféle módon fejeződnek be: vagy elfogy a token, vagy rámondják az eredményre, hogy "ez már elég jó". (Van egy harmadik eset is, amikor a főnök játszik az AI-val, majd átruházza a feladatot a beosztottjára, ha már megunta, de ez is visszavezethető az előző két esetre.)
Az eredmények hiába nem ütik meg a mércét, azért elég biztos vagyok benne, hogy a jövőben nem lesz szükség dedikált bioinformatikusra. Ha egy kísérletes biológusnak kijön egy elemzés végén a kedvenc génje, nem fog ellenőrizni semmit. Számukra ez már önmagában elég bizonyíték, hogy a módszer jó :-)
A programozókra is furcsa hatással van az LLM használata. A fent említett képzésen elmondta egyikük, hogy mióta Claude-ot használ, nem élvezi a munkáját. Nincs meg benne az a megelégedettség, hogy megoldott valamit. Az oktató annyit reagált rá, hogy ő is ismer programozókat hasonló érzésekkel, akik később át is mentek alternatív platformokra, ahol az LLM nem tud segíteni.
A demoscenén is van egyfajta ambivalens kapcsolat a kóderek és az LLM-ek között. Egyrészt ott van az a hozzáállás, hogy "demoban nem használunk LLM-t", de másrészt "a demóhoz használt toolba akarunk használni". Az indoklás az, hogy a demótool kódja repetitív, nem önkifejező, uncsi, stb. Ezek mind igazak, de az én véleményem, hogy minden tevékenységben van uncsi rész. A futbalista is szeret gólt rúgni, de előtte naponta végig kell csinálni az uncsi bemelegítést, amiben nem látszik, hogy ő milyen jó. Pont ugyan olyan gyorsan futja a bemelegítő kört, mint egy harmadosztályú játékos. A festő sem dob egy freskót a falra, hanem előtte vázlatokat készít, meg színeket kever.
Én senkinek nem akarom megmondani, hogy mit csináljon. Nem is én fogom megváltoztatni egy iparág szenderdjeit, munkamódszereit. Például nálunk a melóhelyen erősen ajánlott az LLM-ek használata. Olyasmiket mondanak, hogy "aki nem tud AI-t használni, annak nem lesz munkája máshol sem". Ez nettó hülyeség. Az LLM nem fog pipettázni, nem nyúl bele senki végbelébe, hogy kitapintsa a prosztatáját, és nem viszi ki biciklin a megrendelt kaját. Munka lesz, legfeljebb nem bioinformatikai.
De még mindig szeretek kódolni. Ha pedig szeretek valamit csinálni, miért mással csináltassam? Nem fogom a sportolást sem abbahagyni, csak azért, mert van targonca, meg elektromos roller. Biztosan lassabb leszek, mint az aktuális hype, de nem érdekel. A magyar demópartik száma elég kevés, úgyhogy tudom tartani a határidőket.