Menguasai ChatGPT: Peringkasan Efektif Dengan LLM

Menguasai ChatGPT: Peringkasan Efektif Dengan LLM

Node Sumber: 2763303

Peringkasan Teks ChatGPT

Agen peringkasan yang dibayangkan oleh alat pembuat citra AI Dall-E.

Apakah Anda bagian dari populasi yang meninggalkan ulasan di peta Google setiap kali Anda berkunjung ke restoran baru?

Atau mungkin Anda adalah tipe orang yang membagikan pendapat Anda tentang pembelian Amazon, terutama ketika Anda dipicu oleh produk berkualitas rendah?

Jangan khawatir, saya tidak akan menyalahkan Anda — kita semua memiliki momen masing-masing!

Di dunia data saat ini, kita semua berkontribusi pada banjir data dengan berbagai cara. Salah satu tipe data yang menurut saya sangat menarik karena keragaman dan kesulitan interpretasinya adalah data tekstual, seperti ulasan yang tak terhitung jumlahnya yang diposting melalui Internet setiap hari. Pernahkah Anda berhenti untuk mempertimbangkan pentingnya membakukan dan memadatkan data tekstual?
Selamat datang di dunia agen peringkasan!

Agen peringkasan telah terintegrasi dengan mulus ke dalam kehidupan kita sehari-hari, memadatkan informasi dan menyediakan akses cepat ke konten yang relevan di banyak aplikasi dan platform.

Pada artikel ini, kami akan mengeksplorasi pemanfaatan ChatGPT sebagai agen peringkasan yang kuat untuk aplikasi khusus kami. Berkat kemampuan Large Language Models (LLM) untuk memproses dan memahami teks, mereka dapat membantu dalam membaca teks dan menghasilkan ringkasan yang akurat atau membakukan informasi. Namun, penting untuk mengetahui bagaimana menggali potensi mereka dalam melakukan tugas tersebut, serta mengakui keterbatasan mereka.

Keterbatasan terbesar untuk peringkasan?
LLM sering kali gagal dalam hal mengikuti batasan karakter atau kata tertentu dalam ringkasan mereka.

Mari jelajahi praktik terbaik untuk membuat ringkasan dengan ChatGPT untuk aplikasi kustom kami, serta alasan di balik keterbatasannya dan cara mengatasinya!

Jika konten pendidikan yang mendalam ini bermanfaat bagi Anda, Anda bisa berlangganan milis penelitian AI kami untuk diperingatkan ketika kami merilis materi baru. 

Peringkasan Efektif dengan ChatGPT

Agen peringkasan digunakan di seluruh Internet. Misalnya, situs web menggunakan agen peringkasan untuk menawarkan ringkasan artikel yang ringkas, yang memungkinkan pengguna mendapatkan gambaran singkat tentang berita tanpa mendalami keseluruhan konten. Platform media sosial dan mesin pencari juga melakukannya.

Dari agregator berita dan platform media sosial hingga situs web e-niaga, agen peringkasan telah menjadi bagian tak terpisahkan dari lanskap digital kami. Dan dengan kenaikan LLM, beberapa agen ini sekarang menggunakan AI untuk hasil peringkasan yang lebih efektif.

ChatGPT dapat menjadi sekutu yang baik saat membuat aplikasi menggunakan agen peringkasan untuk mempercepat tugas membaca dan mengklasifikasikan teks. Misalnya, bayangkan kita memiliki bisnis e-niaga dan tertarik untuk memproses semua ulasan pelanggan. ChatGPT dapat membantu kami meringkas ulasan yang diberikan dalam beberapa kalimat, membakukannya ke format generik, menentukan sentimen ulasan, dan mengklasifikasikan itu sesuai.

Meskipun benar bahwa kami dapat memberikan ulasan tersebut ke ChatGPT, ada daftar praktik terbaik — dan hal-hal yang harus dihindari — untuk memanfaatkan kekuatan ChatGPT dalam tugas konkret ini.

Mari jelajahi opsi dengan menghidupkan contoh ini!

Contoh: Ulasan E-niaga

GIF buatan sendiri.

Pertimbangkan contoh di atas di mana kami tertarik untuk memproses semua ulasan untuk produk tertentu di situs web e-niaga kami. Kami akan tertarik untuk memproses ulasan seperti berikut tentang produk unggulan kami: komputer pertama untuk anak-anak!

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

Dalam hal ini, kami ingin agar ChatGPT:

  • Mengklasifikasikan ulasan menjadi positif atau negatif.
  • Berikan ringkasan ulasan 20 kata.
  • Keluarkan respons dengan struktur konkret untuk membakukan semua ulasan ke dalam satu format tunggal.

Catatan Implementasi

Berikut adalah struktur kode dasar yang dapat kami gunakan untuk meminta ChatGPT dari aplikasi khusus kami. Saya juga menyediakan link ke a Notebook Jupyter dengan semua contoh yang digunakan dalam artikel ini.

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)

Fungsi get_completion() memanggil API ChatGPT dengan yang diberikan cepat. Jika prompt berisi tambahan teks pengguna, seperti ulasan itu sendiri dalam kasus kami, ini dipisahkan dari kode lainnya dengan tanda kutip tiga.

Mari gunakan get_completion() berfungsi untuk meminta ChatGPT!

Berikut adalah prompt yang memenuhi persyaratan yang dijelaskan di atas:

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)

⚠️ Panduan prompt yang digunakan dalam contoh ini seperti menggunakan pembatas untuk memisahkan teks input dari prompt lainnya dan meminta output terstruktur dijelaskan sepenuhnya di Apa yang Saya Pelajari dari Kursus OpenAI tentang Rekayasa Cepat — Panduan Mendorong.

Inilah jawaban ChatGPT:

{ "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."
}

Seperti yang dapat kita amati dari output, ulasannya akurat dan terstruktur dengan baik itu melewatkan beberapa informasi yang mungkin menarik bagi kami sebagai pemilik e-niaga, seperti informasi tentang pengiriman produk.

Ringkas dengan Fokus pada

Kami dapat secara berulang meningkatkan prompt kami meminta ChatGPT untuk fokus pada hal-hal tertentu dalam ringkasan. Dalam hal ini, kami tertarik dengan detail apa pun yang diberikan tentang pengiriman dan pengiriman:

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)

Kali ini, jawaban ChatGPT adalah sebagai berikut:

{ "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."
}

Sekarang ulasannya jauh lebih lengkap. Memberikan perincian tentang fokus penting dari tinjauan asli sangat penting untuk menghindari ChatGPT melewatkan beberapa informasi yang mungkin berharga untuk kasus penggunaan kami.

Pernahkah Anda memperhatikan bahwa meskipun uji coba kedua ini menyertakan informasi tentang pengiriman, ia melewatkan satu-satunya aspek negatif dari tinjauan awal?

Mari kita perbaiki itu!

"Ekstrak" alih-alih "Ringkas"

Dengan menyelidiki tugas peringkasan, saya menemukan itu peringkasan bisa menjadi tugas yang rumit untuk LLM jika permintaan pengguna tidak cukup akurat.

Saat meminta ChatGPT untuk memberikan ringkasan teks tertentu, ChatGPT dapat melewati informasi yang mungkin relevan bagi kami — seperti yang baru-baru ini kita alami — atau itu akan memberikan arti penting yang sama untuk semua topik dalam teks, hanya memberikan gambaran umum tentang poin-poin utama.

Para ahli di LLM menggunakan istilah tersebut ekstrak dan informasi tambahan tentang fokus mereka sebagai gantinya meringkaskan ketika melakukan tugas-tugas tersebut dibantu oleh jenis model.

Sementara peringkasan bertujuan untuk memberikan gambaran singkat tentang poin-poin utama teks termasuk topik yang tidak terkait dengan topik fokus, ekstraksi informasi berfokus pada pengambilan detail spesifik. dan dapat memberi kita apa yang sebenarnya kita cari. Mari kita coba dengan ekstraksi!

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)

Dalam hal ini, dengan menggunakan ekstraksi, kami hanya mendapatkan informasi tentang topik fokus kami: Shipping: Arrived a day earlier than expected.

Otomatisasi

Sistem ini berfungsi untuk satu ulasan tunggal. Namun demikian, ketika merancang prompt untuk aplikasi konkret, penting untuk mengujinya dalam kumpulan contoh sehingga kami dapat menemukan outlier atau perilaku buruk dalam model.

Jika memproses banyak ulasan, berikut adalah contoh struktur kode Python yang dapat membantu.

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}``` """

Berikut adalah ringkasan kumpulan ulasan kami:

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.

⚠️ Perhatikan bahwa meskipun pembatasan kata dari ringkasan kami cukup jelas dalam permintaan kami, kami dapat dengan mudah melihat bahwa pembatasan kata ini tidak tercapai dalam iterasi mana pun.

Ketidakcocokan dalam penghitungan kata ini terjadi karena LLM tidak memiliki pemahaman yang tepat tentang jumlah kata atau karakter. Alasan di balik ini bergantung pada salah satu komponen penting utama arsitektur mereka: pembuat token.

Tokenizer

LLM seperti ChatGPT dirancang untuk menghasilkan teks berdasarkan pola statistik yang dipelajari dari sejumlah besar data bahasa. Meskipun mereka sangat efektif dalam menghasilkan teks yang lancar dan koheren, mereka tidak memiliki kontrol yang tepat atas jumlah kata.

Pada contoh di atas, ketika kita sudah memberikan instruksi tentang jumlah kata yang sangat tepat, ChatGPT berjuang untuk memenuhi persyaratan tersebut. Sebaliknya, itu menghasilkan teks yang sebenarnya lebih pendek dari jumlah kata yang ditentukan.

Dalam kasus lain, itu mungkin menghasilkan teks yang lebih panjang atau hanya teks yang terlalu bertele-tele atau kurang detail. Selain itu, ChatGPT dapat memprioritaskan faktor lain seperti koherensi dan relevansi, dibandingkan kepatuhan ketat pada jumlah kata. Hal ini dapat menghasilkan teks yang berkualitas tinggi dalam hal konten dan koherensinya, tetapi tidak sesuai dengan persyaratan jumlah kata.

Tokenizer adalah elemen kunci dalam arsitektur ChatGPT yang jelas memengaruhi jumlah kata dalam keluaran yang dihasilkan.

GIF buatan sendiri.

Arsitektur Tokenizer

Tokenizer adalah langkah pertama dalam proses pembuatan teks. Ini bertanggung jawab untuk memecah potongan teks yang kami masukkan ke ChatGPT menjadi elemen individual — token — , yang kemudian diproses oleh model bahasa untuk menghasilkan teks baru.

Saat tokenizer memecah sepotong teks menjadi token, itu dilakukan berdasarkan seperangkat aturan yang dirancang untuk mengidentifikasi unit yang bermakna dari bahasa target. Namun, aturan ini tidak selalu sempurna, dan mungkin ada kasus di mana tokenizer membagi atau menggabungkan token dengan cara yang memengaruhi jumlah kata teks secara keseluruhan.

Sebagai contoh, perhatikan kalimat berikut: "Saya ingin makan sandwich selai kacang". Jika tokenizer dikonfigurasi untuk membagi token berdasarkan spasi dan tanda baca, mungkin akan memecah kalimat ini menjadi token berikut dengan total jumlah kata 8, sama dengan jumlah token.

Gambar buatan sendiri.

Namun, jika tokenizer dikonfigurasi untuk mengobati "selai kacang" sebagai kata majemuk, itu dapat memecah kalimat menjadi token berikut, dengan jumlah kata total 8, tetapi jumlah token 7.

Dengan demikian, cara tokenizer dikonfigurasikan dapat memengaruhi jumlah kata teks secara keseluruhan, dan ini dapat memengaruhi kemampuan LLM untuk mengikuti petunjuk tentang jumlah kata yang tepat. Meskipun beberapa pembuat token menawarkan opsi untuk menyesuaikan cara teks diberi token, ini tidak selalu cukup untuk memastikan kepatuhan yang tepat terhadap persyaratan jumlah kata. Untuk ChatGPT dalam hal ini, kami tidak dapat mengontrol bagian arsitekturnya ini.

Hal ini membuat ChatGPT tidak begitu bagus dalam menyelesaikan batasan karakter atau kata, tetapi orang dapat mencoba dengan kalimat karena tokenizer tidak memengaruhi jumlah kalimat, tetapi panjangnya.

Menyadari batasan ini dapat membantu Anda membuat prompt yang paling cocok untuk aplikasi Anda. Memiliki pengetahuan ini tentang cara kerja jumlah kata di ChatGPT, mari lakukan iterasi terakhir dengan permintaan kami untuk aplikasi e-niaga!

Penutup: Ulasan E-niaga

Mari gabungkan pembelajaran kita dari artikel ini menjadi petunjuk akhir! Dalam hal ini, kami akan meminta hasilnya HTML format untuk keluaran yang lebih baik:

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))

Dan inilah hasil akhir dari ChatGPT:

Tangkapan layar buatan sendiri dari Notebook Jupyter dengan contoh yang digunakan dalam artikel ini.

Kesimpulan

Dalam artikel ini, kami telah membahas praktik terbaik untuk menggunakan ChatGPT sebagai agen ringkasan untuk aplikasi khusus kami.

Kami telah melihat bahwa saat membuat aplikasi, sangat sulit untuk menghasilkan prompt sempurna yang sesuai dengan persyaratan aplikasi Anda pada percobaan pertama. Saya pikir pesan dibawa pulang yang bagus adalah untuk berpikir tentang mendorong sebagai proses iteratif di mana Anda memperbaiki dan memodelkan permintaan Anda sampai Anda mendapatkan hasil yang diinginkan.

Dengan menyempurnakan permintaan Anda secara iteratif dan menerapkannya ke kumpulan contoh sebelum menerapkannya ke dalam produksi, Anda dapat memastikan hasilnya konsisten di berbagai contoh dan mencakup respons outlier. Dalam contoh kami, bisa saja seseorang memberikan teks acak alih-alih ulasan. Kami dapat menginstruksikan ChatGPT untuk juga memiliki output standar untuk mengecualikan respons outlier ini.

Selain itu, saat menggunakan ChatGPT untuk tugas tertentu, ada baiknya juga mempelajari tentang pro dan kontra menggunakan LLM untuk tugas target kami. Begitulah cara kami menemukan fakta bahwa tugas ekstraksi lebih efektif daripada peringkasan ketika kami menginginkan ringkasan teks masukan yang mirip manusia. Kami juga telah belajar bahwa menyediakan fokus ringkasan dapat berupa a game-changer mengenai konten yang dihasilkan.

Terakhir, meskipun LLM bisa sangat efektif dalam menghasilkan teks, mereka tidak ideal untuk mengikuti instruksi yang tepat tentang jumlah kata atau persyaratan pemformatan khusus lainnya. Untuk mencapai tujuan ini, mungkin perlu tetap menghitung kalimat atau menggunakan alat atau metode lain, seperti pengeditan manual atau perangkat lunak yang lebih khusus.

Artikel ini awalnya diterbitkan pada Menuju Ilmu Data dan diterbitkan kembali ke TOPBOTS dengan izin dari penulis.

Selamat menikmati artikel ini? Mendaftar untuk lebih banyak pembaruan penelitian AI.

Kami akan memberi tahu Anda ketika kami merilis lebih banyak artikel ringkasan seperti ini.

Stempel Waktu:

Lebih dari TOPBOT