ChatGPT:n hallitseminen: Tehokas yhteenveto LLM:ien kanssa

ChatGPT:n hallitseminen: Tehokas yhteenveto LLM:ien kanssa

Lähdesolmu: 2763303

Tekstiyhteenveto ChatGPT

Tekoälykuvan luontityökalun Dall-E kuvitellut yhteenvetoagentit.

Oletko osa väestöä, joka jättää arvosteluja Google-karttoihin aina, kun vierailet uudessa ravintolassa?

Tai ehkä olet sitä tyyppiä, joka jakaa mielipiteesi Amazon-ostoksista, varsinkin kun heikkolaatuinen tuote laukaisee sinut?

Älä huoli, en syytä sinua – meillä kaikilla on omat hetkemme!

Nykypäivän datamaailmassa me kaikki myötävaikutamme datatulviin monin eri tavoin. Yksi tietotyyppi, jota pidän erityisen kiinnostavana sen monimuotoisuuden ja tulkintavaikeuksien vuoksi, on tekstidata, kuten lukemattomat arvostelut, joita julkaistaan ​​Internetissä päivittäin. Oletko koskaan pysähtynyt pohtimaan tekstidatan standardoinnin ja tiivistämisen merkitystä?
Tervetuloa yhteenvetoagenttien maailmaan!

Yhteenvetoagentit ovat integroituneet saumattomasti jokapäiväiseen elämäämme tiivistäen tietoa ja tarjoamalla nopean pääsyn asiaankuuluvaan sisältöön useilla sovelluksilla ja alustoilla.

Tässä artikkelissa tutkimme ChatGPT:n käyttöä tehokkaana yhteenvetoagenttina mukautetuille sovelluksillemme. Suurten kielimallien (LLM) kyvyn ansiosta käsitellä ja ymmärtää tekstejä, he voivat auttaa tekstien lukemisessa ja tarkkojen yhteenvetojen luomisessa tai tiedon standardoinnissa. On kuitenkin tärkeää tietää, kuinka hyödyntää heidän potentiaaliaan tällaisessa tehtävässä, sekä tunnustaa heidän rajoituksensa.

Suurin rajoitus yhteenvedolle?
LLM:t eivät useinkaan pysty noudattamaan tiettyjä merkki- tai sanarajoituksia yhteenvedoissaan.

Tutustutaan parhaisiin käytäntöihin yhteenvetojen luomiseen ChatGPT:n avulla räätälöityyn sovellukseemme sekä sen rajoitusten taustalla oleviin syihin ja niiden ylittämiseen!

Jos tästä perusteellisesta opetussisällöstä on hyötyä sinulle, voit tilaa AI-tutkimuksen postituslista hälytys, kun julkaisemme uutta materiaalia. 

Tehokas yhteenveto ChatGPT:n avulla

Yhteenvetoagentteja käytetään kaikkialla Internetissä. Esimerkiksi verkkosivustot käyttävät yhteenvetoagentteja tarjotakseen tiiviitä tiivistelmiä artikkeleista, jolloin käyttäjät voivat saada nopean yleiskuvan uutisista sukeltamatta koko sisältöön. Myös sosiaalisen median alustat ja hakukoneet tekevät tämän.

Yhteenvetoagenteista on tullut olennainen osa digitaalista maisemaamme uutiskokoajista ja sosiaalisen median alustoista verkkokauppasivustoihin.. Ja LLM:ien lisääntyessä jotkut näistä agenteista käyttävät nyt tekoälyä tehokkaampien yhteenvetotulosten saamiseksi.

ChatGPT voi olla hyvä liittolainen, kun rakennetaan sovellus, jossa käytetään yhteenvetoagentteja lukutehtävien nopeuttamiseen ja tekstien luokitteluun. Kuvittele esimerkiksi, että meillä on verkkokauppayritys ja olemme kiinnostuneita käsittelemään kaikki asiakasarviomme. ChatGPT voisi auttaa meitä tiivistämään minkä tahansa arvostelun muutamaan lauseeseen, standardoimaan sen yleiseen muotoon ja määrittämään arvostelun tunnelma ja luokittelu sen mukaisesti.

Vaikka on totta, että voisimme yksinkertaisesti syöttää arvostelun ChatGPT:lle, siellä on luettelo parhaista käytännöistä - ja asioita, joita tulee välttää - hyödyntää ChatGPT:n voimaa tässä konkreettisessa tehtävässä.

Tutkitaan vaihtoehtoja herättämällä tämä esimerkki henkiin!

Esimerkki: Verkkokaupan arvostelut

Itse tehty gif.

Harkitse yllä olevaa esimerkkiä, jossa olemme kiinnostuneita käsittelemään kaikki tietyn tuotteen arvostelut verkkokauppasivustollamme. Olisimme kiinnostuneita käsittelemään tähtituotteestamme koskevia arvosteluja, kuten seuraavan: ensimmäinen tietokone lapsille!

prod_review = """
I purchased this children's computer for my son, and he absolutely adores it. He spends hours exploring its various features and engaging with the educational games. The colorful design and intuitive interface make it easy for him to navigate. The computer is durable and built to withstand rough handling, which is perfect for active kids. My only minor gripe is that the volume could be a bit louder. Overall, it's an excellent educational toy that provides hours of fun and learning for my son. It arrived a day earlier
than expected, so I got to play with it myself before I gave it to him. """

Tässä tapauksessa haluamme, että ChatGPT:

  • Luokittele arvostelu positiiviseen tai negatiiviseen.
  • Anna 20 sanan tiivistelmä arvostelusta.
  • Tulosta vastaus konkreettisella rakenteella standardisoidaksesi kaikki arvostelut yhteen muotoon.

Toteutusohjeet

Tässä on peruskoodirakenne, jonka avulla voimme pyytää ChatGPT:tä mukautetusta sovelluksestamme. Annan myös linkin osoitteeseen a Jupyter Notebook kaikkien tässä artikkelissa käytettyjen esimerkkien kanssa.

import openai
import os openai.api_key_path = "/path/to/key" def get_completion(prompt, model="gpt-3.5-turbo"): """
This function calls ChatGPT API with a given prompt
and returns the response back. """ messages = [{"role": "user", "content": prompt}] response = openai.ChatCompletion.create( model=model, messages=messages, temperature=0 ) return response.choices[0].message["content"] user_text = f"""
<Any given text> """ prompt = f"""
<Any prompt with additional text> """{user_text}""" """ # A simple call to ChatGPT
response = get_completion(prompt)

Toiminto get_completion() kutsuu ChatGPT API:ta tietyllä nopea. Jos kehote sisältää lisää käyttäjän tekstiä, kuten meidän tapauksessamme itse arvostelu, se on erotettu muusta koodista kolminkertaisilla lainausmerkeillä.

Käytetään get_completion() toiminto pyytää ChatGPT!

Tässä on kehote, joka täyttää yllä kuvatut vaatimukset:

prompt = f"""
Your task is to generate a short summary of a product review from an e-commerce site. Summarize the review below, delimited by triple backticks, in exactly 20 words. Output a json with the sentiment of the review, the summary and original review as keys. Review: ```{prod_review}``` """
response = get_completion(prompt)
print(response)

⚠️ Tässä esimerkissä käytetyt kehotusohjeet, kuten erottimien käyttäminen syöttötekstin erottamiseen muusta kehotteen osasta ja jäsennellyn tulosteen pyytäminen, on selitetty täydellisesti osoitteessa Mitä opin OpenAI:n nopean suunnittelun kurssista – kehotusohjeet.

Tässä on ChatGPT:n vastaus:

{ "sentiment": "positive", "summary": "Durable and engaging children's computer with intuitive interface and educational games. Volume could be louder.", "review": "I purchased this children's computer for my son, and he absolutely adores it. He spends hours exploring its various features and engaging with the educational games. The colorful design and intuitive interface make it easy for him to navigate. The computer is durable and built to withstand rough handling, which is perfect for active kids. My only minor gripe is that the volume could be a bit louder. Overall, it's an excellent educational toy that provides hours of fun and learning for my son. It arrived a day earlierthan expected, so I got to play with it myself before I gave it to him."
}

Kuten tuloksesta voidaan havaita, arvostelu on kuitenkin tarkka ja hyvin jäsennelty siitä puuttuu joitakin tietoja, joista voisimme olla kiinnostuneita verkkokaupan omistajina, kuten tiedot tuotteen toimituksesta.

Tee yhteenveto keskittyen

Voimme toistuvasti parantaa kehotettamme pyytää ChatGPT:tä keskittymään yhteenvedon tiettyihin asioihin. Tässä tapauksessa olemme kiinnostuneita kaikista toimitukseen liittyvistä yksityiskohdista:

prompt = f"""
Your task is to generate a short summary of a product review from an ecommerce site. Summarize the review below, delimited by triple backticks, in exactly 20 words and focusing on any aspects that mention shipping and delivery of the product. Output a json with the sentiment of the review, the summary and original review as keys. Review: ```{prod_review}``` """ response = get_completion(prompt)
print(response)

Tällä kertaa ChatGPT:n vastaus on seuraava:

{ "sentiment": "positive", "summary": "Durable and engaging children's computer with intuitive interface. Arrived a day earlier than expected.", "review": "I purchased this children's computer for my son, and he absolutely adores it. He spends hours exploring its various features and engaging with the educational games. The colorful design and intuitive interface make it easy for him to navigate. The computer is durable and built to withstand rough handling, which is perfect for active kids. My only minor gripe is that the volume could be a bit louder. Overall, it's an excellent educational toy that provides hours of fun and learning for my son. It arrived a day earlierthan expected, so I got to play with it myself before I gave it to him."
}

Nyt tarkistus on paljon täydellisempi. Yksityiskohtien antaminen alkuperäisen arvostelun tärkeästä painopisteestä on erittäin tärkeää, jotta ChatGPT ei ohita joitakin tietoja, jotka voivat olla hyödyllisiä käyttötapauksellemme.

Oletko huomannut, että vaikka tämä toinen kokeilu sisältää tietoja toimituksesta, se ohitti alkuperäisen arvostelun ainoan negatiivisen puolen?

Korjataan se!

"Ote" "yhteenveto" sijaan

Tutkimalla yhteenvetotehtäviä sain sen selville yhteenveto voi olla hankala tehtävä LLM:ille, jos käyttäjän kehote ei ole tarpeeksi tarkka.

Kun ChatGPT:tä pyydetään antamaan yhteenveto tietystä tekstistä, se voi ohittaa tiedot, jotka saattavat olla meille tärkeitä - kuten olemme hiljattain kokeneet - tai se antaa saman merkityksen kaikille tekstin aiheille ja antaa vain yleiskatsauksen pääkohdista.

LLM-asiantuntijat käyttävät termiä uute ja lisätietoja niiden painopisteistä sen sijaan yhteenveto tehdessään tällaisia ​​tehtäviä tämäntyyppisten mallien avustamana.

Yhteenveto pyrkii antamaan tiiviin yleiskatsauksen tekstin pääkohdista, mukaan lukien aiheet, jotka eivät liity painopisteeseen, tiedon poiminta keskittyy tiettyjen yksityiskohtien hakemiseen. ja voi antaa meille juuri sen, mitä etsimme. Kokeillaan sitten uuttamalla!

prompt = f"""
Your task is to extract relevant information from a product review from an ecommerce site to give feedback to the Shipping department. From the review below, delimited by triple quotes extract the information relevant to shipping and delivery. Use 100 characters. Review: ```{prod_review}``` """ response = get_completion(prompt)
print(response)

Tässä tapauksessa poiminta käyttämällä saamme vain tietoa painopisteestämme: Shipping: Arrived a day earlier than expected.

Automaatio

Tämä järjestelmä toimii yhden tarkastelun aikana. Kuitenkin, kun suunnittelet kehotetta konkreettiselle sovellukselle, on tärkeää testata sitä esimerkkierässä, jotta voimme havaita mallin poikkeamat tai huonot käytökset.

Jos käsittelet useita arvosteluja, tässä on esimerkki Python-koodirakenteesta, joka voi auttaa.

reviews = [ "The children's computer I bought for my daughter is absolutely fantastic! She loves it and can't get enough of the educational games. The delivery was fast and arrived right on time. Highly recommend!", "I was really disappointed with the children's computer I received. It didn't live up to my expectations, and the educational games were not engaging at all. The delivery was delayed, which added to my frustration.", "The children's computer is a great educational toy. My son enjoys playing with it and learning new things. However, the delivery took longer than expected, which was a bit disappointing.", "I am extremely happy with the children's computer I purchased. It's highly interactive and keeps my kids entertained for hours. The delivery was swift and hassle-free.", "The children's computer I ordered arrived damaged, and some of the features didn't work properly. It was a huge letdown, and the delivery was also delayed. Not a good experience overall."
] prompt = f""" Your task is to generate a short summary of each product review from an e-commerce site. Extract positive and negative information from each of the given reviews below, delimited by triple backticks in at most 20 words each. Extract information about the delivery, if included. Review: ```{reviews}``` """

Tässä on yhteenveto arvostelujoukostamme:

1. Positive: Fantastic children's computer, fast delivery. Highly recommend.
2. Negative: Disappointing children's computer, unengaging games, delayed delivery.
3. Positive: Great educational toy, son enjoys it. Delivery took longer than expected.
4. Positive: Highly interactive children's computer, swift and hassle-free delivery.
5. Negative: Damaged children's computer, some features didn't work, delayed delivery.

⚠️ Huomaa, että vaikka tiivistelmiemme sanarajoitus oli riittävän selkeä kehotteissamme, voimme helposti nähdä, että tätä sanarajoitusta ei saavuteta missään iteraatiossa.

Tämä sanalaskennan epäsuhta johtuu siitä, että LLM:illä ei ole tarkkaa käsitystä sanojen tai merkkien määrästä. Syy tähän perustuu yhteen niiden arkkitehtuurin tärkeimmistä tärkeimmistä komponenteista: tokenisaattori.

Tokenizer

ChatGPT:n kaltaiset LLM:t on suunniteltu luomaan tekstiä tilastollisten mallien perusteella, jotka on opittu valtavasta kielitiedosta. Vaikka ne ovat erittäin tehokkaita luomaan sujuvaa ja johdonmukaista tekstiä, heiltä puuttuu tarkka sanamäärän hallinta..

Yllä olevissa esimerkeissä, kun olemme antaneet ohjeita erittäin tarkasta sanamäärästä, ChatGPT:llä oli vaikeuksia täyttää nämä vaatimukset. Sen sijaan se on luonut tekstiä, joka on itse asiassa lyhyempi kuin määritetty sanamäärä.

Muissa tapauksissa se voi tuottaa pidempiä tekstejä tai yksinkertaisesti tekstiä, joka on liian monisanaista tai puutteellista. Lisäksi, ChatGPT voi priorisoida muita tekijöitä, kuten johdonmukaisuuden ja osuvuuden, sanamäärän tiukan noudattamisen sijaan. Tämä voi johtaa tekstiin, joka on sisällöltään ja johdonmukaisuudeltaan korkealaatuista, mutta joka ei täsmälleen vastaa sanamäärän vaatimuksia.

Tokenizer on avainelementti ChatGPT:n arkkitehtuurissa, joka vaikuttaa selvästi luodussa lähdössä olevien sanojen määrään.

Itse tehty gif.

Tokenizer-arkkitehtuuri

Tokenizer on ensimmäinen askel tekstin luontiprosessissa. Se on vastuussa ChatGPT:hen syöttämämme tekstin jakamisesta yksittäisiksi elementeiksi - rahakkeita - , jotka sitten kielimalli käsittelee uuden tekstin luomiseksi.

Kun tokenizer jakaa tekstin tokeneiksi, se tekee sen sääntöjen perusteella, jotka on suunniteltu tunnistamaan kohdekielen merkitykselliset yksiköt. Nämä säännöt eivät kuitenkaan ole aina täydellisiä, ja voi olla tapauksia, joissa tokenizer jakaa tai yhdistää tunnuksia tavalla, joka vaikuttaa tekstin yleiseen sanamäärään.

Harkitse esimerkiksi seuraavaa lausetta: "Haluan syödä maapähkinävoileivän". Jos tokenizer on määritetty jakamaan merkit välilyöntien ja välimerkkien perusteella, se voi jakaa tämän lauseen seuraaviksi sanakkeiksi, joiden kokonaissanamäärä on 8, mikä vastaa merkkien määrää.

Itse tehty kuva.

Kuitenkin, jos tokenisaattori on määritetty käsittelemään "maapähkinävoi" yhdyssanana se voi jakaa lauseen seuraaviin merkkeihin, joiden sanamäärä on yhteensä 8, mutta merkkimäärä 7.

Siten tapa, jolla tokenizer konfiguroidaan, voi vaikuttaa tekstin yleiseen sanamäärään, ja tämä voi vaikuttaa LLM:n kykyyn noudattaa tarkkoja sanamäärää koskevia ohjeita. Vaikka jotkin tokenisaattorit tarjoavat vaihtoehtoja muokata tekstin tokenointitapaa, tämä ei aina riitä varmistamaan sanamäärävaatimusten tarkkaa noudattamista. Tässä tapauksessa emme voi hallita ChatGPT:n arkkitehtuurin tätä osaa.

Tämän vuoksi ChatGPT ei ole niin hyvä toteuttamaan merkki- tai sanarajoituksia, mutta voit yrittää sen sijaan lauseilla, koska tokenizer ei vaikuta lauseiden määrä, mutta niiden pituus.

Tämän rajoituksen tiedostaminen voi auttaa sinua rakentamaan sovelluksellesi parhaiten sopivan kehotteen. Kun tiedämme kuinka sanamäärä toimii ChatGPT:ssä, tehdään viimeinen iteraatio verkkokauppasovelluksen kehotteen kanssa!

Päätös: Verkkokaupan arvostelut

Yhdistäkäämme tästä artikkelista saamamme oppimisemme viimeiseksi kehotukseksi! Tässä tapauksessa pyydämme tuloksia HTML muoto paremman tuloksen saamiseksi:

from IPython.display import display, HTML prompt = f"""
Your task is to extract relevant information from a product review from an ecommerce site to give feedback to the Shipping department and generic feedback from the product. From the review below, delimited by triple quotes construct an HTML table with the sentiment of the review, general feedback from
the product in two sentences and information relevant to shipping and delivery. Review: ```{prod_review}``` """ response = get_completion(prompt)
display(HTML(response))

Ja tässä on lopullinen tulos ChatGPT:stä:

Itse tehty kuvakaappaus kohteesta Jupyter Notebook tässä artikkelissa käytettyjen esimerkkien kanssa.

Yhteenveto

Tässä artikkelissa, olemme keskustelleet parhaista käytännöistä ChatGPT:n käyttämiseksi mukautetun sovelluksemme yhteenvetoagenttina.

Olemme nähneet, että sovellusta rakennettaessa on erittäin vaikeaa löytää täydellinen kehote, joka vastaa sovelluksesi vaatimuksia ensimmäisessä kokeilussa. Mielestäni mukava kotiin vietävä viesti on ajattele kehotusta iteratiivisena prosessina jossa tarkennat ja mallinnat kehotettasi, kunnes saat täsmälleen halutun tulosteen.

Tarkennamalla kehotettasi iteratiivisesti ja soveltamalla sitä esimerkkierään ennen sen käyttöönottoa tuotantoon, voit varmistaa tulos on johdonmukainen useissa esimerkeissä ja kattaa poikkeavia vastauksia. Esimerkissämme voi käydä niin, että joku antaa satunnaisen tekstin arvostelun sijaan. Voimme ohjeistaa ChatGPT:tä käyttämään standardoitua ulostuloa näiden poikkeavien vastausten poissulkemiseksi.

Lisäksi, kun käytät ChatGPT:tä tiettyyn tehtävään, on myös hyvä käytäntö oppia LLM:ien käytön eduista ja haitoista kohdetehtävässämme. Näin törmäsimme siihen, että poimintatehtävät ovat yhteenvetoa tehokkaampia, kun halutaan yhteinen ihmismäinen tiivistelmä syöttötekstistä. Olemme myös oppineet, että yhteenvedon painopisteen tarjoaminen voi olla a peli-vaihtaja luodun sisällön suhteen.

Lopuksi, vaikka LLM:t voivat olla erittäin tehokkaita tekstin luomisessa, ne eivät ole ihanteellisia sanojen lukumäärää tai muita erityisiä muotoiluvaatimuksia koskevien tarkkojen ohjeiden noudattamiseen. Näiden tavoitteiden saavuttamiseksi saattaa olla tarpeen pysyä lauseiden laskennassa tai käyttää muita työkaluja tai menetelmiä, kuten manuaalista muokkausta tai erikoistuneempaa ohjelmistoa.

Tämä artikkeli julkaistiin alunperin Kohti datatieteitä ja julkaistu uudelleen TOPBOTS: lle tekijän luvalla.

Nautitko tästä artikkelista? Tilaa lisää AI-tutkimuspäivityksiä.

Ilmoitamme sinulle, kun julkaisemme lisää tämänkaltaisia ​​yhteenvetoartikkeleita.

Aikaleima:

Lisää aiheesta TOPBOTIT