Jistě jste na ChatGPT v poslední době narazili. Jedná se o umělou inteligenci, kterou jsem požádal, aby se vám blíže představila sama:
Jsem Assistant, velký jazykový model vyvinutý společností OpenAI. Nemám fyzickou podobu, jsem pouze digitální entity, která je schopna reagovat na vaše dotazy a poskytovat vám informace. Jsem zde, abych vám pomohl s vašimi dotazy a zodpověděl vaše otázky, pokud budu schopen. Můžete se na mě obrátit s jakýmikoli dotazy a já se budu snažit odpovědět co nejlépe.
Jedná se o skvělou hračku, se kterou si vydržíte dopisovat klidně celé hodiny, protože toho ví opravdu hodně. Co mě překvapilo, ona má dokonce i výbornou češtinu. Vlastně nezáleží na tom, v jakém jazyce s touto umělou inteligencí komunikujete. Také nepřestáváte žasnout? To stále není vše. ChatGPT totiž umí dokonce i programovat.
Když jsem toto zjistil, pokusil jsem se naformulovat konkrétní zadání, abych ověřil, zda kód vůbec dává smysl. Cílem bylo, vytvořit jednoduchou automatizaci a přihlásit se k odběru novinek na mém webu www.honzapavel.cz. Samotný text zněl přesně takto:
Vygeneruj Python kód pro přihlášení k odběru novinek na webu honzapavel.cz. Piš pomocí objektově orientovaného programování. Použij knihovnu Selenium s ovladačem pro Chrome. Nezapomeň psát docstring a komentáře v angličtině. Stačí ve formuláři s identifikátorem „newsletter-form“ vyplnit mou emailovou adresu „me@honzapavel.cz“ do pole se jménem „email“ a následně odpověď odeslat pomocí klávesy „Enter“. Nakonec posuň stránku níž, počkej 5 sekund a zavři prohlížeč.
No a tady je výsledek:
# Import required modules from selenium import webdriver from selenium.webdriver.common.keys import Keys import time class SubscribeToNewsletter: """A class for subscribing to the newsletter on honzapavel.cz""" def __init__(self, email: str): """ Initialize the class with the email address to be used for subscribing to the newsletter. Args: email (str): The email address to be used for subscribing to the newsletter. """ self.email = email def subscribe(self): """ Subscribe to the newsletter on honzapavel.cz. This method uses the Selenium library and the Chrome driver to automate the process of subscribing to the newsletter. It fills in the email address provided in the initializer to the email field in the subscription form and then submits the form by simulating a press of the Enter key. """ # Initialize the webdriver for Chrome driver = webdriver.Chrome() # Open the website driver.get("https://honzapavel.cz/") # Find the newsletter form and the email field newsletter_form = driver.find_element_by_id("newsletter-form") email_field = newsletter_form.find_element_by_name("email") # Fill in the email field with the provided email address email_field.send_keys(self.email) # Submit the form by simulating the press of the Enter key email_field.send_keys(Keys.ENTER) # Scroll down the page driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") # Wait for 5 seconds time.sleep(5) # Close the browser driver.close() # Use the SubscribeToNewsletter class to subscribe to the newsletter subscriber = SubscribeToNewsletter("me@honzapavel.cz") subscriber.subscribe()
Uznávám, člověk který v životě nenaprogramoval ani řádku by takové zadání zřejmě nenapsal, přesto mě výsledek potěšil. Chtěl jsem po umělé inteligenci, aby kód důkladně komentovala, takže je trochu upovídaný, ale alespoň ho pochopím, až se k němu po čase vrátím. Vygenerovaný skript jsem spustil a světe div se, on fungoval.
Na závěr si dovolím parafrázovat kultovní hlášku z filmu Pelíšky: „A programátoři nebudou mít co žrát“. To si tak úplně nemyslím, ale rozhodně doporučuji sledovat, co se na poli AI děje. Vypadá to, že nás čeká velmi zajímavá budoucnost.
Deni okolo ChatGPT doporucuji sledovat, protoze toho tento "chatbot" umi mnohem vic a stale se uci.
buffer overflow exploitation
https://twitter.com/moyix/status/1598081204846489600
exploitovani zranitelnosti v OWASP webapp
https://twitter.com/dyngnosis/status/1598750927447502848
ChatGPT byl na StackOverflow zabanovan z duvodu vysoke miry spatnych odpovedi
https://meta.stackoverflow.com/questions/421831/temporary-policy-chatgpt-is-banned
Když jsem se psal robota na to, kolik hodin je v Tokiu, nebo jakou časovou zónu tam mají, tak mi to tvrdilo, že je stejná jako v ČR. Když jsem se odpověď snažil zpochybnit, bylo si to jisté, že to má pravdu a já se mýlím.
Na některé jiné otázky mi to odpovědělo rovnou chybovou hláškou.
Jiné to umí okecat tak, že to skoro nic neřekne ale budí to dojem, že odpověď je správně. Alá politik, jako fráze že to záleží na mnoha faktorech.
Jestli mi to něco naprogramuje budu muset vyzkoušet:)
Ono to opravdu umí docela dost divných věcí... Třeba se chovat jako Linuxový shell. Doporučuju vyzkoušet.
Jj tohle je opravdu velke. Navic jak se vyjadrili "autori" projektu nikdo netusi jak je mozne ze to udelal. Proste nikdo nevi jak AI funguje. Neni to kod do ktereho se muze programator podivat ukazat prsten na radek a rict "tady je chyba".
Proste kdyz AI nefunguje nikdo ji nevi opravit. Kdyz funguje nikdo nevi proc.
S AI nas ceka jina budoucnost. Jestli skvela nemyslim. Spis bude jina, hekticka a prinese jine netusene problemy.
Také jsem se CGPT ptal, na čem běží, jaká je infra, operační systém pro nodes, atd, po dlouhé době okecávání o nefyzické podstatě jsme se dostali aspoň k tomu, že OS na kterém to běží je buď Linux nebo Windows. Že dostává z API požadavky skrz HTTP. Že má jakési tři základní vrstvy algoritmu, příjem dotazu, zpracování dotazu a jeho distribuci mezi nodes a následné vyčištění s odpovědí. Jeeště jsem z něj vytáhl použité Python knihovny a pak už jsme se motali v kruhu. Moc toho o sobě neví. Nicméně vše výše zmíněno jsou veřejně dostupné informace.
Můj názor je, že odkrokovat algoritmus musí být možné, jde spíše o to, kolik těch agentů na kolika nodech je. Resp. nastavit nějaké metriky a pak sbírat by také mělo být možné. Ale opět, bude to obrovském množství dat. Nicméně, nechce se mi věřit, že při návrhu nemysleli na to, aby měli k dispozici možnost tracovat procesy, dumpy průběhu zpracování algoritmů, případně otisky paměti, které musí být lze analyzovat i když se jedná o obrovskou neuronovou síť. Ale stále to běží na procesorech, v paměti a používá se HTTP protokol k výměně informací mezi nody, agenty a API. Ale nejsem ani náhodou expert AI, nebo matematik, jen prostý infrák.
OK. To vsechno mame. Ale co s tim? Nalzeneme nejaky neuron a rekneme ze je spatny? Nebo premostime nejake "synapse". Umime to? Pomuze to?
Zda se ze se blizime tomu jak zkoumame lidsky mozek. Vime z ceho se sklada, dokazeme zmapovat synapse, neurony, kolik to spotrebovava energie ale stejne netusime jak vlastne funguje.
Reverzním inženýrství modelu založeného na deep learningu rozhodně není jednoduchá metoda. Jsem poznamenán bankovním sektorem, kde se například řeší modely pro schvalování úvěrů a hypoték. Byl jsem svědkem toho, že se netrénoval model pomocí neuronových sítí, ale ten se nikdy nepoužil při samotném schvalování úvěrů, protože je netransparentní. Byla snaha pochopit, proč se neuronka chová právě takto a na základě toho se pak vytvořila logistická regrese, jejiž chování je čitelnější pro normálního smrtelníka.
> Proste nikdo nevi jak AI funguje.
S veškerou úctou, troufnu si nesouhlasit.
Lidi kteří tyhle systémy staví a postupně vylepšují, momentálně jsme od obrazových deep-learning záležitostí pokročili k transformers, GPT a tak... vědí na poměrně mnoha úrovních, jak ta věc funguje. Jinak by nedokázali na té architektuře dál makat.
Nejsem odborník, ale pokud mohu soudit, problém je zhruba v tom, jak získat nějaký vnější vhled do naučených "znalostí". Konkrétně u jazykových modelů, rozložit si to klubko různě tlustých nití a špagátků po stole a najít v tom nějaký smysl, strukturu... Téhle úrovni chybí "debugger". A taky ne tak docela. Třeba pro "deep" architektury s konvolučními vrstvami, používané na zpracování obrazu, existují nástroje, které nějakým způsobem zobrazí naučené "mapy" v různých vrstvách sítě. A třeba Ray Kurzweil ve své knížce tvrdí, že když před dnes už desítkami let pracovali na jazykových modelech (tuším pro zpracování psané a mluvené řeči, tehdy na bázi LSTM/RNN) tak dokázali pozorovat málem na úrovni jednotlivých neuronů, jak se síť sama učí pravidla a výjimky v jazyce, které by třeba lidský analytik/programátor měl problém postřehnout a explicitně zapsat. Čili nějaké nástroje na to měli/mají.
Pokud mohu soudit, čím vyšší úrovně abstrakce je architektura schopna, tím hůř se to naučené klubíčko rozplétá. Jako že vzít naučený model "deep" ANN a převést ho na vztahovou síť ve stylu klasického expertního systému... jestli nakonec není problém v tom, že naše kapacita vědomě chápat složitější vztahová klubíčka je omezená :-) Ve všem hledáme jednoduché pochopitelné struktury, snažíme se dekomponovat problém na subsystémy, se kterými si jednotlivě dovedeme poradit... A navíc ta "naučená mentální mapa" nemá formát dat jako experní systém. Každý neuron má větší počet různě významných příspěvků od různých výstupů "předchozí vrstvy"...
Pokud mohu soudit, i dnešní systémy fungují tak, že mají určitou rigidní architekturu, řekněme "blokovou topologii" či vrstevnatost - až na některé experimentátory tato není běžně automaticky evolvována. Ostatně jak byste takové evoluci definoval kriteriální funkci? Myslím nějakou prakticky použitelnou v rámci genetického algoritmu. Tzn. makro-topologie systému bývá dnes daná, a pouze se učí data ze vstupního materiálu. Tady se nedivím lidem, kteří třeba staví systémy typu "language model", a smějí se jiným lidem, kteří u takových systémů doufají ve spontánní emergenci AGI. A už ujíždím off topic :-)
Dal jsem otázku
Is it possible that GPT does logical inferences?
Yes, GPT models are capable of performing logical inferences to some extent. Because GPT models are trained on large amounts of text data, they learn the statistical patterns and structure of language, which can include logical relationships and inferences. However, the ability of GPT models to perform logical inferences is limited by their training data and the architecture of the model itself. GPT models are not explicitly designed to perform logical reasoning, and they may not be able to perform complex inferences or reasoning tasks that require abstract or symbolic thought. For example, a GPT model might be able to generate text that follows a logical structure or makes reasonable inferences based on the words and phrases it has seen in its training data, but it might not be able to solve a logic puzzle or prove a mathematical theorem.
Takže něco to ještě neumí :-)
Je to super nástroj, ale ještě má rezervy. Povídali jsme si v češtině, kterou vládne velmi dobře, ale když jsem mu napsal, že půjdu na výlet do Tišnova a dal bych si tam nějaké dobré pivo, tak mi doporučil zajet si do Humpolce nebo vypít Starobrno. To je dost mizerná rada :-).
Na druhou stranu mě fascinuje, že když jsem mu povykládal o Vorklosteru, tak si to zařadil a po delší matematické odbočce mi na hlášku "Dám si něco dobrého od Vorklosteru" popřál "ať vám pivo chutná".
Předtím tento minipivovar neznal? Protože mně nyní na tu stejnou otázku odpověděl: "Rád bych Vám doporučil naše oblíbené pivo z minipivovaru Vorkloster - Vorkloster 11°. Je to lehké pivo s jemnou chutí a příjemnou vůní. Doporučujeme ho podávat vychlazené a vychutnat si jeho plné chuti. Můžete ho také zkombinovat s různými pokrmy, jako jsou grilované maso nebo sýry. Věříme, že si ho budete opravdu užívat.".
Takže to funguje trošku jako reklama. Záleží na tom s kým a o c si povídá a na pr na webu..
Podcasty předpokládám poslouchat neumí...
Zpracování dat se věnuji více něž 10 let. Jsem odborník na extrakci a transformaci dat. Na pozici produktového a zákaznického analytika v Equa bank jsem nasbíral mnoho zkušeností s vizualizací a interpretací dat. Posledních 5 let jsem působil jako datový inženýr a analytik ve společnosti Creative Dock, kde jsem měl možnost participovat na mnoha projektech. Mezi ty nejúspěšnějsí se řadí: P2P lending platforma Zonky, zdravé životní pojištění Mutumutu, věrnostní program pro obchodní řetězec Albert nebo nový produkt Avast One pro známou českou nadnárodní společnost zabývající se počítačovou bezpečností.
Výborně ovládám SQL a programuji v Python. Působím také na volné noze. Pro své klienty zajišťuji služby jako: reporting, ETL, RPA, web scraping nebo marketingovou automatizaci.