Pengambilan Berbilang Vektor (ColBERT)
Indekskan berbilang vektor bagi setiap dokumen (satu bagi setiap token atau bahagian) untuk padanan terperinci.
Pengambilan Berbilang Vektor (ColBERT) ialah pelajaran Ejen AI percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ejen AI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Sebahagian daripada pelajaran ini belum diterjemahkan dan dipaparkan dalam bahasa Inggeris.
Satu Vektor Tidak Mencukupi
RAG standard membenamkan setiap pecahan ke dalam satu vektor. Vektor itu meratakan semua kandungan dalam pecahan — lalu kehilangan isyarat terperinci.
Pengambilan berbilang vektor menyimpan MULTIPLE vektor bagi setiap dokumen dan memadankannya dengan lebih tepat.
Idea ColBERT
ColBERT (Khattab & Zaharia, 2020) membenamkan setiap TOKEN dokumen dan setiap token query, kemudian mengira keserupaan maksimum:
score(q, d) = sum over q_token in q: max over d_token in d: cos(q_token, d_token)Mengapa ColBERT Mengatasi Vektor Tunggal
- Menangkap pelbagai aspek dokumen (satu vektor tidak mampu berbuat demikian)
- Mengendalikan dokumen panjang dengan lebih baik
- Dapatan semula yang lebih tinggi untuk istilah jarang
Kos ColBERT
Menyimpan satu vektor bagi setiap token dan bukannya setiap pecahan:
- Jika satu pecahan mempunyai 500 token, storan yang diperlukan ialah 500 kali lebih banyak
- Setiap search membandingkan lebih banyak pasangan
Pengkuantuman dan pemangkasan mengurangkan jumlah ini sebanyak 10-50 kali, tetapi kosnya masih tinggi.
ColBERTv2
ColBERTv2 menambah pemampatan baki — token dikelompokkan kepada sentroid dan setiap token disimpan sebagai (centroid_id, baki kecil). Storan berkurang sebanyak 50 kali.
Menjalankan ColBERT
Pustaka RAGatouille memudahkan proses ini:
# pip install ragatouille
from ragatouille import RAGPretrainedModel
rag = RAGPretrainedModel.from_pretrained('colbert-ir/colbertv2.0')
rag.index(collection=documents, index_name='my_corpus')
results = rag.search(query='What is the refund policy?', k=5)Berbilang Vektor dalam Amalan
Selain ColBERT, terdapat pendekatan berbilang vektor yang lain:
- Induk-anak — benamkan pecahan kecil dan dapatkan induk yang besar
- Ringkasan + pecahan — benamkan kedua-dua ringkasan dokumen dan pecahan individu
- Soalan hipotesis — benamkan pasangan Soal Jawab yang disintesis daripada setiap dokumen
Hypothetical Questions Pattern
def index_with_hypos(doc):
# Generate 5 plausible questions this doc could answer
questions = llm.invoke(f'Write 5 questions answered by this doc:\n{doc}').content.split('\n')
for q in questions:
vector_db.add(embed(q), payload={'doc': doc, 'question': q})
# Now queries that match a stored hypothetical question retrieve the doc.Parent-Child with LangChain
from langchain.retrievers import ParentDocumentRetriever
from langchain.storage import InMemoryStore
store = InMemoryStore()
retriever = ParentDocumentRetriever(
vectorstore=child_vectorstore,
docstore=store,
child_splitter=child_splitter, # small
parent_splitter=parent_splitter # large
)
retriever.add_documents(documents)
# Indexes small chunks, returns large parents.Bila Menggunakan ColBERT
- Carian berisiko tinggi (perundangan, perubatan)
- Dokumen panjang
- Apabila anda mampu menanggung kos storan
Bila Perlu Mengabaikannya
- Korpus kecil
- Laluan yang sensitif terhadap kependaman
- Projek yang mempunyai kekangan kos
Hibrid dengan BM25
Untuk dapatan semula maksimum, gabungkan pengambilan berbilang vektor dengan carian kata kunci BM25 klasik. Gunakan Penggabungan Kedudukan Timbal Balik untuk menggabungkannya.
Pertukaran ColBERT
Apakah pertukaran utama apabila menggunakan pengambilan berbilang vektor gaya ColBERT?
Imbas Kembali
Satu vektor bagi setiap pecahan menyebabkan maklumat hilang. ColBERT menyimpan vektor bagi setiap token untuk ketepatan yang lebih tinggi. RAGatouille memudahkan proses ini. Gunakannya apabila dapatan semula penting dan kos mengizinkan.
Pelajari Ejen AI 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
- 60
- Pelajaran
- 239
Soalan Lazim
Adakah pelajaran “Pengambilan Berbilang Vektor (ColBERT)” percuma?
Ya — teks penuh “Pengambilan Berbilang Vektor (ColBERT)” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Ejen AI, tingkat taraf kepada CoddyKit PRO. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pengambilan Berbilang Vektor (ColBERT)”?
Indekskan berbilang vektor bagi setiap dokumen (satu bagi setiap token atau bahagian) untuk padanan terperinci. Anda berlatih Ejen AI 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 Ejen AI?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Ejen AI 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 “Pengambilan Berbilang Vektor (ColBERT)” 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 Ejen AI ini?
Ya. Setiap pelajaran Ejen AI 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
- Pemeringkatan Semula dengan Pengekod Silang
- HyDE: Embedding Dokumen Hipotesis
- Pengambilan Berbilang Vektor (ColBERT)
- Penilaian RAG (RAGAS, Recall@K)