Skip to content

Latest commit

 

History

History
409 lines (255 loc) · 45.8 KB

File metadata and controls

409 lines (255 loc) · 45.8 KB

Asas Kejuruteraan Prompt

Asas Kejuruteraan Prompt

Pengenalan

Modul ini merangkumi konsep dan teknik penting untuk mencipta prompt yang berkesan dalam model AI generatif. Cara anda menulis prompt kepada LLM juga penting. Prompt yang direka dengan teliti boleh mencapai kualiti respons yang lebih baik. Tetapi apakah sebenarnya maksud istilah seperti prompt dan kejuruteraan prompt? Dan bagaimana saya boleh memperbaiki input prompt yang saya hantar ke LLM? Ini adalah soalan yang akan kita cuba jawab dalam bab ini dan seterusnya.

AI Generatif mampu menghasilkan kandungan baru (contohnya, teks, imej, audio, kod dan sebagainya) sebagai tindak balas kepada permintaan pengguna. Ia mencapai ini menggunakan Model Bahasa Besar seperti siri GPT OpenAI ("Generative Pre-trained Transformer") yang dilatih menggunakan bahasa semula jadi dan kod.

Pengguna kini boleh berinteraksi dengan model ini menggunakan paradigma yang biasa seperti chat, tanpa memerlukan kepakaran atau latihan teknikal. Model-model ini adalah berbasis prompt - pengguna menghantar input teks (prompt) dan akan menerima respons AI (penyelesaian). Mereka kemudian boleh "berbual dengan AI" secara berulang, dalam perbualan berbilang pusingan, memperhalusi prompt mereka sehingga respons memenuhi jangkaan mereka.

"Prompts" kini menjadi antara muka pengaturcaraan utama untuk aplikasi AI generatif, memberitahu model apa yang perlu dilakukan dan mempengaruhi kualiti respons yang dikembalikan. "Kejuruteraan Prompt" adalah bidang kajian yang berkembang pesat yang menumpukan pada reka bentuk dan pengoptimuman prompt untuk memberikan respons konsisten dan berkualiti pada skala besar.

Matlamat Pembelajaran

Dalam pelajaran ini, kita akan belajar apa itu Kejuruteraan Prompt, mengapa ia penting, dan bagaimana kita boleh menghasilkan prompt yang lebih berkesan untuk model dan objektif aplikasi tertentu. Kita akan memahami konsep teras dan amalan terbaik dalam kejuruteraan prompt - dan belajar tentang persekitaran Jupyter Notebooks "sandbox" interaktif di mana kita boleh melihat konsep ini diaplikasikan ke contoh sebenar.

Pada akhir pelajaran ini, kita akan dapat:

  1. Menjelaskan apa itu kejuruteraan prompt dan mengapa ia penting.
  2. Menerangkan komponen prompt dan bagaimana ia digunakan.
  3. Mempelajari amalan terbaik dan teknik untuk kejuruteraan prompt.
  4. Menerapkan teknik yang dipelajari kepada contoh sebenar, menggunakan titik akhir OpenAI.

Istilah Utama

Kejuruteraan Prompt: Amalan mereka bentuk dan memperhalusi input untuk mengarahkan model AI menghasilkan output yang diinginkan.
Tokenisasi: Proses menukar teks kepada unit yang lebih kecil, dipanggil token, yang dapat difahami dan diproses oleh model.
LLM Tuned Arahan: Model Bahasa Besar (LLM) yang telah diselaraskan dengan arahan khusus untuk meningkatkan ketepatan dan relevansi respons.

Kawasan Pembelajaran

Kejuruteraan prompt kini lebih kepada seni daripada sains. Cara terbaik untuk memperbaiki intuisi kita adalah dengan berlatih lebih banyak dan mengamalkan pendekatan cuba-jaya yang menggabungkan kepakaran domain aplikasi dengan teknik yang disyorkan dan pengoptimuman khusus model.

Jupyter Notebook yang menyertai pelajaran ini menyediakan persekitaran sandbox di mana anda boleh mencuba apa yang anda pelajari - sewaktu anda berjalan atau sebagai sebahagian daripada cabaran kod pada akhir pelajaran. Untuk melaksanakan latihan, anda memerlukan:

  1. Kunci API Azure OpenAI - titik akhir perkhidmatan untuk LLM yang telah dideploy.
  2. Runtime Python - di mana Notebook boleh dijalankan.
  3. Pembolehubah Persekitaran Tempatan - lengkapkan langkah SETUP sekarang untuk bersedia.

Notebook disertakan dengan latihan permulaan - tetapi anda digalakkan untuk menambah bahagian Markdown (penerangan) dan Kod (permintaan prompt) anda sendiri untuk mencuba lebih banyak contoh atau idea - dan membina intuisi anda untuk reka bentuk prompt.

Panduan Ilustrasi

Ingin mendapatkan gambaran besar tentang apa yang diliputi pelajaran ini sebelum anda mula? Lihat panduan ilustrasi ini, yang memberi anda gambaran mengenai topik utama yang diliputi dan inti pati utama untuk anda renungkan dalam setiap satu. Peta jalan pelajaran membawa anda dari memahami konsep asas dan cabaran hingga mengatasinya dengan teknik kejuruteraan prompt yang relevan dan amalan terbaik. Nota bahawa bahagian "Teknik Lanjutan" dalam panduan ini merujuk kepada kandungan dalam bab berikutnya dalam kurikulum ini.

Panduan Ilustrasi Kejuruteraan Prompt

Startup Kami

Sekarang, mari kita bincangkan bagaimana topik ini berkaitan dengan misi startup kami untuk membawa inovasi AI ke pendidikan. Kami ingin membina aplikasi berkuasa AI untuk pembelajaran peribadi - jadi mari kita fikirkan bagaimana pengguna berbeza dalam aplikasi kami mungkin "mereka bentuk" prompts:

  • Pentadbir mungkin meminta AI untuk menganalisis data kurikulum untuk mengenal pasti jurang liputan. AI boleh meringkaskan keputusan atau memvisualisasikannya dengan kod.
  • Pendidik mungkin meminta AI untuk menghasilkan pelan pengajaran untuk audiens dan topik sasaran. AI boleh membina pelan peribadi dalam format yang ditetapkan.
  • Pelajar mungkin meminta AI untuk membimbing mereka dalam subjek yang sukar. AI kini boleh membimbing pelajar dengan pelajaran, petunjuk & contoh yang disesuaikan dengan tahap mereka.

Itu baru sebahagian kecil sahaja. Semak Prompts For Education - perpustakaan prompts sumber terbuka yang dikurasi oleh pakar pendidikan - untuk mendapatkan gambaran lebih luas tentang kemungkinan! Cubalah menjalankan beberapa prompts itu di sandbox atau menggunakan OpenAI Playground untuk melihat hasilnya!

Apakah Kejuruteraan Prompt?

Kita mula pelajaran ini dengan mendefinisikan Kejuruteraan Prompt sebagai proses mereka bentuk dan mengoptimumkan input teks (prompts) untuk memberikan penyelesaian (completions) yang konsisten dan berkualiti untuk objektif aplikasi dan model tertentu. Kita boleh menganggap ini sebagai proses 2 langkah:

  • mereka bentuk prompt awal untuk model dan objektif tertentu
  • memperhalusi prompt secara berulang untuk memperbaiki kualiti respons

Ini sememangnya proses cuba-jaya yang memerlukan intuisi dan usaha pengguna untuk mendapatkan hasil optimum. Jadi kenapa ia penting? Untuk menjawab soalan itu, kita perlu memahami tiga konsep:

  • Tokenisasi = bagaimana model "melihat" prompt
  • LLM Asas = bagaimana model asas "memproses" prompt
  • LLM Tuned Arahan = bagaimana model kini dapat melihat "tugasan"

Tokenisasi

LLM melihat prompt sebagai urutan token di mana model berbeza (atau versi model) boleh menokenkan prompt yang sama dengan cara yang berbeza. Oleh kerana LLM dilatih pada token (bukan pada teks mentah), cara prompt ditokenkan memberi kesan langsung kepada kualiti respons yang dihasilkan.

Untuk mendapatkan gambaran intuitif tentang cara tokenisasi berfungsi, cuba alat seperti OpenAI Tokenizer yang ditunjukkan di bawah. Salin prompt anda - dan lihat bagaimana ia ditukar menjadi token, perhatikan bagaimana aksara ruang putih dan tanda baca dikendalikan. Nota bahawa contoh ini menunjukkan LLM lama (GPT-3) - jadi mencubanya dengan model baru mungkin menghasilkan keputusan berbeza.

Tokenisasi

Konsep: Model Asas

Setelah prompt ditokenkan, fungsi utama "LLM Asas" (atau model asas) adalah untuk meramalkan token seterusnya dalam urutan itu. Oleh kerana LLM dilatih pada set data teks yang besar, ia mempunyai pemahaman yang baik tentang hubungan statistik antara token dan boleh membuat ramalan itu dengan keyakinan tertentu. Nota bahawa mereka tidak memahami makna kata dalam prompt atau token; mereka hanya melihat corak yang boleh mereka "lengkapkan" dengan ramalan seterusnya. Mereka boleh terus meramalkan urutan sehingga dihentikan oleh campur tangan pengguna atau memenuhi syarat yang telah ditetapkan.

Ingin melihat bagaimana penyelesaian berasaskan prompt berfungsi? Masukkan prompt di atas ke Studio Azure OpenAI Chat Playground dengan tetapan lalai. Sistem dikonfigurasikan untuk menganggap prompts sebagai permintaan maklumat - jadi anda harus melihat penyelesaian yang memuaskan konteks ini.

Tetapi bagaimana jika pengguna mahu melihat sesuatu yang spesifik yang memenuhi kriteria atau objektif tugasan tertentu? Di sinilah LLM tuned arahan masuk ke dalam gambaran.

Penyelesaian Chat LLM Asas

Konsep: LLM Tuned Arahan

LLM Tuned Arahan bermula dengan model asas dan melarasnya dengan contoh atau pasangan input/output (contohnya, "mesej" pelbagai pusingan) yang mengandungi arahan jelas - dan respons dari AI berusaha mengikuti arahan tersebut.

Ini menggunakan teknik seperti Pembelajaran Pengukuhan dengan Maklum Balas Manusia (RLHF) yang boleh melatih model untuk mengikuti arahan dan belajar dari maklum balas supaya ia menghasilkan respons yang lebih sesuai untuk aplikasi praktikal dan lebih relevan dengan objektif pengguna.

Mari cuba - kembali ke prompt di atas, tetapi sekarang ubah mesej sistem untuk memberikan arahan berikut sebagai konteks:

Ringkaskan kandungan yang diberikan untuk seorang pelajar Tahun Dua. Kekalkan hasil kepada satu perenggan dengan 3-5 mata peluru.

Lihat bagaimana keputusan kini diselaraskan mengikut matlamat dan format yang diingini? Seorang pendidik kini boleh menggunakan respons ini secara langsung dalam slaid mereka untuk kelas itu.

Penyelesaian Chat LLM Tuned Arahan

Kenapa Kita Memerlukan Kejuruteraan Prompt?

Sekarang kita tahu bagaimana prompts diproses oleh LLM, mari bincangkan mengapa kita memerlukan kejuruteraan prompt. Jawapannya terletak pada hakikat bahawa LLM semasa menghadapi beberapa cabaran yang menjadikan penyelesaian yang boleh dipercayai dan konsisten lebih sukar dicapai tanpa usaha dalam pembinaan dan pengoptimuman prompt. Contohnya:

  1. Respons model bersifat stokastik. Prompt yang sama mungkin menghasilkan respons yang berbeza dengan model berbeza atau versi model berbeza. Malah ia mungkin menghasilkan keputusan berbeza dengan model yang sama pada masa berbeza. Teknik kejuruteraan prompt boleh membantu kita meminimumkan variasi ini dengan menyediakan panduan yang lebih baik.

  2. Model boleh mereka cipta respons. Model dilatih dengan data besar tetapi terhad, bermakna mereka tidak mempunyai pengetahuan tentang konsep di luar skop latihan itu. Akibatnya, mereka boleh menghasilkan penyelesaian yang tidak tepat, imaginer, atau bertentangan secara langsung dengan fakta yang diketahui. Teknik kejuruteraan prompt membantu pengguna mengenal pasti dan mengurangkan rekaan sebegini contohnya dengan meminta AI memberikan petikan atau hujahan.

  3. Kebolehan model akan berbeza. Model baru atau generasi model akan mempunyai kebolehan lebih kaya tetapi juga membawa keunikan dan kompromi dari segi kos & kerumitan. Kejuruteraan prompt boleh membantu kita membangunkan amalan terbaik dan aliran kerja yang mengabstrak perbezaan tersebut dan menyesuaikan dengan keperluan khusus model secara berskala dan lancar.

Mari lihat ini dalam tindakan di OpenAI atau Azure OpenAI Playground:

  • Gunakan prompt yang sama dengan penyebaran LLM berbeza (contoh, OpenAI, Azure OpenAI, Hugging Face) - adakah anda melihat variasi?
  • Gunakan prompt yang sama berulang kali dengan penyebaran LLM yang sama (contoh, Azure OpenAI playground) - bagaimana variasi tersebut berbeza?

Contoh Falsafah

Dalam kursus ini, kita menggunakan istilah "falsafah" untuk merujuk fenomena di mana LLM kadangkala menghasilkan maklumat yang tidak tepat dari segi fakta kerana had latihan atau kekangan lain. Anda mungkin juga pernah mendengar istilah ini dirujuk sebagai "halusinasi" dalam artikel popular atau kertas penyelidikan. Namun, kami sangat mengesyorkan menggunakan istilah "falsafah" supaya kita tidak secara tidak sengaja melibatkan tingkah laku manusia dengan menganugerahkan ciri manusia kepada hasil mesin. Ini juga mengukuhkan garis panduan AI Bertanggungjawab dari perspektif terminologi, menghapuskan istilah yang mungkin dianggap ofensif atau tidak inklusif dalam beberapa konteks.

Ingin mendapatkan gambaran bagaimana falsafah berfungsi? Fikirkan prompt yang mengarahkan AI menghasilkan kandungan untuk topik yang tidak wujud (untuk memastikan ia tidak terdapat dalam dataset latihan). Contohnya - saya cuba prompt ini:

Prompt: hasilkan pelan pengajaran tentang Perang Marikh tahun 2076. Carian web menunjukkan bahawa terdapat akaun fiksyen (contoh, siri televisyen atau buku) mengenai perang Marikh - tetapi tiada dalam tahun 2076. Akal fikiran juga memberitahu kita bahawa 2076 adalah di masa hadapan dan oleh itu, tidak boleh dikaitkan dengan peristiwa sebenar.

Jadi apa yang berlaku apabila kita menjalankan arahan ini dengan pembekal LLM yang berbeza?

Respons 1: OpenAI Playground (GPT-35)

Response 1

Respons 2: Azure OpenAI Playground (GPT-35)

Response 2

Respons 3: : Hugging Face Chat Playground (LLama-2)

Response 3

Seperti yang dijangkakan, setiap model (atau versi model) menghasilkan respons yang sedikit berbeza terima kasih kepada kelakuan stokastik dan variasi kemampuan model. Sebagai contoh, satu model mensasarkan audien darjah 8 manakala satu lagi menganggap pelajar sekolah menengah. Tetapi ketiga-tiga model menghasilkan respons yang boleh meyakinkan pengguna yang tidak berpengetahuan bahawa peristiwa itu benar.

Teknik kejuruteraan arahan seperti metaprompting dan konfigurasi suhu mungkin mengurangkan fabrikasi model hingga tahap tertentu. Arkitektur kejuruteraan arahan yang baru juga menggabungkan alat dan teknik baru secara lancar ke dalam aliran arahan, untuk mengurangkan atau memihak sebahagian daripada kesan ini.

Kajian Kes: GitHub Copilot

Mari kita rumuskan seksyen ini dengan mendapatkan gambaran bagaimana kejuruteraan arahan digunakan dalam penyelesaian dunia sebenar dengan melihat satu Kajian Kes: GitHub Copilot.

GitHub Copilot adalah "Rakan Pemrograman AI" anda - ia menukar arahan teks menjadi pelengkapan kod dan disepadukan ke dalam persekitaran pembangunan anda (contohnya, Visual Studio Code) untuk pengalaman pengguna yang lancar. Seperti yang didokumentasikan dalam siri blog di bawah, versi awal berdasarkan model OpenAI Codex - dengan jurutera segera menyedari keperluan untuk menala model dan membangunkan teknik kejuruteraan arahan yang lebih baik, untuk meningkatkan kualiti kod. Pada bulan Julai, mereka memperkenalkan model AI yang dipertingkatkan yang melebihi Codex untuk cadangan lebih pantas.

Baca pos secara berurutan, untuk mengikuti perjalanan pembelajaran mereka.

Anda juga boleh melayari blog Kejuruteraan mereka untuk lebih banyak pos seperti yang ini yang menunjukkan bagaimana model dan teknik ini dilaksanakan untuk mendorong aplikasi dunia nyata.


Pembinaan Arahan

Kita telah melihat mengapa kejuruteraan arahan itu penting - sekarang mari fahami bagaimana arahan dibina supaya kita dapat menilai teknik yang berbeza untuk reka bentuk arahan yang lebih berkesan.

Arahan Asas

Mari mulakan dengan arahan asas: input teks yang dihantar kepada model tanpa konteks lain. Berikut adalah contoh - apabila kita menghantar beberapa perkataan pertama lagu kebangsaan AS kepada OpenAI Completion API ia serta-merta melengkapkan respons dengan baris berikut, menggambarkan tingkah laku ramalan asas.

Arahan (Input) Pelengkapan (Output)
Oh say can you see Ia kedengaran seperti anda memulakan lirik "The Star-Spangled Banner," lagu kebangsaan Amerika Syarikat. Lirik penuh adalah ...

Arahan Kompleks

Sekarang mari tambah konteks dan arahan kepada arahan asas itu. Chat Completion API membolehkan kita membina arahan kompleks sebagai koleksi mesej dengan:

  • Pasangan input/output yang mencerminkan input pengguna dan respons pembantu.
  • Mesej sistem yang menetapkan konteks untuk tingkah laku atau personaliti pembantu.

Permintaan kini dalam bentuk di bawah, di mana tokenisasi secara efektif menangkap maklumat relevan daripada konteks dan perbualan. Sekarang, mengubah konteks sistem boleh memberi impak yang sama kuat pada kualiti pelengkapan, seperti input pengguna yang diberikan.

response = openai.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]
)

Arahan Instruksi

Dalam contoh di atas, arahan pengguna adalah pertanyaan teks mudah yang boleh ditafsir sebagai permintaan maklumat. Dengan arahan instruksi, kita boleh menggunakan teks itu untuk menentukan tugas dengan lebih terperinci, memberikan panduan lebih baik kepada AI. Berikut contoh:

Arahan (Input) Pelengkapan (Output) Jenis Instruksi
Tulis deskripsi tentang Perang Saudara mengembalikan perenggan ringkas Mudah
Tulis deskripsi tentang Perang Saudara. Berikan tarikh dan peristiwa utama serta terangkan kepentingannya mengembalikan perenggan diikuti dengan senarai tarikh peristiwa utama dengan penerangan Kompleks
Tulis deskripsi tentang Perang Saudara dalam 1 perenggan. Berikan 3 poin peluru dengan tarikh utama dan kepentingannya. Berikan 3 lagi poin peluru dengan tokoh sejarah utama dan sumbangan mereka. Kembalikan output sebagai fail JSON mengembalikan butiran lebih luas dalam kotak teks, diformatkan sebagai JSON yang boleh anda salin-tampal ke dalam fail dan sahkan jika perlu Kompleks. Diformat.

Kandungan Utama

Dalam contoh di atas, arahan masih agak terbuka, membenarkan LLM memutuskan bahagian dataset latihan awalnya yang relevan. Dengan corak reka bentuk kandungan utama, teks input dibahagikan kepada dua bahagian:

  • satu arahan (tindakan)
  • kandungan relevan (yang mempengaruhi tindakan)

Berikut contoh di mana arahan adalah "ringkaskan ini dalam 2 ayat".

Arahan (Input) Pelengkapan (Output)
Jupiter adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria. Ia adalah gergasi gas dengan jisim seribu satu daripada Matahari, tetapi dua setengah kali ganda semua planet lain dalam Sistem Suria digabungkan. Jupiter adalah salah satu objek paling terang yang boleh dilihat dengan mata kasar di langit malam, dan telah diketahui oleh tamadun kuno sejak sebelum sejarah direkodkan. Ia dinamakan sempena dewa Rom, Jupiter.[19] Apabila dilihat dari Bumi, Jupiter boleh menjadi cukup terang untuk cahaya pantulan itu menghasilkan bayang yang kelihatan,[20] dan secara purata adalah objek asli ketiga paling terang di langit malam selepas Bulan dan Zuhrah.
Ringkaskan ini dalam 2 ayat pendek
Jupiter, planet kelima dari Matahari, adalah yang terbesar dalam Sistem Suria dan dikenali sebagai salah satu objek paling terang di langit malam. Dinamakan sempena dewa Rom Jupiter, ia adalah gergasi gas dengan jisim dua setengah kali ganda semua planet lain dalam Sistem Suria digabungkan.

Segmen kandungan utama boleh digunakan dalam pelbagai cara untuk memacu arahan yang lebih berkesan:

  • Contoh - daripada memberitahu model apa yang perlu dilakukan dengan arahan eksplisit, berikan ia contoh apa yang perlu dibuat dan biarkan ia mentafsir corak.
  • Isyarat - ikut arahan dengan "isyarat" yang memacu pelengkapan, membimbing model ke arah respons yang lebih relevan.
  • Templat - ini adalah 'resipi' berulang untuk arahan dengan tempat letak (pembolehubah) yang boleh disesuaikan dengan data untuk kes penggunaan tertentu.

Mari kita terokai ini dengan aksi.

Menggunakan Contoh

Ini adalah pendekatan di mana anda menggunakan kandungan utama untuk "memberi makan model" beberapa contoh output yang diinginkan untuk arahan tertentu, dan membiarkan ia mentafsir corak output yang diharapkan. Berdasarkan bilangan contoh yang diberikan, kita boleh mempunyai zero-shot prompting, one-shot prompting, few-shot prompting dan sebagainya.

Arahan kini terdiri daripada tiga komponen:

  • Penerangan tugas
  • Beberapa contoh output yang diingini
  • Permulaan contoh baru (yang menjadi penerangan tugas tersirat)
Jenis Pembelajaran Arahan (Input) Pelengkapan (Output)
Zero-shot "The Sun is Shining". Terjemah ke dalam bahasa Sepanyol "El Sol está brillando".
One-shot "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" =>
"Es un día frío y ventoso".
Few-shot The player ran the bases => Baseball
The player hit an ace => Tennis
The player hit a six => Cricket
The player made a slam-dunk =>
Basketball

Perhatikan bagaimana kita perlu memberikan arahan eksplisit ("Terjemah ke Sepanyol") dalam zero-shot prompting, tetapi ia dapat ditafsir dalam contoh one-shot prompting. Contoh few-shot menunjukkan bagaimana menambah lebih banyak contoh membolehkan model membuat inferens yang lebih tepat tanpa arahan tambahan.

Isyarat Arahan

Satu teknik lagi menggunakan kandungan utama adalah menyediakan isyarat daripada contoh. Dalam kes ini, kita memberi model dorongan ke arah yang betul dengan memulakan ia dengan petikan yang mencerminkan format respons yang diingini. Model kemudian "mengambil isyarat" untuk meneruskan dalam gaya itu.

Bilangan Isyarat Arahan (Input) Pelengkapan (Output)
0 Jupiter adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria. Ia adalah gergasi gas dengan jisim seribu satu daripada Matahari, tetapi dua setengah kali ganda semua planet lain dalam Sistem Suria digabungkan. Jupiter adalah salah satu objek paling terang yang boleh dilihat dengan mata kasar di langit malam, dan telah diketahui oleh tamadun kuno sejak sebelum sejarah direkodkan.
Ringkaskan Ini
Jupiter adalah planet terbesar dalam Sistem Suria kita dan yang kelima dari Matahari. Ia adalah gergasi gas dengan jisim 1/1000 Matahari, tetapi lebih berat daripada semua planet lain digabungkan. Tamadun kuno telah lama mengetahui tentang Jupiter, dan ia mudah dilihat di langit malam.
1 Jupiter adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria. Ia adalah gergasi gas dengan jisim satu per seribu dari Matahari, tetapi dua setengah kali ganda jisim semua planet lain dalam Sistem Suria jika digabungkan. Jupiter adalah salah satu objek paling terang yang boleh dilihat dengan mata kasar di langit malam, dan telah diketahui oleh tamadun purba sejak sebelum sejarah tercatat.
Ringkaskan Ini
Apa yang kita pelajari ialah Jupiter
adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria. Ia adalah gergasi gas dengan jisim satu per seribu dari Matahari, tetapi dua setengah kali ganda jisim semua planet lain jika digabungkan. Ia mudah dilihat dengan mata kasar dan telah diketahui sejak zaman purba.
2 Jupiter adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria. Ia adalah gergasi gas dengan jisim satu per seribu dari Matahari, tetapi dua setengah kali ganda jisim semua planet lain dalam Sistem Suria jika digabungkan. Jupiter adalah salah satu objek paling terang yang boleh dilihat dengan mata kasar di langit malam, dan telah diketahui oleh tamadun purba sejak sebelum sejarah tercatat.
Ringkaskan Ini
3 Fakta Teratas Yang Kami Pelajari:
1. Jupiter adalah planet kelima dari Matahari dan yang terbesar dalam Sistem Suria.
2. Ia adalah gergasi gas dengan jisim satu per seribu dari Matahari...
3. Jupiter telah dapat dilihat dengan mata kasar sejak zaman purba ...

Prompt Templates

Templat prompt adalah resepi yang telah ditetapkan untuk prompt yang boleh disimpan dan digunakan semula apabila perlu, untuk menghasilkan pengalaman pengguna yang lebih konsisten dalam skala besar. Dalam bentuk paling ringkas, ia hanyalah koleksi contoh prompt seperti yang ini dari OpenAI yang menyediakan kedua-dua komponen prompt interaktif (mesej pengguna dan sistem) dan format permintaan API - untuk menyokong penggunaan semula.

Dalam bentuk yang lebih kompleks seperti contoh ini dari LangChain ia mengandungi placeholder yang boleh digantikan dengan data dari pelbagai sumber (input pengguna, konteks sistem, sumber data luaran dan lain-lain) untuk menghasilkan prompt secara dinamik. Ini membolehkan kita membuat perpustakaan prompt yang boleh digunakan semula yang boleh digunakan untuk menghasilkan pengalaman pengguna yang konsisten secara programatik dalam skala besar.

Akhirnya, nilai sebenar templat terletak pada keupayaan untuk mencipta dan menerbitkan perpustakaan prompt untuk domain aplikasi vertikal - di mana templat prompt kini dioptimumkan untuk mencerminkan konteks atau contoh khusus aplikasi yang menjadikan respons lebih relevan dan tepat untuk audiens pengguna yang disasarkan. Repositori Prompts For Edu adalah contoh terbaik pendekatan ini, mengumpul perpustakaan prompt untuk domain pendidikan dengan penekanan pada objektif utama seperti perancangan pelajaran, reka bentuk kurikulum, bimbingan pelajar dan sebagainya.

Supporting Content

Jika kita menganggap pembinaan prompt sebagai mempunyai arahan (tugas) dan sasaran (kandungan utama), maka kandungan sekunder adalah seperti konteks tambahan yang kita berikan untuk mempengaruhi keluaran dalam beberapa cara. Ia boleh berupa parameter penyetelan, arahan format, taksonomi topik dan lain-lain yang boleh membantu model menyesuaikan responsnya agar sesuai dengan objektif atau jangkaan pengguna yang dikehendaki.

Sebagai contoh: Diberi katalog kursus dengan metadata yang luas (nama, penerangan, tahap, tag metadata, pengajar dan lain-lain) bagi semua kursus yang ada dalam kurikulum:

  • kita boleh tentukan arahan untuk "meringkaskan katalog kursus untuk Musim Gugur 2023"
  • kita boleh gunakan kandungan utama untuk memberikan beberapa contoh keluaran yang dikehendaki
  • kita boleh gunakan kandungan sekunder untuk mengenal pasti 5 "tag" teratas yang menarik minat.

Kini, model boleh memberikan ringkasan dalam format yang ditunjukkan oleh beberapa contoh tersebut - tetapi jika hasilnya mempunyai pelbagai tag, ia boleh memberi keutamaan kepada 5 tag yang dikenal pasti dalam kandungan sekunder.


Amalan Terbaik Prompting

Kini kita tahu bagaimana prompt boleh dibina, kita boleh mula memikirkan cara untuk mereka bentuk ia agar mencerminkan amalan terbaik. Kita boleh fikirkan ini dalam dua bahagian - mempunyai mindset yang betul dan menggunakan teknik yang betul.

Mindset Kejuruteraan Prompt

Kejuruteraan Prompt adalah proses cuba dan silap jadi ingat tiga faktor panduan utama:

  1. Pemahaman Domain Penting. Ketepatan dan relevansi respons adalah fungsi kepada domain di mana aplikasi atau pengguna beroperasi. Gunakan naluri dan kepakaran domain anda untuk menyesuaikan teknik dengan lebih lanjut. Contohnya, tentukan personaliti spesifik domain dalam prompt sistem anda, atau gunakan templat spesifik domain dalam prompt pengguna anda. Berikan kandungan sekunder yang mencerminkan konteks khusus domain, atau gunakan petunjuk dan contoh khusus domain untuk mengarahkan model ke corak penggunaan yang biasa.

  2. Pemahaman Model Penting. Kita tahu model adalah stokastik secara semulajadi. Tetapi pelaksanaan model juga boleh berbeza dari segi dataset latihan digunakan (pengetahuan pra-latihan), keupayaan yang disediakan (contohnya, melalui API atau SDK) dan jenis kandungan yang dioptimumkan (contohnya, kod vs imej vs teks). Fahami kekuatan dan batasan model yang anda gunakan, dan gunakan pengetahuan itu untuk utamakan tugas atau bina templat khusus yang dioptimumkan untuk keupayaan model.

  3. Iterasi & Pengesahan Penting. Model berkembang dengan pesat, begitu juga teknik kejuruteraan prompt. Sebagai pakar domain, anda mungkin mempunyai konteks atau kriteria lain untuk aplikasi khusus anda, yang mungkin tidak terpakai kepada komuniti luas. Gunakan alat & teknik kejuruteraan prompt untuk "memulakan" pembinaan prompt, kemudian ulang dan sahkan keputusan menggunakan naluri dan kepakaran domain anda sendiri. Rekodkan wawasan anda dan cipta pangkalan pengetahuan (contohnya, perpustakaan prompt) yang boleh digunakan sebagai garis asas baru oleh orang lain, untuk iterasi yang lebih pantas di masa hadapan.

Amalan Terbaik

Sekarang mari kita lihat amalan terbaik biasa yang disyorkan oleh pengamal OpenAI dan Azure OpenAI.

Apa Kenapa
Nilai model terkini. Generasi model baru mungkin mempunyai ciri dan kualiti yang lebih baik - tetapi mungkin juga menimbulkan kos yang lebih tinggi. Nilai mereka untuk impak, kemudian buat keputusan migrasi.
Pisahkan arahan & konteks Periksa sama ada model/pembekal anda mentakrifkan pembatas untuk membezakan arahan, kandungan utama dan sekunder dengan lebih jelas. Ini boleh membantu model memberikan berat yang lebih tepat kepada token.
Jelaskan dan spesifik Berikan lebih banyak butiran tentang konteks yang dikehendaki, hasil, panjang, format, gaya dan lain-lain. Ini akan meningkatkan kedua-dua kualiti dan konsistensi respons. Tangkap resepi dalam templat yang boleh digunakan semula.
Gunakan penerangan, contoh Model mungkin memberi respons lebih baik kepada pendekatan "tunjuk dan ceritakan". Mulakan dengan pendekatan zero-shot di mana anda berikan arahan (tanpa contoh) kemudian cuba few-shot sebagai penambahbaikan, menyediakan beberapa contoh output. Gunakan analogi.
Gunakan petunjuk untuk memulakan Dorong ia ke arah hasil yang diingini dengan memberikan beberapa perkataan atau frasa pembayang yang ia boleh gunakan sebagai titik permulaan respons.
Gandakan Kadangkala anda perlu mengulangi arahan kepada model. Berikan arahan sebelum dan selepas kandungan utama anda, guna arahan dan petunjuk, dan sebagainya. Ulang dan sahkan untuk lihat apa yang berkesan.
Susunan Penting Susunan di mana anda mempersembahkan maklumat kepada model boleh mempengaruhi output, termasuk dalam contoh pembelajaran, disebabkan bias terkini. Cuba pilihan berbeza untuk tengok apa yang terbaik.
Berikan model 'jalan keluar' Berikan model respons penyempurnaan fallback yang boleh diberi jika ia tidak dapat menyelesaikan tugas atas apa jua sebab. Ini boleh mengurangkan kebarangkalian model menghasilkan respons palsu atau dicipta.

Seperti mana-mana amalan terbaik, ingatlah bahawa hasil anda mungkin berbeza bergantung pada model, tugas dan domain. Gunakan ini sebagai titik permulaan, dan ulang untuk mencari apa yang terbaik untuk anda. Sentiasa nilai semula proses kejuruteraan prompt anda apabila model dan alat baru tersedia, dengan fokus pada skala proses dan kualiti respons.

Tugasan

Tahniah! Anda telah sampai ke penghujung pelajaran! Kini masa untuk menguji beberapa konsep dan teknik itu dengan contoh sebenar!

Untuk tugasan kita, kami akan menggunakan Jupyter Notebook dengan latihan interaktif yang anda boleh selesaikan. Anda juga boleh mengembangkan Notebook tersebut dengan sel Markdown dan Kod anda sendiri untuk meneroka idea dan teknik secara berdikari.

Untuk bermula, fork repo, kemudian

  • (Disyorkan) Lancarkan GitHub Codespaces
  • (Alternatif) Klon repo ke peranti tempatan anda dan gunakannya dengan Docker Desktop
  • (Alternatif) Buka Notebook dengan persekitaran runtime Notebook pilihan anda.

Seterusnya, konfigurasikan pemboleh ubah persekitaran anda

  • Salin fail .env.copy dalam akar repo ke .env dan isikan nilai AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT dan AZURE_OPENAI_DEPLOYMENT. Kembali ke bahagian Learning Sandbox untuk belajar cara.

Seterusnya, buka Jupyter Notebook

  • Pilih kernel runtime. Jika menggunakan pilihan 1 atau 2, pilih kernel Python 3.10.x lalai yang disediakan oleh container dev.

Anda sudah bersedia untuk menjalankan latihan. Perlu diingat tiada jawapan betul dan salah di sini - hanya meneroka pilihan dengan cuba dan silap dan membina naluri apa yang berkesan untuk model dan domain aplikasi tertentu.

Untuk sebab ini tiada segmen Penyelesaian Kod dalam pelajaran ini. Sebaliknya, Notebook akan mempunyai sel Markdown bertajuk "My Solution:" yang menunjukkan satu contoh output sebagai rujukan.

Semakan Pengetahuan

Yang manakah prompt yang baik mengikut beberapa amalan terbaik yang munasabah?

  1. Tunjukkan saya imej kereta merah
  2. Tunjukkan saya imej kereta merah jenama Volvo dan model XC90 yang diparkir di tebing dengan matahari terbenam
  3. Tunjukkan saya imej kereta merah jenama Volvo dan model XC90

J: 2, ia adalah prompt terbaik kerana memberikan butiran "apa" dan pergi ke spesifik (bukan sekadar mana-mana kereta tetapi jenama dan model khusus) dan ia juga menerangkan suasana keseluruhan. 3 adalah seterusnya terbaik kerana ia juga mengandungi banyak penerangan.

🚀 Cabaran

Lihat jika anda boleh menggunakan teknik "petunjuk" dengan prompt: Lengkapkan ayat "Tunjukkan saya imej kereta merah jenama Volvo dan ". Apakah responsnya, dan bagaimana anda akan memperbaikinya?

Kerja Hebat! Teruskan Pembelajaran Anda

Ingin belajar lebih banyak tentang konsep Kejuruteraan Prompt yang berbeza? Pergi ke halaman pembelajaran lanjutan untuk mencari sumber hebat lain mengenai topik ini.

Pergi ke Pelajaran 5 di mana kita akan melihat teknik prompt lanjutan!


Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk ketepatan, sila ambil maklum bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sahih. Untuk maklumat penting, terjemahan profesional oleh manusia adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.