टेक्स्ट स्प्लिटिंग, एम्बेडिंग्स, और वेक्टर स्टोरेज

LangChain के साथ Retrieval Augmented Generation (RAG)

Meri Nova

Machine Learning Engineer

रिट्रीवल के लिए डेटा तैयार करना

डॉक्युमेंट्स लोड हो रहे हैं.

LangChain के साथ Retrieval Augmented Generation (RAG)

रिट्रीवल के लिए डेटा तैयार करना

डॉक्युमेंट्स को स्प्लिट किया जा रहा है.

LangChain के साथ Retrieval Augmented Generation (RAG)

रिट्रीवल के लिए डेटा तैयार करना

डॉक्युमेंट चंक्स एम्बेड किए गए हैं.

LangChain के साथ Retrieval Augmented Generation (RAG)

रिट्रीवल के लिए डेटा तैयार करना

डॉक्युमेंट चंक्स स्टोर किए गए हैं.

LangChain के साथ Retrieval Augmented Generation (RAG)

रिट्रीवल के लिए डेटा तैयार करना

RAG डेवलपमेंट वर्कफ़्लो में स्प्लिटिंग स्टेप हाइलाइट है.

LangChain के साथ Retrieval Augmented Generation (RAG)

chunk_size

एक तीर दिखाता है कि आदर्श चंक साइज बीच में होता है; बड़े चंक्स में रिट्रीवल धीमा और व्याख्या कठिन हो सकती है, और छोटे चंक्स में संदर्भ कम हो सकता है.

chunk_overlap

  • boundary{{4}} से आगे की जानकारी शामिल करें

दो चंक्स जिनमें बीच का ओवरलैप्ड एरिया हाइलाइट है.

LangChain के साथ Retrieval Augmented Generation (RAG)

CharacterTextSplitter

from langchain_text_splitters import CharacterTextSplitter

text = """Machine learning is a fascinating field.\n\nIt involves algorithms and models that can learn from data. These models can then make predictions or decisions without being explicitly programmed to perform the task.\nThis capability is increasingly valuable in various industries, from finance to healthcare.\n\nThere are many types of machine learning, including supervised, unsupervised, and reinforcement learning.\nEach type has its own strengths and applications."""
text_splitter = CharacterTextSplitter( separator="\n\n", chunk_size=100, chunk_overlap=10 )
LangChain के साथ Retrieval Augmented Generation (RAG)

CharacterTextSplitter

chunks = text_splitter.split_text(text)

print(chunks) print([len(chunk) for chunk in chunks])
['Machine learning is a fascinating field.',
 'It involves algorithms and models that can learn from data. These models can...',
 'There are many types of machine learning, including supervised, unsupervised...']

[40, 260, 155]
  • चंक्स में संदर्भ की कमी हो सकती है
  • चंक्स chunk_size से बड़े हो सकते हैं
LangChain के साथ Retrieval Augmented Generation (RAG)

RecursiveCharacterTextSplitter

from langchain_text_splitters import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(

separators=["\n\n", "\n", " ", ""],
chunk_size=100, chunk_overlap=10
)
LangChain के साथ Retrieval Augmented Generation (RAG)

RecursiveCharacterTextSplitter

chunks = splitter.split_text(text)

print(chunks)
print([len(chunk) for chunk in chunks])
['Machine learning is a fascinating field.',
 'It involves algorithms and models that can learn from data. These models ...',
 'or decisions without being explicitly programmed to perform the task.',
 'This capability is increasingly valuable in various industries, from ...',
 'There are many types of machine learning, including supervised, ...',
 'learning.',
 'Each type has its own strengths and applications.']
[40, 98, 69, 91, 95, 9, 49]
LangChain के साथ Retrieval Augmented Generation (RAG)

डॉक्युमेंट्स को स्प्लिट करना

from langchain_community.document_loaders import PyPDFLoader

loader = PyPDFLoader("research_paper.pdf")
documents = loader.load()

splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)

chunks = splitter.split_documents(documents)
LangChain के साथ Retrieval Augmented Generation (RAG)

डॉक्युमेंट्स को स्प्लिट करना

print(chunks)

print([len(chunk.page_content) for chunk in chunks])
[Document(metadata={'source': 'Rag Paper.pdf', 'page': 0}, page_content='...'),
 Document(metadata={'source': 'Rag Paper.pdf', 'page': 0}, page_content='...'),
 Document(metadata={'source': 'Rag Paper.pdf', 'page': 0}, page_content='...')]

[928, 946, 921,...]
LangChain के साथ Retrieval Augmented Generation (RAG)

एम्बेडिंग और स्टोरेज

एम्बेडिंग और स्टोरेज स्टेप्स हाइलाइट हैं.

LangChain के साथ Retrieval Augmented Generation (RAG)

एम्बेडिंग्स क्या हैं?

एक वाक्य एम्बेडिंग मॉडल में पास किया जाता है.

LangChain के साथ Retrieval Augmented Generation (RAG)

एम्बेडिंग्स क्या हैं?

एम्बेडिंग मॉडल टेक्स्ट को संख्यात्मक वैल्यूज़ के वेक्टर के रूप में एम्बेड करता है.

LangChain के साथ Retrieval Augmented Generation (RAG)

एम्बेडिंग्स क्या हैं?

what_are_embeddings3.jpg

LangChain के साथ Retrieval Augmented Generation (RAG)

एम्बेडिंग्स क्या हैं?

what_are_embeddings4.jpg

LangChain के साथ Retrieval Augmented Generation (RAG)

चंक्स को एम्बेड करना और स्टोर करना

  • एम्बेड और स्टोर करें: OpenAI और ChromaDB
from langchain_openai import OpenAIEmbeddings
from langchain_chroma import Chroma

embedding_model = OpenAIEmbeddings(
    api_key=openai_api_key,
    model="text-embedding-3-small"
)


vector_store = Chroma.from_documents( documents=chunks, embedding=embedding_model )
LangChain के साथ Retrieval Augmented Generation (RAG)

अभ्यास करते हैं!

LangChain के साथ Retrieval Augmented Generation (RAG)

Preparing Video For Download...