Pengembangan Peringkasan Teks: Tutorial Python dengan GPT-3.5

Pengembangan Peringkasan Teks: Tutorial Python dengan GPT-3.5

Node Sumber: 2571007

Pengembangan Peringkasan Teks: Tutorial Python dengan GPT-3.5
Image by frimufilms on Freepik
 

Ini adalah era di mana terobosan AI datang setiap hari. Kami tidak memiliki banyak AI yang dihasilkan di depan umum beberapa tahun yang lalu, tetapi sekarang teknologinya dapat diakses oleh semua orang. Ini sangat bagus untuk banyak pencipta individu atau perusahaan yang ingin memanfaatkan teknologi secara signifikan untuk mengembangkan sesuatu yang kompleks, yang mungkin memakan waktu lama.

Salah satu terobosan paling luar biasa yang mengubah cara kami bekerja adalah dirilisnya Model GPT-3.5 oleh OpenAI. Apa itu model GPT-3.5? Jika saya membiarkan model berbicara sendiri. Dalam hal ini, jawabannya adalah “model AI yang sangat canggih di bidang pemrosesan bahasa alami, dengan peningkatan besar dalam menghasilkan teks yang akurat dan relevan secara kontekstualt ”.

OpenAI menyediakan API untuk model GPT-3.5 yang dapat kita gunakan untuk mengembangkan aplikasi sederhana, seperti peringkas teks. Untuk melakukan itu, kita bisa menggunakan Python untuk mengintegrasikan API model ke dalam aplikasi yang kita maksud dengan mulus. Seperti apa prosesnya? Mari kita masuk ke dalamnya.

Ada beberapa prasyarat sebelum mengikuti tutorial ini, antara lain:

– Pengetahuan tentang Python, termasuk pengetahuan menggunakan perpustakaan eksternal dan IDE

– Memahami API dan menangani titik akhir dengan Python

– Memiliki akses ke API OpenAI

Untuk mendapatkan akses API OpenAI, kita harus mendaftar di Platform Pengembang OpenAI dan kunjungi kunci Lihat API dalam profil Anda. Di web, klik tombol "Buat kunci rahasia baru" untuk mendapatkan akses API (Lihat gambar di bawah). Ingatlah untuk menyimpan kunci, karena kunci tidak akan ditampilkan setelah itu.
 

Pengembangan Peringkasan Teks: Tutorial Python dengan GPT-3.5
Gambar oleh Penulis
 

Setelah semua persiapan siap, mari kita coba memahami dasar model OpenAI APIs.

Grafik Model keluarga GPT-3.5 ditentukan untuk banyak tugas bahasa, dan setiap model dalam keluarga unggul dalam beberapa tugas. Untuk contoh tutorial ini, kita akan menggunakan gpt-3.5-turbo karena ini adalah model terkini yang direkomendasikan saat artikel ini ditulis karena kemampuan dan efisiensi biayanya.

Kami sering menggunakan text-davinci-003 dalam tutorial OpenAI, tetapi kami akan menggunakan model saat ini untuk tutorial ini. Kami akan mengandalkan Penyelesaian Obrolan titik akhir alih-alih Penyelesaian karena model yang direkomendasikan saat ini adalah model obrolan. Bahkan jika namanya adalah model obrolan, itu berfungsi untuk tugas bahasa apa pun.

Mari kita coba memahami cara kerja API. Pertama, kita perlu menginstal paket OpenAI saat ini. 

pip install openai

 

Setelah kita selesai menginstal paketnya, kita akan mencoba menggunakan API dengan menghubungkan melalui endpoint ChatCompletion. Namun, kita perlu mengatur lingkungan sebelum melanjutkan.

Di IDE favorit Anda (untuk saya, ini adalah VS Code), buat dua file bernama .env dan summarizer_app.py, seperti gambar di bawah ini.

 

Pengembangan Peringkasan Teks: Tutorial Python dengan GPT-3.5
Gambar oleh Penulis
 

Grafik summarizer_app.py adalah tempat kami akan membangun aplikasi peringkas sederhana kami, dan .env file adalah tempat kami menyimpan Kunci API kami. Untuk alasan keamanan, selalu disarankan untuk memisahkan kunci API kami di file lain daripada melakukan hard-code di file Python.

Dalam majalah .env file letakkan sintaks berikut dan simpan file. Ganti your_api_key_here dengan kunci API Anda yang sebenarnya. Jangan ubah kunci API menjadi objek string; biarkan mereka apa adanya. 

OPENAI_API_KEY=your_api_key_here

 

Untuk memahami API GPT-3.5 dengan lebih baik; kami akan menggunakan kode berikut untuk menghasilkan kata sumsumer.

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

 

Kode di atas adalah cara kami berinteraksi dengan model OpenAI APIs GPT-3.5. Menggunakan ChatCompletion API, kami membuat percakapan dan akan mendapatkan hasil yang diinginkan setelah melewati prompt.

Mari kita uraikan setiap bagian untuk memahaminya dengan lebih baik. Pada baris pertama, kita menggunakan the openai.ChatCompletion.create kode untuk membuat respons dari prompt yang akan kami berikan ke API.

Di baris berikutnya, kami memiliki hyperparameter yang kami gunakan untuk meningkatkan tugas teks kami. Berikut adalah ringkasan dari setiap fungsi hyperparameter:

  • model: Keluarga model yang ingin kita gunakan. Dalam tutorial ini, kami menggunakan model yang direkomendasikan saat ini (gpt-3.5-turbo).
  • max_tokens: Batas atas kata yang dihasilkan oleh model. Ini membantu untuk membatasi panjang teks yang dihasilkan.
  • temperature: Keacakan keluaran model, dengan suhu yang lebih tinggi, berarti hasil yang lebih beragam dan kreatif. Kisaran nilai antara 0 hingga tak terhingga, meskipun nilai lebih dari 2 tidak umum. 
  • top_p: Top P atau top-k sampling atau sampling nukleus adalah parameter untuk mengontrol sampling pool dari distribusi keluaran. Misalnya, nilai 0.1 berarti model hanya mengambil sampel keluaran dari 10% distribusi teratas. Kisaran nilai antara 0 dan 1; nilai yang lebih tinggi berarti hasil yang lebih beragam.
  • frequency_penalty: Penalti untuk token pengulangan dari output. Kisaran nilai antara -2 hingga 2, di mana nilai positif akan menekan model dari pengulangan token sementara nilai negatif mendorong model untuk menggunakan lebih banyak kata berulang. 0 berarti tidak ada penalti.
  • messages: Parameter di mana kita mengirimkan prompt teks kita untuk diproses dengan model. Kami melewati daftar kamus di mana kuncinya adalah objek peran (baik "sistem", "pengguna", atau "asisten") yang membantu model untuk memahami konteks dan struktur sedangkan nilai adalah konteksnya.
    •  Peran "sistem" adalah pedoman yang ditetapkan untuk model perilaku "asisten",
    •  Peran "pengguna" mewakili permintaan dari orang yang berinteraksi dengan model,
    •  Peran "asisten" adalah respons terhadap perintah "pengguna".

Setelah menjelaskan parameter di atas, kita dapat melihat bahwa messages parameter di atas memiliki dua objek kamus. Kamus pertama adalah bagaimana kita menetapkan model sebagai peringkas teks. Yang kedua adalah di mana kita akan meneruskan teks kita dan mendapatkan keluaran peringkasan. 

Di kamus kedua, Anda juga akan melihat variabelnya person_type dan prompt. itu person_type adalah variabel yang saya gunakan untuk mengontrol gaya ringkasan, yang akan saya tunjukkan di tutorial. Selagi prompt adalah di mana kita akan melewati teks kita untuk diringkas.

Melanjutkan tutorial, tempatkan kode di bawah ini di summarizer_app.py file dan kami akan mencoba menjalankan bagaimana fungsi di bawah ini bekerja.

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

 

Kode di atas adalah tempat kita membuat fungsi Python yang akan menerima berbagai parameter yang telah kita bahas sebelumnya dan mengembalikan hasil ringkasan teks. 

Coba fungsi di atas dengan parameter Anda dan lihat hasilnya. Selanjutnya mari kita lanjutkan tutorial membuat aplikasi sederhana dengan paket streamlit.

merampingkan adalah paket Python sumber terbuka yang dirancang untuk membuat pembelajaran mesin dan aplikasi web ilmu data. Mudah digunakan dan intuitif, sehingga direkomendasikan untuk banyak pemula. 

Mari instal paket streamlit sebelum melanjutkan tutorial.

pip install streamlit

 

Setelah instalasi selesai, masukkan kode berikut ke dalam 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))

 

Coba jalankan kode berikut di command prompt Anda untuk memulai aplikasi.

streamlit run summarizer_app.py

 

Jika semuanya berfungsi dengan baik, Anda akan melihat aplikasi berikut di browser default Anda.

 

Pengembangan Peringkasan Teks: Tutorial Python dengan GPT-3.5
Gambar oleh Penulis
 

Jadi, apa yang terjadi pada kode di atas? Izinkan saya menjelaskan secara singkat setiap fungsi yang kami gunakan:

  • .st.title: Berikan teks judul aplikasi web.
  • .st.write: Menulis argumen ke dalam aplikasi; itu bisa berupa apa saja kecuali teks string.
  • .st.text_area: Sediakan area untuk input teks yang dapat disimpan dalam variabel dan digunakan untuk prompt untuk meringkas teks kita
  • .st.columns: Kontainer objek untuk menyediakan interaksi berdampingan.
  • .st.slider: Sediakan widget penggeser dengan nilai yang ditetapkan yang dapat berinteraksi dengan pengguna. Nilai disimpan pada variabel yang digunakan sebagai parameter model.
  • .st.selectbox: Sediakan widget pilihan bagi pengguna untuk memilih gaya peringkasan yang mereka inginkan. Dalam contoh di atas, kami menggunakan lima gaya berbeda.
  • .st.expander: Sediakan wadah yang dapat diperluas pengguna dan menampung beberapa objek.
  • .st.button: Sediakan tombol yang menjalankan fungsi yang dimaksud saat pengguna menekannya.

Karena streamlit akan secara otomatis mendesain UI mengikuti kode yang diberikan dari atas ke bawah, kita dapat lebih fokus pada interaksi.  

Dengan semua bagian di tempatnya, mari kita coba aplikasi peringkasan kita dengan contoh teks. Sebagai contoh kita, saya akan menggunakan the Halaman Wikipedia Teori Relativitas teks yang akan diringkas. Dengan parameter default dan gaya kelas dua, kami memperoleh hasil berikut.

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! 

 

Anda mungkin mendapatkan hasil yang berbeda dari yang di atas. Mari kita coba gaya Housewives dan tweak parameternya sedikit (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.

 

Seperti yang bisa kita lihat, ada perbedaan gaya untuk teks yang sama yang kami berikan. Dengan prompt perubahan dan parameter, aplikasi kita bisa lebih fungsional. 

Tampilan keseluruhan dari aplikasi text sumsumer kita dapat dilihat pada gambar di bawah ini.

 

Pengembangan Peringkasan Teks: Tutorial Python dengan GPT-3.5
Gambar oleh Penulis
 

Itulah tutorial membuat pengembangan aplikasi text summerer dengan GPT-3.5. Anda dapat men-tweak aplikasi lebih jauh dan menyebarkan aplikasi.

AI generatif sedang meningkat, dan kita harus memanfaatkan kesempatan ini dengan membuat aplikasi yang fantastis. Dalam tutorial ini, kita akan mempelajari cara kerja GPT-3.5 OpenAI API dan cara menggunakannya untuk membuat aplikasi peringkas teks dengan bantuan paket Python dan streamlit.
 
 
Cornellius Yudha Wijaya adalah asisten manajer ilmu data dan penulis data. Selama bekerja full-time di Allianz Indonesia, ia suka berbagi tips Python dan Data melalui media sosial dan media tulis.
 

Stempel Waktu:

Lebih dari KDnugget