0Pricing
AI Prompt Engineering · Pelajaran

Urutan Contoh dan Kebaruan

Cara urutan contoh memengaruhi keluaran.

Urutan Contoh dan Kebaruan adalah pelajaran AI Prompt Engineering gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Prompt Engineering, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Prompt Engineering mencakup 4 pelajaran total.

Urutan Adalah Hiperparameter Tersembunyi

Urutan contoh few-shot dapat mengubah akurasi beberapa poin persentase, terkadang mengubah prompt yang hampir acak menjadi prompt yang kuat, dan sebaliknya. Ketidakstabilan ini tetap ada meskipun set contoh tidak berubah.

Perlakukan pengurutan sebagai hiperparameter utama yang harus dicari, bukan sebagai hal yang dipikirkan belakangan. Melaporkan hasil few-shot tanpa mengendalikan urutan tidaklah sahih secara ilmiah.

import itertools

def order_search(demos, eval_set, build, max_perms=24):
    perms = list(itertools.permutations(demos))[:max_perms]
    scored = [(p, evaluate(build(p), eval_set)) for p in perms]
    return max(scored, key=lambda x: x[1])

Penjelasan tentang Bias Kemutakhiran

Transformer yang hanya menggunakan dekoder menunjukkan bias kemutakhiran: token yang lebih dekat dengan titik generasi memberikan pengaruh yang tidak proporsional. Demonstrasi terakhir sebelum pertanyaan paling mungkin membentuk format, label, dan nada.

Hal ini sebagian merupakan artefak pola perhatian dan pengodean posisi. Implikasi praktisnya: apa pun yang Anda letakkan terakhir adalah hal yang paling mudah ditiru model.

# Position weight intuition (illustrative, not exact)
# influence(example_i) roughly increases with proximity to the query
# => the FINAL demo disproportionately anchors the next generation
weights = [0.1, 0.15, 0.25, 0.5]  # earlier ... latest

Hilang di Tengah

Studi konteks panjang mengungkap profil perhatian berbentuk U: model memperhatikan awal dan akhir konteks dengan baik, tetapi kurang memperhatikan bagian tengah. Demonstrasi penting yang terkubur di tengah prompt pada dasarnya diabaikan.

Letakkan contoh yang paling penting atau paling rumit di awal atau, mengingat bias kemutakhiran, di dekat akhir; jangan pernah membiarkannya terdampar di tengah blok demonstrasi yang panjang.

def place_key_demos(key, filler):
    # U-shape aware: key items at the edges, filler in the middle
    head = key[: len(key)//2]
    tail = key[len(key)//2 :]
    return head + filler + tail

Label Mayoritas dan Posisi Terakhir

Bias kemutakhiran dan bias label mayoritas saling memperkuat. Jika demonstrasi terakhir Anda adalah kelas A, model cenderung memprediksi A. Jika digabungkan dengan set demonstrasi yang didominasi A, prior menjadi sangat menceng.

Untuk klasifikasi yang seimbang, selang-selingkan label dan pastikan contoh terakhir tidak selalu berasal dari kelas yang sama di seluruh variasi prompt Anda.

def alternate_labels(by_label, k):
    labels = list(by_label)
    out = []
    i = 0
    while len(out) < k:
        lbl = labels[i % len(labels)]
        if by_label[lbl]:
            out.append(by_label[lbl].pop())
        i += 1
    return out  # final element varies by construction

Demo yang Diurutkan Berdasarkan Kemiripan (Menaik)

Heuristik yang andal dalam few-shot yang diperkuat dengan retrieval: urutkan contoh yang diambil berdasarkan kemiripan menaik terhadap kueri, sehingga demonstrasi yang paling relevan berada paling dekat dengan kueri dan memperoleh manfaat dari efek keterkinian.

Hal ini memadukan seleksi dinamis dengan pemanfaatan keterkinian: konteks yang relevan tidak hanya tersedia, tetapi juga ditempatkan di posisi yang paling kuat diperhatikan model.

def order_by_similarity(query_emb, retrieved):
    scored = [(d, cos(query_emb, d.emb)) for d in retrieved]
    scored.sort(key=lambda x: x[1])     # ascending
    return [d for d, _ in scored]        # most similar last (near query)

Pengurutan Berdasarkan Kurikulum

Untuk penalaran atau generasi, urutan curriculum (dari mudah ke sulit) dapat membantu model membangun perilaku yang diinginkan, dengan diakhiri contoh kompleks yang menunjukkan kedalaman penalaran penuh tepat sebelum kueri.

Hal ini bergantung pada tugas; validasikan terhadap urutan acak dan urutan berdasarkan kemiripan, bukan menganggapnya pasti membantu.

def curriculum(demos, difficulty_fn):
    return sorted(demos, key=difficulty_fn)  # easiest first, hardest last

Mengukur Sensitivitas terhadap Urutan

Ukur seberapa rapuh prompt Anda dengan mengambil sampel banyak urutan dan melaporkan varians akurasi. Varians yang tinggi menandakan prompt yang tidak stabil dan dapat mengalami kemunduran secara tidak terduga saat digunakan di produksi.

Gunakan metrik ini untuk membandingkan rancangan prompt: prompt yang tahan terhadap perubahan urutan lebih aman daripada prompt yang skornya sedikit lebih tinggi tetapi tidak stabil.

import random

def order_sensitivity(demos, eval_set, build, trials=20):
    accs = []
    for _ in range(trials):
        perm = random.sample(demos, len(demos))
        accs.append(evaluate(build(perm), eval_set))
    return mean(accs), stdev(accs)  # report both; low stdev = robust

Seleksi Urutan Tanpa Probing

Jika Anda tidak memiliki label untuk menilai berbagai urutan, Anda dapat memilih urutan menggunakan entropi prediksi model pada himpunan probing: urutan yang menghasilkan prediksi percaya diri, berentropi rendah, dan tersebar dengan baik cenderung memiliki generalisasi yang lebih baik (Lu et al., 2022).

Dengan demikian, Anda dapat memilih permutasi yang baik tanpa himpunan validasi berlabel.

def select_order_by_entropy(perms, probe_inputs, build):
    def score(perm):
        ents = [entropy(model_probs(build(perm), x)) for x in probe_inputs]
        return -mean(ents)        # prefer confident, low-entropy orderings
    return max(perms, key=score)

Menstabilkan dengan Kalibrasi

Sensitivitas terhadap urutan dan bias keterkinian sama-sama dapat memperbesar kemungkinan label tertentu. Kalibrasi kontekstual mengurangi dampak ini dengan memperkirakan prior model pada input tanpa isi dan mengoreksi probabilitas prediksi, sehingga dampak dari satu urutan tertentu berkurang.

Kalibrasi yang dipadukan dengan urutan yang baik menghasilkan perilaku produksi yang lebih stabil daripada mengejar satu permutasi terbaik.

p_prior = model_probs(build(perm), content_free='N/A')
def calibrate(probs):
    return normalize(probs / p_prior)  # cancels order-induced label skew

Penyimpanan Tembolok dan Stabilitas Urutan

Jika Anda menggunakan penyimpanan tembolok prompt, awalan (termasuk blok demonstrasi) harus tetap stabil hingga tingkat byte agar tembolok dapat digunakan. Pengacakan ulang contoh pada setiap permintaan akan menghilangkan penggunaan kembali tembolok dan meningkatkan biaya serta latensi.

Solusinya: tetapkan satu urutan yang telah divalidasi untuk blok demo statis dan simpan di tembolok; gunakan pengurutan ulang dinamis hanya untuk bagian akhir yang diambil dan spesifik terhadap kueri.

# Stable cached prefix + dynamic tail
prefix = render(FIXED_ORDERED_DEMOS)   # cache_control on this block
tail   = render(order_by_similarity(q_emb, retrieved))
prompt = prefix + tail + query

Daftar Periksa Strategi Pengurutan

Pengaturan praktis: seimbangkan dan selang-selingkan label, tempatkan contoh penting atau sulit di bagian tepi (hindari bagian tengah), urutkan contoh yang diambil berdasarkan kemiripan menaik agar contoh terbaik berada dekat kueri, ukur varians urutan, dan terapkan kalibrasi untuk meredam kemencengan yang tersisa.

Kemudian kunci urutan tersebut untuk penyimpanan tembolok dan validasikan kembali setiap kali kumpulan contoh berubah.

def final_order(demos, q_emb):
    demos = alternate_labels(group(demos), len(demos))
    return order_by_similarity(q_emb, demos)  # validated, then cached

Pemeriksaan Singkat

Analisis posisi demonstrasi yang penting.

Ringkasan

Inti pembelajaran:

  • Urutan contoh adalah hiperparameter yang dapat mengubah akurasi beberapa poin; lakukan pencarian dan laporkan varians.
  • Bias keterkinian membuat demo terakhir paling berpengaruh; fenomena “hilang di tengah” membuat contoh di bagian tengah kurang diperhitungkan.
  • Seimbangkan atau selang-selingkan label, urutkan demo yang diambil berdasarkan kemiripan menaik, dan pertimbangkan pengurutan berdasarkan kurikulum.
  • Pilih urutan menggunakan entropi saat label terbatas, lalu terapkan kalibrasi kontekstual untuk meredam kemencengan.
  • Kunci urutan yang stabil untuk penyimpanan tembolok prompt; urutkan ulang hanya bagian akhir yang diambil secara dinamis.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Urutan Contoh dan Kebaruan” gratis?

Ya — teks lengkap “Urutan Contoh dan Kebaruan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Prompt Engineering, upgrade ke CoddyKit PRO. Kursus AI Prompt Engineering mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Urutan Contoh dan Kebaruan”?

Cara urutan contoh memengaruhi keluaran. Kamu berlatih AI Prompt Engineering dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Prompt Engineering?

Tidak diperlukan pengalaman sebelumnya. AI Prompt Engineering di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Urutan Contoh dan Kebaruan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Prompt Engineering ini?

Ya. Setiap pelajaran AI Prompt Engineering menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Zero-Shot, One-Shot, dan Few-Shot
  2. Merancang Contoh yang Efektif
  3. Urutan Contoh dan Kebaruan
  4. Pemilihan Few-Shot Dinamis
← Kembali ke AI Prompt Engineering