0Pricing
AI Agents · บทเรียน

การจัดอันดับใหม่ด้วยตัวเข้ารหัสไขว้

ค้นคืน 50 อันดับแรกด้วย Embedding ราคาถูก แล้วจัดอันดับ 5 อันดับแรกใหม่ด้วยตัวเข้ารหัสไขว้ที่ช้ากว่าเพื่อความแม่นยำสูงขึ้น

การจัดอันดับใหม่ด้วยตัวเข้ารหัสไขว้ เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

เหตุใดจึงต้องจัดอันดับใหม่

ความคล้ายคลึงของเอ็มเบดดิงเป็นขั้นตอนแรกที่รวดเร็วและหยาบ โดยมักดึงส่วนที่มี KEYWORDS ร่วมกับคำค้นมา แต่ส่วนเหล่านั้นอาจไม่เกี่ยวข้องกับ QUESTION จริง ๆ

ตัวจัดอันดับใหม่จะรับคู่ (คำค้น, ส่วนข้อความ) และคำนวณคะแนนความเกี่ยวข้องที่แม่นยำกว่ามาก

ตัวเข้ารหัสแบบสองฝั่งเทียบกับตัวเข้ารหัสไขว้

สถาปัตยกรรมสองแบบสำหรับวัดความคล้ายคลึงของข้อความ:

  • ตัวเข้ารหัสแบบสองฝั่ง — สร้างเอ็มเบดดิงของคำค้นและส่วนข้อความแยกกัน แล้วคำนวณโคไซน์ ทำงานเร็ว (แปลงเป็นเวกเตอร์ครั้งเดียวแล้วใช้ซ้ำได้) แต่แม่นยำน้อยกว่า
  • ตัวเข้ารหัสไขว้ — ประมวลผล (คำค้น, ส่วนข้อความ) ร่วมกันผ่านโมเดล ทำงานช้า (ต้องประมวลผลทีละคู่) แต่แม่นยำกว่ามาก

การเรียกคืนข้อมูลสองขั้นตอน

รูปแบบที่ผสานทั้งสองวิธีเข้าด้วยกัน:

  1. ตัวเข้ารหัสแบบสองฝั่งเรียกคืนผู้สมัคร 50 อันดับแรกได้อย่างรวดเร็ว
  2. ตัวเข้ารหัสไขว้จัดอันดับใหม่ให้เหลือ 5 อันดับแรก
  3. ส่ง 5 อันดับแรกเข้าไปในพรอมต์ของ LLM

คุณจะได้ความเร็วของตัวเข้ารหัสแบบสองฝั่ง พร้อมความแม่นยำของตัวเข้ารหัสไขว้

การใช้ Cohere Rerank

ตัวเข้ารหัสไขว้สำหรับการใช้งานจริงที่ใช้งานง่ายที่สุด:

import cohere
co = cohere.Client(COHERE_KEY)

results = co.rerank(
    model='rerank-multilingual-v3.0',
    query='What is the refund policy?',
    documents=top_50_chunks,
    top_n=5
)
for r in results.results:
    print(r.index, r.relevance_score, top_50_chunks[r.index])

ตัวจัดอันดับใหม่แบบโอเพนซอร์ส

ตัวจัดอันดับ BGE เป็นตัวเลือก OSS ชั้นนำ:

from sentence_transformers import CrossEncoder
model = CrossEncoder('BAAI/bge-reranker-base')

pairs = [(query, chunk) for chunk in candidates]
scores = model.predict(pairs)
ranked = [c for _, c in sorted(zip(scores, candidates), reverse=True)][:5]

Voyage Rerank

import voyageai
vo = voyageai.Client(api_key=VOYAGE_KEY)
res = vo.rerank(
    query=query,
    documents=candidates,
    model='rerank-2',
    top_k=5
)

เมื่อใดที่การจัดอันดับใหม่ช่วยได้

  • รายการผู้สมัครยาว (50-200 รายการ)
  • ความแตกต่างด้านความเกี่ยวข้องที่ละเอียดอ่อน
  • คำค้นที่มีการปฏิเสธหรือการเปรียบเทียบ
  • กรณีที่มีหลายภาษา

เมื่อใดที่ไม่ช่วย

  • ชุดผู้สมัครแคบอยู่แล้ว (5 อันดับแรกจากตัวเข้ารหัสแบบสองฝั่ง)
  • คำค้นที่ต้องการเวลาแฝงต่ำและมีความเสี่ยงต่ำ

การแลกเปลี่ยนด้านต้นทุน

ตัวเข้ารหัสไขว้จะอนุมานหนึ่งครั้งต่อหนึ่งคู่ การจัดอันดับผู้สมัคร 50 รายการใหม่จึงเท่ากับการเรียกโมเดล 50 ครั้ง (มีต้นทุนต่ำเมื่อใช้ Cohere/Voyage แต่จะช้าลงหากโฮสต์เอง)

ควรจัดสรรผู้สมัคร 50-200 รายการสำหรับการจัดอันดับใหม่ การใช้มากกว่านี้มักไม่คุ้มค่า

Integrating into LangChain

from langchain.retrievers import ContextualCompressionRetriever
from langchain.retrievers.document_compressors import CohereRerank

compressor = CohereRerank(top_n=5)
retriever = ContextualCompressionRetriever(
    base_compressor=compressor,
    base_retriever=vector_retriever
)

Integrating into LlamaIndex

from llama_index.postprocessor.cohere_rerank import CohereRerank

rerank = CohereRerank(top_n=5)
query_engine = index.as_query_engine(
    similarity_top_k=20,
    node_postprocessors=[rerank]
)

การจัดอันดับใหม่ที่คำนึงถึงความหลากหลาย

บางครั้งคุณต้องการผลลัพธ์ที่หลากหลาย ไม่ใช่เฉพาะรายการที่ได้คะแนนสูงสุด (ซึ่งอาจซ้ำกันเกือบทั้งหมด) MMR (ความเกี่ยวข้องส่วนเพิ่มสูงสุด) จะสร้างสมดุลระหว่างคะแนนกับความหลากหลาย:

from langchain.vectorstores import Chroma
results = store.max_marginal_relevance_search(query, k=5, fetch_k=20, lambda_mult=0.5)

รูปแบบสองขั้นตอน

เหตุใดจึงใช้ตัวเข้ารหัสแบบสองฝั่งร่วมกับตัวเข้ารหัสไขว้ แทนที่จะใช้เพียงแบบเดียว

สรุปทบทวน

ตัวเข้ารหัสแบบสองฝั่งเรียกคืน 50 รายการ ส่วนตัวเข้ารหัสไขว้จัดอันดับใหม่ให้เหลือ 5 รายการ ใช้ Cohere หรือ Voyage ในระบบจริง และใช้ BGE OSS หากโฮสต์ระบบเอง ได้ความแม่นยำเพิ่มขึ้นอย่างมีนัยสำคัญโดยมีต้นทุนเพิ่มขึ้นในระดับปานกลาง

คำถามที่พบบ่อย

บทเรียน “การจัดอันดับใหม่ด้วยตัวเข้ารหัสไขว้” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การจัดอันดับใหม่ด้วยตัวเข้ารหัสไขว้” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การจัดอันดับใหม่ด้วยตัวเข้ารหัสไขว้”

ค้นคืน 50 อันดับแรกด้วย Embedding ราคาถูก แล้วจัดอันดับ 5 อันดับแรกใหม่ด้วยตัวเข้ารหัสไขว้ที่ช้ากว่าเพื่อความแม่นยำสูงขึ้น คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การจัดอันดับใหม่ด้วยตัวเข้ารหัสไขว้” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การจัดอันดับใหม่ด้วยตัวเข้ารหัสไขว้
  2. HyDE: Embedding ของเอกสารสมมติ
  3. การค้นคืนหลายเวกเตอร์ (ColBERT)
  4. การประเมิน RAG (RAGAS, Recall@K)
← กลับไปที่ AI Agents