Kuinka työskennellä ChatGPT- ja GPT-4-mallien kanssa - Azure OpenAI -palvelu (2023)

  • Artikla

ChatGPT- ja GPT-4-mallit ovat kielimalleja, jotka on optimoitu keskusteluliittymille. Mallit käyttäytyvät eri tavalla kuin vanhemmat GPT-3-mallit. Aiemmat mallit olivat teksti sisään ja ulos, mikä tarkoittaa, että ne hyväksyivät kehotteen merkkijonon ja palauttivat täydennyksen lisättäväksi kehotteeseen. ChatGPT- ja GPT-4-mallit ovat kuitenkin keskustelun sisään ja viestien ulos. Mallit odottavat syötettä, joka on muotoiltu tiettyyn chat-tyyppiseen transkriptiomuotoon, ja palauttavat täydennyksen, joka edustaa mallin mukaan kirjoitettua viestiä chatissa. Vaikka tämä muoto on suunniteltu erityisesti usean vuorokauden keskusteluja varten, huomaat sen toimivan hyvin myös muissa kuin chatissa.

Azure OpenAI:ssa on kaksi eri vaihtoehtoa vuorovaikutukseen tämäntyyppisten mallien kanssa:

  • Chat Completion API.
  • Completion API chat Markup Language (ChatML).

Chat Completion API on uusi omistettu API, joka on tarkoitettu vuorovaikutukseen ChatGPT- ja GPT-4-mallien kanssa. Tämä API on ensisijainen tapa käyttää näitä malleja.Se on myös ainoa tapa päästä käsiksi uusiin GPT-4-malleihin.

ChatML käyttää samaatäydennyssovellusliittymäjota käytät muissa malleissa, kuten text-davinci-002, se vaatii ainutlaatuisen token-pohjaisen kehotemuodon, joka tunnetaan nimellä Chat Markup Language (ChatML). Tämä tarjoaa alhaisemman tason pääsyn kuin omistettu Chat Completion API, mutta vaatii myös lisäsyötteen vahvistusta, tukee vain ChatGPT (gpt-35-turbo) malleja jataustalla oleva muoto muuttuu todennäköisemmin ajan myötä.

Tämä artikkeli opastaa uusien ChatGPT- ja GPT-4-mallien käytön aloittamisessa. On tärkeää käyttää tässä kuvattuja tekniikoita saadaksesi parhaat tulokset. Jos yrität olla vuorovaikutuksessa mallien kanssa samalla tavalla kuin vanhemman mallisarjan kanssa, mallit ovat usein monisanaisia ​​ja antavat vähemmän hyödyllisiä vastauksia.

Työskentely ChatGPT- ja GPT-4-mallien kanssa

Seuraava koodinpätkä näyttää yksinkertaisimman tavan käyttää ChatGPT- ja GPT-4-malleja Chat Completion API:n kanssa. Jos tämä on ensimmäinen kerta, kun käytät näitä malleja ohjelmallisesti, suosittelemme aloittamaan mallistamme.

GPT-4-mallit ovat tällä hetkellä saatavilla vain pyynnöstä.Nykyiset Azure OpenAI -asiakkaat voivathae pääsyä täyttämällä tämä lomake.

import osimport openaiopenai.api_type = "azure"openai.api_version = "2023-05-15" openai.api_base = os.getenv("OPENAI_API_BASE") # Azure OpenAI -resurssi päätepiste value.openai.api_key = os.ENAIEY_PI("OP_ENAIEY_PI) ")response = openai.ChatCompletion.create( engine="gpt-35-turbo", # Käyttöönoton nimi, jonka valitsit, kun otit ChatGPT- tai GPT-4-mallin käyttöön. messages=[ {"role": "system", " content": "Assistant on OpenAI:n kouluttama suuri kielimalli."}, {"role": "user", "content": "Keitä olivat Microsoftin perustajat?"} ])print(response)print(response[ 'valinnat'][0]['viesti']['sisältö'])

Lähtö

{ "choices": [ { "finish_reason": "stop", "index": 0, "message": { "content": "Microsoftin perustajat ovat Bill Gates ja Paul Allen. He perustivat yrityksen vuonna 1975 .", "rooli": "avustaja" } } ], "luotu": 1679014551, "id": "chatcmpl-6usfn2yyjkbmESe3G4jaQR6bsScO1", "malli": "gpt-3.5-turbo-0301", "tcha" .completion", "usage": { "completion_tokens": 86, "prompt_tokens": 37, "total_tokens": 123 }}

Huomautus

Seuraavat parametrit eivät ole käytettävissä uusissa ChatGPT- ja GPT-4-malleissa:logprobs,paras, jakaiku. Jos asetat jonkin näistä parametreista, saat virheilmoituksen.

Jokainen vastaus sisältää alopetussyy. Mahdolliset arvot kohteellelopetussyyovat:

  • lopettaa: API palautti täydellisen mallitulosteen.
  • pituus: Epätäydellinen mallin lähtö max_tokens-parametrin tai merkkirajoituksen vuoksi.
  • content_filter: Sisältö jätetty pois sisältösuodattimiemme lipun vuoksi.
  • tyhjä:API-vastaus edelleen kesken tai keskeneräinen.

Harkitse asetustamax_tokenshieman normaalia korkeampaan arvoon, kuten 300 tai 500. Tämä varmistaa, että malli ei lopeta tekstin tuottamista ennen kuin se saavuttaa viestin loppuun.

Mallin versiointi

Huomautus

gpt-35-turbovastaagpt-3.5-turbomalli OpenAI:lta.

Toisin kuin aikaisemmissa GPT-3- ja GPT-3.5-malleissa,gpt-35-turbomalli sekägpt-4jagpt-4-32kmalleja päivitetään edelleen. Kun luot akäyttöönottoaNäistä malleista sinun on myös määritettävä malliversio.

Tällä hetkellä ainoa versio0301on saatavilla ChatGPT:lle ja0314GPT-4-malleille. Jatkamme päivitettyjen versioiden tarjoamista saataville myös tulevaisuudessa. Löydät mallien vanhentumisajat sivuiltammemallitsivu.

Työskentely Chat Completion API:n kanssa

OpenAI koulutti ChatGPT- ja GPT-4-mallit hyväksymään keskusteluksi muotoillun syötteen. Viestit-parametri ottaa joukon sanakirjoja, joissa keskustelu on järjestetty roolien mukaan.

Peruskeskustelun viimeistelyn muoto on seuraava:

{"role": "system", "content": "Anna mallille kontekstia ja/tai ohjeita"},{"role": "user", "content": "Käyttäjien viestit menevät tänne"}

Keskustelu, jossa on yksi esimerkkivastaus, jota seuraa kysymys, näyttää tältä:

{"role": "system", "content": "Anna mallille kontekstia ja/tai ohjeita."},{"role": "user", "content": "Esimerkkikysymys menee tähän."}, {"role": "assistant", "content": "Esimerkkivastaus tulee tänne."},{"role": "user", "content": "Ensimmäinen kysymys/viesti mallille, johon se vastaa."}

Järjestelmän rooli

Järjestelmärooli, joka tunnetaan myös nimellä järjestelmäviesti, sisältyy taulukon alkuun. Tämä viesti antaa mallin alustavat ohjeet. Voit antaa erilaisia ​​tietoja järjestelmäroolissa, mukaan lukien:

  • Lyhyt kuvaus avustajasta
  • Assistentin persoonallisuuden piirteet
  • Ohjeet tai säännöt, joita haluat avustajan noudattavan
  • Malliin tarvittavat tiedot, kuten asiaankuuluvat kysymykset FAQ:sta

Voit mukauttaa järjestelmäroolin käyttötapauksesi mukaan tai sisällyttää vain perusohjeet. Järjestelmän rooli/viesti on valinnainen, mutta on suositeltavaa sisällyttää ainakin perusrooli, jotta saat parhaat tulokset.

Viestit

Järjestelmäroolin jälkeen voit sisällyttää sarjan viestejä väliinkäyttäjäjaavustaja.

{"role": "user", "content": "Mitä on termodynamiikka?"}

Jos haluat käynnistää vastauksen mallista, sinun tulee lopettaa käyttäjäviesti, joka ilmoittaa, että on avustajan vuoro vastata. Voit myös sisällyttää sarjan esimerkkiviestejä käyttäjän ja avustajan välillä, jotta voit oppia muutaman kerran.

Esimerkkejä viestikehotuksista

Seuraavassa osiossa on esimerkkejä erilaisista kehotteiden tyyleistä, joita voit käyttää ChatGPT- ja GPT-4-mallien kanssa. Nämä esimerkit ovat vain lähtökohta, ja voit kokeilla erilaisia ​​kehotteita mukauttaaksesi toimintaa omiin käyttötapauksiin.

Perusesimerkki

Jos haluat ChatGPT-mallin käyttäytyvän samalla tavalla kuinchat.openai.com, voit käyttää perusjärjestelmää, kuten "Assistant on OpenAI:n kouluttama suuri kielimalli."

{"role": "system", "content": "Assistant on OpenAI:n kouluttama suuri kielimalli."},{"role": "user", "content": "Keitä olivat Microsoftin perustajat?"}

Esimerkki ohjeineen

Joissakin skenaarioissa saatat haluta antaa mallille lisäohjeita suojakaiteiden määrittelemiseksi sille, mitä malli pystyy tekemään.

{"role": "system", "content": "Assistant on älykäs chatbot, joka on suunniteltu auttamaan käyttäjiä vastaamaan verotukseen liittyviin kysymyksiinsä.Ohjeet: - Vastaa vain verotukseen liittyviin kysymyksiin. - Jos et ole varma vastauksesta, voi sanoa "en tiedä" tai "en ole varma" ja suosittelee käyttäjiä käymään verohallinnon verkkosivustolla saadaksesi lisätietoja. "},{"role": "user", "content": "Milloin veroni ovat erääntyy?"}

Tietojen käyttö maadoitukseen

Voit myös sisällyttää asiaankuuluvia tietoja järjestelmäviestiin antaaksesi mallille lisäkontekstia keskustelulle. Jos tarvitset vain pienen määrän tietoa, voit koodata sen järjestelmäviestiin. Jos sinulla on paljon tietoa, josta mallin tulisi olla tietoinen, voit käyttää sitäupotuksettai vastaava tuoteAzure Cognitive Searchhakeaksesi olennaisimmat tiedot kyselyn aikana.

{"role": "system", "content": "Assistant on älykäs chatbot, joka on suunniteltu auttamaan käyttäjiä vastaamaan Azure OpenAI -palvelua koskeviin teknisiin kysymyksiin. Vastaa kysymyksiin vain alla olevan kontekstin avulla, ja jos et ole varma vastauksesta, voi sanoa "en tiedä".Konteksti:- Azure OpenAI Service tarjoaa REST-sovellusliittymän pääsyn OpenAI:n tehokkaisiin kielimalleihin, mukaan lukien GPT-3-, Codex- ja Embeddings-mallisarjat.- Azure OpenAI Service tarjoaa asiakkaille edistyneen kielen tekoälyn OpenAI GPT- 3-, Codex- ja DALL-E-mallit, joissa on Azuren turvallisuus ja yrityslupaus. Azure OpenAI kehittää sovellusliittymiä yhdessä OpenAI:n kanssa, mikä varmistaa yhteensopivuuden ja sujuvan siirtymisen mallista toiseen.- Microsoftilla on sitoutunut tekoälyn edistäminen ihmisten etusijalle asettavien periaatteiden pohjalta. Microsoft on tehnyt merkittäviä investointeja auttaakseen suojautumaan väärinkäytöltä ja tahattomalta vahingolta, mikä sisältää hakijoiden vaatimuksen näyttämään tarkasti määritellyt käyttötapaukset, jotka sisältävät Microsoftin vastuullisen tekoälyn käytön periaatteet."},{" role": "user", "content": "Mikä on Azure OpenAI Service?"}

Vain vähän oppimista Chat Completionin avulla

Voit myös antaa mallille muutaman kuvaesimerkin. Muutaman laukauksen oppimisen lähestymistapa on muuttunut hieman uuden kehotusmuodon vuoksi. Voit nyt sisällyttää kehotteeseen joukon viestejä käyttäjän ja avustajan välillä muutamana esimerkkinä. Näitä esimerkkejä voidaan käyttää vastausten antamiseen yleisiin kysymyksiin mallin perustamiseksi tai tiettyjen käyttäytymismallien opettamiseksi.

Tämä on vain yksi esimerkki siitä, kuinka voit käyttää harvoja oppimista ChatGPT:n ja GPT-4:n kanssa. Voit kokeilla erilaisia ​​lähestymistapoja nähdäksesi, mikä toimii parhaiten sinun käyttötapauksessasi.

{"role": "system", "content": "Assistant on älykäs chatbot, joka on suunniteltu auttamaan käyttäjiä vastaamaan verotukseen liittyviin kysymyksiinsä. "},{"role": "user", "content": "Milloin tarvitsen ilmoittamaan veroni mennessä?"},{"role": "assistant", "content": "Vuonna 2023 sinun on ilmoitettava verosi 18. huhtikuuta mennessä. Päivämäärä on tavanomaisen 15. huhtikuun määräajan jälkeen, koska 15. huhtikuuta lauantaina vuonna 2023. Katso lisätietoja osoitteesta https://www.irs.gov/filing/individuals/when-to-file."},{"role": "user", "content": "Kuinka voi Tarkistan veronpalautukseni tilan?"},{"role": "assistant", "content": "Voit tarkistaa veronpalautukseni tilan käymällä osoitteessa https://www.irs.gov/refunds"}

Chat Completion -toiminnon käyttäminen muissa kuin keskustelutilanteissa

Chat Completion API on suunniteltu toimimaan useiden vuoropuhelujen kanssa, mutta se toimii hyvin myös muissa kuin chatissa.

Esimerkiksi kokonaisuuden purkamisskenaariossa voit käyttää seuraavaa kehotetta:

{"role": "system", "content": "Olet avustaja, joka on suunniteltu poimimaan entiteettejä tekstistä. Käyttäjät liittävät tekstin merkkijonoon, ja sinä vastaat entiteeteillä, jotka olet poiminut tekstistä JSON-objektina Tässä on esimerkki tulostusmuodosta:{ "nimi": "", "yritys": "", "puhelinnumero": ""}"},{"role": "user", "content": "Hei. Nimeni on Robert Smith. Soitan Delawaren Contoso Insurancesta. Kollegani mainitsi, että olet kiinnostunut kuulemaan kattavasta etuuskäytännöstämme. Voitteko soittaa minulle takaisin numeroon (555) 346-9322, kun sinulla on mahdollisuus jotta voimme käydä läpi edut?"}

Peruskeskustelusilmukan luominen

Tähänastiset esimerkit ovat osoittaneet sinulle Chat Completion API:n kanssa vuorovaikutuksen perusmekaniikat. Tämä esimerkki näyttää, kuinka luodaan keskustelusilmukka, joka suorittaa seuraavat toiminnot:

  • Ottaa jatkuvasti konsolisyöttöä ja muotoilee sen oikein osaksi viestitaulukkoa käyttäjän roolisisällöksi.
  • Tulostaa vastaukset, jotka tulostetaan konsoliin ja muotoillaan ja lisätään viestitaulukkoon avustajan roolisisällöksi.

Tämä tarkoittaa, että joka kerta kun uusi kysymys kysytään, käynnissä oleva keskustelun transkriptio tähän mennessä lähetetään yhdessä viimeisimmän kysymyksen kanssa. Koska mallissa ei ole muistia, sinun on lähetettävä päivitetty transkriptio jokaisen uuden kysymyksen yhteydessä tai malli menettää kontekstin aikaisemmista kysymyksistä ja vastauksista.

import osimport openaiopenai.api_type = "azure"openai.api_version = "2023-05-15" openai.api_base = os.getenv("OPENAI_API_BASE") # Azure OpenAI -resurssi päätepistearvo .openai.api_key = os.AIKEYA("_OPEY_BASE" ")conversation=[{"role": "järjestelmä", "sisältö": "Olet avulias avustaja."}]while(True): user_input = input() keskustelu.append({"role": "käyttäjä" , "content": user_input}) response = openai.ChatCompletion.create( engine="gpt-3.5-turbo", # Käyttöönoton nimi, jonka valitsit kun otit käyttöön ChatGPT- tai GPT-4-mallin. messages = keskustelu ) keskustelu.append ({"role": "assistentti", "content": vastaus['valinnat'][0]['message']['content']}) print("\n" + vastaus['valinnat'][0 ]['message']['content'] + "\n")

Kun suoritat yllä olevan koodin, saat tyhjän konsoli-ikkunan. Kirjoita ensimmäinen kysymyksesi ikkunaan ja paina sitten Enter. Kun vastaus on palautettu, voit toistaa prosessin ja jatkaa kysymysten esittämistä.

Keskustelujen hallinta

Edellinen esimerkki jatkuu, kunnes saavutat mallin tunnusrajan. Jokaisen kysytyn kysymyksen ja vastaanotetun vastauksen yhteydessäviestejäjoukon koko kasvaa. Tunnusraja kohteellegpt-35-turboon 4096 merkkiä, kun taas tokenin rajatgpt-4jagpt-4-32kovat 8192 ja 32768. Nämä rajoitukset sisältävät sekä lähetetyn viestiryhmän että mallivastauksen tunnuksen. Viestitaulukon merkkien määrä yhdistettynä -arvon kanssamax_tokensparametrin on pysyttävä näiden rajojen alapuolella tai saat virheilmoituksen.

Sinun vastuullasi on varmistaa, että kehotus ja viimeistely ovat tunnuksen rajan sisällä. Tämä tarkoittaa, että pidempiä keskusteluja varten sinun on seurattava merkkien lukumäärää ja lähetettävä mallille vain kehote, joka on rajan sisällä.

Seuraava koodiesimerkki näyttää yksinkertaisen chat-silmukan, jossa on tekniikka 4096 tokenin määrän käsittelemiseksi OpenAI:n tikttoken-kirjaston avulla.

Koodi vaatii tikttokenin0.3.0. Jos käytössäsi on vanhempi versiopip install tiktoken --päivitys.

import tiktokenimport openaiimport osopenai.api_type = "azure"openai.api_version = "2023-05-15" openai.api_base = os.getenv("OPENAI_API_BASE") # Azure OpenAI -resurssi päätepistearvo .openai.api_tenv =". OPENAI_API_KEY")system_message = {"role": "järjestelmä", "sisältö": "Olet avulias avustaja."}max_response_tokens = 250token_limit= 4096conversation=[]conversation.append(system_message)def_from_tokenssag_ -3.5-turbo-0301"): encoding = tikttoken.encoding_for_model(model) num_tokens = 0 viestille viesteissä: num_tokens += 4 # jokainen viesti seuraa {role/name}\n{content}\ n avaimelle, arvo viestissä message.items(): num_tokens += len(encoding.encode(value)) if key == "nimi": # jos on nimi, rooli jätetään pois num_tokens += -1 # rooli on aina vaaditaan ja aina 1 token num_tokens += 2 # jokainen vastaus on pohjustettu assistant return num_tokenswhile(True): user_input = input("") keskustelu.append({"role": "user", "content": user_input}) conv_history_tokens = num_tokens_from_messages(conversation) while (conv_history_tokens+max_response_tokens >= token_limit): keskustelun poisto[1] conv_history_tokens = numerotunnusten_lähde_viesteistä="vastausmoottori3 open-comversation. ", # The käyttöönoton nimi, jonka valitsit, kun otit ChatGPT- tai GPT-4-mallin käyttöön. viestit = keskustelu, lämpötila=.7, max_tokens=max_response_tokens, ) keskustelu.append({"role": "assistant", "content": vastaus['valinnat'][0]['message']['content'] }) print("\n" + vastaus['valinnat'][0]['viesti']['sisältö'] + "\n")

Tässä esimerkissä keskustelun transkription vanhimmat viestit poistetaan, kun tunnusluku on saavutettu.-ltakäytetään sen sijaanpop()tehokkuuden vuoksi ja aloitamme indeksistä 1 säilyttääksemme aina järjestelmäviestin ja poistaaksemme vain käyttäjän/avustajan viestit. Ajan myötä tämä keskustelun hallintamenetelmä voi heikentää keskustelun laatua, koska malli menettää vähitellen keskustelun aikaisempien osien kontekstin.

Vaihtoehtoinen lähestymistapa on rajoittaa keskustelun kesto enimmäispituuteen tai tiettyyn kierrosten määrään. Kun tunnuksen enimmäisraja on saavutettu ja malli menettäisi kontekstin, jos annat keskustelun jatkua, voit kehottaa käyttäjää aloittamaan uuden keskustelun ja tyhjentämään viestiryhmän aloittaakseen täysin uuden keskustelun. token-raja käytettävissä.

Aiemmin esitellyn koodin merkkien laskentaosa on yksinkertaistettu versio yhdestä koodistaEsimerkkejä OpenAI:n keittokirjoista.

Seuraavat vaiheet

Työskentely ChatGPT-mallien kanssa

Tärkeä

GPT-35-Turbo-mallien käyttö valmiin päätepisteen kanssa jää esikatseluun. Koska taustalla olevaan ChatML-syntaksiin voi tulla muutoksia, suosittelemme Chat Completion API/päätepisteen käyttöä. Chat Completion API on suositeltu tapa olla vuorovaikutuksessa ChatGPT (gpt-35-turbo) -mallien kanssa. Chat Completion API on myös ainoa tapa päästä käsiksi GPT-4-malleihin.

Seuraava koodinpätkä näyttää yksinkertaisimman tavan käyttää ChatGPT-malleja ChatML:n kanssa. Jos tämä on ensimmäinen kerta, kun käytät näitä malleja ohjelmallisesti, suosittelemme aloittamaan mallistamme.

import osimport openaiopenai.api_type = "azure"openai.api_base = "https://{oma-resurssin-nimi}.openai.azure.com/"openai.api_version = "2023-05-15"openai.api_key = os. getenv("OPENAI_API_KEY")response = openai.Completion.create( engine="gpt-35-turbo", # Käyttöönoton nimi, jonka valitsit kun otit käyttöön ChatGPT-mallin kehotteen="<|im_start|>järjestelmä\nAssistant on suuri OpenAI:n kouluttama kielimalli.\n<|im_end|>\n<|im_start|>käyttäjä\nKeitä olivat Microsoftin perustajat?\n<|im_end|>\n<|im_start|>avustaja\n", lämpötila= 0, max_tokens=500, top_p=0.5, stop=["<|im_end|>"])print(response['valinnat'][0]['teksti'])

Huomautus

Seuraavat parametrit eivät ole saatavilla gpt-35-turbo-mallissa:logprobs,paras, jakaiku. Jos asetat jonkin näistä parametreista, saat virheilmoituksen.

The<|im_end|>merkki ilmaisee viestin lopun. Suosittelemme mukaan lukien<|im_end|>merkki pysäytyssekvenssinä varmistaakseen, että malli lopettaa tekstin luomisen, kun se saavuttaa viestin loppuun. Voit lukea lisää erikoismerkeistä osoitteessaChat Markup Language (ChatML)osio.

Harkitse asetustamax_tokenshieman normaalia korkeampaan arvoon, kuten 300 tai 500. Tämä varmistaa, että malli ei lopeta tekstin tuottamista ennen kuin se saavuttaa viestin loppuun.

Mallin versiointi

Huomautus

gpt-35-turbovastaagpt-3.5-turbomalli OpenAI:lta.

Toisin kuin aikaisemmissa GPT-3- ja GPT-3.5-malleissa,gpt-35-turbomalli sekägpt-4jagpt-4-32kmalleja päivitetään edelleen. Kun luot akäyttöönottoaNäistä malleista sinun on myös määritettävä malliversio.

Tällä hetkellä ainoa versio0301on saatavilla ChatGPT:lle. Jatkamme päivitettyjen versioiden tarjoamista saataville myös tulevaisuudessa. Löydät mallien vanhentumisajat sivuiltammemallitsivu.

Chat Markup Language (ChatML) -käyttö

Huomautus

OpenAI jatkaa ChatGPT:n parantamista, ja mallien kanssa käytettävä chat-kuvauskieli kehittyy edelleen tulevaisuudessa. Pidämme tämän asiakirjan ajan tasalla viimeisimmillä tiedoilla.

OpenAI koulutti ChatGPT:tä erityisillä tunnuksilla, jotka kuvaavat kehotteen eri osia. Kehote alkaa järjestelmäviestillä, jota käytetään mallin käynnistämiseen, jota seuraa joukko viestejä käyttäjän ja avustajan välillä.

ChatML-peruskehotteen muoto on seuraava:

<|im_start|>järjestelmä Anna mallille kontekstia ja/tai ohjeita.<|im_end|> <|im_start|>käyttäjä Käyttäjän viesti menee tänne<|im_end|> <|im_start|>assistentti

Järjestelmäviesti

Järjestelmäviesti sisältyy kehotteen alkuun<|im_start|>järjestelmäja<|im_end|>rahakkeita. Tämä viesti antaa mallin alustavat ohjeet. Voit antaa järjestelmäviestiin erilaisia ​​tietoja, mukaan lukien:

  • Lyhyt kuvaus avustajasta
  • Assistentin persoonallisuuden piirteet
  • Ohjeet tai säännöt, joita haluat avustajan noudattavan
  • Malliin tarvittavat tiedot, kuten asiaankuuluvat kysymykset FAQ:sta

Voit mukauttaa järjestelmäviestin käyttötapauksesi mukaan tai sisällyttää vain perusjärjestelmän viestin. Järjestelmäviesti on valinnainen, mutta on suositeltavaa sisällyttää ainakin perusviesti parhaan tuloksen saamiseksi.

Viestit

Järjestelmäviestin jälkeen voit sisällyttää sarjan viestejä viestien väliinkäyttäjäjaavustaja. Jokaisen viestin tulee alkaa<|in_start|>token ja rooli (käyttäjätaiavustaja) ja lopuksi<|im_end|>merkki.

<|im_start|>käyttäjäMitä on termodynamiikka?<|im_end|>

Jos haluat käynnistää vastauksen mallista, kehotteen tulee päättyä<|im_start|>avustajamerkki, joka osoittaa, että on avustajan vuoro vastata. Voit myös sisällyttää kehotteeseen viestejä käyttäjän ja avustajan välillä, jotta voit oppia vähän.

Pikaisia ​​esimerkkejä

Seuraavassa osiossa on esimerkkejä erilaisista kehotteiden tyyleistä, joita voit käyttää ChatGPT- ja GPT-4-mallien kanssa. Nämä esimerkit ovat vain lähtökohta, ja voit kokeilla erilaisia ​​kehotteita mukauttaaksesi toimintaa omiin käyttötapauksiin.

Perusesimerkki

Jos haluat ChatGPT- ja GPT-4-mallien käyttäytyvän samalla tavalla kuinchat.openai.com, voit käyttää perusjärjestelmää, kuten "Assistant on OpenAI:n kouluttama suuri kielimalli."

<|im_start|>systemAssistant on OpenAI:n kouluttama suuri kielimalli.<|im_end|><|im_start|>user Ketkä olivat Microsoftin perustajat?<|im_end|><|im_start|>assistant

Esimerkki ohjeineen

Joissakin skenaarioissa saatat haluta antaa mallille lisäohjeita suojakaiteiden määrittelemiseksi sille, mitä malli pystyy tekemään.

<|im_start|>systemAssistant on älykäs chatbot, joka on suunniteltu auttamaan käyttäjiä vastaamaan verotukseen liittyviin kysymyksiin. Ohjeet: - Vastaa vain verotukseen liittyviin kysymyksiin. - Jos et ole varma vastauksesta, voit sanoa "en tiedä" tai "en ole varma" ja suositella käyttäjiä käymään verohallinnon verkkosivustolla saadaksesi lisätietoja.<|im_end|><|im_start|> userMilloin veroni erääntyvät?<|im_end|><|im_start|>assistentti

Tietojen käyttö maadoitukseen

Voit myös sisällyttää asiaankuuluvia tietoja järjestelmäviestiin antaaksesi mallille lisäkontekstia keskustelulle. Jos tarvitset vain pienen määrän tietoa, voit koodata sen järjestelmäviestiin. Jos sinulla on paljon tietoa, josta mallin tulisi olla tietoinen, voit käyttää sitäupotuksettai vastaava tuoteAzure Cognitive Searchhakeaksesi olennaisimmat tiedot kyselyn aikana.

<|im_start|>systemAssistant on älykäs chatbot, joka on suunniteltu auttamaan käyttäjiä vastaamaan Azure OpenAI -palvelua koskeviin teknisiin kysymyksiin. Vastaa kysymyksiin vain alla olevan kontekstin avulla, ja jos et ole varma vastauksesta, voit sanoa "en tiedä". Konteksti: - Azure OpenAI Service tarjoaa REST API -liittymän OpenAI:n tehokkaisiin kielimalleihin, mukaan lukien GPT-3, Codex- ja Embeddings-mallisarjat. – Azure OpenAI Service tarjoaa asiakkaille edistyneen kielellisen tekoälyn OpenAI GPT-3-, Codex- ja DALL-E-malleilla, joissa on Azuren turvallisuus ja yrityslupaus. Azure OpenAI kehittää sovellusliittymiä yhdessä OpenAI:n kanssa, mikä varmistaa yhteensopivuuden ja sujuvan siirtymisen yhdestä toiseen. – Microsoftilla on sitoutunut tekoälyn kehittämiseen ihmisten etusijalle asettavien periaatteiden pohjalta. Microsoft on tehnyt merkittäviä investointeja auttaakseen suojautumaan väärinkäytöltä ja tahattomalta vahingolta, mukaan lukien vaatiminen hakijoilta tarkkaan määritellyistä käyttötapauksista, mukaan lukien Microsoftin vastuullisen tekoälyn käytön periaatteet<|im_end|><|im_start|>käyttäjäMikä Azure OpenAI -palvelu on?< |im_end|><|im_start|>avustaja

Harva oppi ChatML:n avulla

Voit myös antaa mallille muutaman kuvaesimerkin. Muutaman laukauksen oppimisen lähestymistapa on muuttunut hieman uuden kehotusmuodon vuoksi. Voit nyt sisällyttää kehotteeseen joukon viestejä käyttäjän ja avustajan välillä muutamana esimerkkinä. Näitä esimerkkejä voidaan käyttää vastausten antamiseen yleisiin kysymyksiin mallin perustamiseksi tai tiettyjen käyttäytymismallien opettamiseksi.

Tämä on vain yksi esimerkki siitä, kuinka voit käyttää muutamaa pikaoppimista ChatGPT:n kanssa. Voit kokeilla erilaisia ​​lähestymistapoja nähdäksesi, mikä toimii parhaiten sinun käyttötapauksessasi.

<|im_start|>systemAssistant on älykäs chatbot, joka on suunniteltu auttamaan käyttäjiä vastaamaan verotukseen liittyviin kysymyksiin. <|im_end|><|im_start|>userMilloin minun on ilmoitettava veroni viimeistään?<|im_end|><|im_start|>assistantVuonna 2023 sinun on ilmoitettava verosi 18. huhtikuuta mennessä. Päivämäärä on tavanomaisen huhtikuun 15. päivän määräajan jälkeen, koska 15. huhtikuuta on lauantaina vuonna 2023. Katso lisätietoja osoitteesta https://www.irs.gov/filing/individuals/when-to-file<|im_end|><| im_start|>userKuinka voin tarkistaa veronpalautukseni tilan?<|im_end|><|im_start|>assistenttiVoit tarkistaa veronpalautukseni tilan osoitteessa https://www.irs.gov/refunds<|im_end| >

Keskustelun merkintäkielen käyttäminen muissa kuin keskustelutilanteissa

ChatML on suunniteltu helpottamaan usean vuorokauden keskustelujen hallintaa, mutta se toimii hyvin myös muissa kuin chatissa.

Esimerkiksi kokonaisuuden purkamisskenaariossa voit käyttää seuraavaa kehotetta:

<|im_start|>systemOlet avustaja, joka on suunniteltu poimimaan kokonaisuuksia tekstistä. Käyttäjät liittävät tekstin merkkijonoon, ja sinä vastaat tekstistä JSON-objektina poimimillasi entiteeteillä. Tässä on esimerkki tulostusmuodosta:{ "nimi": "", "yritys": "", "puhelinnumero": ""}<|im_end|><|im_start|>userHei. Nimeni on Robert Smith. Soitan Contoso Insurancesta, Delawaresta. Kollegani mainitsi, että olet kiinnostunut kuulemaan kattavasta etuuskäytännöstämme. Voisitteko soittaa minulle takaisin numeroon (555) 346-9322, kun saat mahdollisuuden, jotta voimme käydä läpi edut?<|im_end|><|im_start|>assistentti

Turvallisten käyttäjien syötteiden estäminen

On tärkeää lisätä sovellukseesi lievennyksiä chat-kuvauskielen turvallisen käytön varmistamiseksi.

Suosittelemme, että estät loppukäyttäjiä sisällyttämästä syötteisiinsä erityisiä tunnuksia, kuten<|in_start|>ja<|im_end|>. Suosittelemme myös, että sisällytät lisävahvistuksen varmistaaksesi, että malliin lähettämäsi kehotteet ovat hyvin muotoiltuja ja noudattavat tässä asiakirjassa kuvattua Chat Markup Language -muotoa.

Voit myös antaa järjestelmäviestiin ohjeita, jotka ohjaavat mallia vastaamaan tietyntyyppisiin käyttäjän syötteisiin. Voit esimerkiksi ohjeistaa mallin vastaamaan vain tiettyä aihetta koskeviin viesteihin. Voit myös vahvistaa tätä käyttäytymistä muutamalla esimerkkiesimerkillä.

Keskustelujen hallinta

Tunnusraja kohteellegpt-35-turboon 4096 merkkiä. Tämä rajoitus sisältää sekä kehotteen että valmistumisen merkkien määrän. Kehotteen merkkien määrä yhdistettynä arvon kanssamax_tokensparametrin on pysyttävä alle 4096 tai saat virheilmoituksen.

Sinun vastuullasi on varmistaa, että kehotus ja viimeistely ovat tunnuksen rajan sisällä. Tämä tarkoittaa, että pidempiä keskusteluja varten sinun on seurattava tunnuksen määrää ja lähetettävä mallille vain kehote, joka on tunnuksen rajan sisällä.

Seuraava koodiesimerkki näyttää yksinkertaisen esimerkin siitä, kuinka voit seurata keskustelun erillisiä viestejä.

import osimport openaiopenai.api_type = "azure"openai.api_base = "https://{oma-resurssin-nimi}.openai.azure.com/" #Tämä vastaa Azure OpenAI -resurssi päätepistettä valueopenai.api_version = "2023-05 -15" openai.api_key = os.getenv("OPENAI_API_KEY")# määrittää toiminnon, joka luo kehotteen järjestelmäviestistä ja keskustelusta. messagesdef create_prompt(system_message, messages): prompt = system_message viestille viesteissä: kehote += f "\n<|im_start|>{message['sender']}\n{message['text']}\n<|im_end|>" kehote += "\n<|im_start|>assistant\n" paluu kehote# määrittelee käyttäjän syötteen ja järjestelmän messageuser_input = "" system_message = f"<|im_start|>system\n{''}\n<|im_end|>"# luodaan luettelo viesteistä, joiden avulla voit seurata keskustelua otit käyttöön ChatGPT-mallin. prompt=create_prompt(järjestelmän_viesti, viestit), lämpötila=0,5, max_tokens=250, top_p=0,9, Frequency_penalty=0, present_penalty=0, stop=['<|im_end|>'])messages.append ({"lähettäjä": "avustaja", "teksti": vastaus['valinnat'][0]['teksti']})print(response['valinnat'][0]['teksti'])

Pysyminen token-rajan alapuolella

Yksinkertaisin tapa pysyä tunnisterajan alapuolella on poistaa keskustelun vanhimmat viestit, kun saavutat tunnusrajan.

Voit valita sisällyttääksesi aina mahdollisimman monta tunnuksia rajan alapuolella tai voit aina sisällyttää tietyn määrän aikaisempia viestejä olettaen, että viestit pysyvät rajan sisällä. On tärkeää pitää mielessä, että pidemmät kehotteet kestävät kauemmin vastauksen luomiseen ja niistä aiheutuu korkeammat kustannukset kuin lyhyemmät kehotteet.

Voit arvioida merkkijonon merkkien määrän käyttämällätiktokPython-kirjasto alla olevan kuvan mukaisesti.

import tiktoken cl100k_base = tiktoken.get_encoding("cl100k_base") enc = tiktoken.Encoding( name="gpt-35-turbo", pat_str=cl100k_base._pat_str, mergeable_ranks=cl100k_base._special_cl01tok,{k special_rank_1tok. ens, " <|im_start|>": 100264, "<|im_end|>": 100265 } ) tokens = enc.encode( "<|im_start|>user\nHei<|im_end|><|im_start|>avustaja", sallittu_special= {"<|im_start|>", "<|im_end|>"} ) Assert len(tokens) == 7 vahvistusmerkkiä == [100264, 882, 198, 9906, 100265, 100264, 78191]

Seuraavat vaiheet

References

Top Articles
Latest Posts
Article information

Author: Foster Heidenreich CPA

Last Updated: 05/18/2023

Views: 5257

Rating: 4.6 / 5 (56 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Foster Heidenreich CPA

Birthday: 1995-01-14

Address: 55021 Usha Garden, North Larisa, DE 19209

Phone: +6812240846623

Job: Corporate Healthcare Strategist

Hobby: Singing, Listening to music, Rafting, LARPing, Gardening, Quilting, Rappelling

Introduction: My name is Foster Heidenreich CPA, I am a delightful, quaint, glorious, quaint, faithful, enchanting, fine person who loves writing and wants to share my knowledge and understanding with you.