LangChain / RAG / Pangkalan Data Vektor · Pelajaran

Strategi Pengambilan Berbilang Pertanyaan

Tingkatkan dapatan semula pengambilan dengan menjana pelbagai perspektif bagi pertanyaan pengguna dan menggabungkan hasil daripada carian yang pelbagai.

Pelajaran 1 daripada 411 langkah

Strategi Pengambilan Berbilang Pertanyaan ialah pelajaran LangChain / RAG / Pangkalan Data Vektor percuma di CoddyKit. Ini ialah pelajaran 1 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 LangChain / RAG / Pangkalan Data Vektor, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus LangChain / RAG / Pangkalan Data Vektor merangkumi sejumlah 4 pelajaran.

Memperkasa RAG dengan Pertanyaan Berbilang

Kadang-kadang, satu pertanyaan carian sahaja tidak mencukupi untuk menemui semua maklumat yang berkaitan. Pendapatan semula berbilang pertanyaan ialah teknik yang membantu sistem RAG anda membuat carian yang lebih luas.

Teknik ini menjana beberapa versi berbeza bagi soalan asal anda. Hal ini membantu memastikan anda tidak terlepas konteks penting, lalu menghasilkan jawapan yang lebih menyeluruh.

Mengapa Satu Pertanyaan Tidak Mencukupi

Bayangkan anda bertanya “Apakah manfaat RAG?”. Satu carian mungkin hanya menemui dokumen yang sepadan secara langsung dengan perkataan tepat tersebut. Keadaan ini boleh mengehadkan konteks yang tersedia untuk LLM anda.

  • Carian itu mungkin terlepas dokumen yang menggunakan istilah seperti “kelebihan RAG” atau “mengapa menggunakan RAG”.
  • Carian itu juga mungkin terlepas konsep berkaitan yang memberikan latar belakang penting.

Batasan ini boleh menyebabkan jawapan daripada LLM tidak lengkap atau kurang tepat.

Meluaskan Cakrawala Carian Anda

Sebelum adanya alat lanjutan, orang ramai akan mencetuskan idea pertanyaan berkaitan secara manual untuk memastikan carian yang lebih luas. Contohnya:

  • Asal: “Bagaimanakah RAG meningkatkan ketepatan LLM?”
  • Diperluas: “Apakah manfaat RAG untuk LLM?”, “Kesan RAG terhadap ketepatan fakta”, “Bagaimanakah RAG mengurangkan halusinasi”.

Walaupun berkesan, proses manual ini membosankan dan sukar diskalakan untuk sistem yang kompleks. Kita memerlukan penyelesaian automatik!

LLM sebagai Penjana Pertanyaan

Model Bahasa Besar (LLM) sangat baik dalam memahami konteks dan menjana variasi teks. Kita boleh memanfaatkan LLM untuk mencipta beberapa soalan alternatif secara automatik daripada pertanyaan pengguna yang asal.

  • Kaedah ini menggunakan keupayaan pemahaman bahasa semula jadi LLM.
  • Kaedah ini mengautomatikkan proses pengembangan pertanyaan dengan cekap.

Pertanyaan yang pelbagai ini kemudiannya memberikan pelbagai “sudut” untuk mencari dalam pangkalan pengetahuan anda.

MultiQueryRetriever LangChain

LangChain menyediakan komponen berkuasa yang dipanggil MultiQueryRetriever. Alat ini mengautomatikkan keseluruhan proses pertanyaan berbilang untuk anda, lalu memudahkan penyepaduannya ke dalam saluran paip RAG anda.

  • Alat ini menggunakan LLM untuk menjana pertanyaan yang pelbagai daripada input asal anda.
  • Alat ini kemudiannya menjalankan berbilang pertanyaan tersebut terhadap gedung vektor anda.
  • Akhir sekali, alat ini menggabungkan hasilnya menjadi satu set dokumen yang menyeluruh untuk LLM.

MultiQueryRetriever dalam Tindakan

Mari lihat cara menyediakan MultiQueryRetriever dalam Python. Anda memerlukan LLM dan retriever sedia ada (contohnya, daripada stor vektor).

Contoh ini meniru stor vektor untuk tujuan demonstrasi. Dalam aplikasi sebenar, stor vektor anda biasanya telah diisi terlebih dahulu dengan dokumen anda.

from langchain_community.chat_models import ChatOpenAI
from langchain.retrievers.multi_query import MultiQueryRetriever
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import OpenAIEmbeddings
from langchain_core.documents import Document

# This is a mock setup for demonstration
# In a real app, your vector store would be populated
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(
    [
        Document(page_content="RAG improves LLM factual accuracy."),
        Document(page_content="Retrieval Augmented Generation reduces hallucinations."),
        Document(page_content="The advantages of RAG include up-to-date information."),
        Document(page_content="RAG systems combine retrieval with generation."),
    ], embeddings
)
retriever = vectorstore.as_retriever()

# Initialize a chat model (replace with your actual LLM)
# For local testing, consider using a local LLM or mock
llm = ChatOpenAI(temperature=0) # Placeholder

# Create the MultiQueryRetriever
multi_query_retriever = MultiQueryRetriever.from_llm(
    retriever=retriever, llm=llm
)

print("MultiQueryRetriever initialized successfully!")
# Example usage would follow: multi_query_retriever.get_relevant_documents(query)

Aliran Kerja Multi-Query

Berikut ialah huraian ringkas tentang perkara yang dilakukan oleh MultiQueryRetriever di sebalik tabir:

  1. Permintaan Awal: Anda memberikan satu permintaan, contohnya, "Apakah kelebihan RAG?"
  2. Penjanaan Permintaan: LLM mengambil permintaan anda dan menjana 2–4 permintaan alternatif (contohnya, "Manfaat RAG", "Mengapa menggunakan RAG?", "Bagaimanakah RAG meningkatkan LLM?").
  3. Pengambilan Selari: Setiap permintaan yang dijana dihantar kepada retriever asas anda (contohnya, stor vektor) secara serentak.
  4. Penggabungan Hasil: Semua dokumen yang diambil daripada carian berbilang ini dikumpulkan dan biasanya pendua dibuang.
  5. Konteks Akhir: Set dokumen yang digabungkan ini kemudiannya dihantar kepada LLM utama anda untuk menjana jawapan akhir.

Menggabungkan Dokumen yang Diambil

Selepas beberapa permintaan mengambil dokumen, bagaimanakah kita boleh menggabungkannya dengan sebaik-baiknya untuk membentuk konteks akhir?

  • Dokumen Unik: Pendekatan paling mudah ialah mengumpulkan semua dokumen dan membuang pendua. Ini memastikan kepelbagaian tanpa pengulangan.
  • Penyusunan Semula Kedudukan: Untuk kawalan yang lebih canggih, anda boleh menggunakan model penyusunan semula kedudukan pada set yang digabungkan. Model ini memberikan skor kepada dokumen berdasarkan kaitannya dengan permintaan asal, lalu memastikan dokumen yang paling penting diberi keutamaan (topik untuk pelajaran akan datang!).

Mengapa Menggunakan Pengambilan Multi-Query?

Pelaksanaan strategi berbilang permintaan menawarkan manfaat yang ketara untuk sistem RAG anda:

  • Ingatan Semula yang Lebih Baik: Anda lebih berkemungkinan menemukan semua maklumat yang berkaitan, walaupun maklumat itu menggunakan ungkapan yang berbeza.
  • Konteks yang Lebih Kaya: LLM menerima set dokumen yang lebih luas dan pelbagai, lalu menghasilkan jawapan yang lebih menyeluruh dan tepat.
  • Pengurangan Halusinasi: Dengan konteks yang lebih baik, LLM kurang berkemungkinan "mereka-reka" sesuatu kerana kekurangan maklumat.
  • Menangani Kekaburan: Membantu apabila permintaan awal pengguna agak kabur atau boleh ditafsirkan dalam beberapa cara.

Semakan Multi-Query

Pengambilan berbilang permintaan bertujuan meningkatkan pengambilan dengan menjana beberapa perspektif bagi permintaan pengguna. Pernyataan yang manakah paling tepat menerangkan masalah utama yang diselesaikannya?

Imbas Kembali Multi-Query

Dalam pelajaran ini, kita meneroka Pengambilan Multi-Query. Kita mempelajari bahawa satu permintaan sering kali boleh terlepas konteks yang bernilai, serta cara Model Bahasa Besar (LLM) menjana beberapa permintaan yang pelbagai untuk mengatasinya.

MultiQueryRetriever LangChain mengautomatikkan keseluruhan proses ini, lalu meningkatkan ingatan semula dan kekayaan konteks yang diberikan kepada sistem RAG anda dengan ketara. Kesannya, jawapan yang dihasilkan menjadi lebih menyeluruh dan tepat.

Percuma untuk bermula

Pelajari LangChain / RAG / Pangkalan Data Vektor 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 “Strategi Pengambilan Berbilang Pertanyaan” percuma?

Ya — teks penuh “Strategi Pengambilan Berbilang Pertanyaan” 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 LangChain / RAG / Pangkalan Data Vektor, tingkat taraf kepada CoddyKit PRO. Kursus LangChain / RAG / Pangkalan Data Vektor merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Strategi Pengambilan Berbilang Pertanyaan”?

Tingkatkan dapatan semula pengambilan dengan menjana pelbagai perspektif bagi pertanyaan pengguna dan menggabungkan hasil daripada carian yang pelbagai. Anda berlatih LangChain / RAG / Pangkalan Data Vektor 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 LangChain / RAG / Pangkalan Data Vektor?

Tiada pengalaman terdahulu diperlukan. Pembelajaran LangChain / RAG / Pangkalan Data Vektor 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 1 daripada 4.

Berapa lamakah pelajaran “Strategi Pengambilan Berbilang Pertanyaan” 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 LangChain / RAG / Pangkalan Data Vektor ini?

Ya. Setiap pelajaran LangChain / RAG / Pangkalan Data Vektor 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

  1. Strategi Pengambilan Berbilang Pertanyaan
  2. Pemampatan Kontekstual dengan LLM
  3. Carian Hibrid dan Pemeringkatan Semula
  4. Dapatan Dokumen Induk dan Tetingkap Ayat
← Kembali ke LangChain / RAG / Pangkalan Data Vektor