Jak mění AI open source

AI tento rok naplno vtrhla do vývoje softwaru a výrazně ovlivňuje také open-source projekty. V článku rozebírám několik trendů, které v open source v poslední době v souvislosti s AI pozoruji, a jak tyto trendy svět otevřeného softwaru mění.

Inflace projektů

Jedním z trendů, který AI přináší obecně, je exploze obsahu. Výsledky vyhledávání jsou plné webů s vygenerovaným obsahem, sociální sítě jsou zahlcené vygenerovanými obrázky a videi. Zdrojové kódy nejsou výjimkou. Github se dnes topí v čím dál větším množství repozitářů.

Není to ale tak, že by vznikalo větší množství kvalitních projektů. Naopak jsou to projekty, u kterých člověk vůbec netuší, jestli se na ně může spolehnout. Pokud člověk dřív narazil na obsáhlejší projekt, který měl tisíce řádků kódu, byl tam určitý předpoklad, že když si dal někdo tu práci něco takového vytvořit, bude mít o daném problému nějaké znalosti, bude mít ke svému výtvoru nějaký vztah a bude mít nějakou ochotu ho dál udržovat.

Na tohle už se dnes nedá vůbec spolehnout. Projekt o několika tisících řádcích dokážete vygenerovat během chvilky. Může to být nějaký úplný nesmysl, ba i nebezpečná věc, může to být něco funkčního, co si někdo vygeneroval pro svoji potřebu, zveřejnil na Githubu, ale nemá žádný zájem z toho udělat open-source projekt. Ten totiž nedělá repozitář s kódem. Rozdíl mezi kusem kódu na Githubu a open-source projektem je v tom, že open-source projekt řeší problémy a scénáře použití svých uživatelů, nejen jednorázovou potřebu autora. A to se většině autorů takového rychlokvaškového kódu nechce.

Pěkně to jde vidět třeba na MeshCore. Existují desítky forků všeho možného. Chybí vám něco na oficiálním firmwaru MeshCore? Tak ho forknete, dovajbkódujete to a hodíte to na Github jako MeshCore-UltimateEdition. Problém je, že to vzniklo s minimální námahou, autor k tomu zpravidla nemá žádný vztah, za měsíc ho to přestane bavit a stane se z toho abandonware dřív, než stačí vůbec zestárnout.

Zhruba před deseti lety se začalo říkat, že koncept linuxových repozitářů se vyčerpal. V nultých letech byly prakticky jediným zdrojem softwaru. Projekt, který se nedostal do repozitářů distribucí, měl problém. Počet open-source projektů ale poté začal růst takovým tempem, že ho distribuce přestaly stíhat. Uživatelé museli začít chodit pro software jinam a autoři softwaru se naučili distribuce už nepotřebovat. Ještě před pár lety se zdál přístup „vše, co potřebuji, najdu v Debianu“ jako definitivně mrtvý.

Je ale možné, že udržované zdroje softwaru jako repozitáře linuxových distribucí se opět vrátí do hry. Svět softwaru s otevřeným zdrojovým kódem se stává tak nepřehledným, že uživatelé začnou zase oceňovat zdroje, které budou obsahovat vybraný software, který za ně někdo prověřil a na který se budou moct spolehnout i za půl roku.

Zahlcení kontroly

Dalším trendem, který AI v oblasti open source spustila, je zahlcení kontroly. Dřív vytvoření kódu představovalo určitý filtr. Bylo s ním totiž spojené neelementární množství úsilí a časové investice. To nyní odpadlo a vytváření kódu je nyní rychlé a snadné. Tento kód ale musí někdo kontrolovat, než se dostane do seriózního nasazení. Procesy kontroly, které v open source projektech roky fungovaly, jsou teď na hranici svých kapacit.

V GNOME 50 byla odstraněná podpora pro Google Drive, protože se o ni dlouhodobě nikdo nestaral. Uživatelé to samozřejmě nesli nelibě a nakonec se našel jeden z nich, který podporu přidal zpět a poslal ji do upstreamového projektu gvfs. Kolega, který má správu tohoto projektu na starosti, si povzdechl, že je to změna o čtyřech tisících řádků kódu. A ač se zdá, že alespoň základně funguje, je zjevně vygenerovaná pomocí AI a on stejně bude muset projít řádek po řádku, aby ověřil, že to skutečně funguje, jak má, a splňuje to nároky na kód, u kterého se může zavázat, že ho bude dlouhodobě udržovat.

Většina úsilí se tak přesunula z tvorby kódu k jeho kontrole, což je pro AI typické. U open source je ale problém v tom, že vývojáři, kteří jsou dostatečně zkušení na to, aby mohli kód kontrolovat a zařazovat, představovali úzké hrdlo už před AI. Teď se problém jen výrazně prohloubil. A to v uvedeném příkladu může být kolega ještě rád, že autor příspěvku komunikuje a jeví o daný problém už delší dobu zájem.

To už je dnes spíš světlá výjimka. Časté jsou příspěvky, kdy někdo něco divoce vyvajbkóduje bez hlubšího zájmu a porozumění dané problematiky a hodí to projektu přes zeď.

Já s tím mám celkem čerstvou zkušenost v Meshy, kdy mi někdo poslal pull request s 9 tisíci změněnými řádky kódu, který měl přidávat podporu pro macOS. Strávil jsem jeden večer hodinu velmi rychlou kontrolou a už během ní jsem narazil na řadu problémů: kód byl zjevně vygenerovaný AI, několik tisíc řádků bylo úplně zbytečné nahrazování jednoduchých uvozovek dvojitými, změněné byly i části kódu, které s problémem, který to mělo řešit, vůbec nesouvisely a přepisovalo to všechny změny, které jsem v hlavní větvi za posledních několik týdnů udělal.

Autor příspěvku na připomínky nikdy nezareagoval a už se nikdy neozval. Já jsem si z toho vzal ponaučení, že i ta hodina byla příliš velká časová investice do podobných příspěvků a příště je budu odmítat mnohem rychleji.

Některé projekty na tuto situaci reagují zpřísněním základních požadavků na příspěvky. Kontroverzi vyvolalo třeba rozhodnutí Flathubu odmítat aplikace, které byly vygenerované AI. Hodně lidí to kritizuje jako střílení se do vlastní nohy, ale je potřeba se podívat na jejich realitu.

Flathub dnes hostuje několik tisíc aplikací a každý den přibývají další. Kontrole se věnují pouze tři lidé. Ač mají kontrolu hodně automatizovanou, věnují se jí velmi pečlivě a je tam pořád hodně manuálního vstupu. Je vidět, že jejich cílem není jen odhalit největší prasárny, ale držet relativně vysokou štábní kulturu. V posledním půl roce jsem dostal na Flathub dvě aplikace a proces kontroly ve výsledku přispěl i ke zkvalitnění samotných aplikací.

Tohle se ale nyní střetlo s realitou, kdy jim tam lidi posílají zcela vyvajbkódované aplikace bez špetky nějakého vlastního úsilí. Tiket, kterým požádáte o zařazení, obsahuje šablonu s několika otázkami, mezi kterými je i požadavek nahrát krátké video toho, jak aplikace funguje. Opravdu to není nic náročného a člověk to dá dohromady do 15 minut. Nicméně i to je pro autory AI slopu příliš velká investice úsilí.

Místo, aby tyhle minimální požadavky splnili, to někteří označili za útok na svobodu Linuxu a rovnou si vyvajbkódovali alternativu k Flathubu, která měla být otevřená všem. Asi nikoho nepřekvapí, že fungovala sotva měsíc.

Nejenže správci open-source projektů nemají kapacity takovou poptávku po kontrole kódu uspokojit, ale ztrácejí i motivaci to dělat. Často by pro ně bylo rychlejší si danou věc udělat sami, ale tímhle procesem si vychovávali nové dlouhodobé přispěvatele a případně své následovníky. Když vám někdo pošle vyvajbkódovaný příspěvek, který ho nestál žádné úsilí a pravděpodobně mu ani nerozumí, jak si z něj chcete vychovávat přispěvatele, který projektu pomůže dlouhodobě?

Open-source software nebyl nikdy jen o samotném výsledku, ale i o procesu, kdy si přispěvatelé k projektu vytváří určitý vztah a rostou do někoho, kdo bude časem to samé předávat dalším. To je v ostrém střetu se světem AI, kde jde především o výsledek. A to co nejrychleji a s co nejmenším úsilím.

Klesající motivace zveřejňovat kód

V 90. letech označil Francis Fukuyama demokracii a liberální ekonomiku za konečné vítěze v uspořádání světového řádu. Dnes, kdy demokracie celosvětově eroduje a dosavadní ekonomický řád se rozpadá, to vypadá jako minimálně hodně předčasné prohlášení. Stejně tak ještě před několika lety označovali někteří open source pod dojmem vývoje v posledních několika dekádách za konečného vítěze mezi modely vývoje softwaru. Dočkáme se podobného vystřízlivění jako u teze Fukuyamy?

V poslední době totiž pozoruji určitý, byť pořád ještě celkem slabý trend od open-source vývoje ustupovat. Jeden z argumentů proti otevřenému vývoji, který slýchám, se týká již probíraného zahlcení kontroly. Pro některé projekty můžou náklady spojené se zahlcením AI slopem převážit nad přínosy v podobě užitečných příspěvků od komunity. Pořád můžou v rámci transparentnosti zveřejňovat zdrojový kód, ale z projektu s otevřeným vývojem se stanou projektem s otevřeným zdrojovým kódem, ale uzavřeným vývojem. Ti, kterým tak nezáleží na transparentnosti, můžou uzavřít i zdrojový kód.

Dalším argumentem proti zveřejňování zdrojového kódu je obava z obcházení licence. LLM se dnes učí na zdrojovém kódu pod libovolnou licencí a pak vám dokáže relativně jednoduše vygenerovat podobné řešení, které si můžete zveřejnit opět pod libovolnou licencí.

U permisivních licencí to není problém, tam je autor smířený s tím, že si každý může dělat s kódem prakticky, co chce, ale AI přímo ohrožuje copyleftové licence jako GPL. Ty autoři zpravidla vybírají, aby jejich práce zůstala vždy otevřená a aby kdokoliv, kdo ji použije, se o případná vylepšení podělil s ostatními. Pokud se LLM naučí na projektu, na kterém roky pracujete, a potom vygeneruje velmi podobné řešení, které se zveřejní pod proprietární licencí, efektivně to tento princip obchází.

Příkladem budiž opět MeshCore, kde samotný protokol a firmware mají otevřený zdrojový kód, ale klienty jsou uzavřené. Nedávno se v komunitě provalilo, že jeden z členů core týmu si potají požádal o registraci obchodní značky MeshCore a začal na základě dostupného kódu vajbkódovat vlastní uzavřená řešení. Zakladatel MeshCore Scott Powell to uvedl jako věc, která ho utvrdila v tom, že nezveřejnění zdrojového kódu klientů, bylo dobré rozhodnutí. Konkrétně k tomu napsal:

V éře umělé inteligence tedy vnímám open source jako něco, kde obětujete svou krev, pot a slzy, aby vás ostatní mohli okrádat – a to nespočetnými způsoby.

Můžeme s pohledem Powella nesouhlasit, ale reprezentuje legitimní postoj, který kolem sebe vídám čím dál častěji. Pozoruji kolem sebe lidi, kteří byli celoživotní zastánci open source, zveřejňovali vše do posledního pomocného skriptu, protože se chtěli podělit. Dnes si tyhle věci nechávají pro sebe a ostatním je případně dávají jen na vyžádání. Mají k tomu podobné důvody jako Powell.

Open source rostlo také na potřebě sdílet. Psát kód bylo těžké, udržovat ho ještě těžší. Proč by si měl danou věc každý implementovat sám, spojme síly v rámci open source projektu, napišme společnou knihovnu a výsledky můžeme využívat všichni. Na tom vyrostla infrastruktura, která dnes pohání Internet. AI ale tuhle potřebu potlačuje.

Setkávám se třeba s názory, že WordPress je dnes mrtvý, protože si můžu jednoduše vygenerovat vlastní CMS. Podle mě to je hodně velké podcenění toho, co open-source projekt ve skutečnosti poskytuje. Je to mnohem víc, než jen vytváření kódu, a tahle strategie vyměnění závislosti na open-source projektu za závislost na LLM se nemusí v budoucnu vyplatit.

Nicméně ta potřeba závislosti na sdílených open-source komponentách skutečně do určité míry poklesla. AI vám nemusí nahradit všechno, ale proč třeba záviset na velké externí knihovně, z které nepotřebuji ani 10 % funkcionality, když mi může AI těch 10 % rychle obšlehnout potom, co se to na původní knihovně naučilo? A když budu mít takovou vlastní implementaci, proč bych vylepšeními přispíval do společného open-source projektu?

Posledním argumentem proti zveřejňování zdrojového kódu, který v poslední době slýchám, je bezpečnost. Tento argument tedy slýchám po celá dvě desetiletí, co se open source věnuji, ale nikdy nebyl tak hlasitý. Roky někteří tvrdí, že open source není bezpečné, protože umožňuje útočníkům studovat kód a hledat v něm chyby. Proti tomu zastánci open source argumentují, že security through obscurity není skutečná bezpečnost a že software s otevřeným zdrojovým kódem je bezpečnější, protože více očí víc vidí a přijde se na víc chyb, které se poté opraví.

Dnes jsou ale open-source projekty doslova zavalené hlášeními bezpečnostních chyb nalezenými AI. To množství je tak bezprecedentní, že je opravdu jednoduché podlehnout dojmu, že uzavřený kód je bezpečnější. Zajímavé je si všimnout toho, že ve zprávách čteme o tom, kolik AI nalezlo chyb, ale ne o tom, kolik bezpečnostních chyb opravilo. To totiž vyžaduje opravdu hluboký vhled do daného kódu a dělají to pořád lidští programátoři. A stejně jako kontrola příspěvků to zahlcuje jejich kapacity.

V tomto případě si ale myslím, že se jedná jen o dočasný trend. Open-source projekty se těmi bezpečnostními hlášeními postupně prokoušou, obecně se zvedne bezpečnost udržovaného softwaru s otevřeným zdrojovým kódem a ten z toho bude benefitovat. Jak to bude s ostatními trendy zmíněnými v článku, těžko říct. Tam už takový jednoznačný optimista nejsem.

Fediverse Reactions

5 odpověďí na “Jak mění AI open source”

  1. Václav Pašek avatar

    @sesivanyblog Uff, celkem smutné čtení.

    1. Marián Kyral avatar

      @electric @sesivanyblog Bohužel. Tenhle AI slop zabíjí úplně všechno.

      Pořád doufám, že to nakonec přežijeme, ale bude to komplikované.

      1. Martin Bodlák 💙💛 avatar

        @mkyral AI slop v IT bude ještě docela malý problém proti jiným oblastem…
        @electric @sesivanyblog

        1. Marián Kyral avatar

          @babaq @electric @sesivanyblog Všechno je prostě všechno.

  2. Jakub Cabal avatar

    @sesivanyblog vidím to stejně. AI respektive LLM mění svět a u IT to jde hodně vidět. Bojím se, že spousta vývojářů především z open source světa vyhoří. Otázka také je, zda se díky LLM nějak víc nevyvine autorské právo, viz zmíněné obcházení GPL. Každopádně strčit hlavu do písku a kopat kolem sebe dnes nikomu nepomůže, svět se změnil a je třeba najít cestu, jak v něm dobře fungovat.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *