Szövegösszegzés fejlesztése: Python bemutató a GPT-3.5-tel

Szövegösszegzés fejlesztése: Python bemutató a GPT-3.5-tel

Forrás csomópont: 2571007

Szövegösszegzés fejlesztése: Python bemutató a GPT-3.5-tel
Kép frimufilmek on Freepik
 

Ez egy olyan korszak, ahol az AI áttörés naponta érkezik. Néhány éve még nem sok mesterséges intelligencia generált a nyilvánosság előtt, de most már mindenki számára elérhető a technológia. Kiváló számos egyéni alkotó vagy vállalat számára, akik jelentős mértékben szeretnék kihasználni a technológiát valami összetett kifejlesztésére, ami hosszú ideig tarthat.

Az egyik leghihetetlenebb áttörés, amely megváltoztatja a működésünket, az a Az OpenAI GPT-3.5 modellje. Mi a GPT-3.5 modell? Ha hagyom, hogy a modell magáért beszéljen. Ebben az esetben a válasz: „egy rendkívül fejlett mesterséges intelligencia modell a természetes nyelvi feldolgozás területén, hatalmas fejlesztésekkel a kontextuálisan pontos és releváns szöveg létrehozásábant ”.

Az OpenAI egy API-t biztosít a GPT-3.5 modellhez, amellyel egy egyszerű alkalmazást, például szöveges összegzőt fejleszthetünk. Ehhez a Python segítségével zökkenőmentesen integrálhatjuk a modell API-t a tervezett alkalmazásunkba. Hogyan néz ki a folyamat? Menjünk bele.

Ennek az oktatóanyagnak a követéséhez néhány előfeltételnek kell megfelelnie, többek között:

– Python ismerete, beleértve a külső könyvtárak és az IDE használatának ismeretét

– Az API-k megértése és a végpont kezelése Python segítségével

– Hozzáférés az OpenAI API-khoz

Az OpenAI API-k eléréséhez regisztrálnunk kell a webhelyen OpenAI fejlesztői platform és keresse fel a View API-kulcsokat a profiljában. A weben kattintson az „Új titkos kulcs létrehozása” gombra az API-hozzáférés megszerzéséhez (lásd az alábbi képet). Ne felejtse el menteni a kulcsokat, mert ezután nem jelennek meg a kulcsok.
 

Szövegösszegzés fejlesztése: Python bemutató a GPT-3.5-tel
A kép szerzője
 

Minden előkészület után próbáljuk megérteni az OpenAI API-modell alapjait.

A GPT-3.5 családmodell sok nyelvi feladathoz volt megadva, és a család minden modellje kitűnik néhány feladatban. Ehhez az oktatói példához a gpt-3.5-turbo mivel ez volt az ajánlott jelenlegi modell a cikk írásakor a képességei és a költséghatékonysága miatt.

Gyakran használjuk a text-davinci-003 az OpenAI oktatóanyagban, de ehhez az oktatóanyaghoz a jelenlegi modellt használnánk. támaszkodnánk a ChatCompletion végpont a Befejezés helyett, mert a jelenlegi ajánlott modell egy csevegési modell. Még ha a név csevegési modell volt is, minden nyelvi feladatnál működik.

Próbáljuk megérteni, hogyan működik az API. Először is telepítenünk kell a jelenlegi OpenAI-csomagokat. 

pip install openai

 

Miután befejeztük a csomag telepítését, megpróbáljuk használni az API-t a ChatCompletion végponton keresztüli csatlakozással. A folytatás előtt azonban meg kell határoznunk a környezetet.

A kedvenc IDE-jében (számomra ez a VS Code) hozzon létre két fájlt .env és a summarizer_app.py, hasonlóan az alábbi képhez.

 

Szövegösszegzés fejlesztése: Python bemutató a GPT-3.5-tel
A kép szerzője
 

A summarizer_app.py itt építjük fel az egyszerű összesítő alkalmazásunkat, és a .env fájl az, ahol az API-kulcsunkat tárolnánk. Biztonsági okokból mindig azt tanácsoljuk, hogy az API-kulcsot egy másik fájlban különítsd el, ahelyett, hogy a Python-fájlba kódolnák.

A .env fájl adja meg a következő szintaxist, és mentse el a fájlt. Cserélje ki a_api_key_here-t a tényleges API-kulcsra. Ne változtassa meg az API-kulcsot karakterlánc objektummá; hagyd őket úgy ahogy vannak. 

OPENAI_API_KEY=your_api_key_here

 

A GPT-3.5 API jobb megértése; a következő kódot használjuk a szóösszefoglaló létrehozásához.

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}", }, ],
)

 

A fenti kód az OpenAI API-k GPT-3.5 modelljével való interakcióját mutatja be. A ChatCompletion API segítségével beszélgetést hozunk létre, és a prompt átadása után megkapjuk a kívánt eredményt.

Bontsuk fel az egyes részeket, hogy jobban megértsük őket. Az első sorban a openai.ChatCompletion.create kódot, hogy létrehozzuk a választ abból a promptból, amelyet átadunk az API-nak.

A következő sorban a hiperparamétereink vannak, amelyeket a szöveges feladatok javítására használunk. Itt található az egyes hiperparaméter-függvények összefoglalása:

  • model: Az általunk használni kívánt modellcsalád. Ebben az oktatóanyagban a jelenlegi ajánlott modellt használjuk (gpt-3.5-turbo).
  • max_tokens: A modell által generált szavak felső határa. Segít korlátozni a generált szöveg hosszát.
  • temperature: A modellkimenet véletlenszerűsége magasabb hőmérséklet mellett változatosabb és kreatívabb eredményt jelent. Az értéktartomány 0 és végtelen között van, bár a 2-nél nagyobb értékek nem általánosak. 
  • top_p: Top P vagy top-k mintavétel vagy mag mintavétel egy paraméter a mintavételi készlet vezérlésére a kimeneti eloszlásból. Például a 0.1 érték azt jelenti, hogy a modell csak az eloszlás felső 10%-ának kimenetét veszi minta. Az értéktartomány 0 és 1 között volt; magasabb értékek változatosabb eredményt jelentenek.
  • frequency_penalty: A kimenetből származó ismétlési jelző büntetés. A -2 és 2 közötti értéktartomány, ahol a pozitív értékek megakadályoznák a modell ismétlődését, míg a negatív értékek arra ösztönzik a modellt, hogy több ismétlődő szavakat használjon. A 0 azt jelenti, hogy nincs büntetés.
  • messages: Az a paraméter, ahol a szöveges promptot továbbítjuk a modellel való feldolgozásra. Átadjuk a szótárak listáját, ahol a kulcs a szerepobjektum (vagy „rendszer”, „felhasználó” vagy „segéd”), amely segít a modellnek megérteni a kontextust és a struktúrát, miközben az értékek a kontextus.
    •  A „rendszer” szerep a modell „asszisztens” viselkedésének meghatározott irányelvei,
    •  A „felhasználó” szerep a modellel interakcióba lépő személy felszólítását jelenti,
    •  Az „asszisztens” szerep a „felhasználói” felszólításra adott válasz

A fenti paraméter magyarázata után láthatjuk, hogy a messages A fenti paraméternek két szótárobjektuma van. Az első szótár arról szól, hogyan állítjuk be a modellt szövegösszefoglalóként. A második az, ahol átadjuk a szövegünket, és megkapjuk az összefoglaló kimenetet. 

A második szótárban is látni fogja a változót person_type és a prompt Az person_type egy olyan változó, amelyet az összefoglalt stílus szabályozására használtam, amelyet az oktatóanyagban mutatok meg. Amíg a prompt oda adnánk át a szövegünket, hogy összefoglaljuk.

Folytatva az oktatóanyagot, helyezze el az alábbi kódot a summarizer_app.py fájlt, és megpróbáljuk végigfuttatni az alábbi függvény működését.

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"]

 

A fenti kódban létrehozunk egy Python-függvényt, amely elfogadja a korábban már tárgyalt paramétereket, és visszaadja a szöveges összefoglaló kimenetet. 

Próbálja ki a fenti függvényt a paraméterével, és nézze meg a kimenetet. Ezután folytassuk az oktatóanyagot egy egyszerű alkalmazás létrehozásához a streamlit csomaggal.

Áramlatos egy nyílt forráskódú Python-csomag, amelyet gépi tanulási és adattudományi webalkalmazások létrehozására terveztek. Könnyen használható és intuitív, ezért sok kezdő számára ajánlott. 

Telepítsük a streamlit csomagot, mielőtt folytatnánk az oktatóanyagot.

pip install streamlit

 

A telepítés befejezése után írja be a következő kódot a 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))

 

Az alkalmazás elindításához próbálja meg a következő kódot futtatni a parancssorban.

streamlit run summarizer_app.py

 

Ha minden jól működik, a következő alkalmazást fogja látni az alapértelmezett böngészőben.

 

Szövegösszegzés fejlesztése: Python bemutató a GPT-3.5-tel
A kép szerzője
 

Szóval, mi történt a fenti kóddal? Hadd magyarázzam el röviden az általunk használt egyes funkciókat:

  • .st.title: Adja meg a webalkalmazás címszövegét.
  • .st.write: Az argumentumot beírja az alkalmazásba; bármi lehet, de főleg egy karakterlánc szöveg.
  • .st.text_area: Adjon meg egy területet a szövegbevitelhez, amely a változóban tárolható és szövegösszesítőnk promptjához használható
  • .st.columns: Objektumtárolók egymás melletti interakció biztosításához.
  • .st.slider: Adjon meg egy csúszka widgetet beállított értékekkel, amelyekkel a felhasználó kapcsolatba léphet. Az értéket a modell paramétereként használt változó tárolja.
  • .st.selectbox: Kijelölő widgetet biztosít a felhasználóknak a kívánt összegzési stílus kiválasztásához. A fenti példában öt különböző stílust használunk.
  • .st.expander: Adjon meg egy tárolót, amelyben a felhasználók több objektumot kibonthatnak és tárolhatnak.
  • .st.button: Biztosítson egy gombot, amely a kívánt funkciót futtatja, amikor a felhasználó megnyomja.

Mivel a streamlit automatikusan az adott kódot követve, felülről lefelé tervezné a felhasználói felületet, így jobban összpontosíthatnánk az interakcióra.  

Ha minden alkatrész a helyén van, próbáljuk ki az összefoglaló alkalmazásunkat egy szöveges példával. Példánkban a Relativitáselmélet Wikipédia oldal összefoglalandó szöveg. Alapértelmezett paraméterrel és második osztályos stílussal a következő eredményt kapjuk.

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! 

 

Előfordulhat, hogy a fentitől eltérő eredményt kap. Próbáljuk ki a Housewives stílust, és kicsit módosítsuk a paramétert (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.

 

Amint látjuk, az általunk közölt szöveg stílusában eltérő. Egy változtatási felszólítással és paraméterrel az alkalmazásunk funkcionálisabb lehet. 

Szövegösszefoglaló alkalmazásunk általános kinézete az alábbi képen látható.

 

Szövegösszegzés fejlesztése: Python bemutató a GPT-3.5-tel
A kép szerzője
 

Ez az oktatóanyag a szövegösszefoglaló alkalmazásfejlesztés GPT-3.5 segítségével történő létrehozásához. Még tovább módosíthatja az alkalmazást, és üzembe helyezheti az alkalmazást.

A generatív AI növekszik, és ki kell használnunk a lehetőséget egy fantasztikus alkalmazás létrehozásával. Ebben az oktatóanyagban megtudjuk, hogyan működnek a GPT-3.5 OpenAI API-k, és hogyan lehet velük szövegösszesítő alkalmazást létrehozni Python és streamlit csomag segítségével.
 
 
Cornelius Yudha Wijaya adattudományi asszisztens menedzser és adatíró. Miközben teljes munkaidőben dolgozik az Allianz Indonesia-nál, szeret Python és Data tippeket megosztani a közösségi médián és az írási médián keresztül.
 

Időbélyeg:

Még több KDnuggets