Miroslav Holec
Premium

Kompletní přehled: OpenAI GPT a implementace v .NET

Miroslav Holec   8. srpna 2023

Přestože aplikací založených na AI (artificial intelligence) existuje již delší dobu mnoho a sám Microsoft vývojářům v Azure dlouhé roky poskytuje zajímavou sadu Cognitive Services, skutečný zájem o AI se akceleroval až s nedávným updatem GPT od OpenAI. Pojďme se podívat na vývojářské minimum, co by měl každý vědět.

Historie a souvislosti (OpenAI & Microsoft)

Jak jsem již naznačil, Microsoft patří v oblasti AI mezi průkopníky a v posledních letech nás poměrně dobře zásobuje různými technologiemi. Platformu pro strojové učení spustil veřejně již v roce 2015, nicméně bez velkého množství dat pro běžného Karla vývojáře nebyla příliš užitečná. Situace se postupně zlepšila, protože Microsoft řadu natrénovaných modelů zpřístupnil vývojářům v rámci Azure Cognitive Services. Obyčejné Azure Face API například dokázalo z fotografie určit objekty, osoby a jejich pohlaví, věk i emoce.

img

Od roku 2019 Microsoft zároveň kooperuje se společností OpenAI. Základem spolupráce je zejména poskytnutí výpočetního výkonu ze strany Microsoftu skrze platformu Azure. Začátkem roku 2023 Microsoft oznámil rozšíření spolupráce s OpenAI. Pro vývojáře na Microsoft platformě je to dobrá zpráva, protože k GPT máme přístup jak skrze Azure OpenAI Service, tak skrze produkty jako Github Copilot. O tyto služby nyní vzrostl zájem a protože "AI" nyní firmy hodně zajímá, Microsoft v rámci konference Inspire oznámil nové názvy celé kognitivní smečky služeb (shrnutí zde). Nově zde tedy máme Azure AI services.

image-20230801094910358

Příchod GPT 4 a vliv na business

Využití AI osobně kategorizuji do oblastí: text, zvuk, grafika a video. Mezi oblastmi máme i různé spojky (například text na zvuk a naopak). Oblast textu je zpravidla nejjednodušší, výpočetně nejméně náročná, nejlevnější a nejpřístupnější. Právě textu se věnuji v tomto článku.

Základním (a ne jediným) reprezentantem je Generative Pre-trained Transformer (GPT), který byl v roce 2018 představen společností OpenAI. Jedná se o systém umělé inteligence postavený na modelu zpracování přirozeného jazyka (NLP). Chování těchto modelů je ovlivněné skrze parametry, které se učí z dat během trénování modelu a mají kritický vliv na kvalitu výsledků generování. Čím více parametrů a dat, tím lépe natrénovaný model.

Pro srovnání:

  • GPT-1, 2018 má 117 milionů parametrů
  • GPT-2, 2019 má 1.5 bilionů parametrů
  • GPT-3, 2020 má 175 bilionů parametrů
  • GPT-4, 2023 má 100+ trilionů parametrů
GPT verze a počet parametrů

Doplňuji, že počty parametrů se dle různých zdrojů nepatrně liší a hodnota pro GPT-4 byla dokonce ze strany OpenAI vyvrácena. Z počtu parametrů je zřejmé, jak velké kvalitativní skoky ve výstupech jednotlivé verze GPT přináší. Na grafu jsem musel použít logaritmické měřítko.

GPT 3.5 Turbo, který byl zpřístupněn v uplynulém roce a GPT 4 ze začátku roku 2023 (s omezeným přístupem) si získal velký zájem veřejnosti.

Nové přerozdělování trhu

Aneb od digitální přes chytré až po AI

Firmy vidí v AI potenciál a implementace umělé inteligence do současných produktů bude pro business naprosto zásadní. Ať už jsou nyní segmenty trhu rozdělené jakkoliv, implementace vs. ignorace AI může situaci na trhu radikálně změnit. Nejjednodušší je začít právě s GPT 3.5/4 a najít pro tento model využití v podnikání. Zde bych se rád pozastavil. Nejen GPT, ale obecně AI z mého pohledu neřeší žádný reálný problém. Není to něco, bez čeho bychom nedokázali existovat a v mnoha případech nám ani nepomůže. Například českému zdravotnictví by dle mého názoru pomohlo především soustředit a systematicky sdílet data mnohem více než umělá inteligence sama o sobě. Kde nejsou data, tam pšenka nekvete a je úplně jedno, zda používáme statický kód nebo dokonalý model. AI ale přináší příležitosti. Pokud bychom měli v dané oblasti dostatek dat pro trénování a též dostatek vstupů pro vyhodnocení (například komplexní zdravotní kartu osoby), znamenal by AI naprostý průlom. Ostatně z tohoto pohledu by AI mohlo řídit i celý stát a dost možná to tak v budoucnu bude.

Ale zpět do současnosti. Dnes žijeme v komercializovaném světě a prodejci nás budou chtít přesvědčit, že dosavadní produkty bez AI jsou bezcenný šrot a že v zásadě všechno budeme muset nahradit něčím s přívlastkem AI. Ostatně jsme to samé zažili v rámci digitalizace (digitální hodinky a digitální váhy) nebo "smartizace" (chytré hodinky a chytré váhy). Nyní nás čeká "aizace".

Téměř jistě vzniknou specializované profese, které budou hledat čistě jen business příležitosti pro aplikaci AI do stávajících produktů. Jak to bude vypadat v praxi? Napadá mě:

  • při vytváření reklamní kampaně nám aplikace rovnou navrhne obsah
  • AI váha odešle data do cloudu a na základě AI dostaneme různá doporučení
  • CRM systém rozpozná naše chování a automaticky například provede úkony
  • zpravodajský portál článek zkrátí nebo prodlouží podle profilu čtenáře
  • hudba bude vznikat personalizovaná (tempo, rytmus, styl, nástroje, délka, nálada)
  • filmy si nebudeme vybírat ale generovat na základě přání
  • nepřátelé v hrách "navnímají" naše chování a budou nás více překvapovat
  • auto nám doporučí na určitém úseku zpomalit, protože to od rána dělají jiní řidiči
  • na telefon pošleme textovou zprávu a druhé straně se zobrazí náš mluvící avatar

Řada "nápadů" už pravděpodobně existuje buď bez AI nebo někde v laboratoři. Ale nejsou ještě tolik rozšířené, protože práce s obrazem není levná a instantní. Generovat video stojí čas nebo výpočetní výkon a dokud některé nápady nefungují v téměř reálném čase, nejsou pro business příliš zajímavé.

Mýty o AI a reálné hrozby

Považuji za důležité zdůraznit a vyvrátit některé mýty, které jsou z dosavadního textu asi jasné. AI nás nepřipraví o zaměstnání. Naopak díky AI vzniknou nové specializované profese (stejně jako tomu bylo vždy doposud). Například weby už nevytváří jeden webmaster, ale desítky specialistů. Budeme potřebovat lidi, co AI budou vytvářet, hledat uplatnění AI v businessu, budou provádět integrace do aplikací a samozřejmě analýzu. Jen formulace správného dotazu do Chat GPT je celkem věda a zasloužil by si part-time. Umělá inteligence vstupuje do celé řady profesí a je v nejlepším zájmu zaměstnanců, aby se s tím naučili žít. Je to nicméně jen inovace a stejně jako v minulosti platí, že "buď se novým trendům přizpůsobíš, nebo přestaneš být na trhu práce zajímavý". Asi jako kdyby se o práci topenáře ucházel někdo, kdo má problém s plastovýma trubkama a odmítal si koupit nové nářadí.

Už z principu fungování je také jasné, že AI nezničí lidstvo a pokud ano, bude to v době daleké, až bude AI fungovat zcela jiným způsobem než je tomu nyní. Kartami může zamíchat obecná umělá inteligence o kterou usiluje i zmíněná OpenAI. Kdybych si chtěl představit cestu k destrukci lidstva, bylo by to možná právě skrze důvěru v AI a přenechání ji celé řady kompetencí, jako je již zmíněné řízení státu nebo určitých částí průmyslu. Pořád se ale bavíme o technologii, kterou můžeme metaforicky "vypojit ze zásuvky".

Ale není potřeba ani AI glorifikovat, protože nás nespasí a nezmění lidstvo k nepoznání. Bezesporu přinese změny, bude užitečná v akademické vědě a pomůže například s vývojem léků nebo v oblasti průmyslu. To potěší srdce každého, kdo má pocit, že genetického inženýrství je na světě stále ještě málo. Na druhé straně AI přináší i své problémy a hrozby. Nejsou existenciální, ale přesto nás budou trápit. A to hodně. Mně osobně to děsí zejména ve vztahu k bídné informační a technické gramostnosti lidí a zastaralému systému vzdělávání ve světě. Jinak bych nad tím asi mávnul rukou a souhlasně přikývl expertům, kteří tvrdí, že mnou níže popsané problémy už tu stejně v určité míře jsou.

Osobně rizika spojená s AI dělím do tří kategorií.

Bílá zóna - první kategorie je přirozená pro všechny inovace. Už skutečnost, že budeme nahrazovat dosavadní produkty novými znamená určité ekologické dopady. Dost věcí se zbavíme, abychom uvolnili místo novým. AI navíc bude stále náročnější na výkon a ten nám zajišťují opět stroje, jejichž provoz není bez zátěže životního prostředí možný. Našli bychom tisíce podobných bílých hrozeb. Už skutečnost, že se zaměstnanci musí učit dělat věci jiným způsobem může být pro někoho frustrující. AI tedy bude mít vliv na společnost jako celek. Asi ne zcela měřitelný, ale připraví nás o komfort. Už tím, že budeme přemýšlet o náhradě chytré váhy za tu "aizovanou". Je to ale v zásadě malá daň v porovnání s příležitostmi, takže pojďme nad tím mávnout rukou.

Šedá zóna - druhá kategorie už by nás měla znepokojovat více. I zde se můžeme poučit z minulosti. AI se stane pohonem mnoha aplikací, které nám budou doručovat zase cílenější reklamu. Pravděpodobně se stane reklama více personalizovaná (šitá na míru každé osobě). Na chatovací aplikaci se budeme seznamovat s robotem, aniž bychom to tušili. Vzniknou další chatovací aplikace jako Chat GPT, které budou populistické, extrémistické nebo konspirativní. Pro představu se můžete podívat na můj experiment s chatbot konspirátorem. Když už někdo bude ve svých produktech chtít AI použít, bude zkrátka hledat ne zcela čestné cesty, jak dosáhnout svých cílů. V zásadě nic nezákonného. AI je další dvousečná zbraň, se kterou můžeme krájet papriky nebo uřezávat hlavy. Uff.

Černá zóna - konečně třetí kategorie představuje zásadnější problém. Zejména v kombinaci s nízkou technicko-informační gramotností lidí. Pokud je dnes někdo schopen odevzdat přístup k bankovním účtům neznámé osobě, to samé se bude dít ve větší míře a v mnohem sofistikovanější podobě. Možná se Vám v telefonu ozve známý hlas vaší babičky, která potřebuje rychle poslat peníze na opravu domu. Zde už stojíme mimo zákon a AI představují ve špatných rukách silnou zbraň proti poctivým lidem. Je to vysoká daň za příležitosti, které nám AI přináší.

Šedé a černé hrozby by bylo možné do jisté míry eliminovat, kdybychom se pokusili použití AI obecně regulovat. Nemuselo by se přitom jednat o komplexní regulaci, ale pouze o deklaraci určitých zásad. Když ale vidím nekonečnou diskusi na úrovni EU, chápu, že cesta k regulaci by byla příliš dlouhá a na jejím konci by byla z pohledu rozvoje AI úspěšná jen Čína a Spojené státy. Evropa si nakonec pravděpodobně vezme ode všeho něco. Tedy budeme mít pozdě zavedené a nefunkční regulace a minimum inovací v oblasti umělé inteligence.

Když už známe vše podstatné o AI a historii GPT, dospějeme k jedinému závěru.

Není na co čekat. Jsme zase na startovní čáře. Jako vývojáři musíme vzít do rukou lopaty a začít prosévat bajty.

Implementace GPT

Z pohledu vývojáře na Microsoft platformě vidím dvě cesty implementace, které jsou víceméně rovnocenné:

  1. přímá implementace GPT skrze OpenAI API
  2. implementace GPT pomocí Azure OpenAI Service

Jako výhodu pro bod (1) vidím rychlejší přístup k novým modelům. Například přístup k GPT 4 jsem získal už před týdnem a u Azure OpenAI stále čekám (žádáno ve stejný den). Výhoda pro bod (2) je z mého pohledu šetrnější uchování dat (Microsoft je transparentnější). Pro obě cesty existují SDK v podobě NuGet balíčků.

  1. Azure.AI.OpenAI
  2. OpenAI

Zde je vítězem (2), protože Microsoft nabízí i v době psaní článku pouze NuGet balíček v beta6 verzi. Během mého zkoušení (beta5) navíc Microsoft balíček nepodporoval IAsyncEnumerable, takže vypisování výsledků není uživatelsky tolik přívětivé.

Implementace GPT krok za krokem

Udělal jsem video, ve kterém implementaci ukazuji krok za krokem. Doporučuji si vytvořit novou aplikaci a celý postup si vyzkoušet.

Vývojářské minimum

Z implementace je patrné, že jako vývojáři toho moc k řešení nemáme. V rámci komunikace zkrátka pošleme dotaz na API a zpracujeme odpověď. V ideálním případě s využitím rozhraní IAsyncEnumerable. Pokud ho ještě nepoužíváte, podívejte se na toto video, kde využití vysvětluji v praxi. Pojďme tedy na jediné tři oblasti, které si žádají vývojářskou pozornost:

Volba modelu - když zvolíme model GPT 3, dostaneme za nižší poplatky rychlejší, ale míně přesný výsledek. Jako zlatý standard lze považovat GPT 3.5 Turbo. Pro lepší výsledky za cenu pomalého generování a vyšších nákladů volíme GPT 4.

Nastavení modelu - zde je klíčová přesnost a kreativita. Buď dáme modelu větší volnost a dostaneme zajímavější výsledky, nebo ho trochu přiškrtíme a výsledky budou určitější.

Prompting - nakonec to nejtěžší. Prompt engineering je totiž kriticky důležitý vstup, na základě kterého dostaneme výsledek. Překlep, špatná formulace nebo záměna jednoho slova má na výsledky zcela zásadní vliv. Zde jako vývojáři strávíte zcela největší množství času. A s updatem a novou verzí modelu budete vždy na začátku.

Závěr

Abych byl stylový, tak závěr za mě napsal GPT-3.5.

Microsoft je průkopníkem v oblasti AI a poskytuje různé technologie pro strojové učení. Spolupracuje s OpenAI a umožňuje přístup k natrénovaným modelům skrze Azure Cognitive Services. Zájem o AI roste: Zájem o AI se zvýšil, a proto Microsoft oznámil nové názvy svých kognitivních služeb jako Azure AI services. Generative Pre-trained Transformer (GPT) je klíčovým nástrojem v oblasti AI pro zpracování přirozeného jazyka. Jeho úspěšnost závisí na množství parametrů a dat, které jsou použity během trénování modelu. AI má potenciál a implementace do současných produktů může mít zásadní dopad na business. GPT 3.5/4 je vnímán jako dobrý začátek pro začlenění AI do podnikání. Některé očekávání ohledně AI jsou nadhodnocené. Není to univerzální řešení a nevyřeší všechny problémy. Některé oblasti, jako zdravotnictví, vyžadují spíše sdílení a systematickou práci s daty než pouhé zavedení AI. Komercializace AI může vést k nadsazeným prodejním taktikám.

AI nepřipraví lidi o zaměstnání, naopak vytvoří nové specializované profese. AI nemá schopnost zničit lidstvo a bude užitečná v mnoha oblastech, ale není univerzálním řešením pro všechny problémy. Rozvoj AI bude mít ekologické dopady způsobené vyššími nároky na výpočetní výkon. AI také ovlivní společnost a způsob, jakým lidé pracují, a může narušit pohodlí, které jsme zvyklí. AI bude používána pro cílenější reklamu a vzniknou aplikace s potenciálem šířit populismus, extrémismus a konspirace. Kombinace AI a nízké technické gramotnosti může vést k podvodům a zneužití AI vytvořeného s cílem podvádět a okrádat lidi. Eliminace hrozeb by vyžadovala regulaci použití AI, což však může být obtížné. Je důležité, aby se lidé s AI seznámili a začali pracovat s touto technologií.