Kalkulacija u ChatGPT-u¶
Pokušaćemo da pomoću ChatGPT-a odgovorimo na pitanje s početka lekcije. Naš upit možemo da formulišemo služeći se običnim, svakodnevnim jezikom.
Premda je objašnjenje koje nam je dao ChatGPT ubedljivo, ne smemo ga prihvatiti bez zadrške. Jezički modeli nisu uvek tačni sa matematikom! Ovoga puta, ChatGPT nam je dao tačan rezultat. Međutim, ako mu postavimo isto pitanje ali sa nešto većim brojevima, možemo dobiti odgovor poput:
Poverite u kalkulatoru ili u Excel-u ovu računicu.
Ako ste to uradili, videli ste da je \(28923\cdot {321\over 100} = 92842.83\), a ne \(92944.83\), kako stoji u prvom delu odgovora koji je dao ChatGPT. Na kraju, umesto tačnog rezultata \(121765.83\), u odgovoru stoji \(121867.83\). Naime, jezički modeli vrše neku vrstu aproksimacije. Međutim, kada se nalazimo na polju egzaktnog računa, ne možemo tvrditi da se razlika između \(121765.83\) i \(121867.83\) jedva primećuje, nego jedino možemo utvrditi da je odgovor netačan.
Ako probate da pitanje iz primera postavite ChatGPT-u, verovatno ćete dobiti malo drugačije vrednosti, budući da je rezultat koji daju jezički modeli takođe u određenoj meri nasumičan. Ne isključujemo ni mogućnost da ćete dobiti tačan rezultat, uzimajući u obzir da se prilikom čestih unapređivanja modela uglavnom nastoji unaprediti i njihova numerička preciznost.
Generisanje programskog koda kao međukorak¶
Zadaćemo ChatGPT-u sledeću instrukciju:
upotrebi Python
ChatGPT može dati odgovor poput:
Kao što možete da primetite − rezultat je tačan. Objasnićemo vam šta je ChatGPT uradio drugačije ovoga puta. Ako ste odgledali video s početka lekcije ili ako ste ChatGPT-u zadali instrukciju iz primera, mogli ste da vidite poruku Analyzing dok ste čekali na odgovor:
Ova poruka koja se pojavila označava da je ChatGPT aktivirao funkcionalnost data analysis. Pored poruke Analyzing, aktivaciju ove funkcionalnosti možemo prepoznati i po maloj plavoj ikoni na kraju generisanog odgovora:
Klikom na tu ikonu prikazuje se parče koda u programskom jeziku Python:
# Definisanje početne cene i procenta poskupljenja
pocetna_cena = 28923
procenat_poskupljenja = 321
# Izračunavanje poskupljenja
poskupljenje = pocetna_cena * (procenat_poskupljenja / 100)
# Izračunavanje nove cene
nova_cena = pocetna_cena + poskupljenje
nova_cena
Funkcionalnost data analysis obuhvata: 1) generisanje programskog koda u jeziku Python, 2) izvršavanje generisanog koda, i 3) prikazivanje konačnog rezultata.
ChatGPT je mogao i za prvobitni odgovor da aktivira funkcionalnost data analysis, te bismo u tom slučaju verovatno spočetka dobili tačan rezultat. S vremenom ćete znati da prepoznate koje formulacije predstavljaju okidač za aktivaciju data analysis funkcionalnosti. Ovoga puta smo pokušali da, formulacijom upotrebi Python, budemo eksplicitni u svom zahtevu da se ta funkcionalnost aktivira.
Međutim, čak i u slučaju da nemamo mogućnost aktivacije data analysis funkcionalnosti, mogli smo od ChatGPT-a da tražimo da generiše Python kod koji izračunava ono što nam je potrebno, a da zatim taj kod samostalno izvršimo i na taj način dođemo do rezultata. Većina poznatih velikih jezičkih modela zna da generiše programski kod kada se to zahteva, a mi možemo samostalno da naknadno izvršimo generisani kod.
U istoj meri u kojoj se uzdamo u tačnost kalkulatora ili Excel-a, možemo se pouzdati i u Python da će tačno izračunati ono što od njega tražimo. Zašto smo onda naglasili da se i pored aktivacije data analysis funkcionalnosti verovatno dobija tačan odgovor?
Zato što je jezički model mogao da pogreši i prilikom generisanja samog koda. Ipak, s vedrije strane, mala je verovatnoća da će u jednostavnim primerima poput ovog doći do „nesporazuma” ili „halucinacije”, kako se to obično kaže. Osim toga, uvek se možemo osloniti na Python za računanje velikih brojeva. Međutim, ukoliko nam je tačnost rezultata važna, utoliko nam je neophodno da proverimo generisani kod.
Nisu nam potrebna posebna znanja o programskom jeziku Python da bismo u generisanom kodu koji smo gore prikazali jasno prepoznali matematičke formule. Ipak, izdvajamo pojedine specifičnosti koje uočavamo u generisanom kodu:
nazivi promenljivih mogu imati više od jednog slova,
koristi se zvezdica za množenje, kao i u Excel-ovim formulama,
postoje linije koje počinju „tarabicom”, tj. heš karakterom − to su komentari koji ništa ne znače prilikom izvršavanja i koji samo pomažu lakšem razumevanju koda,
na kraju koda je dodatno navedena promenljiva
nova_cena− ona je u vezi sa načinom na koji se kod izvršava, što ćemo objasniti u nastavku.