AI Gateway meningkatkan caching untuk permintaan AI berulang melalui pendekatan mesin ganda. Dengan menggabungkan cache presisi berbasis Redis dan cache semantik DashVector, biaya berkurang serta efisiensi panggilan model bahasa besar (LLM) meningkat. Dokumen ini mencakup fitur, manfaat, dan konfigurasi kedua kebijakan cache tersebut.
Konsep cache semantik
Penyematan vektor
-
Cache semantik menggunakan teknologi vektor untuk mencocokkan maksud pengguna. Saat pengguna membuat permintaan baru, sistem terlebih dahulu mengonversi teks menjadi vektor berdimensi tinggi melalui text embedding. Proses ini disebut vector embedding.
-
Vektor-vektor ini secara akurat menangkap fitur semantik teks. Misalnya, meskipun "Apple phone" dan "iPhone" merupakan kata yang berbeda, vektornya sangat berdekatan dalam ruang vektor. Berbeda dengan cache presisi tradisional yang memerlukan kecocokan teks persis, representasi tervektorisasi ini memungkinkan sistem memahami bahwa "cuaca besok di Beijing" dan "prakiraan cuaca Beijing untuk 24 jam ke depan" memiliki kemiripan semantik.
Perbandingan vektor
-
Setelah menghasilkan vektor, sistem menggunakan algoritma cosine similarity untuk menghitung sudut antara vektor permintaan baru dan vektor item yang telah di-cache. Jika tingkat kemiripannya memenuhi ambang batas yang telah ditentukan, sistem akan mengembalikan respons dari cache. Nilai ambang batas antara 0,8 hingga 0,9 direkomendasikan, tetapi Anda dapat menyesuaikannya sesuai kebutuhan.
-
Mekanisme ini memungkinkan sistem mengenali ekspresi sinonim secara cerdas. Misalnya, dalam skenario layanan pelanggan e-commerce, pengguna mungkin bertanya, "Kapan paket ini sampai?" atau "Berapa perkiraan waktu pengirimannya?". Sistem dapat mencocokkan kedua pertanyaan tersebut dengan jawaban cache yang sama: "Berdasarkan informasi logistik, paket Anda akan dikirimkan sebelum pukul 15.00 besok."
Database vektor
AI Gateway menggunakan DashVector untuk mengelola vektor secara efisien. Jenis database vektor ini menggunakan algoritma Hierarchical Navigable Small World (HNSW) untuk mengambil jutaan vektor dalam hitungan milidetik dan mendukung pembaruan dinamis. Berbeda dengan cache presisi tradisional, cache semantik mendukung pencocokan jumlah tak terbatas varian semantik dan meningkatkan pemanfaatan sumber daya dengan berbagi storage space untuk item-item yang memiliki kemiripan semantik.
Perbandingan strategi
|
Fitur |
Precise cache |
Semantic cache |
|
Metode pencocokan |
Exact string match. |
Jarak ruang vektor ditentukan oleh cosine similarity. |
|
Toleransi kesalahan |
Tidak mengenali ekspresi sinonim atau hampir sinonim. |
Mendukung fuzzy matching untuk sinonim, variasi kalimat, dan lainnya. |
|
Kecepatan respons |
Tingkat milidetik (kueri key-value lokal). |
Tingkat milidetik (pencarian tetangga terdekat dalam database vektor). |
|
Skenario khas |
FAQ standar dan panggilan API dengan parameter tetap. |
Instruksi bahasa alami, percakapan multi-putaran, dan kueri kabur. |
|
Efektivitas biaya |
Ideal untuk permintaan berfrekuensi tinggi dan berulang. |
Ideal untuk skenario dengan keragaman semantik tinggi dan maksud pengguna yang serupa. |
Manfaat
-
Sistem cache mode ganda: Memberikan fleksibilitas untuk memilih antara dua mode cache dan menyesuaikan ambang batas pencocokan secara dinamis berdasarkan kebutuhan bisnis Anda.
-
Precise cache: Berbasis arsitektur penyimpanan kunci-nilai Redis, mode ini memberikan respons tingkat milidetik untuk permintaan identik.
-
Semantic cache: Menggunakan database vektor DashVector (bagian dari Vector Retrieval Service Alibaba Cloud) untuk mencocokkan permintaan yang memiliki kemiripan semantik secara cerdas. Ambang batas kemiripan dapat disesuaikan, mengatasi keterbatasan pencocokan string tradisional.
-
-
Mengurangi komputasi berulang: Untuk permintaan AI identik, sistem langsung mengembalikan data dari cache, menghindari panggilan LLM berulang.
-
Performa lebih baik: Dengan mengambil hasil secara cepat dari cache, AI Gateway secara signifikan mengurangi waktu respons dan beban pada server backend. Cache semantik memungkinkan respons "tingkat maksud", sangat meningkatkan kepuasan dan pengalaman pengguna.
-
Cakupan skenario diperluas: Mendukung skenario standar seperti sistem layanan pelanggan dan kueri basis pengetahuan, serta varian instruksi bahasa alami seperti "cuaca besok" dan "prakiraan cuaca untuk 24 jam ke depan".
-
Pemantauan log: Memungkinkan Anda menganalisis metrik rasio hit cache.
Prosedur
Masuk ke Konsol AI Gateway dan pilih Instance. Di bilah menu atas, pilih Wilayah, lalu klik ID instans target.
Di panel navigasi kiri, pilih Model API, lalu klik nama API target untuk membuka halaman API Details.
-
Klik Policies and Plug-ins, aktifkan sakelar Cache, dan konfigurasikan parameter.
AI Gateway telah meningkatkan kemampuan caching-nya untuk mendukung Semantic dan Exact Match. Pilih mode cache yang sesuai berdasarkan Perbandingan strategi.
Semantic cache
PentingJika permintaan menyertakan header
x-higress-skip-ai-cache: on, permintaan tersebut melewati cache. Permintaan diteruskan langsung ke layanan backend, dan responsnya tidak di-cache.-
Cache Key Strategy: Pilih opsi default, Latest Query Only, atau pilih Integrate Historical Queries sesuai kebutuhan Anda.
-
Konfigurasi Vektorisasi Teks:
-
AI Service: Pilih layanan AI yang sudah ada. Jika Anda belum memiliki layanan AI, klik Create Service untuk membuatnya.
-
Model Name: Pilih nama model yang ingin Anda gunakan.
-
Timeout Period: Atur periode timeout. Nilai default adalah 5.000 ms.
-
-
Konfigurasi Database Vektor:
-
Service Provider: Jika Anda belum mengaktifkan DashVector, klik Go to Console untuk membuka halaman aktivasi layanan. Anda perlu . Catat nama koleksi untuk digunakan nanti.
PentingSaat membuat koleksi, pilih
Cosinesebagai metrik jarak, dan pastikan dimensi vektor sesuai dengan model text embedding. Untuk mengetahui dimensi output vektor model text embedding di platform Model Studio, lihat Text and Multimodal Embeddings. -
Service URL: Masukkan titik akhir layanan DashVector Anda.
-
Collection Name: Masukkan nama koleksi yang telah Anda buat.
-
API Key: Kredensial akses. Untuk informasi selengkapnya, lihat Manage API keys.
-
Vector Similarity Threshold: Nilai ini menentukan seberapa ketat kueri dicocokkan dengan konten yang di-cache. Rentang nilainya dari 0 hingga 1, dengan nilai yang direkomendasikan 0,8 atau 0,9. Nilai yang lebih tinggi menunjukkan kemiripan semantik yang lebih besar. Untuk informasi selengkapnya, lihat Konfigurasi ambang batas kemiripan vektor.
-
Timeout Period: Atur periode timeout. Nilai default adalah 3.000 ms.
-
Precise cache
Penting-
Buka Konsol Redis dan tambahkan Blok CIDR VPC dari instans gateway ke daftar putih.
-
Jika permintaan menyertakan header
x-higress-skip-ai-cache: on, permintaan tersebut melewati cache. Permintaan diteruskan langsung ke layanan backend, dan responsnya tidak di-cache.
-
Cache Key Strategy: Pilih opsi default, Latest Query Only, atau pilih Integrate Historical Queries sesuai kebutuhan Anda.
-
Konfigurasi Cache Redis:
-
Redis service URL: Masukkan URL layanan Redis Anda.
-
Port Number: Masukkan nomor port Anda.
-
Access Method: Pilih metode akses ke layanan Redis. Opsi yang tersedia adalah Account+Password, Password-only, dan Password-free.
-
Database Account: Jika Anda memilih metode akses Account+Password, masukkan akun database.
-
Database Password: Jika Anda memilih metode akses yang memerlukan password, masukkan password database.
-
Database No.: Nomor database yang ditentukan.
-
Duration (seconds): Durasi cache default adalah 1.800 detik. Selama periode ini, jika API menerima permintaan AI identik, LLM tidak dipanggil, dan respons dari cache dikembalikan langsung.
-
-
-
Konfirmasi konfigurasi dan klik Save.
Konfigurasi ambang batas kemiripan vektor
Konsep inti
Ambang batas kemiripan vektor adalah parameter kunci yang mengontrol sensitivitas pencocokan cache semantik dengan menentukan seberapa ketat kueri dicocokkan dengan konten yang di-cache.
-
Rentang nilai: Nilai dari 0,0 (sama sekali tidak mirip) hingga 1,0 (sama persis).
-
Rentang yang direkomendasikan: 0,8 hingga 0,9 (dapat disesuaikan berdasarkan kebutuhan bisnis). Nilai di bawah 0,8 tidak direkomendasikan.
-
Ambang batas lebih rendah (misalnya, 0,75): Hasil cache dikembalikan selama semantiknya mirip, meskipun frasa pengguna berbeda.
-
Ambang batas lebih tinggi (misalnya, 0,99): Hasil cache dikembalikan hanya jika pengguna menggunakan ekspresi yang hampir identik.
Mengapa nilai 0,8 atau lebih tinggi direkomendasikan?
Saat ambang batas lebih rendah dari 0,8, sistem mungkin salah menilai kueri yang tidak relevan sebagai kecocokan. Hal ini dapat menyebabkan "false positives" (mengembalikan hasil yang tidak relevan secara keliru), yang berdampak negatif pada pengalaman pengguna atau akurasi bisnis.
Contoh perbandingan
|
Konfigurasi contoh |
Kemiripan |
Contoh kueri |
Deskripsi |
|
1,0 |
"Kapan paket saya sampai?" |
Kueri ini menjadi acuan untuk perbandingan. |
|
0,89 |
"Berapa perkiraan waktu pengiriman paket saya?" |
Cocok dengan "Kapan paket saya sampai?". Terjadi cache hit. |
|
|
0,86 |
"Apakah paket saya bisa dikirim hari ini?" |
Cocok dengan "Kapan paket saya sampai?". Terjadi cache hit. |
|
|
0,83 |
"Di mana paket saya bisa dikirim hari ini?" |
Tidak cocok. Terjadi cache miss. |
Saran penyetelan
-
Pengujian benchmark: Mulai dengan nilai default 0,8 dan sesuaikan ambang batas secara bertahap untuk mengamati perubahan rasio hit cache.
-
Adaptasi skenario:
-
Untuk kueri yang sensitif terhadap waktu, seperti pelacakan logistik waktu nyata, direkomendasikan menggunakan ambang batas kemiripan yang lebih tinggi untuk memastikan akurasi.
-
Untuk skenario yang memerlukan jawaban standar, seperti respons FAQ, ambang batas kemiripan yang sedikit lebih rendah dapat digunakan untuk menangkap lebih banyak variasi pertanyaan.
-
-
Keseimbangan performa: Menaikkan ambang batas meningkatkan akurasi pencocokan tetapi mengurangi rasio hit cache, sehingga meningkatkan jumlah panggilan LLM.
FAQ
T: Bagaimana cara menentukan ambang batas optimal?
A: Gunakan Pengujian A/B untuk membandingkan:
-
Rasio hit cache versus biaya panggilan LLM.
-
Tingkat keluhan pengguna tentang jawaban cache yang tidak relevan (misalnya, "Mengapa pertanyaan baru saya mengembalikan jawaban lama?").
-
Fluktuasi waktu respons untuk kueri penting (misalnya, kueri waktu nyata versus kueri historis).
Evaluasi ulang pengaturan ambang batas secara berkala (misalnya, bulanan) berdasarkan data bisnis terbaru. Selama jam sibuk, pertimbangkan untuk menurunkan ambang batas guna menangani lonjakan volume kueri.
Rasio hit cache
Anda harus mengaktifkan Simple Log Service sebelum dapat mengkueri rasio hit cache. Anda hanya dapat mengkueri data yang dihasilkan setelah Simple Log Service diaktifkan.
Anda dapat mengkueri rasio hit cache di tingkat gateway menggunakan pernyataan pencarian berikut:
cluster_id:{your-gatewayId} and inner-ai-cache-{your-gatewayId} | SELECT
SUM(CASE WHEN content LIKE '%cache hit for key%' OR content LIKE '%key accepted%' THEN 1 ELSE 0 END) AS hit_count,
SUM(CASE WHEN content LIKE '%cache miss for key%' OR content LIKE '%score not meet the threshold%' THEN 1 ELSE 0 END) AS miss_count,
SUM(CASE WHEN content LIKE '%cache hit for key%' OR content LIKE '%key accepted%' THEN 1 ELSE 0 END) * 100.0 /
NULLIF(SUM(CASE WHEN content LIKE '%cache hit for key%' OR content LIKE '%key accepted%' OR content LIKE '%cache miss for key%'
OR content LIKE '%score not meet the threshold%' THEN 1 ELSE 0 END), 0) AS hit_rate
-
Ganti
{your-gatewayId}dengan ID instans gateway Anda. Perhatikan bahwa Anda harus mempertahankan awalangw-untuk penggantian pertama, tetapi tidak untuk yang kedua. Jika Anda mengakses sistem kueri log plug-in dari tombol sakelar cache, kotak kueri secara otomatis berisi filtercluster_id. Dalam hal ini, Anda hanya perlu menempelkan sisa pernyataan kueri setelah filter tersebut. Di halaman Monitoring (AI Cache), klik View Logs untuk membuka halaman kueri log. Sumber log adalahapig-plugin-log. Masukkan pernyataan kueri di atas ke dalam bilah kueri dan jalankan. -
Kueri mengembalikan rasio hit cache.
Misalnya, hasilnya mungkin menunjukkan bahwa
hit_count(cache hit) adalah 7,miss_count(cache miss) adalah 6, danhit_rate(rasio hit) sekitar 53,85%.
Contoh
-
Saat precise cache diaktifkan, hanya kueri identik yang dicocokkan. Misalnya, jika pengguna mengirim kueri "Siapa kamu?" dan tidak dilayani dari cache, model mengonsumsi token seperti biasa (input tokens: 127, output tokens: 40). Jika kueri yang sama mengenai precise cache (ditandai dengan from-cache), baik input maupun output token bernilai 0, dan hasil cache dikembalikan langsung. Hal ini secara signifikan mengurangi konsumsi token.
-
Saat semantic cache diaktifkan, kueri yang memiliki kemiripan semantik juga dapat dicocokkan. Kueri dengan kemiripan semantik di bawah ambang batas tidak akan dicocokkan.
Saat terjadi cache hit semantik, respons cache digunakan kembali untuk pertanyaan serupa. Baik input maupun output token bernilai 0, sehingga tidak mengonsumsi sumber daya inferensi model.
Misalnya, jika pengguna bertanya
Di mana paket saya bisa dikirim hari ini?, dan kueri ini berbeda secara signifikan dalam semantik dari pertanyaan yang di-cache, terjadi cache miss. Modelqwen-maxkemudian menghasilkan respons dan mengonsumsi token seperti biasa.