Mendapatkan Maklumat Kontekstual
Laksanakan strategi untuk mendapatkan konteks yang paling berkaitan daripada stor vektor anda bagi melengkapkan gesaan LLM.
Mendapatkan Maklumat Kontekstual ialah pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pangkalan Data Vektor: Pinecone, Weaviate & pgvector merangkumi sejumlah 4 pelajaran.
Apakah Pengambilan Konteks?
Dalam sistem Penjanaan Diperkukuh Pengambilan (RAG), Model Bahasa Besar (LLM) memerlukan maklumat yang berkaitan untuk menjana respons yang tepat.
- Pengambilan Maklumat Kontekstual ialah proses mencari dan mendapatkan data yang berkaitan ini daripada pangkalan data vektor anda.
- Proses ini menjadi penghubung antara pertanyaan pengguna dengan pengetahuan yang disimpan dalam data khusus anda.
Aliran Kerja Pengambilan
Apabila pengguna mengemukakan soalan, beberapa langkah berlaku untuk mendapatkan konteks yang tepat:
- Soalan pengguna (query) ditukar kepada benaman vektor.
- Benaman query ini dihantar ke pangkalan data vektor.
- Pangkalan data vektor mencari benaman dokumen tersimpan yang paling serupa dengan benaman query.
- Bahagian teks yang berkaitan dengan benaman serupa ini diambil dan dihantar kepada LLM.
Asas Keserupaan Vektor
Teras pengambilan ialah keserupaan vektor. Pangkalan data vektor anda mengira sejauh mana vektor query anda "dekat" dengan semua vektor dokumen yang tersimpan.
- Vektor yang lebih dekat bermaksud keserupaan semantik yang lebih tinggi.
- Metrik keserupaan yang biasa termasuk keserupaan kosinus atau jarak Euclid.
- Pangkalan data mencari vektor yang paling dekat dengan cekap, biasanya menggunakan teknik pengindeksan khusus.
Pengambilan Top-K Mudah
Strategi pengambilan yang paling mudah ialah Pengambilan Top-K.
- Anda hanya perlu meminta pangkalan data vektor memulangkan
Kbahagian dokumen yang paling serupa dengan query anda. Kialah nombor yang anda pilih (contohnya, 3, 5 atau 10), yang mewakili bilangan bahagian konteks yang ingin anda berikan kepada LLM.- Walaupun mudah, pemilihan
Kyang tepat amat penting untuk mengimbangi kerelevanan dengan had token LLM.
Demo Pengambilan Top-K Python
Kod Python mudah ini mensimulasikan stor vektor dan menunjukkan cara pengambilan top_k berfungsi. Cuba ubah nilai top_k!
import math
class SimpleVectorStore:
def __init__(self):
self.vectors = {}
def add_document(self, doc_id, vector, text):
self.vectors[doc_id] = {"vector": vector, "text": text}
def _cosine_similarity(self, vec1, vec2):
dot_product = sum(v1 * v2 for v1, v2 in zip(vec1, vec2))
magnitude1 = math.sqrt(sum(v**2 for v in vec1))
magnitude2 = math.sqrt(sum(v**2 for v in vec2))
if magnitude1 == 0 or magnitude2 == 0:
return 0.0
return dot_product / (magnitude1 * magnitude2)
def query(self, query_vector, top_k=3):
similarities = []
for doc_id, data in self.vectors.items():
sim = self._cosine_similarity(query_vector, data["vector"])
similarities.append((sim, doc_id, data["text"]))
similarities.sort(key=lambda x: x[0], reverse=True)
return [{"id": s[1], "text": s[2], "similarity": s[0]} for s in similarities[:top_k]]
if __name__ == "__main__":
store = SimpleVectorStore()
store.add_document("doc1", [0.1, 0.2, 0.3], "The quick brown fox jumps over the lazy dog.")
store.add_document("doc2", [0.15, 0.25, 0.35], "A fast fox leaps over a sleepy canine.")
store.add_document("doc3", [0.8, 0.7, 0.9], "Artificial intelligence is transforming industries.")
store.add_document("doc4", [0.75, 0.85, 0.95], "Machine learning algorithms are key to AI.")
query_vec = [0.12, 0.22, 0.32] # Simulating an embedding for "fast animal"
print("--- Top 2 Relevant Chunks ---")
results = store.query(query_vec, top_k=2)
for res in results:
print(f"ID: {res['id']}, Sim: {res['similarity']:.2f}, Text: {res['text']}")
print("\n--- Top 1 Relevant Chunk ---")
results_single = store.query(query_vec, top_k=1)
for res in results_single:
print(f"ID: {res['id']}, Sim: {res['similarity']:.2f}, Text: {res['text']}")Pembahagian untuk Pengambilan Berkesan
Kualiti pengambilan anda banyak bergantung pada cara dokumen asal anda dipecahkan kepada bahagian sebelum dibenamkan.
- Saiz Bahagian: Jika terlalu kecil, konteks mungkin hilang. Jika terlalu besar, maklumat yang tidak berkaitan mungkin turut disertakan.
- Pertindihan: Menambahkan pertindihan antara bahagian membantu memastikan maklumat penting tidak terpecah merentasi sempadan.
- Pembahagian yang baik memastikan setiap bahagian konteks yang diambil bermakna dan lengkap dengan sendirinya.
Mempertingkat Pengambilan dengan Penyusunan Semula
Kadangkala, pengambilan Top-K yang mudah tidak mencukupi. Vektor yang paling "serupa" tidak semestinya paling "relevan" dalam konteks.
- Penyusunan semula ialah langkah pilihan tetapi berkuasa yang dilakukan selepas pengambilan awal.
- Langkah ini mengambil K bahagian teratas daripada pangkalan data vektor dan menggunakan model yang lebih kecil serta khusus untuk menilai kerelevanannya dengan lebih mendalam.
- Pemarkahan kedua ini membantu menapis bahagian yang kurang berguna dan mengutamakan maklumat yang benar-benar berkaitan.
Keperluan Penyusunan Semula
Mengapakah kita memerlukan penyusunan semula?
- Keserupaan vektor kadangkala boleh terpedaya oleh kedekatan semantik yang bersifat permukaan.
- Penyusun semula, yang selalunya merupakan model pengubah kecil, dapat memahami hubungan bernuansa antara query dengan bahagian dokumen yang diambil dengan lebih baik.
- Langkah ini membantu memastikan konteks yang diberikan kepada LLM bukan sahaja serupa, tetapi juga sangat relevan dan berguna untuk menjawab soalan khusus pengguna.
Konsep Pengambilan Lanjutan
Selain Top-K asas dan penyusunan semula, strategi lanjutan boleh meningkatkan lagi pengambilan:
- Pengembangan Query: Menulis semula atau menambahkan istilah pada query asal pengguna untuk memperbaik hasil carian.
- Carian Hibrid: Menggabungkan carian kata kunci tradisional (seperti carian teks penuh) dengan keserupaan vektor untuk pengambilan yang lebih menyeluruh.
- Kaedah ini bertujuan menjadikan pengambilan awal lebih teguh sebelum konteks dihantar kepada LLM.
Uji Pengetahuan Anda
Pertimbangkan sistem RAG yang pada awalnya mengambil 10 bahagian dokumen menggunakan keserupaan vektor. Apakah manfaat utama menambahkan langkah penyusunan semula?
Ringkasan Pengambilan Kontekstual
Anda telah mempelajari cara mengambil konteks yang relevan untuk sistem RAG!
- Pengambilan kontekstual menghubungkan query pengguna dengan pengetahuan tersimpan.
- Proses ini melibatkan penukaran query kepada benaman, membuat query kepada pangkalan data vektor untuk mencari vektor serupa, dan mendapatkan teks yang berkaitan.
- Pengambilan Top-K ialah kaedah asas, tetapi pembahagian yang baik amat penting.
- Penyusunan semula boleh memperhalus hasil dengan menggunakan penapis kerelevanan kedua.
- Teknik lanjutan seperti pengembangan query dan carian hibrid menawarkan pengambilan yang lebih canggih.
Pelajari Pangkalan Data Vektor: Pinecone, Weaviate & pgvector dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Mendapatkan Maklumat Kontekstual” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector, termasuk “Mendapatkan Maklumat Kontekstual”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pangkalan Data Vektor: Pinecone, Weaviate & pgvector merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mendapatkan Maklumat Kontekstual”?
Laksanakan strategi untuk mendapatkan konteks yang paling berkaitan daripada stor vektor anda bagi melengkapkan gesaan LLM. Anda berlatih Pangkalan Data Vektor: Pinecone, Weaviate & pgvector menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pangkalan Data Vektor: Pinecone, Weaviate & pgvector?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Mendapatkan Maklumat Kontekstual” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector ini?
Ya. Setiap pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Gambaran Keseluruhan Seni Bina Sistem RAG
- Mengintegrasikan dengan Rangka Kerja LLM
- Mendapatkan Maklumat Kontekstual
- Strategi Pembahagian untuk RAG