Riwayat percakapan
Percakapan yang panjang akan menabrak dinding keras: jendela konteks model. Semua yang ada di halaman ini ada karena dinding itu, dan bagian yang menarik adalah apa yang dibuang, apa yang disimpan, dan apa yang bisa didapatkan kembali.
Empat cara mengambil kembali konteks
Bagian berjudul “Empat cara mengambil kembali konteks”Keempatnya bukan sekadar alternatif satu terhadap yang lain, melainkan sebuah tangga, dari yang paling murah lebih dulu.
| Mekanisme | Biaya | Mempertahankan | Kehilangan |
|---|---|---|---|
| Penghilangan | Tidak ada | Setiap kata narasi | Hasil alat lama tanpa kejadian penting |
| Pembuangan gambar | Tidak ada | Teks di sekitarnya | Tangkapan layar lama |
| Snapshot | Tidak ada | Setiap kata, sebagai piksel | Keterbacaan bagi model tanpa visi |
| Ringkasan | Satu panggilan model | Sebuah narasi | Detail yang tidak dipilihnya |
Penghilangan dan pembuangan gambar dijalankan lebih dulu karena keduanya gratis dan tanpa kehilangan dalam hal yang penting: keduanya membuang volume yang tidak akan dibaca ulang oleh siapa pun.
Mengapa meringkas adalah pilihan terakhir
Bagian berjudul “Mengapa meringkas adalah pilihan terakhir”Ringkasan adalah satu-satunya dari keempat cara itu yang menghabiskan satu panggilan model dan satu-satunya yang memutuskan untuk Anda apa yang penting. Keduanya adalah biaya nyata. Panggilan model adalah yang lebih menarik, karena soal kapan panggilan itu terjadi.
Pemadatan biasanya berjalan di depan dinding, pada sebuah ambang batas. Tetapi pemadatan juga berjalan secara reaktif, setelah penyedia sendiri menolak permintaan karena terlalu besar — estimasi heuristik kurang menghitung apa yang sebenarnya diukur penyedia. Dalam situasi itu, pemadat yang meringkas harus membuat permintaan untuk mengecilkan konteks, dan permintaan yang dibuatnya justru permintaan yang baru saja meluap.
Snapshot
Bagian berjudul “Snapshot”Pemadatan snapshot merender riwayat yang dibuang ke halaman padat berisi glif piksel lalu mengembalikannya sebagai gambar.
Premisnya adalah keanehan penagihan: model visi menagih sebuah gambar dengan tarif tetap atau proporsional terhadap luas, yang tidak ada hubungannya dengan berapa banyak karakter di dalamnya. Dua belas ribu karakter percakapan yang dibuang memakan biaya setara token teks dua belas ribu karakter. Karakter yang sama yang dirender ke satu halaman hanya memakan biaya satu gambar.
Yang membuatnya layak dimiliki, bukan sekadar cerdik, adalah karena ia berjalan tanpa panggilan model, tanpa kunci, dan tanpa jaringan. Ia adalah satu-satunya strategi yang selalu tersedia selama pemulihan dari luapan.
Bentuk rekonstruksinya adalah kepala kata demi kata, bagian tengah sebagai gambar, ekor kata demi kata. Kepala adalah tugas dan batasan yang menjadi rujukan semua bagian setelahnya; ekor adalah tempat pekerjaan berada saat ini. Bagian tengah adalah yang paling jarang dibaca ulang dan paling mahal.
Snapshot dirender ulang dari teks sumber yang dipertahankan pada setiap proses, tidak pernah dari piksel proses sebelumnya. Menggambarkan sebuah gambar menurunkan kualitas glif satu generasi per pemadatan hingga tidak ada yang bisa membacanya.
Dari apa sebuah run sebenarnya melanjutkan
Bagian berjudul “Dari apa sebuah run sebenarnya melanjutkan”Secara historis, setiap run harness dimulai dari riwayat kosong dan membangun kembali kesinambungan dari blok <context> di prompt — sebuah ringkasan percakapan, bukan percakapannya sendiri. Tiga hal mengikuti dari itu:
- Melanjutkan hanyalah penuturan ulang. Model tidak pernah melihat penalaran awalnya sendiri atau byte sebenarnya yang dikembalikan alatnya, hanya deskripsinya.
- Rewind mati bersama prosesnya. Sebuah
checkpointadalah indeks ke daftar pesan yang aktif, jadi memulai ulang menghilangkan setiap label yang telah ditetapkan model. - Coba lagi tidak bisa membedakan “tidak ada yang perlu dicoba lagi” dari “tidak ada yang dimuat”. Setelah memulai ulang, giliran yang gagal sama-sama hilang dari status aktif.
Ketiganya diperbaiki dengan menyimpan transkrip secara persisten. Transkrip disimpan pada setiap batas giliran dan tidak pernah di tengah giliran: riwayat yang diambil di antara panggilan alat dan hasilnya adalah riwayat yang tidak akan diterima penyedia mana pun, jadi crash pada saat itu memulihkan giliran sebelumnya, bukan setengah giliran yang tidak dapat diputar ulang.
Run yang dilanjutkan dipangkas hingga hanya menyisakan pesan terbarunya, dengan pemotongan pada batas yang bukan hasil alat yang panggilannya hilang — hasil yang panggilannya ikut terpangkas adalah permintaan yang langsung ditolak penyedia, dan transkrip yang tidak bisa dikirim lebih buruk daripada transkrip yang pendek.
Pohon sesi
Bagian berjudul “Pohon sesi”Setiap pesan mencatat pesan yang dilanjutkannya, dan setiap percakapan menamai ujung cabang yang berlaku saat ini. Satu keputusan itulah keseluruhan fiturnya.
Percabangan tidak menulis apa pun. Ia hanya menggerakkan penunjuk. Jalur yang Anda tinggalkan masih ada, jadi beralih kembali hanyalah menggerakkan penunjuk sekali lagi, bukan pemulihan — dan menyunting prompt untuk menjalankannya ulang tidak lagi menghilangkan jawaban yang sedang Anda bandingkan.
Tanpa itu, setiap bentuk langkah kembali harus menyembunyikan atau menghapus pesan, dan penyembunyian adalah kebohongan yang tidak bisa ditembus oleh pembaca berikutnya.
Cabang versus fork
Bagian berjudul “Cabang versus fork”| Cabang | Fork | |
|---|---|---|
| Apa yang terjadi | Penunjuk bergerak | Jalur disalin |
| Ke mana arahnya | Percakapan yang sama | Percakapan baru |
| Biaya | Tidak ada | Satu salinan cabang |
Fork menyalin dengan id baru alih-alih berbagi baris. Dua percakapan yang berbagi baris akan saling memperlihatkan pesan berikutnya, dan itulah satu hal yang tidak boleh dilakukan oleh fork.
Rewind memakai penunjuk yang sama
Bagian berjudul “Rewind memakai penunjuk yang sama”Pasangan checkpoint / rewind di dalam run menandai batas giliran yang bersih dan kembali ke sana setelah eksplorasi, sambil menyimpan ikhtisar. Karena checkpoint disimpan secara persisten bersama transkrip, label yang ditetapkan model sebelum memulai ulang tetap berada di posisi tempat label itu ditetapkan. Checkpoint yang targetnya tidak selamat dari pemangkasan akan dibuang, bukan dijepit — memundurkan “ke label” lalu berakhir di tempat lain justru merupakan kegagalan yang ingin dicegah oleh keberadaan label.
Terkait
Bagian berjudul “Terkait”- Cabangkan percakapan — penjelajah pohon, fork, dan ekspor
- Konteks alat dan cache prompt — separuh lain dari apa yang mengisi jendela konteks
- Perintah slash —
/compact,/shake,/context,/tree