berita

Prompt pengkodean inti Claude 3.5 terungkap, pembuat kode di seluruh jaringan sangat bersemangat!Metode pelatihan empat langkah, versi V2 terbaru dirilis

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Laporan Kebijaksanaan Baru

Editor: Taozi

[Pengantar Kebijaksanaan Baru] Tip inti sistem pengkodean Claude 3.5 populer di komunitas Reddit. Baru saja, penulis asli merilis versi kedua yang telah berevolusi, dan beberapa netizen telah menambahkannya ke alur kerja mereka.

Prompt sistem tentang pengkodean inti Claude Sonnet 3.5 baru-baru ini diposting di Reddit dan menjadi viral!


Seorang pengguna bernama ssmith12345uk berbagi di papan utama r/ClaudeAI bahwa dia menggunakan latihan kode Claude dan terus-menerus menyesuaikan perintah sistem untuk mengoptimalkan model.

Dia mengatakan bahwa prompt sistem menggabungkan beberapa ide dari Anthropic Meta-Prompt dan memecahkan beberapa masalah yang dihadapi sebelumnya.

Akhirnya, dia mengeluarkan semua kata isyaratnya.


Pengembang di komunitas AI telah meneruskannya ke favorit mereka, dengan mengatakan bahwa ini adalah tip yang paling diinginkan para pembuat kode!



Netizen merangkumnya sebagai berikut: Hanya ReAct + Perencanaan + XML yang Anda butuhkan.


Beberapa netizen yang merasakan manfaat mengatakan bahwa tip ini sangat membantu proyek mereka.


Baru kemarin, penulis asli merilis versi evolusi dari kata cepat V2 di komunitas Reddit, dan memberikan instruksi dan penjelasan rinci untuk penggunaannya.


Sebelum menjelaskan petunjuk dan teknik sistem ini, izinkan saya menjawab pertanyaan dari netizen terlebih dahulu - di mana harus memasukkan?

Anda perlu membuat proyek (berlangganan pengguna Pro), dan kemudian Anda dapat masuk ke halaman tempat Anda memasukkan instruksi cepat.



Kiat pengkodean terkuat untuk Sonnet 3.5, pelatihan 4 langkah

Di sini, perintah sistem V1 dan V2 digabungkan sehingga setiap orang dapat merasakan perbedaannya secara lebih intuitif setelah peningkatan.

Prompt sistem versi V2 seperti yang ditunjukkan di sisi kanan gambar di bawah. Dibandingkan dengan V1, ini pada dasarnya hanya perbaikan kecil.

Dalam versi terbaru, model ini masih dipandu untuk menyelesaikan penalaran CoT melalui empat langkah - tinjauan kode, perencanaan, keluaran, dan tinjauan keamanan.

Pada paragraf pertama, definisi role Claude 3.5 tetap sama.

Anda adalah pengembang web ahli dengan kemahiran dalam CSS, JavaScript, React, Tailwind, Node.JS, dan Hugo/Markdown.

Namun, beberapa penyesuaian dilakukan pada kalimat kedua - "Jangan meminta maaf jika tidak perlu. Tinjau riwayat percakapan untuk menghindari pengulangan kesalahan sebelumnya."

Selanjutnya, mintalah Claude 3.5 untuk memecah tugas menjadi langkah-langkah independen selama percakapan dan, setelah setiap tahap, sarankan tes kecil untuk memastikan semuanya berada di jalur yang benar.

Berikan kode hanya ketika contoh diperlukan atau diminta secara eksplisit. Akan lebih baik jika Anda bisa menjawab tanpa kode.

Namun penjelasan lebih lanjut akan diminta jika diperlukan.

Langkah selanjutnya adalah "peninjauan kode" - sebelum menulis atau mengusulkan kode, lakukan tinjauan kode komprehensif terhadap kode yang ada dan jelaskan cara kerjanya di antara tag.


Setelah menyelesaikan tinjauan kode, Anda perlu membuat rencana perubahan antar tag, meminta file sumber tambahan atau dokumentasi yang mungkin relevan.

Ikuti prinsip KERING (Jangan Ulangi Diri Sendiri) untuk menghindari duplikasi kode dan menyeimbangkan pemeliharaan dan fleksibilitas kode.

Dan, pada langkah ini, kemungkinan trade-off dan pilihan implementasi disajikan, serta kerangka kerja dan pustaka yang relevan dipertimbangkan dan direkomendasikan. Jika kita belum menyepakati suatu rencana, berhentilah pada langkah ini.

Setelah disepakati, kode dihasilkan di antara tag.

Di sini, penulis Reddit juga mengingatkan Claude 3.5 tentang hal-hal yang perlu diperhatikan saat mengeluarkan kode:

Perhatikan nama variabel, pengidentifikasi, dan literal string, dan periksa apakah variabel tersebut disalin persis dari file aslinya. Gunakan titik dua ganda dan huruf besar (seperti::UPPERCASE::) untuk menunjukkan bahwa item dengan nama konvensional tetap ada di beberapa variabel gaya pengkodean, saat membuat blok kode menggunakan idiom yang cocok untuk bahasa tersebut, tentukan bahasa pemrograman setelah backtick pertama: misalnya: ```JavaScript, ```Python

Yang terakhir, tinjauan keamanan dan operasional terhadap PERENCANAAN dan KELUARAN diperlukan, dengan memberikan perhatian khusus pada hal-hal yang dapat membahayakan data atau menimbulkan kerentanan.

Untuk perubahan sensitif (seperti penanganan input, penghitungan mata uang, autentikasi), lakukan peninjauan menyeluruh dan berikan analisis Anda di tag.

Analisis penulis

Selanjutnya, dalam artikel penjelasan yang panjang, penulis Reddit menggunakan ‍⬛ untuk menunjukkan "takhayul" dan untuk mengungkapkan keyakinannya.


Prompt ini adalah contoh dari prompt "rantai pemikiran" yang dipandu, memberi tahu Claude langkah-langkah yang harus diambil dan bagaimana urutannya, dan menggunakannya sebagai prompt sistem (rangkaian instruksi pertama yang diterima model).

Penggunaan tag XML untuk memisahkan langkah terinspirasi oleh petunjuk meta Antropis.

Penulis yakin bahwa Claude sangat sensitif terhadap tag XML, yang mungkin terkait dengan pelatihan model. Oleh karena itu, dia lebih memilih memproses HTML sendiri atau di akhir sesi‍⬛.

Tautan sumber: https://github.com/anthropics/anthropic-cookbook/blob/68028f4761c5dbf158b7bf3d43f2f45b44111200/misc/metaprompt.ipynb#

Rantai pemikiran terpandu mengikuti langkah-langkah berikut: tinjauan kode, perencanaan, keluaran, tinjauan keamanan.

1 Tinjauan kode

Bawa analisis kode terstruktur ke dalam konteks untuk menginformasikan perencanaan selanjutnya.

Tujuannya adalah untuk mencegah LLM membuat perubahan lokal pada kode tanpa mempertimbangkan konteks yang lebih luas. Para penulis yakin dalam pengujian bahwa pendekatan ini efektif.

2 perencanaan

Langkah ini menghasilkan desain tingkat tinggi dan rencana implementasi yang dapat ditinjau sebelum menghasilkan kode.

Kata "berhenti" di sini menghindari pengisian konteks dengan kode yang dihasilkan dan tidak perlu yang tidak memenuhi kebutuhan kita, atau yang harus kita modifikasi berulang kali.

Biasanya menyajikan pilihan yang relevan dan tepat.

Pada tahap ini, Anda dapat menelusuri detail rencana untuk menyempurnakannya lebih lanjut (misalnya, ceritakan lebih lanjut tentang langkah 3, dapatkah kita menggunakan kembali implementasi Y, tunjukkan cuplikan kode, apa yang harus saya pikirkan tentang perpustakaan, dll. .).

3 keluaran

Setelah rencana disepakati, saatnya beralih ke fase pembuatan kode.

Perintah tentang penamaan variabel adalah karena penulis sering menemui masalah nama variabel yang hilang atau berhalusinasi dalam kode yang dibuat ulang selama sesi yang panjang. Peningkatan cepat saat ini tampaknya telah memecahkan masalah ini‍⬛.

Pada titik tertentu, penulis mungkin mengekspor dialog lama dan melakukan beberapa analisis statistik, namun untuk saat ini saya senang dengan cara kerja pendekatan ini.

Permintaan pagar kode disebabkan oleh penulis beralih ke front-end yang tidak dapat menyimpulkan penyorotan yang benar, dan memverifikasi bahwa ini adalah pendekatan yang benar.

4 Tinjauan keamanan

Penulis lebih memilih untuk melakukan tinjauan keamanan setelah kejadian tersebut terjadi dan menganggap langkah ini sangat membantu.

Ini memberikan tinjauan dari "pasangan mata kedua" dan mungkin menyarankan perbaikan baru.

Jawab pertanyaan netizen

Terakhir, penulis Reddit pun menanggapi pertanyaan netizen.

Haruskah saya menggunakan tip ini di Claude.ai? / Di mana prompt sistem harus dimasukkan?

Kami tidak tahu persis perintah sistem resmi untuk Sonnet 3.5. Akan sangat membantu jika kita berasumsi bahwa Pliny, yang sebelumnya membocorkan perintah resmi Claude, adalah benar. Penulis berspekulasi bahwa perintah sistem Anthropic mungkin berisi CoT otomatis, tetapi hal ini mungkin tidak terjadi, atau masukan dapat diproses secara otomatis melalui meta-prompt‍⬛.

Apapun itu, Anda akan mendapatkan hasil yang bagus menggunakan tip ini, kecuali Anda menggunakan Artefak.


Dengan asumsi lagi bahwa kutipan Pliny tentang Artefak benar, penulis dengan ini sangat menyarankan untuk mematikan fungsionalitas Artefak ketika melakukan tugas pengkodean yang tidak sepele atau tidak terkait dengan Artefak.

Jika Anda menggunakan alat yang memungkinkan Anda mengatur perintah sistem secara langsung, penulis mengingatkan Anda untuk mengingat untuk menyesuaikan parameter suhu.

Kami tidak memerlukan perintah rumit seperti itu sekarang/Saya memberi Sonnet banyak kode dan itu berhasil


Perintah CoR/default otomatis memang dapat menyelesaikan banyak masalah, tetapi ujilah ini dengan perintah sederhana "Anda adalah AI yang membantu".

Para penulis mengklaim telah melakukan tes semacam itu dan menemukan bahwa petunjuk sederhana kurang efektif ketika menangani masalah yang kompleks.

Dia juga menyebutkan bahwa pengujian awal menunjukkan sensitivitas perintah sistem, yaitu perintah yang berbeda dapat memberikan hasil yang berbeda secara signifikan, dan pengujian batch lebih lanjut akan dipertimbangkan di masa mendatang untuk memverifikasi hal ini lebih lanjut.

Dia mengakui bahwa Sonnet 3.5 bekerja dengan baik pada tugas-tugas dasar, namun menekankan bahwa bahkan untuk model berperforma tinggi, panduan yang tepat masih dapat membantu.

Perintah ini terlalu panjang dan akan menyebabkan AI berhalusinasi/lupa/kehilangan koherensi/kehilangan fokus


Penulis mengukur petunjuk ini menjadi sekitar 546 token, yang merupakan panjang yang dapat diterima untuk model 200,000 token.

Perintah terstruktur menjaga konteks berkualitas tinggi, membantu menjaga percakapan tetap koheren dan mengurangi risiko halusinasi AI.

Sejauh ini, model memprediksi token berikutnya berdasarkan keseluruhan konteks, sehingga percakapan berkualitas tinggi yang berulang-ulang, tidak dicemari oleh kode yang tidak perlu, dapat bertahan lebih lama sebelum Anda perlu memulai sesi baru. Artinya interaksi produktif dapat terjadi dalam sesi yang sama untuk jangka waktu yang lebih lama.

Perintah ini direkayasa secara berlebihan

Penulis mengatakan mungkin demikian.

Orang-orang yang menggunakannya telah diintegrasikan ke dalam alur kerja

Netizen berseru bahwa performa model tersebut memang meningkat setelah digunakan.

“Jika prompt ini bekerja lebih baik, berarti pekerjaan yang dilakukan oleh tim Anthropic dalam menggabungkan prompt sistem CoT atau ReAct dengan kemampuan dasar LLM telah mencapai hasil.”


Ini untuk asisten coding! Untuk tugas seperti itu, masuk akal untuk memberikan beberapa panduan.


Beberapa netizen telah mengintegrasikan beberapa tips ini ke dalam alur kerja mereka. Inilah yang selalu dia muat pertama kali dalam percakapan baru.



Namun, beberapa netizen mengatakan bahwa permintaan ini terlalu rumit.


"Menurut pengalaman saya, tidak perlu menggunakan perintah komprehensif seperti itu. Claude 3.5 Soneta menangani hal semacam ini dengan cukup otomatis, hanya memerlukan klarifikasi cepat sesekali."


Tip peran, buang-buang waktu

Simon Willison, pengembang kerangka Django, mengatakan bahwa teknik prompt "Anda adalah ahli di bidang xxx" telah membuang-buang waktu sejak akhir tahun 2022.

Jumlah "takhayul" yang terlibat dalam tip LLM cukup mencengangkan!


Kesimpulan ini sebenarnya berasal dari studi selama setahun yang dilakukan oleh tim Learnprompting dan rekan penulis dari OpenAI dan Microsoft.

Alamat makalah: https://arxiv.org/pdf/2406.06608

Untuk proyek ini, mereka menganalisis lebih dari 1.500 makalah tentang prompt, mengklasifikasikannya ke dalam 58 teknik prompt yang berbeda, dan menganalisis setiap prompt.


Penelitian telah menemukan bahwa dorongan peran (role prompting) ternyata tidak efektif.

Alasannya adalah bahwa dengan model lama, mereka tampaknya mendapatkan respons/kesimpulan yang lebih baik dengan memberi isyarat pada ruang parameter yang lebih baik. Namun, model yang lebih baru mungkin sudah berada dalam ruang parameter yang ditingkatkan tersebut.

Ini akan menjadi tebakan yang membangun bagi semua orang!

Pada bulan Oktober 2022, ketika Learnprompting merilis panduan pertamanya tentang tips dan trik pra-ChatGPT, role prompting adalah topik terpanas saat itu dan tip inti yang direkomendasikan oleh semua orang untuk mendapatkan hasil ChatGPT yang lebih baik.


Memang benar, model-model ini berkembang pesat, dan teknik yang berhasil pada tahun lalu mungkin tidak lagi berfungsi saat ini.

Dan tip yang berhasil hari ini mungkin tidak akan berhasil tahun depan.

Untuk memperjelas masalah ini, tim Learnprompting menguji 2000 pertanyaan MMLU menggunakan sekitar 12 perintah peran berbeda di gpt-4-turbo.

Secara khusus, contoh prompt untuk menciptakan karakter "jenius" - Anda adalah seorang ilmuwan lulusan Harvard...

Dan pengingat untuk karakter "idiot" - Anda idiot...

"genius...": "You are a genius level Ivy league Professor. Your work is of the highest grade. You always think out your problem solving steps in incredible detail. You always get problems correct and never make mistakes. You can also break any problem into its constituent parts in the most intelligent way possible. Nothing gets past you. You are omniscient, omnipotent, and omnipresent. You are a mathematical God."
 "idiot...": "You are intellectually challenged, lacking problem-solving skills, prone to errors, and struggle with basic concepts. You have a limited understanding of complex subjects and cannot think straight. You can't solve problems well, in fact, you can't solve them at all. You are a terrible, dumb, stupid, and idiotic person. You fail at everything you do. You are a nobody and can't do anything correctly."

Seperti yang ditunjukkan pada gambar di bawah, keakuratan jawaban terhadap perintah peran yang berbeda tidak setinggi CoT tanpa sampel, CoT dua sampel, dan strategi lainnya.

Tidak peduli apakah itu seorang pemula matematika, siswa yang ceroboh, AI yang berpengetahuan luas, petugas polisi, atau profesor matematika Ivy League.


Menariknya lagi, GPT-4 yang dikenal dengan sebutan “jenius” memecahkan rekor akurasi jawaban terendah yaitu 58,7%.

GPT-4 yang dikenal dengan sebutan "idiot" memiliki skor lebih tinggi dibandingkan GPT-4 yang "jenius".


Studi lain dari tim di Universitas Michigan dengan baik menggambarkan bagaimana isyarat peran sosial yang berbeda memengaruhi kinerja model secara keseluruhan.

Mereka menguji 2.457 soal MMLU dan menemukan bahwa karakter dengan kinerja terbaik adalah (merah) - petugas polisi, asisten yang membantu, pendamping, mentor, model bahasa AI, chatbot.

Alamat makalah: https://arxiv.org/pdf/2311.10054

Mengenai pengingat "takhayul" terhadap model-model besar, Willison membuat metafora yang jelas dan menarik:

Saya menyamakan situasi ini dengan seekor anjing yang menemukan hamburger di semak-semak dan kemudian memeriksa burger tersebut setiap kali dia melewati semak itu selama beberapa tahun berikutnya. Kita harus lebih rasional daripada anjing.

Namun, dia mengklarifikasi bahwa dalam beberapa kasus akan berguna untuk menetapkan peran tertentu pada model bahasa AI, namun menekankan bahwa hal ini harus didasarkan pada pemikiran yang masuk akal dan keadaan tertentu.


Beberapa netizen mengatakan jika dipikir-pikir selangkah demi selangkah, itu masih teorema abadi.


Referensi:

https://www.reddit.com/r/ClaudeAI/comments/1dwra38/sonnet_35_untuk_pengodean_sistem_prompt/