02. Cache Penyematan (CacheBackedEmbeddings)
CacheBackedEmbeddings
Sematan(embeddings) dapat disimpan atau di-cache sementara untuk menghindari penghitungan ulang.
Penyematan dalam cache dapat dilakukan dengan menggunakan CacheBackedEmbeddings
. Penyemat yang didukung cache adalah pembungkus di sekitar penyemat yang menyimpan penyematan di dalam penyimpanan pasangan kunci-nilai (key-value). Teks akan di-hash dan hash ini digunakan sebagai kunci dalam cache.
Metode utama yang didukung untuk menginisialisasi CacheBackedEmbeddings
adalah from_bytes_store
, yang mengambil parameter berikut
underlying_embeddings
: Penyemat yang digunakan untuk penyematan.document_embedding_cache
: Salah satu ByteStores untuk menyimpan penyematan dokumen.namespace
: (opsional, standarnya""
) namespace yang digunakan untuk menyimpan dokumen dalam cache. namespace ini digunakan untuk menghindari konflik dengan cache lain. Misalnya, setel ke nama model penyematan yang digunakan.
Perhatian: Penting untuk mengatur parameter namespace
untuk menghindari konflik saat teks yang sama disematkan menggunakan model penyematan yang berbeda.
Menggunakan penyematan di LocalFileStore (penyimpanan persisten)
Pertama, mari kita lihat contoh menyimpan penyematan menggunakan sistem file lokal dan mengambilnya menggunakan penyimpanan vektor FAISS.
Muat dokumen, pisahkan menjadi beberapa bagian, lalu sematkan setiap bagian dan muat ke dalam penyimpanan vektor.
Apabila Anda mencoba membuat ulang penyimpanan vektor, ini jauh lebih cepat, karena Anda tidak perlu menghitung ulang penyematan.
Menggunakan InmemoryByteStore
(tidak permanen)
InmemoryByteStore
(tidak permanen)Jika Anda ingin menggunakan ByteStore
yang berbeda, Anda bisa menggunakan ByteStore
tersebut saat membuat CacheBackedEmbeddings
.
Di bawah ini, kami menunjukkan contoh penggunaan InMemoryByteStore
yang tidak permanen untuk menghasilkan objek penyematan yang di-cache yang sama.
Last updated