Přeskočit na obsah
Licence a podmínky 4 min čtení

Nový korpus kódu The Stack v3: u 95 % souborů trénovací sady se licence nenašla

Hugging Face vydal The Stack v3, další díl sbírky zdrojového kódu pro trénování modelů: jeho trénovací sada má 15,9 TB textu ze 173 milionů repozitářů na GitHubu. Ze statistik, které projekt zveřejnil spolu s daty, plyne, že 2,68 miliardy z 2,80 miliardy souborů nese známku „no_license“, tedy nástroj na rozpoznávání licencí u nich žádnou nenašel. Ven ze sbírky letí jen soubory, u kterých se našla licence nepermisivní.

Hala plná stohů dřevěných beden, ve kterých jsou uložené děrné štítky
Sklad děrných štítků ve federálním archivním středisku v Alexandrii ve Virginii, listopad 1959. Foto: NARA, Wikimedia Commons (volné dílo)

Hugging Face zveřejnil 23. července The Stack v3, další díl sbírky zdrojového kódu, ze které se učí modely na psaní programů. Trénovací sada má 15,9 TB textu v 713 programovacích a značkovacích jazycích ze 173 milionů repozitářů na GitHubu, což vydá zhruba 4,9 bilionu tokenů. Úplná verze před filtrem kvality je podle karty datové sady 113,7 TB a pokrývá 224,9 milionu repozitářů.

Zajímavější než velikost je ale to, odkud ten kód pochází a co s ním kdo smí dělat. Na to má projekt vlastní čísla, protože je vydal spolu s daty. A říkají, že u drtivé většiny souborů se nepodařilo zjistit vůbec žádnou licenci.

Ven letí jen soubory s nalezenou nepermisivní licencí

Licence se v The Stacku hledá strojově. Nástroj ScanCode Toolkit prohlédne soubory, jejichž jméno odpovídá vzoru licenčního textu (LICENSE, COPYING, NOTICE, README a další), a nalezené licence se pak rozšíří na všechny soubory ve stejném a nižším adresáři. Soubor u kořene repozitáře tak pokryje celý projekt, soubor v src/lib/ jen tuhle větev.

Každý soubor pak dostane jednu ze tří známek: permissive (našla se aspoň jedna permisivní licence a žádná, která by jí odporovala), non_permissive, nebo no_license. Poslední z nich karta datové sady definuje jako stav, kdy se nenašla žádná licence, nebo jen právní texty, které licencí nejsou, třeba dohody o přispívání. Z obou vydaných sad se vyhazuje jen prostřední skupina.

Kolik toho zbude, je vidět v souboru stats/train/totals.json. Trénovací sada má 2 801 821 353 souborů a 2 677 236 668 z nich nese známku no_license, tedy 95,6 %. Permisivní licenci má 124,6 milionu souborů, tedy 4,4 %. Měřeno tokeny vyjde poměr 94,6 ku 5,4 %, u úplné verze je bez nalezené licence 94,3 % souborů.

Mezi tou zbylou dvacetinou vede s odstupem Apache 2.0, která se našla u 92,0 milionu souborů; MIT jich má 2,6 milionu. Soubor může mít nalezených licencí i víc, takže součet přes všechny licence (126,2 milionu) je vyšší než počet permisivních souborů.

Co znamená „bez licence“

Známka no_license neříká, že je kód volný. Říká, že se licence nenašla, a bez licence platí výchozí autorské právo. Dokumentace GitHubu to má napsané rovnou: „Licenci si zvolit nemusíte. Bez licence ale platí výchozí autorské právo, což znamená, že si ponecháváte veškerá práva ke svému zdrojovému kódu a nikdo ho nesmí rozmnožovat, šířit ani z něj vytvářet odvozená díla.“ (překlad redakce) O kus dál dodává, že podmínky služby dávají ostatním uživatelům GitHubu právo repozitář prohlížet a rozvětvit, tedy udělat si vlastní kopii uvnitř GitHubu.

Není to novinka téhle verze. První The Stack z roku 2022 obsahoval jen kód pod permisivními licencemi. Pole license_type s hodnotami permissiveno_license přibylo až ve verzi 2 z roku 2024. Nová je velikost, ne to rozhodnutí.

Pod datovou sadou se o to vede spor

Den po vydání na to upozornil uživatel vystupující jako douira. Podle něj opravňují podmínky služby GitHubu jen k rozvětvení uvnitř GitHubu, ne k šíření kódu jinam, takže vydání repozitářů bez licence je porušením autorského práva; požaduje odstranění všech souborů, které nekryje permisivní licence.

29. července přidal uživatel noxime hlášení, že jsou v datové sadě jeho repozitáře, a tři z nich vyjmenoval. Podívali jsme se na první z nich, RipIt: licenční soubor v něm žádný není. Právě proto v datech je. Do vyhozené skupiny non_permissive patří repozitáře s nalezenou nepermisivní licencí, ne ty úplně bez ní.

Odpověď pod hlášením odkázala na formulář pro odhlášení. „Tenhle systém by měl fungovat na přihlášení, protože chybějící údaj o licenci neznamená volně licencované dílo,“ napsal na to noxime (překlad redakce).

Odhlásit se jde, počítá se to po účtech

Odhlášení běží přes samostatný repozitář opt-out-v2: zájemce v něm založí hlášení a vypíše účty nebo jednotlivé repozitáře, které mají pryč. Pomáhá tomu aplikace Am I in The Stack? Po zadání jména účtu ukáže, co je v datech, a formulář předvyplní. „Odhlášení vyloučí váš kód z příští verze The Stacku a ze současného i budoucího trénování modelů,“ slibuje popis repozitáře (překlad redakce).

27. července si jeden z diskutujících stěžoval, že žádostí čeká skoro čtyři tisíce a od chvíle, kdy se odhlašování začalo propagovat, se podle něj nevyřídila ani jedna. Ptal se také, proč se odhlásit jde jen po repozitářích, a ne po jednotlivých příspěvcích do cizích projektů; k 1. srpnu na to nikdo neodpověděl. Se samotnými žádostmi se ale pohnulo: 31. července se do datové sady začlenila úprava nazvaná „Apply opt-out removals“. Ve výpisu žádostí zbývalo 1. srpna 625 otevřených proti 6 414 uzavřeným; kolik z nich zavřela právě tahle úprava, se z výpisu nepozná.

Sbírka je pod ODC-BY, kód v ní pod svým

Datová sada je vydaná pod licencí ODC-BY 1.0, tedy s podmínkou uvést zdroj. Na Hugging Face je to štítek jako každý jiný a u licence OpenMDW jsme měřili, že se štítek a filtr nad ním umí rozejít. Karta hned dodává, že se ODC-BY týká sbírky, ne kódu v ní: jakékoli užití shromážděného kódu se musí řídit podmínkami původních licencí včetně doložek o uvedení autora, kde jsou na místě. Aby to šlo splnit, nese každý soubor jméno repozitáře, číslo commitu a seznam nalezených licencí. Karta zároveň jmenuje i to, co jí nesvědčí: že přesnost určení licence stojí a padá se ScanCodem a s metadaty GitHubu, že v datech může být škodlivý kód a že odstranění osobních údajů není spolehlivé.

Jedna věc, která se za číslem 95,6 % snadno ztratí: sběr skončil 7. srpna 2025. Korpus vyšel skoro rok po něm, takže repozitář, který si mezitím licenci doplnil, smazal nebo skryl, je v datech pořád v podobě z loňského léta. Kdo chce vědět, jestli tam je, si to ověří sám. Kdo tam být nechce, musí požádat.

Zdroje: karta datové sady The Stack v3statistiky trénovací části, dokumentace GitHubu k licencování repozitáře, repozitář opt-out-v2 a diskuse u datové sady.

Diskuse

Zatím tu nikdo nediskutuje. Můžete být první.

Napsat příspěvek

Diskutovat můžete i bez účtu. S registrací se ale příspěvek zveřejní hned a nemusíte pokaždé vyplňovat jméno. Účet už máte? Přihlaste se.

Nezveřejňujeme ho, slouží jen redakci.

Podporuje zápis Texy: **tučně**, *kurzíva*, odrážky, odkazy.

Dál k tématu

  1. Licence a podmínky

    Čínská pravidla pro citové chatboty platí od 15. července, proti návrhu přibyly pokuty

    Pět čínských úřadů vydalo pravidla pro služby, které s uživatelem vedou trvalý citový rozhovor. Platí od 15. července 2026 a proti loňskému návrhu se v nich zákaz…

  2. Licence a podmínky

    Komise smí pokutovat poskytovatele obecných modelů od 2. srpna, rok po povinnostech

    Poskytovatelé obecných modelů mají povinnosti z evropského nařízení o umělé inteligenci už od 2. srpna 2025. Pokutu za jejich porušení ale Evropská komise smí uložit…

  3. Licence a podmínky

    Konec 27 verzí modelů v Microsoft Foundry se posunul dál, medián o 182 dní

    Microsoft změnil 31. července tabulku, ve které katalog Foundry vede data ukončení modelů. U 27 kombinací modelu a verze se datum posunulo dál, u žádné blíž; medián…

  4. Licence a podmínky

    Inkling-Small má váhy pod Apache 2.0, k tomu pravidla užití, která smí firma měnit

    Thinking Machines Lab zveřejnila váhy modelu Inkling-Small pod licencí Apache 2.0. Vedle ní ale platí samostatná pravidla přijatelného užití, ke kterým se člověk zaváže…