Cache prompt adalah cara untuk menyimpan dan kemudian menggunakan kembali respons yang dihasilkan dari prompt yang dieksekusi saat bekerja dengan model bahasa seperti model IBM® Granite. Jika input (prompt) yang sama ditemui kembali, alih-alih membuat panggilan API baru, aplikasi akan mengambil respons yang disimpan sebelumnya di cache prompt.
Bayangkan cache prompt sebagai semacam "memori" untuk aplikasi Anda. Sistem menyimpan hasil dari kueri sebelumnya untuk menghemat waktu komputasi karena tidak perlu membuat permintaan berulang pada input yang sama.
Cache prompt penting karena menghindari panggilan antarmuka pemrograman aplikasi (API) berulang dengan menggunakan kembali respons yang ada untuk prompt berulang yang identik. Kemampuan ini menghasilkan waktu respons yang lebih cepat, output yang konsisten, dan penggunaan API yang lebih rendah, yang membantu untuk tetap berada dalam batas tarif. Ini juga membantu untuk menskalakan aliran dan menciptakan ketahanan selama pemadaman. Cache prompt adalah fitur penting yang menambah nilai bagi aplikasi AI yang hemat biaya, efisien, dan ramah pengguna.
Anda memerlukan akun IBM Cloud untuk membuat proyek watsonx.ai .
Anda juga memerlukan Python versi 3.12.7
Meskipun terdapat pilihan beberapa alat, tutorial ini akan memandu Anda untuk menyiapkan akun IBM menggunakan Jupyter Notebook.
Masuk ke watsonx.ai dengan menggunakan akun IBM Cloud Anda.
Buat proyek watsonx.ai. Anda bisa mendapatkan ID proyek dari dalam proyek Anda. Klik tab Kelola . Kemudian, salin ID proyek dari bagian Detail di halaman Umum . Anda memerlukan ID ini untuk tutorial ini.
Buat Jupyter Notebook. Langkah ini akan membuka lingkungan Jupyter Notebook tempat Anda dapat menyalin kode dari tutorial ini. Atau, Anda dapat mengunduh aplikasi notebook ini ke sistem lokal Anda dan mengunggahnya ke proyek watsonx.ai sebagai aset. Untuk melihat lebih banyak tutorial Granite, lihat Komunitas IBM Granite.
Buat instans layanan watsonx.ai Runtime (pilih paket Lite, yang merupakan instans gratis).
Buat Kunci API.
Kaitkan layanan watsonx.ai Runtime ke proyek yang Anda buat di watsonx.ai.
Kita membutuhkan pustaka untuk bekerja dengan kerangka kerja Langchain dan WatsonxLLM. Mari kita instal paket yang diperlukan terlebih dahulu. Tutorial ini dibuat menggunakan Python 3.12.7
Catatan: Jika Anda menggunakan pip versi lama, Anda dapat menggunakan perintah pip install --upgrade pip untuk dengan mudah menginstal paket terbaru yang mungkin tidak kompatibel dengan versi lama. Namun jika sudah menggunakan versi terbaru atau baru saja meningkatkan paket, Anda dapat melewatkan perintah ini.
Modul os digunakan untuk mengakses variabel lingkungan, seperti kredensial proyek atau kunci API.
WatsonXLLM adalah modul dari langchain_ibm yang mengintegrasikan IBM Watson LLM untuk menghasilkan output dari model AI generatif.
ChatWatsonx memungkinkan interaksi berbasis obrolan menggunakan IBM watsonx melalui LangChain.
SimpleDirectoryReader digunakan untuk memuat dan membaca dokumen dari direktori untuk pengindeksan dengan LlamaIndex.
GenParams berisi kunci metadata untuk mengonfigurasi parameter pembuatan teks Watsonx.
SQLiteCache memungkinkan penyiapan basis data .cache.db SQLite lokal untuk menghindari panggilan API yang berlebihan dan mempercepat pengembangan dan pengujian.
Kita membutuhkan beberapa pustaka dan modul untuk tutorial ini. Pastikan untuk mengimpor yang berikut ini dan jika tidak diinstal, instalasi pip cepat akan menyelesaikan masalah.
Kode ini menyiapkan kredensial untuk mengakses API IBM Watson machine learning (WML) dan membantu memastikan bahwa ID proyek dikonfigurasi dengan benar.
Kode ini mengawali IBM WatsonXLLM untuk digunakan dalam aplikasi:
Untuk mengetahui lebih lanjut tentang parameter model ini, seperti batas token minimum dan maksimum, lihat dokumentasi.
SQLiteCache adalah alat caching berkesinambungan yang ditawarkan oleh LangChain, yang menyimpan respons dari panggilan LLM dalam file basis data SQLite. SQLiteCache dengan cerdas mengurangi waktu CPU dengan menyimpan komputasi yang mahal, yang berarti berfokus pada pengambilan data alih-alih menghitung ulang. Ketimbang melalui seluruh proses kembali, mekanisme ini hanya menarik hasil dari disk—menjadikannya efisien, andal, dan dapat digunakan kembali.
Gambar mengilustrasikan cache prompt, bagaimana hasil dimuat secara instan dari disk; tanpa cache, setiap kueri membuang waktu pada komputasi yang berlebihan.
Dalam hal ini, CPU hanya bekerja selama 22 ms, tetapi waktu yang berlalu sebenarnya adalah 1, 43 detik.
Contoh ini menunjukkan bahwa sebagian besar waktu dihabiskan untuk menunggu, kemungkinan untuk operasi I/O (misalnya, baca dan tulis disk, akses jaringan, atau panggilan API)
Sekarang, mari kita jalankan model untuk kedua kalinya dengan prompt dan lihat waktu respons.
Tampak jelas bahwa dengan SQLiteCache CPU yang digunakan hanya 7,26 ms, tetapi waktu dinding adalah 6,15 detik.
Ini jelas menunjukkan pemblokiran dependensi eksternal (seperti menunggu respons dari server).
Cache prompt mempercepat dan mengurangi biaya permintaan API ke model bahasa besar, seperti GPT-4o. Konten cache prompt seperti token input, token output, penanaman, dan pesan dari pengguna, prompt sistem atau output dari fungsi, yang sekarang menggunakan konten yang disimpan di cache, bukan permintaan jaringan untuk revisi baru. Metode ini memberikan harga yang lebih rendah, peningkatan latensi respons, dan peningkatan indikator kinerja utama (KPI).
Cache prompt dapat bermanfaat untuk chatbot, sistem RAG, penyempurnaan, dan code assistant. Strategi cache yang kuat yang mencakup berbagai fungsi seperti baca cache, tulis cache, pesan sistem, kontrol cache, dan time to live (TTL) yang tepat akan meningkatkan tingkat cache hit dan menurunkan tingkat cache miss.
Penggunaan token prompt yang sama secara konsisten, awalan prompt, dan penggunaan instruksi sistem, membantu kinerja prompt yang konsisten dalam banyak pertukaran percakapan dan permintaan berikutnya. Terlepas dari penggunaan Python, SDK, atau bekerja dengan OpenAI atau penyedia lain, memahami cara kerja cache prompt akan lebih memungkinkan Anda menerapkan cache prompt untuk digunakan dalam banyak contoh penggunaan.