ChatGPT telah meledak dalam sebulan terakhir, mendapatkan sejuta pengguna hanya dalam seminggu. Hal yang mengejutkan bahwa model dasarnya, GPT-3 memiliki debut pada tahun 2020 dan dirilis untuk akses publik
lebih dari setahun yang lalu!
Bagi mereka yang belum tahu, ChatGPT adalah model bahasa baru dari OpenAI yang telah ditingkatkan dari GPT-3 menjadi dioptimalkan untuk percakapan. Ini memiliki antarmuka obrolan yang mudah digunakan, di mana Anda dapat memberikan input dan mendapatkan respons dari asisten AI. Cek di chat.openai.com.
Sementara versi awal GPT-3 tidak seadvanced seri GPT-3.5 saat ini, mereka tetap mengesankan. Model-model ini telah tersedia melalui API dan
antarmuka web UI playground yang memungkinkan Anda menyetel beberapa hyperparameter konfigurasi dan menguji prompt. GPT-3 mendapatkan daya tarik yang besar, tetapi tidak se-viral ChatGPT.
Apa yang membuat ChatGPT begitu sukses, dibandingkan dengan GPT-3, adalah aksesibilitasnya sebagai asisten AI yang sederhana bagi orang biasa, tanpa memperdulikan pengetahuan mereka tentang ilmu data, model bahasa, atau AI.
Dalam artikel ini, saya memberikan gambaran tentang bagaimana chatbot seperti ChatGPT dapat diimplementasikan menggunakan model bahasa besar seperti GPT-3.
Artikel ini ditulis sebagian karena sebuah tweet oleh
Riley Goodside, mencatat bagaimana ChatGPT bisa diimplementasikan.
Bagaimana membuat ChatGPT palsu menggunakan GPT-3 (text-davinci-003) — di mana Anda dapat menyesuaikan aturan sesuai kebutuhan Anda, dan mengakses chatbot hasilnya melalui API. pic.twitter.com/9jHrs91VHW
— Riley Goodside
26 Desember 2022
Seperti model-model lain dalam seri GPT-3.5, ChatGPT dilatih menggunakan RLHF, tetapi sebagian besar efektivitasnya berasal dari menggunakan sebuah petunjuk yang baik.
Tampilan bot obrolan Skippy dari header artikel
Prompting adalah proses menginstruksikan AI untuk melakukan sesuatu.
Seperti yang mungkin telah Anda lihat dalam contoh ChatGPT online, Anda dapat mempromosikannya untuk melakukan hampir segala hal. Kasus penggunaan umum adalah merangkum teks, menulis konten berdasarkan deskripsi, atau menciptakan hal-hal seperti puisi, resep, dan banyak lagi.
ChatGPT adalah model bahasa dan antarmuka pengguna. Masukan prompt yang dimasukkan oleh pengguna ke antarmuka sebenarnya dimasukkan ke dalam prompt yang lebih besar yang berisi seluruh percakapan antara pengguna dan ChatGPT. Hal ini memungkinkan model bahasa yang mendasarinya untuk memahami konteks percakapan dan merespons dengan tepat.
Contoh penambahan prompt pengguna sebelum dikirim ke model
Model bahasa melengkapi prompt dengan mencari kata-kata apa yang datang berikutnya berdasarkan kemungkinan yang dipelajari selama pra-pelatihan.
GPT-3 mampu 'belajar' dari instruksi sederhana atau beberapa contoh dalam prompt. Yang terakhir disebut few-shot, atau pembelajaran di dalam konteks. Dalam permintaan chatbot di atas, saya membuat chatbot fiktif bernama Skippy, dan memberinya instruksi untuk memberikan respons kepada pengguna. GPT-3 mengikuti format bolak-balik, PENGGUNA: {user input}
dan SKIPPY: {skippy response}
. GPT-3 mengerti bahwa Skippy adalah chatbot dan pertukaran sebelumnya adalah percakapan, sehingga ketika kita memberikan input pengguna berikutnya, "Skippy" akan menjawab.
Pertukaran sebelumnya antara Skippy dan pengguna ditambahkan ke prompt berikutnya. Setiap kali kami memberikan lebih banyak input pengguna dan mendapatkan lebih banyak output chatbot, prompt akan memperluas untuk mencakup pertukaran baru ini. Inilah bagaimana chatbot seperti Skippy dan ChatGPT dapat mengingat input terdahulu. Namun, ada batas untuk seberapa banyak chatbot GPT-3 dapat mengingat.
Pesan dapat menjadi besar setelah beberapa pertukaran, terutama jika kita menggunakan chatbot untuk menghasilkan tanggapan panjang seperti kiriman blog. Prompt yang dikirim ke GPT-3 dikonversi menjadi token, yang merupakan kata-kata individu atau bagian dari mereka. Batas maksimal untuk
4097 token (sekitar 3000 kata)
untuk gabungan permintaan dan respon yang dihasilkan untuk model GPT-3, termasuk ChatGPT.
Ada banyak kasus penggunaan yang berbeda dari prompt chatbot yang menyimpan percakapan sebelumnya. ChatGPT dimaksudkan untuk menjadi asisten umum serba guna dan menurut pengalaman saya, jarang sekali meminta informasi tambahan.
Bisa sangat membantu memiliki chatbot yang aktif bertanya dan mendapatkan umpan balik dari pengguna. Berikut adalah contoh pernyataan yang akan ditanyakan oleh chatbot terapi untuk membantu pengguna memikirkan hari mereka.
Pertanyaan chatbot terapi
Michelle Huang menggunakan GPT-3 untuk berbicara dengan dirinya yang lebih muda. Perintah menggunakan beberapa konteks, dalam hal ini catatan jurnal lama, dipasangkan dengan format interaksi seperti chatbot. GPT-3 mampu meniru kepribadian berdasarkan entri-entri ini.
saya melatih sebuah chatbot Ai pada catatan jurnal masa kecil saya - sehingga saya bisa berdialog secara real-time dengan "anak dalam diri saya"
beberapa refleksi di bawah ini:
— michelle huang
27 November 2022
Prompt dari Tweet:
Percakapan berikut adalah dengan Michelle saat ini (usia [redacted]) dan Michelle saat masih muda (usia 14 tahun).
Michelle muda telah menulis catatan jurnal berikut:
[entri diary di sini]
Michelle Saat Ini: [ketik pertanyaan Anda di sini]
Penulis mencatat bahwa entri diary dapat mencapai batas token. Dalam hal ini, Anda dapat memilih beberapa entri tertentu atau mencoba untuk merangkum beberapa entri.
Saya akan melangkah melalui pemrograman bot obrolan sederhana yang didukung oleh GPT-3 dalam Python. Termasuk GPT-3 dalam aplikasi yang Anda bangun sangat mudah dengan menggunakan API OpenAI. Anda harus membuat akun di OpenAI dan mendapatkan API key. Cek dokumentasinya
di sini.Ringkasan tentang apa yang perlu kita lakukan:
Ini adalah prompt yang akan saya gunakan. Kita dapat menggunakan python untuk menggantikan
<conversation history>dan
<user input>dengan nilai sebenarnya.
chatbot_prompt = """
Sebagai chatbot canggih, tujuan utama Anda adalah untuk membantu pengguna sebaik mungkin. Ini mungkin melibatkan menjawab pertanyaan, memberikan informasi yang berguna, atau menyelesaikan tugas berdasarkan masukan pengguna. Untuk dapat membantu pengguna dengan efektif, penting untuk memberikan tanggapan yang detail dan menyeluruh. Gunakan contoh dan bukti untuk mendukung poin Anda dan membenarkan rekomendasi atau solusi Anda.
<conversation history>
User:
<user input>
Chatbot:"""
Saya mencatat baik masukan pengguna selanjutnya maupun percakapan sebelumnya. Masukan/keluaran baru antara chatbot dan pengguna ditambahkan setiap perulangan.
impot openai
openai.api_key = "YOUR API KEY HERE"
model_engine = "text-davinci-003"
chatbot_prompt = """
Sebagai chatbot canggih, tujuan utama Anda adalah membantu pengguna sebaik mungkin. Ini mungkin melibatkan menjawab pertanyaan, memberikan informasi yang berguna, atau menyelesaikan tugas berdasarkan masukan pengguna. Untuk dapat membantu pengguna dengan efektif, penting untuk menjelaskan dengan detail dan menyeluruh dalam tanggapan Anda. Gunakan contoh dan bukti untuk mendukung poin-poin Anda dan membenarkan rekomendasi atau solusi Anda.
<conversation history>
User:
<user input>
Chatbot:"""
def get_response(conversation_history, user_input):
prompt = chatbot_prompt.replace("<conversation history>", conversation_history).replace("<user input>", user_input)
# Get the response from GPT-3
response = openai.Completion.create(
engine=model_engine, prompt=prompt, max_tokens=2048, n=1, stop=None, temperature=0.5)
# Extract the response from the response object
response_text = response["choices"][0]["text"]
chatbot_response = response_text.strip()
return chatbot_response
def main():
conversation_history = ""
while True:
user_input = input(">")
if user_input == "exit":
break
chatbot_response = get_response(conversation_history, user_input)
print(f"Chatbot: {chatbot_response}")
conversation_history += f"User: {user_input}\nChatbot: {chatbot_response}\n"
main()
Berikut ini adalah tautan
untuk kode program lengkap untuk chatbot yang sederhana.
Sekarang yang tersisa adalah membuat antarmuka yang bagus agar pengguna dapat berinteraksi!
Written by jayo78.
Sander Schulhoff is the Founder of Learn Prompting and an ML Researcher at the University of Maryland. He created the first open-source Prompt Engineering guide, reaching 3M+ people and teaching them to use tools like ChatGPT. Sander also led a team behind Prompt Report, the most comprehensive study of prompting ever done, co-authored with researchers from the University of Maryland, OpenAI, Microsoft, Google, Princeton, Stanford, and other leading institutions. This 76-page survey analyzed 1,500+ academic papers and covered 200+ prompting techniques.
OpenAI. (2022). ChatGPT: Optimizing Language Models for Dialogue. https://openai.com/blog/chatgpt/. https://openai.com/blog/chatgpt/ ↩
Jurafsky, D., & Martin, J. H. (2009). Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics and Speech Recognition. Prentice Hall. ↩
Brown, T. B. (2020). Language models are few-shot learners. arXiv Preprint arXiv:2005.14165. ↩