ChatGPT - Twój asystent do pisania kodu i tekstów (film, 10 minut)
W nocie przedstawionej przez Jakuba Mrugalskiego z kanału UW-TEAM.org, omawiana jest nowość w dziedzinie sztucznej inteligencji – ChatGPT. Jest to model OpenAI, który zdobył popularność dzięki swoim zdolnościom do prowadzenia bardziej naturalnych rozmów. Jakub zwraca uwagę na to, że w przeciwieństwie do starszych modeli, takich jak DaVinci, ChatGPT został przeszkolony na bazie rzeczywistych interakcji międzyludzkich, co sprawia, że jego odpowiedzi są bardziej ludzkie. Użytkownicy mogą zadawać pytania w sposób ciągły, bez potrzeby ponownego definiowania kontekstu, co znacznie ułatwia interakcję.
Dzięki ilustracyjnym przykładom Kuba pokazuje praktyczne zastosowania ChatGPT. Przywołuje sytuację, w której zadaje pytanie dotyczące krajów Unii Europejskiej i podaje prośbę o odpowiedź w formacie JSON, co model wykonuje bezbłędnie. Zauważa również, że czasami model może nie„złapać” kontekstu rozmowy, co wymaga przypomnienia, aby odpowiedź była dostarczona w pożądanym formacie. To pokazuje, że chociaż ChatGPT jest potężnym narzędziem, ma też swoje ograniczenia.
Jakub podkreśla również, że można korzystać z ChatGPT do rozwiązania prostych zadań programistycznych w C++. Daje przykład tworzenia kalkulatora, a także modyfikacji kodu, przy czym zwraca uwagę na istotność poprawnego sprawdzania danych wejściowych. Pokazuje, jak można poprawić kod, eliminując błędy, takie jak dzielenie przez zero. Ponadto, wskazuje, że edukacja jest nieodłącznym elementem korzystania z AI, ponieważ użytkownicy mogą uczyć się programowania z generowanych przez model przykładów.
Kuba podkreśla, że przy korzystaniu z AI, w tym ChatGPT, należy zawsze weryfikować generowane treści i kody. Nawet jeśli odpowiedzi wydają się logiczne, nie zawsze muszą być wymaganiami użytkownika. Zdarza się, że AI nie interpretuje zapytania dokładnie, co prowadzi do otrzymywania niekompletnych lub mylnych odpowiedzi. Jakub zachęca do sprawdzania wszystkich generowanych kodów, co pozwoli na uniknięcie ewentualnych błędów w działaniu aplikacji.
Na koniec Jakub podsumowuje, że ChatGPT to innowacyjne narzędzie, które, mimo swoich ograniczeń, może być niezwykle pomocne w różnych dziedzinach. Zachęca widzów do subskrybowania jego kanału oraz pozostawienia pozytywnych reakcji, aby wspierać jego dalszą działalność. Film zdobył już 38,470 wyświetleń oraz 1,002 polubienia w momencie pisania tego artykułu, co świadczy o jego popularności wśród użytkowników, szukających wiedzy o nowoczesnych technologiach AI.
Toggle timeline summary
-
Wprowadzenie przez Kubę Mrugalskiego na temat sztucznej inteligencji i ChatGPT.
-
Skupienie na nowym projekcie OpenAI o nazwie ChatGPT.
-
Popularność ChatGPT i jego możliwości są przedstawione.
-
Różnice między ChatGPT a poprzednimi modelami, takimi jak DaVinci.
-
Poprzednie modele dostarczały jednoznaczne odpowiedzi na pytania.
-
ChatGPT ma na celu zapewnienie odpowiedzi w rozmowach na poziomie ludzkim.
-
Trening ChatGPT obejmował rozmowy międzyludzkie i zróżnicowane dane.
-
Odpowiedzi są zaprojektowane, aby były bardziej naturalne i przypominające ludzkie.
-
ChatGPT stara się zachować kontekst podczas interakcji.
-
Demonstracja użycia ChatGPT w praktyce.
-
Zapytanie o państwa członkowskie UE i otrzymanie listy.
-
Żądanie danych w formacie JSON.
-
Zachęcanie ChatGPT do poprawienia formatu swojej odpowiedzi.
-
Potwierdzenie dokładnych odpowiedzi w formacie JSON przez ChatGPT.
-
Znajdowanie prostych zadań programistycznych do rozwiązania.
-
Demonstracja kodowania prostego kalkulatora za pomocą ChatGPT.
-
Prośba o poprawę wygenerowanego kodu przez użycie instrukcji switch.
-
Sprawdzanie, czy dane wejściowe są poprawnymi liczbami i modyfikowanie kodu.
-
Możliwość ChatGPT zapobiegająca dzieleniu przez zero.
-
Praca nad bardziej skomplikowanymi zadaniami związanymi z strukturami danych.
-
Testowanie wygenerowanego programu na przykładzie danych wejściowych.
-
Dyskusja na temat braku wzoru kwadratowego w programie.
-
Generowanie notatki biograficznej do użycia w kontekście Wikipedii.
-
Badanie, jak ChatGPT radzi sobie z porównaniami między Mac a PC.
-
Ostrzeżenie o dokładności odpowiedzi generowanych przez AI.
-
Obawy dotyczące licencjonowania kodu generowanego przez AI.
-
Zakończenie zachęcające widzów do subskrypcji w celu uzyskania kolejnych filmów.
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ść.