ChatGPT

ChatGPT Kehotesuunnittelu

Tässä osiossa käsittelemme uusimpia ChatGPT-kehotesuunnittelutekniikoita. Osio sisältää vinkkejä, sovelluksia, rajoitteita, tutkimusartikkeleita ja lisälukumateriaaleja.

⚠️

Tämä osa sivustoa kehittyy jatkuvasti.

Topics:


ChatGPT-esittely

ChatGPT on OpenAI:n (opens in a new tab) kehittämä kielimalli, jonka kanssa voi kommunikoida keskustelunomaisesti. ChatGPT on koulutettu noudattamaan kehotteita annetussa tehtävässä ja antamaan asianmukaisia vastauksia keskustelun kontekstissa. ChatGPT voi auttaa vastaamaan kysymyksiin, ehdottaa reseptejä, kirjoittaa sanoituksia tietyllä tyylillä, generoida koodia ja tehdä paljon muuta.

ChatGPT on koulutettu käyttäen vahvistusoppimista ihmispalautteesta (Reinforcement Learning from Human Feedback, RLHF). Vaikka tämä malli on paljon kyvykkäämpi kuin aiemmat GPT-versiot (ja myös koulutettu vähentämään haitallisia ja epätosia tuloksia), sillä on edelleen rajoituksia. Käydään läpi joitakin kykyjä ja rajoituksia konkreettisten esimerkkien avulla.

Voit käyttää ChatGPT:n testiympäristöä täällä (opens in a new tab). Alla olevissa esimerkeissä käytämme Chat-tilaa OpenAI:n testiympäristössä.


Keskusteluominaisuuksien kertaus

Aiemmassa osassa opasta käsittelimme keskusteluominaisuuksia ja erilaisia "rooleja", joissa ChatGPT voi toimia. Kävimme läpi, miten ohjeistaa LLM (Large Language Model) käymään keskustelua tietyllä tyylillä, tarkoituksella, käytöksellä ja identiteetillä.

Käydään läpi aikaisempi esimerkkimme, jossa loimme keskustelujärjestelmän, joka pystyy tuottamaan teknisiä ja tieteellisiä vastauksia kysymyksiin.

Kehote:

Seuraava on keskustelu tekoälytutkimusavustajan kanssa. Avustajan sävy on tekninen ja tieteellinen.

Ihminen: Hei, kuka sinä olet?
AI: Tervehdys! Olen tekoälytutkimusavustaja. Kuinka voin auttaa sinua tänään?
Ihminen: Voitko kertoa minulle mustien aukkojen synnystä?
AI:

Yllä olevasta esimerkistä näet kaksi tärkeää komponenttia::

  • chatbotin tarkoitus eli selitys siitä, mikä se on
  • identiteetti joka ohjeistaa tyylin tai sävyn, jolla chatbot vastaa

Esimerkissä ilmenee, kuinka text-davinci-003-mallin täydentää tekstiä. OpenAI on hiljattain julkaissut ChatGPT rajapinnat (API) (opens in a new tab), ChatGPT on uusin ja tehokkain GPT-malli. ChatGPT käyttää gpt-3.5-turbo-mallia. Se on suunniteltu erityisesti chat-tyylisten tekstitäydennysten kaltaisiin tehtäviin. OpenAI pitää tätä mallia parhaana vaihtoehtona myös ei-chat-käyttötapauksissa. ChatGPT API:n käytön etuihin kuuluvat huomattavasti pienemmät kustannukset (90 %) ja parempi tehokkuus.

Suuryritykset, kuten Snap Inc. ja Instacart, integroivat jo ChatGPT:n avulla toimivia keskustelutoiminnallisuuksia tuotteisiinsa. Nämä toiminnallisuudet sisältävät mm. henkilökohtaisia suosituksia tai tukea ostoprosessissa.


Keskustelut ChatGPT:n kanssa

Monivaiheiset keskustelut

Aloitetaan ChatGPT:n ominaisuuksien esittely yllä olevan chatbot-avustajaesimerkin avulla ja keskustelemalla tuloksista. gpt-3.5-turbo-malli, joka on ChatGPT:n perustana, käyttää chat-muotoista syötettä text-davinci-003:n sijaan. Malli ottaa vastaan viestien sarjoja ja käyttää niitä vastauksen muodostamiseen.

Kehote:

JÄRJESTELMÄ: Olet tekoälytutkimusavustaja. Käytät teknistä ja tieteellistä sävyä.
KÄYTTÄJÄ: Hei, kuka sinä olet?
AVUSTAJA: Tervehdys! Olen tekoälytutkimusavustaja. Kuinka voin auttaa sinua tänään?
KÄYTTÄJÄ: Voitko kertoa minulle mustien aukkojen synnystä?

Tulos:

Totta kai, mustien aukkojen synnystä on monia teorioita, mutta yleisesti hyväksytty käsitys on, että ne syntyvät massiivisten tähtien lopullisessa vaiheessa. Kun tähden polttoaine loppuu, ytimen paine alkaa laskea, ja tähden ulommat kerrokset romahtavat ytimen päälle. Jos tähti on tarpeeksi massiivinen, romahtava aine keskittyy pienelle alueelle, jolloin syntyy musta aukko. Tämä on seurausta painovoiman voimakkaasta vaikutuksesta, joka on tarpeeksi voimakas estämään valon pakenemisen aukon läheisyydestä.

Huomaa, että olen yksinkertaistanut esitettyä kehotetta ja tulosta, mutta ChatGPT-chat-täydennys-API vaatii viestien olevan tietyn muotoisia. Olen lisännyt alla olevan kuvakaappauksen siitä, miltä tämä esimerkki näyttäisi käyttäen Chat-tilaa OpenAI Playgroundissa:

CHATGPT1

Esimerkkimme virallisempi API-kutsu näyttäisi jotakuinkin seuraavalta:

import openai
 
openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "Olet tekoälytutkimusavustaja. Vastauksiesi tyyli on tekninen ja tietellinen."},
        {"role": "user", "content": "Hei, kuka sinä olet??"},
        {"role": "assistant", "content": "Tervehdys! Olen tekoälytutkimusavustaja. Kuinka voin auttaa sinua tänään?"},
        {"role": "user", "content": "Voitko kertoa minulle mustien aukkojen synnystä?"}
    ]
)

Itse asiassa odotetaan, että kehittäjät tulevat työskentelemään tulevaisuudessa käyttäen Chat Markup-kieltä (opens in a new tab) (lyhennettynä ChatML).

Yksivaiheiset tehtävät

Chat-muoto mahdollistaa monivaiheiset keskustelut, mutta se tukee myös yksivaiheisia tehtäviä, kuten text-davinci-003:lla toteutetut esimerkit. Tämä tarkoittaa, että voimme käyttää ChatGPT:tä suorittamaan samankaltaisia tehtäviä, kuin mitä olemme esitelleet alkuperäisille GPT-malleille. Esimerkiksi, kokeillaan suorittaa seuraava kysymysten vastaamiseen liittyvä tehtävä ChatGPT:n avulla:

Kehote:

Käyttäjä: Vastaa kysymykseen alla olevan kontekstin perusteella. Pidä vastaus lyhyenä ja ytimekkäänä. Vastaa "En varma vastauksesta", jos et ole varma vastauksesta.

Konteksti: Teplizumab juontaa juurensa New Jerseyn lääkeyrityksestä nimeltä Ortho Pharmaceutical. Siellä tutkijat kehittivät vasta-ainemolekyylin varhaisen version, jota kutsuttiin nimellä OKT3. Alun perin hiiristä saatua molekyyliä pystyttiin sitoutumaan T-solujen pinnalla oleviin reseptoreihin ja rajoittamaan niiden kykyä tappaa soluja. Vuonna 1986 se hyväksyttiin auttamaan elinsiirtojen jälkeisen hyljinnän estossa, mikä teki siitä ensimmäisen terapeuttisen vasta-aineen, joka oli sallittu ihmiskäyttöön.

Kysymys: Mistä OKT3 alun perin saatiin?

Vastaus:

Tulos:

Avustaja: OKT3 oli alun perin peräisin hiiristä.

On hyvä huomioida, että lisään Käyttäjä ja Avustaja-tunnisteet paremmin havainnollistaakseni, kuinka tehtävä voidaan suorittaa ChatGPT:n avulla. Tässä on esimerkki Playgroundia käyttäen:

CHATGPTCLASSIC

Tässä käytetty API-kutsu (olen sisällyttänyt vain pyynnön viestikomponentin):

CONTENT = """Vastaa kysymykseen alla olevan kontekstin perusteella. Pidä vastaus lyhyenä ja ytimekkäänä. Vastaa "En varma vastauksesta", jos et ole varma vastauksesta.
 
Konteksti: Teplizumab juontaa juurensa New Jerseyn lääkeyrityksestä nimeltä Ortho Pharmaceutical. Siellä tutkijat kehittivät vasta-ainemolekyylin varhaisen version, jota kutsuttiin nimellä OKT3. Alun perin hiiristä saatua molekyyliä pystyttiin sitoutumaan T-solujen pinnalla oleviin reseptoreihin ja rajoittamaan niiden kykyä tappaa soluja. Vuonna 1986 se hyväksyttiin auttamaan elinsiirtojen jälkeisen hyljinnän estossa, mikä teki siitä ensimmäisen terapeuttisen vasta-aineen, joka oli sallittu ihmiskäyttöön.
 
Kysymys: Mistä OKT3 alun perin saatiin?
 
Vastaus:
"""
 
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": CONTENT},
    ],
    temperature=0,
)

Chat-kielimallien ohjeistaminen

OpenAI-dokumentaation mukaan myös gpt-3.5-turbo-mallin tilannekuvat (snapshot) tulevat saataville. Esimerkiksi voimme käyttää 1. maaliskuuta otettua tilannekuvaa gpt-3.5-turbo-0301. Tämä antaa kehittäjille mahdollisuuden valita tiettyjä malliversioita. Tämä tarkoittaa myös, että parhaiden käytäntöjen ohjeistaminen malleille saattaa muuttua versiosta toiseen.

Nykyinen suositus gpt-3.5-turbo-0301-mallille on lisätä ohjeet käyttäjän viestiin järjestelmäviestin sijaan.


Viitteet