Sedang mengikuti modul ini?
Modul 15 · Halaman 16 daripada 20 · 11 bahagian
Embeddings dan Carian Semantik
Apa itu embeddings, model embedding popular, aliran kerja, cara carian semantik dan metrik persamaan berfungsi, teknik lanjutan dan kes penggunaan.
Apa itu Embeddings?
- Embeddings ialah perwakilan vektor berangka bagi teks yang menangkap makna semantik.
- Ia menukar teks (dokumen, pertanyaan) kepada vektor padat (cth. 1536 dimensi) menggunakan model embedding.
- Kandungan yang serupa akan mempunyai vektor yang serupa, membolehkan carian semantik, RAG dan aplikasi AI.
Model Embedding Popular
- OpenAI Embeddings - text-embedding-3-small
- Cohere Embeddings - model berbilang bahasa
- Hugging Face - sentence-transformers
- Model setempat - BGE, all-MiniLM, model Instructor
- Model multimodal - untuk teks, imej, kod, dsb.
Aliran Kerja Embedding dalam LangChain
Dokumen MentahPDF, web, teks
Text SplitterPecah kepada chunk
Model EmbeddingCipta embeddings
Pangkalan Data VektorSimpan vektor
Carian SemantikDapatkan chunk relevan
Cara Carian Semantik Berfungsi
- 1Pertanyaan pengguna ditukar kepada vektor embedding.
- 2Vektor dibandingkan dengan vektor dokumen yang disimpan (menggunakan carian persamaan).
- 3k chunk paling relevan diperoleh dan digunakan oleh LLM untuk menjana jawapan yang tepat.
Metrik Persamaan
| Metrik | Penerangan | Kes Penggunaan |
|---|---|---|
| Cosine Similarity | Mengukur sudut antara vektor | Paling lazim |
| Euclidean Distance | Mengukur jarak sebenar | Apabila magnitud penting |
| Dot Product | Mudah dan cekap | Sesuai untuk carian berskala besar |
Melaksanakan Embeddings dalam LangChain
python
from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores import FAISS # Create embeddings embeddings = OpenAIEmbeddings() vectorstore = FAISS.from_documents(docs, embeddings)
Carian Semantik dengan LangChain
python
from langchain.vectorstores import FAISS from langchain.chains import RetrievalQA retriever = vectorstore.as_retriever(search_kwargs={ "k": 3 }) qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=retriever) result = qa_chain.run("What is LangChain?") print(result)
Teknik Lanjutan
- Hybrid Search - gabungkan carian kata kunci + vektor.
- Metadata Filtering - tapis hasil mengikut sumber, tarikh, tag.
- Re-ranking - tambah baik hasil menggunakan cross-encoder.
- Multi-vector Retrieval - gunakan beberapa embedding (cth. tajuk + kandungan).
- Semantic Chunking - pecahkan kandungan berdasarkan makna, bukan saiz sahaja.
Kes Penggunaan Embeddings
- Aplikasi RAG - dapatkan konteks relevan untuk LLM.
- Carian semantik - carian pintar dalam dokumen dan produk.
- Sistem cadangan - cari item serupa.
- Chatbot dan pembantu - menjawab menggunakan data anda.
- Carian multimodal - cari merentasi teks, imej dan kod.
Contoh: RAG dengan Embeddings
PDFDokumen syarikat
Pecah & Embed
Vector DBFAISS / Qdrant
Dapatkan Dokumen Relevan
LLMBeri jawapan tepat
Pengajaran Utama
- Embeddings merapatkan jurang antara teks dan kefahaman mesin.
- Carian semantik membantu mencari maklumat paling relevan dengan cekap.
- LangChain memudahkan penjanaan embeddings, menyimpannya dalam pangkalan data vektor dan menggunakannya untuk aplikasi RAG yang berkuasa.
- Pilih model, metrik dan pangkalan data yang sesuai mengikut kes penggunaan dan skala anda.