Blog - David Orolin | Senior Programmer
Nástroje generativní AI se čím dál tím více stávají samozřejmou součástí běžné práce zvyšujícího se množství softwarových vývojářů. Jsem si ale jistý, že kolem používání těchto nástrojů panuje celá řada otázek.
Co se děje s daty, která se do AI modelu odesílají? Bude se náš uzavřený kód využívat jako nápověda neznámým vývojářům na druhé straně světa? Komu vlastně patří obsah vygenerovaný AI nástrojem? A kdo by nesl vinu v případě, že by mi AI nástroj předal slovo od slova cizí kód a porušil tím duševní vlastnictví původního autora?
Za zavřené dveře jednotlivých nástrojů nevidíme a až na výjimky (jako je možnost spuštění lokální instance modelu v Tabnine Pro) máme jen malou kontrolu nad tím, co se děje s daty vývojářským nástrojům dostupnými. V tu chvíli máme jen jedno místo, kam se můžeme obrátit - a to licenční ujednání a privacy policies těchto nástrojů.
Přečetl jsem si smlouvy a doplňující dokumenty, s nimiž souhlasíte, když tyto nástroje začnete používat, a byl jsem velmi příjemně překvapen tím, jak transparentně jsou napsané. (Tedy kromě Tabnine. Dokumenty Tabnine napsali Opravdoví Právníci.) Výsledky jsem zpětně konzultoval s custom GPT vytvořeném za tímto účelem. Je potřeba poznamenat, že je to stav k lednu 2024, zřejmě se tedy bude nadále vyvíjet.
Dva z nich specificky cílí na efektivní psaní kódu a další dva jsou natolik rozšířené, že je za tímto účelem vývojáři zcela jistě používají.
GitHub Copilot a Tabnine jsou tzv. copiloti. Přímo se integrují do programového prostředí vývojářů a při správném použití mohou dramaticky zvýšit jejich produktivitu. Automaticky si přečtou kontext (typicky právě otevřený soubor), ten automaticky odešlou do modelu a vývojáři vrátí vygenerovaný obsah jako například dopsaný blok kódu.
ChatGPT (od OpenAI) a Google Bard jsou pak nástroje obecnější. Dají se velmi efektivně využít v procesu vývoje softwaru, ať už za účelem výzkumu či za účelem psaní skriptů a krátkých výstřižků kódu. Data do těchto nástrojů odeslaná si uživatel volí sám, a to tak, že je vloží do chatovacího okna nástroje.
Oba copilot nástroje velmi jasně specifikují, že data přečtená z programátorských nástrojů se do modelu odesílají, v modelu se analyzují a nakonec se smažou1, 2. GitHub Copilot pak navíc jasně říká, že model se na uživatelských datech nikdy neučí1.
Podmínky pro Tabnine jsou trochu složitější. Uživatel si může vybrat, zda se na jeho datech model bude, či nebude učit (v době vydání tohoto článku byla možnost učení dostupná jen v placené verzi Tabnine). Když si uživatel zvolí, že chce, aby se Tabnine učil na jeho kódu, vygenerovaný obsah založený na naučených datech bude vždy dostupný právě tomu uživateli. Nikdy tak nedoputuje k ostatním uživatelům Tabnine2, 3.
OpenAI si v případě individuálních licencí data zachovává a může s nimi dále nakládat v anonymizované podobě4. Co se učení modelu týče, ChatGPT se na datech učí, ale toto chování lze přepsat uživatelským nastavením5.
Enterprise licencím pak dovolí zvolit si, jak dlouho budou data dané organizace zachována, a zároveň uvádí, že jsou v šifrované podobě6. Dále naznačuje, že enterprise data se používají jen na učení custom enterprise modelu6.
„Žalobce nemůže poukázat na žádný případ, kdy by soud uznal autorská práva na dílo vytvořené nečlověkem. Nacházíme nové hranice v oblasti duševního vlastnictví.“
Soudce Beryl A. Howell | Okresní soud Spojených Států pro okres Kolumbie
V první řadě bych k tomuto tématu chtěl poznamenat, že pro duševní vlastnictví obsahu vygenerovaného AI zatím neexistuje mezinárodně uznávaný standard. Již existují některé soudně uznané precedenty, na nich nicméně zatím nelze zakládat. V tuto chvíli běží celá řada soudních sporů rozhodujících o tom, jak se bude přistupovat k obsahu, z něhož se AI učí. Toto téma je zatím velmi živé, a tak je pravděpodobné, že i podmínky pro používání AI nástrojů se budou rapidně měnit.
Jediné, o čem teď můžeme mluvit, je záměr tvůrců jednotlivých nástrojů - a ten je v tuto chvíli naštěstí velmi permisivní. GitHub Copilot7, Tabnine3 i ChatGPT5 dávají uživatelům plné vlastnictví obsahu, který vygenerují.
Což nás ale přivádí ke složitější otázce:
Ačkoli se modely měly chovat tak, aby ve vygenerovaném obsahu nepoužívaly doslovný zdrojový obsah, s postupem času se ukázalo, že k takovým situacím může dojít.
Tabnine tento problém řeší tak, že se učí jen na kódu s permisivními licencemi8. To jinými slovy znamená, že i kdyby v odpovědi vrátil kód ze zdrojových dat slovo od slova, nedošlo by k porušení zákonů o duševním vlastnictví, protože licence těchto dat kopírování výslovně povolují. I přesto se ale Tabnine ve svých podmínkách vzdává veškeré odpovědnosti za újmu způsobenou tím, že vygeneruje obsah chráněný autorským právem9.
GitHub tvrdí, že copilot se učil na kódu dopstupném ve veřejných repozitářích10. O licencích ale neříká ani slovo, na druhou stranu umožňuje blokovat obsah, u kterého detekuje duplicitu s “veřejným kódem”. V případě, že se uživatel pro toto blokování rozhodne, GitHub by měl začít aktivně srovnávat navrhovaný obsah s veřejně dostupným kódem a vyhýbat se situacím, kdy by obsah mohl být považován za plagiátorský. Toto nastavení silně doporučuji používat, koneckonců pokud blokován není, GitHub se v Customer Agreement zbavuje veškeré odpovědnosti za generaci obsahu chráněného jako duševní vlastnictví11.
Analyzovat, na čem všem se učil ChatGPT, jde daleko nad rámec zaměření tohoto článku, ale nepochybně byly ve zdrojových datech i materiály chráněné autorským právem. Ačkoli je jen malá šance, že by takový obsah byl doslovně použit ve vygenerovaném obsahu, OpenAI tuto možnost připouští a skrze program “Copyright Shield” nabízí vlastníkům enterprise licence a uživatelům API proplacení právního zastoupení pro takové případy. A stejně jako Tabnine se ChatGPT vzdává odpovědnosti za případné škody způsobené vygenerovaným obsahem12. (mimochodem, v době psaní článku jsem zmínku o Copyright Shield nenašel v žádných smluvních podmínkách ChatGPT).
Pokud jste dávali pozor, tak jste si zajisté všimli toho, že jsem na začátku mluvil o čtyřech nástrojích, ale v jednotlivých bodech jsem pak rozebíral jen tři. Důvod je k tomu jednoduchý: Google tyto otázky nikde neřeší. Proto bych se přiklonil k bezpečné variantě a při používání Google Bard očekával to nejhorší, byť s jistotou nic z toho nevíme.
Co se používání uživatelských dat a učení z nich týče, jsou ošetřeny v dokumentu “Smluvní podmínky společnosti Google” a ty z mého pohledu dost jasně říkají, že Google může používat uživatelská data pro zlepšování svých služeb. O duševním vlastnictví vygenerovaného obsahu jsem v podmínkách nenašel ani slovo.
První důležitá věc, kterou má většina AI nástrojů společnou je, že veškerý originální obsah jimi vygenerovaný patří výhradně uživateli. Ale také jsou v naprosté většině případů velmi opatrné a na uživateli nechávají za tento obsah i veškerou odpovědnost – a to včetně problémů uživateli neznámých, jako je doslovné použití zdrojových materiálů.
U nástrojů zaměřených specificky na programátory (GitHub Copilot, Tabnine) je pak zjevná snaha o ochranu uživatelských dat, včetně příslibu, že se na straně copilotů data neukládají a že se na nich copiloti neučí. U chatovacích nástrojů jako ChatGPT je ochrana dat již složitější, ačkoli ten zrovna nabízí škálu nastavení a use casů, o nichž tvrdí, že se z nich model učit nebude.
Pravdou ale je, že implementace všech těchto nástrojů je uzavřená a my na ni nevidíme. V minulosti se již mnohokrát ukázalo, že může být velký rozkol mezi tím, co korporace tvrdí, že s našimi daty dělají, a co se nimi ve skutečnosti děje a tak je nutné brát i jejich sliby v kontextu AI nástrojů s rezervou. Zde můžu poradit jen pečlivé dodržování bezpečnostních zásad a selského rozumu. Nedržet hesla a jiná tajemství v programové základně, neposkytovat je ani jako uživatelská data chatu atp.