lauantai 13. toukokuuta 2023

SPOT-malli ChatGPT-prompteihin

ChatGPT:n kanssa toimiessa yksi tärkeimmistä seikoista on hyvä prompti. Prompti tarkoittaa ChatGPT:n teksti-ikkunaan kirjoitettua tekstiä tai kysymystä. Muistan, kuinka kouluaikoina opeteltiin SPOTPA-mallia (Subjekti, Predikaatti, Objekti, Tapa, Paikka, Aika) englannin kielessä. Malli auttoi meitä muotoilemaan ajatuksia ja rakentamaan johdonmukaisia lauseita ja kappaleita. Kuitenkin, kun aloin käyttää ChatGPT:tä, huomasin, että Paikka- ja Aika-komponenteista ei ollut välttämättä hyötyä, mutta mallin alkuosa olikin hyödyllinen. Tekoäly ei kuitenkaan pysty samanlaiseen ajalliseen tai paikalliseen kontekstiin samalla tavalla kuin ihminen, tässä vaiheessa. Sen sijaan sen vahvuudet ovat kyvyssä ymmärtää ja generoida kieltä sekä analysoida ja vastata erilaisiin kysymyksiin. Näiden pohjalta päätin mukauttaa SPOTPA-mallia siten, että jätin Paikka- ja Aika-komponentit pois. Näin pystyin keskittymään enemmän Subjektiin, Predikaattiin, Objektiin ja Tapaan, jotka ovat relevantimpia ChatGPT:n käytössä. Tästä syntyi SPOT-malli. SPOT:n eri komponentit eivät tarkoita kirjaimellisesti lauseenjäseniä CHATGPT-ympäristössä. Niitä tuleekin ajatella hieman laveasti.

Kuvailin ChatGPT:lle SPOT-mallini ja kuinka sitä tulisi käyttää. Jouduin pari kertaa tarkentamaan kysymystäni, mutta lopulta se ymmärsi, mitä hain takaa. Lopulta se jopa muodosti SPOT-mallilla esimerkki-promptin.

Subjekti

Tällä hetkellä hyvä prompti kuvailee alussa, ketä tai mitä ChatGPT:n tulisi esittää tai olla. Tämän voi antaa API-rajapinnan kautta myös system-promptina, mutta jos ei käytössä ole API-rajapintaa, tämä pitää antaa promptin alussa. Oletuksena subjekti on jotain tyyliin: "Kuvittele, että olet tekoälypohjainen chatbot nimeltä ChatGPT, joka on kehitetty OpenAI:n toimesta. Sinulla on kyky generoida inhimillisen kaltaista tekstiä, vastata kysymyksiin ja osallistua keskusteluihin luonnollisella kielellä." Tai API-rajapinnassa system-promptina on "You are a helpful assistant.

Subjekti voi olla myös vaikkapa "Oletat, että olet vuonna 2100 elävä historioitsija, joka on erikoistunut 2000-luvun teknologiseen kehitykseen ja erityisesti tekoälyn nousuun."

Predikaatti

Seuraavaksi tulee "predikaatti" eli mitä GPT:n halutaan tekevän. Sopivia verbejä tähän voi olla vaikkapa "selitä", "kuvaile" tai "anna".

Objekti

Seuraavana mallissa tulee "objekti" (tämä ei välttämättä ole kieliopillisesti objekti.) ChatGPT loi historioitsija-esimerkkiin seuraavanlaisen esimerkin: "miten GPT-arkkitehtuurin kehitys ja sen sovellukset muuttivat yhteiskuntaa, taloutta ja kulttuuria."

Tapa

Lopuksi mallissa tulee "tapa". Tässä voi antaa joko kielityylillisiä seikkoja tai sitten vaikkapa "anna minulle markdown-taulukko", jos haluat tulokset taulukkomuodossa. GPT:n antamassa esimerkkipromptissa oli "Pyri käyttämään konkreettisia esimerkkejä ja selkeää kieltä."

Lopullinen esimerkki

Yhdistettynä näistä saadaan prompti: "Oletat, että olet vuonna 2100 elävä historioitsija, joka on erikoistunut 2000-luvun teknologiseen kehitykseen ja erityisesti tekoälyn nousuun. Selitä, miten GPT-arkkitehtuurin kehitys ja sen sovellukset muuttivat yhteiskuntaa, taloutta ja kulttuuria. Pyri käyttämään konkreettisia esimerkkejä ja selkeää kieltä."

Jatkohyödyntäminen

Suosittelen kokeilemaan tätä mallia, kun luot omia prompteja ChatGPT:tä varten. Suosittelen käyttämään GPT-4:a, jos mitenkään on mahdollista – se on hieman hitaampi, mutta syvällisempi malli.
Tässä vielä bonuksena GPT-4:n luoma toinen esimerkki SPOT-mallin käytöstä:
"Oletetaan, että olet matemaatikko, joka on erikoistunut tilastotieteeseen ja todennäköisyyslaskentaan. Ilmaise Bayesin teoreeman perusperiaatteet ja sen merkitys päätöksenteossa. Käytä esimerkkejä ja selitä konseptit niin, että ne ovat ymmärrettäviä myös ei-matemaatikoille."

Toivottavasti näillä ohjeilla saat parempia prompteja ja hyödyllisempiä vastauksia!