Miért érdemes a "prompt mérn?kséget" mindenkinek gyakorolnia?
Nem érdekel a mesterséges intelligencia, a chatGPT, Dall-E és hasonlók? Múló hülyeségnek tartod a promptok írásának "tudományát"? Még akár igazad lehet! Ennek ellenére a promptok írásának gyakorlása, a vele járó frusztráció, ?r?m hatékonyabbá teheti a kommunikációdat, komoly plusszot hozhat neked egészen más területen is. Err?l beszélgettem a chatGPT-vel...
Gábor:
Szeretném bemutatni, hogy a "prompt engineering" megtanulása azért is hasznos lehet, mert ráveszi az embert arra, hogy pontosan, egyértelm?en fogalmazzon meg tennivalókat, feladatot. Ez akkor is hasznos lehet, ha az ember egy másik emberrel, mondjuk egy kollégájával beszél. Tudnál egy t?bb lépéses példát alkotni, ami lépésenként bemutatja, hogy egy lazán megfogalmazott feladatot hogyan értenél félre, és lépésenként hogyan lehetne ezt finomítani a prompt pontosításával?
ChatGPT:
Nagyszer? gondolat! A "prompt engineering" lényege tényleg az, hogy világos és egyértelm? legyen a kommunikáció, ami nemcsak a gépekkel, de emberekkel való együttm?k?dés során is kulcsfontosságú. Mutatok egy példát lépésenként, hogy hogyan lehet egy homályosan megfogalmazott utasítást félreérteni, majd finomítani a promptot, hogy egyértelm? legyen a feladat.
1. Els? verzió – Homályos utasítás
2. Második verzió – Kis pontosítás
3. Harmadik verzió – Projekt és id?szak meghatározása
4. Negyedik verzió – Adatok specifikálása
5. ?t?dik verzió – Végs?, pontosított utasítás
?sszegzés
A példában látható, hogy a lazán megfogalmazott utasításból fokozatosan egy világos, egyértelm? feladat lett, ami minimalizálja a félreértéseket. Ez a fajta finomítás a mindennapi kommunikációban is hasznos, nemcsak a mesterséges intelligencia számára.
Gábor:
Tudsz egy hasonló példát mutatni, de kód generálás példára. Legyen persze egyszer? a feladat, hogy még a végleges, pontos kód se legyen hosszú. Nem a hossza lényeg, hanem a pontos feladat megfogalazás. Azért az els?, leghomályosabb feladat megfogalmazás is legyen olyan, hogy lehessen kódot írni hozzá. Add meg a kódokat is!
ChatGPT:
Nagyon jó feladat! Az alábbiakban egy egyszer? Python feladat példáján keresztül mutatom be, hogyan lehet egy homályos feladatból pontos, egyértelm? kódgenerálási kérést megfogalmazni, lépésr?l lépésre.
1. Els? verzió – Homályos utasítás
# Két számot ad ?ssze
a = 5
b = 10
print(a + b)
2. Második verzió – Kis pontosítás
# Lista elemeit adja ?ssze
numbers = [1, 2, 3, 4, 5]
print(sum(numbers))
3. Harmadik verzió – Adatok specifikálása
# Lista elemeit adja ?ssze és kiírja az eredményt
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print("A lista elemeinek ?sszege:", total)
4. Negyedik verzió – Hibakezelés és pontosítás
# Csak egész számokat ad ?ssze a listából
numbers = [1, 2, "hello", 3.5, 4, 5]
total = sum(num for num in numbers if isinstance(num, int))
print("Az egész számok ?sszege:", total)
5. ?t?dik verzió – Végs?, pontosított utasítás
numbers = [1, 2, "hello", 3.5, 4, 5]
total = sum(num for num in numbers if isinstance(num, int))
if total > 0:
print(f"Az egész számok ?sszege: {total}")
else:
print("Nincs ?sszesíthet? egész szám")
?sszegzés
Az elején homályosan megfogalmazott kérésb?l egy pontos, egyértelm? feladat lett, amely konkrét eredményt és hibakezelést is megad. A pontosítás segít abban, hogy a program megfeleljen az elvárásoknak, és minimalizálja a félreértéseket – mind a kódban, mind a kollégák k?zti kommunikációban.
Gábor:
Nem rossz! Tudnál egy példát, ami azért kicsit életszer?bb ennél? Gondolkodj nyugodtan :)
ChatGPT said:
Persze! ?rül?k, hogy tetszett az el?z? példa, és most hozok egy életszer?bb feladatot, amit gyakran használnak valós helyzetekben. Mondjuk, egy adatfeldolgozással kapcsolatos problémát, ami egy riport készítéséhez vagy adatelemzéshez kapcsolódik. Itt is fontos lesz a pontos feladatmeghatározás.
1. Els? verzió – Homályos utasítás
import csv
with open('adatok.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)
Mi a probléma? Csak beolvassuk a CSV fájlt és kiírjuk a sorokat, de nem derül ki, mi a cél, mit kell kezdeni az adatokkal.
2. Második verzió – Kis pontosítás
import csv
with open('adatok.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
total = 0
for row in reader:
total += int(row['mennyiség']) # Feltételezzük, hogy a 'mennyiség' oszlopot kell ?sszeadni
print("?sszesen:", total)
Mi a probléma? Feltételeztem, hogy a ?mennyiség” oszlop az, amit ?ssze kell adni, de ez nem derült ki egyértelm?en az utasításból.
3. Harmadik verzió – Adatok specifikálása
import csv
with open('adatok.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
total = 0
for row in reader:
try:
total += int(row['eladott_mennyiség'])
except ValueError:
print(f"Hibás adat: {row['eladott_mennyiség']}")
print("?sszes eladott mennyiség:", total)
Mi a probléma? Most már kezeljük a hibás adatokat is, de nem tisztázott, hogy mi legyen a hibás sorokkal. Kiírjuk, hogy hibás adat van, de elég ez?
4. Negyedik verzió – Hibakezelés és pontosítás
import csv
with open('adatok.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
total = 0
skipped_rows = 0
for row in reader:
try:
total += int(row['eladott_mennyiség'])
except ValueError:
skipped_rows += 1
print(f"?sszes eladott mennyiség: {total}")
print(f"Kihagyott sorok száma: {skipped_rows}")
Mi a probléma? Már van hibakezelés és jelezzük a kihagyott sorokat, de nincs vizuális vagy formázott kimenet. Lehet, hogy egy riportban szebb kimenetre lenne szükség.
5. ?t?dik verzió – Végs?, pontosított utasítás
import csv
with open('adatok.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
total = 0
skipped_rows = 0
valid_rows = 0
for row in reader:
try:
total += int(row['eladott_mennyiség'])
valid_rows += 1
except ValueError:
skipped_rows += 1
if valid_rows > 0:
print(f"?sszes eladott mennyiség: {total}, Kihagyott sorok: {skipped_rows}")
else:
print("Nincs eladott mennyiség.")
?sszegzés
Egy egyszer? adatfeldolgozási feladat homályos megfogalmazásából egy egyértelm?, részletes utasítássá fejl?d?tt a feladat, ami pontos hibakezelést, formázást és riportot is tartalmaz. Ez a pontosítás nemcsak a gépek számára fontos, hanem az emberi kommunikációban is segít elkerülni a félreértéseket, kül?n?sen, ha komplexebb feladatokról van szó.
Gábor:
Ez jó! Az utolsó verziót futtasd is le példa CSV fájllal!
ChatGPT:
A program sikeresen lefutott! A feldolgozott példa CSV fájl alapján az eredmény:
Ez azt jelenti, hogy két sorban hibás vagy hiányzó adat volt az "eladott_mennyiség" oszlopban, így azokat figyelmen kívül hagytuk.
Gábor:
Azt hiszem, jól j?n ehhez a gyakorlathoz Sam Altman megjegyzése:
“I don’t think we’ll still be doing prompt engineering in five years… I just hope it’s not figuring out how to hack the prompt by adding one magic word to the end that changes everything else. What will matter is the quality of ideas and the understanding of what you want. So the artist will still do the best with image generation but not because they figured out to add this one magic word at the end of it. Because they were just able to articulate it with a creative eye that I don’t have.“
ChatGPT:
Igen, Sam Altman megjegyzése nagyon jól rávilágít arra, hogy a j?v?ben a "prompt engineering" inkább az ?tletek min?ségér?l és az egyértelm? kommunikációról fog szólni, nem pedig arról, hogy ügyesen ?sszeállítunk egy "varázs-szót". Ahogy az AI fejl?dik, a technológia egyre inkább azt várja majd t?lünk, hogy jól meg tudjuk fogalmazni a kívánt eredményt.
Az igazi érték tehát nem az lesz, hogy hogyan ?hackeljük” meg a promptot, hanem hogy képesek legyünk világosan és kreatívan kifejezni azt, amit látni, hallani, vagy elérni szeretnénk. Azok, akik jobban tudják strukturálni az ?tleteiket és egyértelm?en megfogalmazni az elvárásaikat, el?nyben lesznek. Ez kicsit hasonló ahhoz, amit a kódírásnál is láttunk: a végs? cél a pontos, egyértelm? kommunikáció, legyen szó akár emberekr?l, akár AI-ról.
Altman szerint tehát a kreativitás és a tiszta megértés lesz az, ami igazán fontos marad hosszú távon.