Tekstin yhteenvetokehitys: Python-opetusohjelma GPT-3.5:llä

Tekstin yhteenvetokehitys: Python-opetusohjelma GPT-3.5:llä

Lähdesolmu: 2571007

Tekstin yhteenvetokehitys: Python-opetusohjelma GPT-3.5:llä
Kuva frimufilmit on Freepik
 

Tämä on aikakausi, jolloin tekoälyn läpimurto tapahtuu päivittäin. Meillä ei ollut paljon tekoälyn tuottamaa julkisuutta muutama vuosi sitten, mutta nyt tekniikka on kaikkien saatavilla. Se sopii erinomaisesti monille yksittäisille sisällöntuottajille tai yrityksille, jotka haluavat hyödyntää teknologiaa merkittävästi kehittääkseen jotain monimutkaista, mikä saattaa kestää kauan.

Yksi uskomattomimmista läpimurroista, jotka muuttavat tapaamme toimia, on julkaisun julkaiseminen OpenAI:n GPT-3.5 malli. Mikä on GPT-3.5 malli? Jos annan mallin puhua puolestaan. Siinä tapauksessa vastaus on "erittäin kehittynyt tekoälymalli luonnollisen kielen prosessoinnin alalla, jossa on valtavat parannukset kontekstuaalisesti tarkan ja relevantin tekstin luomisessat ”.

OpenAI tarjoaa GPT-3.5-mallille API:n, jonka avulla voimme kehittää yksinkertaisen sovelluksen, kuten tekstin yhteenvedon. Tätä varten voimme käyttää Pythonia integroimaan mallisovellusliittymän saumattomasti suunniteltuun sovellukseemme. Miltä prosessi näyttää? Mennään asiaan.

Tämän opetusohjelman noudattaminen edellyttää muutamia edellytyksiä, mukaan lukien:

– Pythonin tuntemus, mukaan lukien ulkoisten kirjastojen ja IDE:n käytön tuntemus

– API:iden ymmärtäminen ja päätepisteen käsittely Pythonilla

– OpenAI-sovellusliittymien käyttöoikeus

OpenAI-sovellusliittymien käyttöoikeuden saamiseksi meidän on rekisteröidyttävä osoitteessa OpenAI Developer Platform ja vieraile profiilisi Näytä API-avaimissa. Napsauta verkossa "Luo uusi salainen avain" -painiketta saadaksesi API-käyttöoikeuden (katso kuva alla). Muista tallentaa avaimet, koska niille ei näytetä avaimia sen jälkeen.
 

Tekstin yhteenvetokehitys: Python-opetusohjelma GPT-3.5:llä
Kuva tekijältä
 

Kun kaikki valmistelut ovat valmiit, yritetään ymmärtää OpenAI API -mallin perusasiat.

- GPT-3.5 perhemalli määriteltiin moniin kielitehtäviin, ja jokainen perheen malli on erinomainen joissakin tehtävissä. Tässä opetusohjelmaesimerkissä käyttäisimme gpt-3.5-turbo koska se oli suositeltu nykyinen malli, kun tämä artikkeli kirjoitettiin sen kyvykkyyden ja kustannustehokkuuden vuoksi.

Käytämme usein text-davinci-003 OpenAI-opetusohjelmassa, mutta käyttäisimme nykyistä mallia tässä opetusohjelmassa. Luottaisimme siihen ChatCompletion päätepiste Täydennyksen sijaan, koska nykyinen suositeltu malli on chat-malli. Vaikka nimi olisi chat-malli, se toimii kaikissa kielitehtävissä.

Yritetään ymmärtää kuinka API toimii. Ensin meidän on asennettava nykyiset OpenAI-paketit. 

pip install openai

 

Kun olemme asentaneet paketin, yritämme käyttää API:ta muodostamalla yhteyden ChatCompletion-päätepisteen kautta. Meidän on kuitenkin asetettava ympäristö ennen kuin jatkamme.

Luo suosikki-IDE:ssäsi (minulle se on VS Code) kaksi tiedostoa nimeltä .env ja summarizer_app.py, samanlainen kuin alla oleva kuva.

 

Tekstin yhteenvetokehitys: Python-opetusohjelma GPT-3.5:llä
Kuva tekijältä
 

- summarizer_app.py on paikka, jossa rakentaisimme yksinkertaisen yhteenvetosovelluksemme ja .env tiedosto on paikka, johon tallennamme API-avaimemme. Turvallisuussyistä on aina suositeltavaa erottaa API-avaimemme toiseen tiedostoon sen sijaan, että koodaat ne Python-tiedostoon.

In .env tiedosto laita seuraava syntaksi ja tallenna tiedosto. Korvaa your_api_key_here todellisella API-avaimellasi. Älä muuta API-avainta merkkijonoobjektiksi. anna niiden sellaisenaan. 

OPENAI_API_KEY=your_api_key_here

 

Ymmärtääksesi GPT-3.5 API:n paremmin; käyttäisimme seuraavaa koodia sanan yhteenvedon luomiseen.

openai.ChatCompletion.create( model="gpt-3.5-turbo", max_tokens=100, temperature=0.7, top_p=0.5, frequency_penalty=0.5, messages=[ { "role": "system", "content": "You are a helpful assistant for text summarization.", }, { "role": "user", "content": f"Summarize this for a {person_type}: {prompt}", }, ],
)

 

Yllä oleva koodi on vuorovaikutus OpenAI-sovellusliittymien GPT-3.5-mallin kanssa. ChatCompletion API:n avulla luomme keskustelun ja saamme halutun tuloksen kehotteen läpäisemisen jälkeen.

Puretaan jokainen osa ymmärtääksemme niitä paremmin. Ensimmäisellä rivillä käytämme openai.ChatCompletion.create koodia luodaksesi vastauksen kehotteessa, jonka välitämme API:lle.

Seuraavalla rivillä on hyperparametrimme, joita käytämme tekstitehtäviemme parantamiseen. Tässä on yhteenveto jokaisesta hyperparametrifunktiosta:

  • model: Malliperhe, jota haluamme käyttää. Tässä opetusohjelmassa käytämme nykyistä suositeltua mallia (gpt-3.5-turbo).
  • max_tokens: Mallin luomien sanojen yläraja. Se auttaa rajoittamaan luodun tekstin pituutta.
  • temperature: Mallin tulosteen satunnaisuus korkeammalla lämpötilalla tarkoittaa monipuolisempaa ja luovampaa tulosta. Arvoalue on välillä 0 ja ääretön, vaikka arvot yli 2 eivät ole yleisiä. 
  • top_p: Top P- tai top-k -näytteenotto tai ydinnäytteenotto on parametri, jolla ohjataan näytepoolia lähtöjakaumasta. Esimerkiksi arvo 0.1 tarkoittaa, että malli ottaa näytteitä vain jakauman ylimmästä 10 %:sta. Arvoalue oli välillä 0 ja 1; korkeammat arvot tarkoittavat monipuolisempaa tulosta.
  • frequency_penalty: Rangaistus toistotunnuksesta ulostulosta. Arvoalue -2:sta 2:een, jossa positiiviset arvot estävät mallia toistamasta merkkiä, kun taas negatiiviset arvot rohkaisevat mallia käyttämään enemmän toistuvia sanoja. 0 tarkoittaa, ettei rangaistusta.
  • messages: Parametri, jolle välitämme tekstikehotteen, joka käsitellään mallin kanssa. Välitämme luettelon sanakirjoista, joissa avain on rooliobjekti (joko "järjestelmä", "käyttäjä" tai "avustaja", joka auttaa mallia ymmärtämään kontekstin ja rakenteen, kun arvot ovat konteksti).
    •  Rooli "järjestelmä" on mallin "avustaja" käyttäytymisen asetetut ohjeet,
    •  Rooli "käyttäjä" edustaa mallin kanssa vuorovaikutuksessa olevan henkilön kehotusta,
    •  Rooli "assistentti" on vastaus "käyttäjän" kehotteeseen

Selitettyämme yllä olevan parametrin voimme nähdä, että messages yllä olevalla parametrilla on kaksi sanakirjaobjektia. Ensimmäinen sanakirja on se, kuinka asetamme mallin tekstin yhteenvedoksi. Toinen on paikka, jossa välitämme tekstimme ja saamme yhteenvedon. 

Toisessa sanakirjassa näet myös muuttujan person_type ja prompt. person_type on muuttuja, jota käytin ohjaamaan tiivistettyä tyyliä, jonka näytän opetusohjelmassa. Samalla kun prompt välitämme tekstimme yhteenvedon tekemiseksi.

Jatka opetusohjelmaa, aseta alla oleva koodi summarizer_app.py tiedosto ja yritämme käydä läpi, kuinka alla oleva toiminto toimii.

import openai
import os
from dotenv import load_dotenv load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY") def generate_summarizer( max_tokens, temperature, top_p, frequency_penalty, prompt, person_type,
): res = openai.ChatCompletion.create( model="gpt-3.5-turbo", max_tokens=100, temperature=0.7, top_p=0.5, frequency_penalty=0.5, messages= [ { "role": "system", "content": "You are a helpful assistant for text summarization.", }, { "role": "user", "content": f"Summarize this for a {person_type}: {prompt}", }, ], ) return res["choices"][0]["message"]["content"]

 

Yllä oleva koodi on paikka, jossa luomme Python-funktion, joka hyväksyy erilaisia ​​​​parametreja, joista olemme keskustelleet aiemmin, ja palauttaa tekstiyhteenvedon. 

Kokeile yllä olevaa toimintoa parametrillasi ja katso tulos. Jatketaan sitten opetusohjelmaa yksinkertaisen sovelluksen luomiseksi streamlit-paketilla.

Virtaviivainen on avoimen lähdekoodin Python-paketti, joka on suunniteltu koneoppimisen ja datatieteen verkkosovellusten luomiseen. Se on helppokäyttöinen ja intuitiivinen, joten sitä suositellaan monille aloittelijoille. 

Asennamme streamlit-paketin ennen kuin jatkamme opetusohjelmaa.

pip install streamlit

 

Kun asennus on valmis, laita seuraava koodi tiedostoon summarizer_app.py.

import streamlit as st #Set the application title
st.title("GPT-3.5 Text Summarizer") #Provide the input area for text to be summarized
input_text = st.text_area("Enter the text you want to summarize:", height=200) #Initiate three columns for section to be side-by-side
col1, col2, col3 = st.columns(3) #Slider to control the model hyperparameter
with col1: token = st.slider("Token", min_value=0.0, max_value=200.0, value=50.0, step=1.0) temp = st.slider("Temperature", min_value=0.0, max_value=1.0, value=0.0, step=0.01) top_p = st.slider("Nucleus Sampling", min_value=0.0, max_value=1.0, value=0.5, step=0.01) f_pen = st.slider("Frequency Penalty", min_value=-1.0, max_value=1.0, value=0.0, step=0.01) #Selection box to select the summarization style
with col2: option = st.selectbox( "How do you like to be explained?", ( "Second-Grader", "Professional Data Scientist", "Housewives", "Retired", "University Student", ), ) #Showing the current parameter used for the model with col3: with st.expander("Current Parameter"): st.write("Current Token :", token) st.write("Current Temperature :", temp) st.write("Current Nucleus Sampling :", top_p) st.write("Current Frequency Penalty :", f_pen) #Creating button for execute the text summarization
if st.button("Summarize"): st.write(generate_summarizer(token, temp, top_p, f_pen, input_text, option))

 

Yritä suorittaa seuraava koodi komentokehotteessa käynnistääksesi sovelluksen.

streamlit run summarizer_app.py

 

Jos kaikki toimii hyvin, näet seuraavan sovelluksen oletusselaimessasi.

 

Tekstin yhteenvetokehitys: Python-opetusohjelma GPT-3.5:llä
Kuva tekijältä
 

Joten mitä tapahtui yllä olevassa koodissa? Selitän lyhyesti jokaista käyttämäämme funktiota:

  • .st.title: Anna verkkosovelluksen otsikkoteksti.
  • .st.write: Kirjoittaa argumentin sovellukseen; se voi olla mitä tahansa muuta kuin lähinnä merkkijonotekstiä.
  • .st.text_area: Anna tekstinsyöttöä varten alue, joka voidaan tallentaa muuttujaan ja jota voidaan käyttää tekstin yhteenvetotyökalun kehotteeseen
  • .st.columns: Objektisäiliöt vierekkäisen vuorovaikutuksen aikaansaamiseksi.
  • .st.slider: Tarjoa liukusäädin-widget, jossa on asetettuja arvoja, joiden kanssa käyttäjä voi olla vuorovaikutuksessa. Arvo tallennetaan muuttujaan, jota käytetään malliparametrina.
  • .st.selectbox: Tarjoa valintawidget, jonka avulla käyttäjät voivat valita haluamansa yhteenvedotyylin. Yllä olevassa esimerkissä käytämme viittä eri tyyliä.
  • .st.expander: Tarjoa säilö, jota käyttäjät voivat laajentaa ja säilyttää useita objekteja.
  • .st.button: Tarjoa painike, joka suorittaa aiotun toiminnon, kun käyttäjä painaa sitä.

Koska streamlit suunnittelisi käyttöliittymän automaattisesti annettua koodia noudattaen ylhäältä alas, voisimme keskittyä enemmän vuorovaikutukseen.  

Kun kaikki palaset ovat paikoillaan, kokeillaan yhteenvetosovellustamme tekstiesimerkillä. Esimerkkissämme käyttäisin Suhteellisuusteoria Wikipedian sivu tiivistettävä teksti. Oletusparametrilla ja toisen luokkalaisen tyylillä saamme seuraavan tuloksen.

Albert Einstein was a very smart scientist who came up with two important ideas about how the world works. The first one, called special relativity, talks about how things move when there is no gravity. The second one, called general relativity, explains how gravity works and how it affects things in space like stars and planets. These ideas helped us understand many things in science, like how particles interact with each other and even helped us discover black holes! 

 

Saatat saada erilaisen tuloksen kuin yllä oleva. Kokeillaan Housewives-tyyliä ja säädellään parametria hieman (Token 100, Temperature 0.5, Nucleus Sampling 0.5, Frequency Penalty 0.3).

The theory of relativity is a set of physics theories proposed by Albert Einstein in 1905 and 1915. It includes special relativity, which applies to physical phenomena without gravity, and general relativity, which explains the law of gravitation and its relation to the forces of nature. The theory transformed theoretical physics and astronomy in the 20th century, introducing concepts like 4-dimensional spacetime and predicting astronomical phenomena like black holes and gravitational waves.

 

Kuten näemme, tarjoamamme tekstin tyyli eroaa. Muutoskehotteen ja parametrin avulla sovelluksemme voi olla toimivampi. 

Tekstin yhteenvetosovelluksemme yleisilme näkyy alla olevassa kuvassa.

 

Tekstin yhteenvetokehitys: Python-opetusohjelma GPT-3.5:llä
Kuva tekijältä
 

Tämä on opetusohjelma tekstin yhteenvetosovelluskehityksen luomiseen GPT-3.5:llä. Voit muokata sovellusta entisestään ja ottaa sovelluksen käyttöön.

Generatiivinen tekoäly on nousussa, ja meidän pitäisi hyödyntää tilaisuus luomalla upea sovellus. Tässä opetusohjelmassa opimme kuinka GPT-3.5 OpenAI API:t toimivat ja kuinka niiden avulla luodaan tekstin yhteenvetosovellus Pythonin ja streamlit-paketin avulla.
 
 
Cornelius Yudha Wijaya on datatieteen apulaisjohtaja ja tietojen kirjoittaja. Työskennellessään kokopäiväisesti Allianz Indonesiassa hän mielellään jakaa Python- ja Data-vinkkejä sosiaalisen median ja kirjoitusmedian kautta.
 

Aikaleima:

Lisää aiheesta KDnuggets