Anda menampal seratus halaman dokumentasi ke dalam prom dan bertanya soalan mudah. Jawapan yang diberikan salah. Atau ia mengabaikan peraturan format yang anda berikan di bahagian atas. Anda telah memberikan segalanya. Ia sepatutnya berjaya. Tetapi ia tidak berjaya.
Inilah perangkap konteks. Kebanyakan pembangun menganggap bahawa memberikan lebih banyak maklumat kepada AI secara automatik akan menghasilkan keputusan yang lebih baik. Hakikatnya sering kali sebaliknya. Membina aplikasi AI yang boleh dipercayai memerlukan pemahaman tentang tiga mekanik teras: bagaimana model mengira teks, berapa banyak yang boleh disimpan sekaligus, dan apa yang berlaku kepada maklumat selepas perbualan tamat.
Token: Mata Wang Sebenar
Token ialah unit terkecil yang diproses oleh model bahasa. Ia mungkin satu aksara tunggal, fragmen perkataan, atau keseluruhan perkataan biasa. Perkataan “purchase” sering dipecahkan kepada dua token, manakala perkataan pendek seperti “cat” kekal utuh. Tanda baca dan ruang juga menggunakan token. Kod adalah sangat "lapar". Satu blok Python dengan inden bersarang dan aksara khas boleh melonjak kepada tiga atau empat kali ganda jumlah token yang anda jangkakan hanya dengan melihatnya.
Mengapa pembangun perlu peduli? Harga API adalah mengikut token. Begitu juga dengan masa pemprosesan. Satu prom yang kelihatan seperti dua halaman teks mungkin menelan kos sen atau dolar bergantung pada apa yang ada di dalamnya. Lebih buruk lagi, token bertambah di kedua-dua belah pertukaran. Anda membayar untuk setiap token dalam prom anda, dan anda membayar untuk setiap token yang dijana semula oleh model. Pertumbuhan konteks yang tidak terkawal akan menghakis margin keuntungan secara senyap.
Tetingkap Konteks Adalah Sebuah Papan Putih
Tetingkap konteks menetapkan had atas tentang apa yang boleh dilihat oleh model dalam satu masa. Bayangkan sebuah papan putih yang tergantung di dalam bilik kecil. Anda boleh mengisinya dengan arahan sistem, soalan pengguna, dokumen yang diambil, dan perbualan terdahulu. Tetapi papan tersebut tidak akan membesar. Apabila teks baharu tiba, teks lama akan terkeluar dari sempadan.
Ini penting kerana model tidak memberi amaran apabila ia mula menggugurkan kandungan. Jika arahan sistem anda berada di bahagian atas perbualan yang panjang, dan anda terus menambah mesej, arahan tersebut akhirnya akan terkeluar daripada pandangan. Model mungkin kembali ke tingkah laku lalai, mengabaikan peraturan format anda, atau bercanggah dengan panduan terdahulu. Model yang berbeza menawarkan had yang berbeza, ada yang mengendalikan beberapa ribu token dan ada yang mengendalikan ratusan ribu, tetapi mekaniknya tetap sama. Input dan output berkongsi bajet yang sama. Model yang menjana respons dua ribu token mempunyai dua ribu token kurang tersedia untuk mengingati apa yang anda beritahu kepadanya.
Memori Adalah Satu "Hack", Bukan Ciri Utama
Tiada memori kekal di dalam pemberat (weights) model semasa inferens. Tiada langsung. Apabila anda menutup tab dan kembali esok, model tidak mengenali anda. Setiap panggilan API adalah permulaan baharu (cold start).
Apa yang terasa seperti memori hanyalah pengurusan rekod yang bijak oleh lapisan aplikasi. Bahagian hadapan (frontend) menyimpan mesej anda dalam pangkalan data. Apabila anda menghantar pertanyaan baharu, perisian tersebut mengambil sejarah yang relevan, menyatukannya ke dalam prom baharu, dan menghantar keseluruhan pakej tersebut kepada model. Model itu sendiri tetap tidak menyedarinya.
Perbezaan ini sangat penting bagi pasukan produk. Jika anda bergantung pada model untuk “mengingat” pilihan pengguna, anda sedang membina di atas pasir. Anda perlu membina pengurusan keadaan (state management) sendiri. Tentukan apa yang perlu disimpan dalam cache. Tentukan cara untuk menyegarkannya. Dan sedar bahawa setiap bait sejarah yang anda hantar semula akan memakan ruang papan putih anda.
Apabila Konteks Menjadi Hingar
Membanjiri prom akan memberikan kesan buruk dengan cara yang boleh diramal.
Hingar membunuh isyarat. Jika anda memasukkan keseluruhan kod sumber untuk bertanya tentang satu pepijat, model akan menghadapi masalah "jarum dalam timbunan jerami". Ia mungkin merujuk fail yang salah, mencadangkan perubahan pada kod yang tidak lagi digunakan, atau menghasilkan jawapan generik kerana ia tidak dapat
