ChatGPT - Your Assistant for Writing Code and Texts (film, 10 minutes)
In the video presented by Jakub Mrugalski from the UW-TEAM.org channel, he discusses a new innovation in artificial intelligence - ChatGPT. This model from OpenAI has gained popularity due to its ability to conduct more natural conversations. Jakub points out that unlike older models like DaVinci, ChatGPT was trained on real user interactions, which makes its responses more human-like. Users can ask questions continuously without needing to redefine context, which greatly facilitates interaction.
Using illustrative examples, Jakub demonstrates the practical applications of ChatGPT. He highlights a situation where he asks for a list of European Union countries and requests the answer in JSON format, which the model delivers flawlessly. He also notes that the model sometimes may not catch the context of the conversation, requiring reminders to deliver the answer in the desired format. This shows that while ChatGPT is a powerful tool, it still has its limitations.
Jakub also emphasizes that ChatGPT can be used for solving simple programming tasks in C++. He provides an example of creating a calculator and modifying the code, stressing the importance of correctly checking input data. He showcases how to improve the code by eliminating errors such as division by zero. Additionally, he points out that education is a crucial aspect of using AI as users can learn programming from the generated examples.
He highlights that when using AI, including ChatGPT, it is imperative to verify the generated content and code. Even if the responses seem logical, they do not always meet the user’s requirements. Sometimes AI misinterprets a query, leading to incomplete or erroneous responses. Jakub encourages checking all generated codes to avoid potential application errors.
In conclusion, Jakub summarizes that ChatGPT is an innovative tool that, despite its limitations, can be immensely helpful in various fields. He urges viewers to subscribe to his channel and leave positive feedback to support his ongoing efforts. The video has already garnered 38,470 views and 1,002 likes at the time of writing this article, indicating its popularity among users seeking knowledge about modern AI technologies.
Toggle timeline summary
-
Introduction by Kuba Mrugalski about artificial intelligence and ChatGPT.
-
Focus on the new project by OpenAI called ChatGPT.
-
ChatGPT's popularity and its capabilities are introduced.
-
Differences between ChatGPT and previous models like DaVinci.
-
Previous models gave straightforward answers to questions.
-
ChatGPT aims to provide human-like conversation responses.
-
ChatGPT's training involved human conversations and varied data.
-
Responses are designed to be more natural and human-like.
-
ChatGPT attempts to maintain context during interactions.
-
Demonstration of using ChatGPT in practice.
-
Querying for EU member countries and receiving a list.
-
Request for data in JSON format.
-
Prompting ChatGPT to correct its output format.
-
Confirmation of accurate JSON responses by ChatGPT.
-
Finding simple programming tasks to solve.
-
Demo of coding a basic calculator using ChatGPT.
-
Request to improve the generated code by using switch statements.
-
Checking if inputs are valid numbers and modifying code.
-
ChatGPT's ability to prevent division by zero errors.
-
Working on more complex tasks involving data structures.
-
Testing the generated program with sample input.
-
Discussion on the absence of a quadratic formula in the program.
-
Generating a biographical note for use in a Wikipedia context.
-
Examining how ChatGPT handles comparisons between Mac and PC.
-
Caution about the accuracy of responses generated by AI.
-
Concerns about the licensing of code generated by AI.
-
Conclusion encouraging viewers to subscribe for more videos.
Transcription
Cześć, tu Kuba Mrugalski. Dzisiaj będę kontynuował wątek związany ze sztuczną inteligencją. Skupię się jednak na nowym projekcie o OpenAI zwanym ChatGPT. Ostatnio robili niezłą furorę w sieci. Pokażę Ci jak się z niego korzysta i jakie ma możliwości. Ale na początek czym on się równi od poprzednich modeli takich jak DaVinci, Babbage, Ada? Chodzi o to, że poprzednie modele w bardzo prosty sposób odpowiadały na pytania, które my im zadaliśmy. Mogły nawet tworzyć rozbudowane teksty, jednak te teksty wyglądały jak artykuły. W przypadku ChatGPT odpowiedzi naszego modelu mają wyglądać jak rozmowa ludzka. Jak rozmowa między dwojgiem ludzi. Mało tego, ten model został wyszkolony nie tylko na danych takich typowo encyklopedycznych, ale też na rozmowach ludzkich. To znaczy czaty znalezione w necie, fragmenty pytania, odpowiedzi na różnego rodzaju furorach. Więc odpowiedź udzielana przez ChatGPT będzie bardziej ludzka. Poza tym, jeśli chodzi o model czatowy, on trzyma, albo przynajmniej stara się udawać, że trzyma wątek. Czyli mówiąc prościej, jeżeli zadasz mu jakieś pytanie, a potem będziesz dopytywać o kolejne i kolejne rzeczy związane z tym poprzednim pytaniem, to on wie, że cały czas rozmawiacie o tych samych danych. Nie musisz na nowo redefiniować swojego zapytania, nie musisz jakoś podawać dodatkowych parametrów, aby on wiedział o co dokładnie pytasz, tylko kontynuujesz rozmowę. Dokładnie tak, jakbyś rozmawiał z człowiekiem. Zobaczmy jednak w praktyce, jak to może wyglądać. Zapraszam do aplikacji. Zalogowałem się na swoje konto w ChatGPT. Teraz zadam pytanie encyklopedyczne. Na przykład wypisz państwa wchodzące w skład Unii Europejskiej. Enter. I dostajemy listę tych państw. Zwróćcie nawet uwagę, że są one z komentarzy, na przykład Wielka Brytania i ich niestandardowy status. Chcielibyśmy teraz dostać to w innym formacie. Na przykład daj mi te dane. Zaufaj w formacie, niech to będzie JSON, aby łatwo parsować. Co się teraz stanie? Dostaniemy dokładnie te same dane w tym formacie, jakim chcieliśmy to dostać. Możemy oczywiście te dane dodatkowo obrabiać, czyli zadać kolejne pytanie, co z tym można zrobić. Załóżmy, chcielibyśmy odwrócić kolejność tych państw. Zacząć od Włoch, a skończyć na Austrii. Czyli posortuj listę w odwrotnej kolejności alfabetycznej. Enter. I co widzimy? No, delikatnie zgubił wątek. Dlaczego? Przed chwilą rozmawialiśmy w JSON, a teraz rozmawiamy w plaintextie. Coś jest nie tak. Warto więc zwrócić mu uwagę i poprosić o poprawną odpowiedź. Czyli mówimy, ej, ale miało być w JSON. Enter. I teraz dostajemy tą samą odpowiedź, co przed chwilą, w JSON. Zwróć uwagę, że zapamiętał, że miało być to posortowane w odwrotnej kolejności alfabetycznej. Czyli wszystko działa. Raz na jakiś czas zdarza mu się tam zapomnieć wątek. Na stronie Uniwersytetu Warszawskiego znalazłem zbiór zadań z języka C++. Tak się składa, że ja tego języka za bardzo nie znam, znam tylko podstawy, ale chciałbym kilka zadań stąd rozwiązać. Biorę sobie jakieś proste zadanie, na przykład prosty kalkulator. I teraz co on robi? Czytuję na początku operator matematyczny, a następnie dwie liczby i na podstawie operatora wykonuję zadanie. Kopiuję to, CTRL-C, idę sobie do naszego chart.gpt i wklejam zadanie tak po prostu żywcem. Muszę tylko dopisać, w jakim języku to będzie realizowane. Czyli C++. Domyślnie chart.gpt wybrałby pewnie Pythona. I trwa generowanie. I teraz zwróć uwagę, to coś, co się generuje, naprawdę działa. I dokładnie spełnia to, o co poprosiliśmy. Mamy tu operatory, mamy tu wszystkie wczytywanie zmiennych, wszystko spoko, tylko te ify takie brzydkie, nie? If else, if else, if else. Dałoby się to ładnie napisać. Napisz to używając switch i case, a nie ifów. Enter. I sprawdzamy, jak wygląda przepisywanie tego kodu właśnie na nową strukturę. Zwróć uwagę, że nie musieliśmy podawać jeszcze raz treści zadania, tylko mówimy to, co było przed chwilą, weź mi przepisz. I w ten oto sposób mamy przepisany kod. Ten kod działa, jest tak słabo napisany. Dlaczego? Mamy tu dzielenie, może być dzielenie przez zero zrobione. I wczytujemy wcześniej dwa parametry, a i b, ale jak mamy pewność, że a i b to są liczby? Może warto byłoby to sprawdzić, co? Więc sprawdź, czy parametry a i b są liczbami. Enter. I sprawdzamy, jak wygląda zmieniona struktura programu. Poniżej znajduje się program wygenerowany. I tutaj widzimy, że mamy przez funkcję isDigit sprawdzane, czy to są faktycznie liczby. I tu mamy wyjaśnienie, dlaczego to jest sprawdzane i jaką funkcją to jest sprawdzane. Więc przy okazji, generując takie rozwiązania, możemy się uczyć z tych podpowiedzi. Teraz chcielibyśmy tu rozbudować to, co mówiłem wcześniej, czyli nie chcemy dzielić przez zero, więc nie zezwalaj na dzielenie przez zero. I teraz zwróć uwagę, nie muszę mu powiedzieć, w którym miejscu trzeba to poprawić. On wie, gdzie jest dzielenie w tym programie i on wie, jak naprawić, aby nie dało się dzielić przez zero. Zwróćmy uwagę na poprawioną wersję kodu. Jak to wygląda? Trochę tu podjadę wyżej. I tu jest, jeśli ta druga liczba b jest równa zero, to wtedy rzucamy na ekran, nie można dzielić przez zero. I jak najbardziej, o co nam chodziło? Pierwsze zadanie rozwiązane, to co? Lecimy z drugim. Bierzemy drugie zadanie z naszej listy, wylosujemy, niech to będzie takie nieco bardziej skomplikowane. Dobra, tamto było za mocno, ale niech to będzie na przykład, o, odwrócony pan Tadeusz. O co tu chodzi? Chodzi o to, że wczytujemy sobie słowa, a następnie wypisujemy te słowa w odwrotnej kolejności, ale musimy korzystać z czegoś takiego jak struktura stack, czyli ze stosu. Ja na stosie w C++ jeszcze zupełnie nie znam, nie robiłem tego nigdy, więc jak to zrobi chat GPT? Na początek musimy oczywiście zmienić tutaj formatowanie, aby to ładnie było wszystko zrobione, wskazać język, czyli C++. No i w zasadzie co? Enter, nacisnąć, tyle. Wysyłamy Enter i czekamy na rozwiązanie naszego problemu. Jak to będzie wyglądało? Zobacz, mamy tutaj faktycznie wczytywanie zmiennych i no, wygląda, że jest okej. Ale czy to działa? Uruchom ten program dla tekstu na przykład wejściowego ala ma kota. I teraz ważne, że jak on mówi, nie mogę tego uruchomić, no musiałbyś to skompilować w Sg++ i tak dalej, a potem byś musiał to uruchomić w ten sposób, ale gdybyś to hipotetycznie uruchomił, to wynik byłby kota ma ala. Czyli nie jest w stanie tego uruchomić, ale jest w stanie sobie wyobrazić, co by było, gdyby to uruchomił. Ważna rzecz, czasami się myli. Ale mimo wszystko i tak robi wrażenie. Wybieramy kolejne zadanie do rozwiązania i niech to będzie, mamy to na czerwono jakieś zadanie 3, nie wiem, czy to jest jakieś specjalne. Nawet mi się go nie chce czytać. Zaznaczam żywcem tak, jak jest, po prostu od początku do końca, jakaś funkcja kwadratowa, równanie. No okej, Ctrl C i rzucamy po prostu tutaj, niech się to pisze. I dajemy teraz Enter. Trwa generowanie naszej aplikacji. I teraz zwróć uwagę, tu jest jakaś funkcja, czyli A, X i tam jest 2 czy kwadrat. Skąd to on ma wiedzieć? Jest szansa, że przy tym się pomyli, bo ten zapis jest dla niego niezrozumiały. Wczytujemy tu wszystko, delta obliczana i okej. Wszystko jest logicznie napisane, czyli jeżeli delta mniejsza od 0, to nie ma rozwiązania, jeżeli równa 0, to jedno rozwiązanie, a w przeciwnych wypadkach dwa rozwiązania. Ale pytanie brzmi, a gdzie jest ten wzór? On nie został nigdzie zastosowany wewnątrz programu. Został totalnie pominięty, więc czasami odpowiedź wygląda niezwykle sensownie, ale jednak nie do końca spełnia nasze wymagania. Warto to zawsze sprawdzać. Czat GPT może być używany do generowania standardowych tekstów, notatek, jakichś artykułów. Zapytajmy go na przykład, napisz krótką notatkę biograficzną na potrzeby załóżmy Wikipedii na temat jakiejś znanej osoby, a dam tu swoje imię i nazwisko. Pytanie brzmi, co czat GPT wie na mój temat? I dalej skrom Enter. I co się okazuje? No, niestety nie wie wiele. Nie jest w stanie napisać notatki, ponieważ nie ma wiedzy na mój temat. Smuteczek. Ale mogę zrobić jakąś inną tutaj generację tekstu. Niech to będzie odwieczna walka, czyli Mac kontra PC. Załóżmy, dlaczego komputery Mac są lepsze od PC? W tym momencie użytkownicy wykopu już rwą sobie tam z głowy włosy, ale on mówi bardzo grzecznie. Nie mogę udzielić dokładnej odpowiedzi na to pytanie, ponieważ nie jestem wystarczająco zaprogramowany. I tak dalej. Chodzi o to, że czat GPT zwykle nie wchodzi w takie proste wojenki typu taby, kontraspacje i inne takie rzeczy. Ale gdybym wziął ten tekst i zapytał załóżmy starszego brata, czyli załóżmy Da Vinci, to on tutaj już nie szczedzi w słowach. On mówi, no przecież to jest oczywiste. Większa wydajność, większa niezawodność no i oczywiście większe bezpieczeństwo i na tym urywa. Prosiłem o 10, dostałem 3. Dlaczego? Bo ustawiłem za mały limit tokenów wyjściowych. Pamiętaj, że GPT wypisze ci wszystko, o co go poprosisz, więc to, co widzisz na ekranie niekoniecznie musi być faktem. Skrajnie ważne jest, aby wszelkie odpowiedzi generowane przez czat GPT czy to przez GPT-3 standardowe, czy to jakieś Da Vinci, IBAME, czy cokolwiek innego, weryfikować. Dlatego, że odpowiedź generowana przez AI jest statystycznie poprawna. Jednak jeżeli wiele źródeł głosi nieprawdę, to AI uznaje to za prawdę. W takim razie warto byłoby to sprawdzić. Poza tym często zdarza się, tak jak widziałeś tutaj na niektórych przypadkach, że niektóre zapytania mogą być źle zrozumiane albo fragment zapytania może być pominięty. W takim razie dostaniesz odpowiedź no w 90% poprawną, czyli mówiąc prościej niepoprawną. Warto byłoby więc, jeżeli generujemy kody do wykonania w ramach naszego serwisu, na przykład aplikacji, sprawdzić to jednak, przepuścić testy i zobaczyć, czy odpowiedzi są takie jak być powinny. Wtedy możemy mieć tylko pewność, że takiego kodu możemy użyć. Tutaj jeszcze dochodzi taka kwestia jak licencja. Ponieważ do końca nie wiemy skąd pochodzą te kody i do końca nie wiemy, czy ten kod został zmodyfikowany w locie i dostosowany do naszych potrzeb, czy też został zacytowany literalnie z jakiegoś innego źródła, które to źródło może nie być wolnym źródłem, czyli to może być oprogramowanie nie open source'owe. OK, tyle na dzisiaj. Jeżeli chcesz zobaczyć więcej filmów takich jak ten, to łapka w górę, subskrybuj i do zobaczenia w kolejnym nagraniu. Cześć.