Penulisan Semula Pertanyaan dan Penyusunan Semula
Terokai teknik untuk mengoptimumkan pertanyaan pengguna dan menyusun semula dokumen yang didapatkan bagi meningkatkan kerelevanan kepada LLM.
Penulisan Semula Pertanyaan dan Penyusunan Semula ialah pelajaran Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) 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 Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching), dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) merangkumi sejumlah 4 pelajaran.
Mengoptimumkan Pertanyaan untuk RAG
Selamat datang ke teknik RAG lanjutan! Dalam pelajaran ini, kami akan meneroka dua kaedah berkuasa untuk menjadikan sistem RAG (Penjanaan Diperkukuh dengan Dapatan Semula) anda lebih pintar: Penulisan Semula Pertanyaan dan Penyusunan Semula Kedudukan.
Teknik ini membantu memastikan LLM anda mendapat maklumat yang paling relevan, lalu menghasilkan respons yang lebih baik dan tepat.
Mengapa Pertanyaan Mentah Tidak Memadai
Apabila pengguna mengemukakan soalan, pertanyaan awal mereka mungkin tidak sesuai sepenuhnya untuk mencari dalam pangkalan pengetahuan anda. Pertanyaan itu mungkin:
- Terlalu pendek atau kabur: Tidak mempunyai kata kunci khusus.
- Taksa: Mempunyai beberapa makna yang mungkin.
- Tiada sinonim: Tidak menggunakan istilah tepat yang terdapat dalam dokumen anda.
Hal ini boleh menyebabkan sistem mendapatkan semula dokumen yang kurang relevan.
Memahami Penulisan Semula Pertanyaan
Penulisan semula pertanyaan ialah proses mengubah suai pertanyaan asal pengguna sebelum pertanyaan itu dihantar kepada sistem mendapatkan semula dokumen anda.
Matlamatnya adalah untuk mengubah pertanyaan kepada istilah carian yang lebih berkesan dan lebih berkemungkinan sepadan dengan dokumen yang relevan dalam pangkalan data vektor anda.
Teknik Menulis Semula Pertanyaan
Penulisan semula pertanyaan boleh melibatkan beberapa strategi:
- Pengembangan Pertanyaan: Menambah sinonim atau istilah berkaitan untuk meluaskan carian.
- Pengungkapan Semula Pertanyaan: Mengubah struktur atau perkataan pertanyaan untuk meningkatkan kejelasan.
- Pemisahan Pertanyaan: Memecahkan pertanyaan kompleks yang terdiri daripada beberapa bahagian kepada subpertanyaan yang lebih ringkas dan berasingan.
Selalunya, LLM lain digunakan untuk menjalankan tugas penulisan semula ini.
Kod: Penulisan Semula Pertanyaan Ringkas
Berikut ialah contoh konsep Python tentang cara pengembangan pertanyaan ringkas mungkin berfungsi. Dalam sistem sebenar, LLM akan melakukan tugas yang berat.
class QueryRewriter:
def rewrite(self, query):
# Simulate an LLM or a rule-based system
if "LLM performance" in query:
return query + " large language model efficiency optimization"
if "vector db" in query:
return query + " vector database semantic search"
return query
rewriter = QueryRewriter()
user_query_1 = "improve LLM performance"
rewritten_1 = rewriter.rewrite(user_query_1)
print(f"Original 1: {user_query_1}")
print(f"Rewritten 1: {rewritten_1}\n")
user_query_2 = "how to use vector db"
rewritten_2 = rewriter.rewrite(user_query_2)
print(f"Original 2: {user_query_2}")
print(f"Rewritten 2: {rewritten_2}")Mengapa Kita Memerlukan Reranking
Walaupun selepas carian awal yang baik (mungkin dengan pertanyaan yang telah ditulis semula!), dokumen 'N' teratas yang dikembalikan oleh alat pengambil anda mungkin tidak disusun mengikut kerelevanan dengan sempurna.
Tugas alat pengambil selalunya adalah untuk mencari padanan berpotensi. Reranking mengambil alih untuk memperkemas susunan ini, bagi memastikan dokumen yang benar-benar terbaik berada di kedudukan paling atas.
Proses Reranking
Reranking berfungsi seperti berikut:
- Alat pengambil awal anda mendapatkan set dokumen calon yang lebih besar (contohnya, 50 teratas).
- Kemudian, model reranker khusus mengambil setiap dokumen calon ini bersama-sama pertanyaan asal pengguna, lalu memberikan skor kerelevanan yang lebih tepat.
- Dokumen tersebut kemudiannya disusun semula berdasarkan skor baharu yang lebih tepat ini.
Hal ini memastikan dokumen yang paling relevan dihantar kepada LLM.
Model Reranking Khusus
Tidak seperti alat pengambil yang sering menggunakan embedding untuk persamaan anggaran, reranker biasanya menggunakan model yang lebih canggih, yang sering dipanggil pengekod silang.
- Pengekod silang mengambil kedua-dua pertanyaan AND dokumen sebagai input.
- Pengekod ini mempertimbangkan interaksi antara istilah dalam pertanyaan dan dokumen secara langsung.
- Hal ini membolehkan pemahaman kerelevanan yang jauh lebih terperinci, walaupun memerlukan pengiraan yang lebih intensif. Oleh itu, kaedah ini hanya digunakan pada subset dokumen yang lebih kecil.
Kod: Mensimulasikan Reranking
Contoh ini menunjukkan cara reranker mungkin memberikan skor semula dan menyusun semula senarai dokumen yang pada asalnya diperoleh berdasarkan kerelevanannya dengan pertanyaan.
class Reranker:
def rerank(self, query, documents):
# Simulate a cross-encoder model scoring documents
scores = {}
for doc in documents:
if "vector database" in doc.lower() and "fast" in query.lower():
scores[doc] = 0.95 # Highly relevant
elif "llm" in doc.lower() and "improve" in query.lower():
scores[doc] = 0.85
elif "database" in doc.lower():
scores[doc] = 0.7
else:
scores[doc] = 0.3 # Less relevant
# Sort documents by score in descending order
sorted_docs = sorted(documents, key=lambda d: scores.get(d, 0), reverse=True)
return sorted_docs
reranker = Reranker()
user_query = "How to build a fast vector database?"
initial_docs = [
"Introduction to LLMs",
"Building a scalable vector database",
"Optimizing LLM inference",
"Fast data ingestion for databases"
]
reranked_docs = reranker.rerank(user_query, initial_docs)
print(f"Original documents: {initial_docs}\n")
print("Reranked documents (most relevant first):")
for doc in reranked_docs:
print(f"- {doc}")Kekuatan Gabungan
Kekuatan sebenar datang daripada menggabungkan kedua-dua teknik:
- Pertama, Penulisan Semula Pertanyaan menghasilkan pertanyaan carian yang lebih baik.
- Kemudian, alat pengambil anda menggunakan pertanyaan yang dipertingkatkan ini untuk mendapatkan set dokumen yang lebih luas dan lebih relevan.
- Akhir sekali, Reranking memperhalus susunan dokumen ini bagi memastikan LLM menerima konteks terbaik untuk menjana respons.
Pendekatan berbilang peringkat ini meningkatkan kualiti dan ketepatan sistem RAG anda dengan ketara.
Semak Pemahaman Anda
Inilah masanya untuk menguji perkara yang telah anda pelajari tentang pengoptimuman RAG melalui penulisan semula pertanyaan dan reranking.
Imbas Kembali & Langkah Seterusnya
Syabas! Dalam pelajaran ini, anda telah mempelajari tentang Penulisan Semula Pertanyaan dan Reranking.
- Penulisan Semula Pertanyaan mengubah input pengguna untuk menghasilkan pertanyaan carian yang lebih berkesan.
- Reranking menyusun semula dokumen yang diperoleh pada awalnya menggunakan model yang lebih tepat untuk menonjolkan dokumen paling relevan.
Secara bersama, teknik ini meningkatkan kualiti dan ketepatan aplikasi RAG anda dengan ketara. Seterusnya, kita akan meneroka seni bina RAG yang lebih canggih!
Pelajari Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) 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 “Penulisan Semula Pertanyaan dan Penyusunan Semula” percuma?
Ya — teks penuh “Penulisan Semula Pertanyaan dan Penyusunan Semula” 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 Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching), tingkat taraf kepada CoddyKit PRO. Kursus Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Penulisan Semula Pertanyaan dan Penyusunan Semula”?
Terokai teknik untuk mengoptimumkan pertanyaan pengguna dan menyusun semula dokumen yang didapatkan bagi meningkatkan kerelevanan kepada LLM. Anda berlatih Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) 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 Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching)?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) 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 “Penulisan Semula Pertanyaan dan Penyusunan Semula” 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 Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) ini?
Ya. Setiap pelajaran Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) 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
- Penulisan Semula Pertanyaan dan Penyusunan Semula
- Corak RAG Berbilang Peringkat dan Berasaskan Ejen
- Mengendalikan Struktur Dokumen Kompleks
- Pertanyaan Kendiri dan Petikan Sumber