Saturday, April 19, 2025

Google Colab के माध्यम से Ollama का उपयोग करने के लिए एक कोड कार्यान्वयन और Q & A के लिए Ollama, Langchain, FAIS और CHROMADB के माध्यम से दीपसेक-R1 1.5B का उपयोग करने पर एक स्थानीय राग पाइपलाइन का निर्माण – Gadgets Solutions

-

इस ट्यूटोरियल में, हम ओपन-सोर्स टूल का उपयोग करके एक पूरी तरह से कार्यात्मक पुनर्प्राप्ति-अनुमानित पीढ़ी (आरएजी) पाइपलाइन का निर्माण करेंगे जो Google Colab पर मूल रूप से चलते हैं। सबसे पहले, हम गौर करेंगे कि कैसे ओलामा को सेट किया जाए और COLAB के माध्यम से मॉडल का उपयोग किया जाए। ओलामा के माध्यम से परोसे गए डीपसेक-आर 1 1.5 बी बड़े भाषा मॉडल को एकीकृत करना, लैंगचेन के मॉड्यूलर ऑर्केस्ट्रेशन, और उच्च-प्रदर्शन क्रोमडब वेक्टर स्टोर उपयोगकर्ताओं को अपलोड किए गए पीडीएफ से निकाले गए वास्तविक समय की जानकारी को क्वेरी करने की अनुमति देता है। स्थानीय भाषा मॉडल तर्क और पीडीएफ दस्तावेजों से तथ्यात्मक डेटा की पुनर्प्राप्ति के संयोजन के साथ, पाइपलाइन एक शक्तिशाली, निजी और लागत प्रभावी विकल्प को प्रदर्शित करती है।

!pip install colab-xterm
%load_ext colabxterm

हम COLAB-xterm एक्सटेंशन का उपयोग COLAB वातावरण के भीतर सीधे टर्मिनल एक्सेस को सक्षम करने के लिए करते हैं। इसे स्थापित करके! PIP को COLLAB स्थापित करें और इसे %लोड_क्स्ट ColabxTerm के माध्यम से लोड करके, उपयोगकर्ता Colab के अंदर एक इंटरैक्टिव टर्मिनल विंडो खोल सकते हैं, जिससे Llama की सेवा या स्थानीय प्रक्रियाओं की निगरानी करना आसान हो जाता है।

COLAB नोटबुक इंटरफ़ेस के भीतर एक इंटरैक्टिव टर्मिनल विंडो लॉन्च करने के लिए Collab एक्सटेंशन को लोड करने के बाद %Xterm मैजिक कमांड का उपयोग किया जाता है। यह उपयोगकर्ताओं को एक नियमित टर्मिनल की तरह, वास्तविक समय में शेल कमांड को निष्पादित करने की अनुमति देता है, जिससे यह विशेष रूप से लामा की सेवा, फ़ाइलों को प्रबंधित करने, या नोटबुक छोड़ने के बिना सिस्टम-स्तरीय संचालन को डीबग करने के लिए पृष्ठभूमि सेवाओं को चलाने के लिए विशेष रूप से उपयोगी हो जाता है।

Google Colab के माध्यम से Ollama का उपयोग करने के लिए एक कोड कार्यान्वयन और Q & A के लिए Ollama, Langchain, FAIS और CHROMADB के माध्यम से दीपसेक-R1 1.5B का उपयोग करने पर एक स्थानीय राग पाइपलाइन का निर्माण
 – Gadgets Solutions

यहाँ, हम कर्ल https://ollama.ai/install.sh का उपयोग करके Ollama स्थापित करते हैं श।

फिर, हम ओलामा की सेवा का उपयोग करके ओलामा शुरू करते हैं।

अंत में, हम स्थानीय रूप से ओलामा के माध्यम से डीपसेक-आर 1: 1.5 बी डाउनलोड करते हैं जिसका उपयोग राग पाइपलाइन के निर्माण के लिए किया जा सकता है।

!pip install langchain langchain-community sentence-transformers chromadb faiss-cpu

आरएजी पाइपलाइन के मुख्य घटकों को स्थापित करने के लिए, हम आवश्यक पुस्तकालयों को स्थापित करते हैं, जिनमें लैंगचेन, लैंगचेन-कम्युनिटी, वाक्य-ट्रांसफॉर्मर, क्रोमडब और एफएआईएस-सीपीयू शामिल हैं। ये पैकेज एक कुशल और मॉड्यूलर स्थानीय आरएजी प्रणाली बनाने के लिए आवश्यक दस्तावेज़ प्रसंस्करण, एम्बेडिंग, वेक्टर भंडारण और पुनर्प्राप्ति कार्यक्षमता को सक्षम करते हैं।

from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.llms import Ollama
from langchain.chains import RetrievalQA
from google.colab import files
import os
from langchain_core.prompts import ChatPromptTemplate
from langchain_ollama.llms import OllamaLLM

हम पीडीएफ लोडिंग, टेक्स्ट स्प्लिटिंग, एम्बेडिंग पीढ़ी, क्रोमा के साथ वेक्टर स्टोरेज, और ओलामा के माध्यम से एलएलएम एकीकरण को संभालने के लिए लैंगचेन-कम्युनिटी और लैंगचेन-ओलामा लाइब्रेरीज़ से प्रमुख मॉड्यूल आयात करते हैं। इसमें COLAB की फ़ाइल अपलोड यूटिलिटी और प्रॉम्प्ट टेम्प्लेट भी शामिल है, जो एक स्थानीय रूप से होस्ट किए गए मॉडल का उपयोग करके डॉक्यूमेंट अंतर्ग्रहण से क्वेरी से जवाब देने के लिए एक सहज प्रवाह को सक्षम करता है।

print("Please upload your PDF file...")
uploaded = files.upload()


file_path = list(uploaded.keys())(0)
print(f"File '{file_path}' successfully uploaded.")


if not file_path.lower().endswith('.pdf'):
    print("Warning: Uploaded file is not a PDF. This may cause issues.")

उपयोगकर्ताओं को अपने ज्ञान स्रोतों को जोड़ने की अनुमति देने के लिए, हम Google.colab.files.upload () का उपयोग करके एक पीडीएफ अपलोड के लिए संकेत देते हैं। यह अपलोड की गई फ़ाइल प्रकार की पुष्टि करता है और प्रतिक्रिया प्रदान करता है, यह सुनिश्चित करता है कि केवल पीडीएफ को आगे एम्बेडिंग और पुनर्प्राप्ति के लिए संसाधित किया जाता है।

!pip install pypdf
import pypdf
loader = PyPDFLoader(file_path)
documents = loader.load()
print(f"Successfully loaded {len(documents)} pages from PDF")

अपलोड किए गए पीडीएफ से सामग्री निकालने के लिए, हम PYPDF लाइब्रेरी स्थापित करते हैं और दस्तावेज़ को लोड करने के लिए Langchain से Pypdfloader का उपयोग करते हैं। यह प्रक्रिया पीडीएफ के प्रत्येक पृष्ठ को एक संरचित प्रारूप में परिवर्तित करती है, जो पाठ विभाजन और एम्बेडिंग जैसे डाउनस्ट्रीम कार्यों को सक्षम करती है।

text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200
)
chunks = text_splitter.split_documents(documents)
print(f"Split documents into {len(chunks)} chunks")

लोड किए गए पीडीएफ को 1000 वर्णों और 200-वर्ण ओवरलैप में प्रत्येक चंक आकार के साथ recursivecharactertextsplitter का उपयोग करके प्रबंधनीय विखंडू में विभाजित किया जाता है। यह चंक्स में बेहतर संदर्भ प्रतिधारण सुनिश्चित करता है, जो प्रश्न के उत्तर के दौरान पुनर्प्राप्त किए गए मार्ग की प्रासंगिकता में सुधार करता है।

embeddings = HuggingFaceEmbeddings(
    model_name="all-MiniLM-L6-v2",
    model_kwargs={'device': 'cpu'}
)


persist_directory = "./chroma_db"


vectorstore = Chroma.from_documents(
    documents=chunks,
    embedding=embeddings,
    persist_directory=persist_directory
)


vectorstore.persist()
print(f"Vector store created and persisted to {persist_directory}")

सिमेंटिक सर्च को सक्षम करने के लिए सीपीयू पर चल रहे वाक्य-ट्रांसफ़ॉर्मर्स से ऑल-माइनिल्म-एल 6-वी 2 मॉडल का उपयोग करके टेक्स्ट चंक्स एम्बेडेड हैं। इन एम्बेडिंग को तब एक लगातार क्रोमडब वेक्टर स्टोर में संग्रहीत किया जाता है, जिससे सत्रों में कुशल समानता-आधारित पुनर्प्राप्ति की अनुमति मिलती है।

llm = OllamaLLM(model="deepseek-r1:1.5b")
retriever = vectorstore.as_retriever(
    search_type="similarity",
    search_kwargs={"k": 3}  
)


qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",  
    retriever=retriever,
    return_source_documents=True  
)


print("RAG pipeline created successfully!")

RAG पाइपलाइन को स्थानीय दीपसेक-R1 मॉडल (Ollamallm के माध्यम से) को क्रोमा-आधारित रिट्रीवर के साथ जोड़कर अंतिम रूप दिया जाता है। एक “सामान” रणनीति के साथ लैंगचेन की पुनर्प्राप्ति श्रृंखला का उपयोग करते हुए, मॉडल एक क्वेरी के लिए शीर्ष 3 सबसे प्रासंगिक चंक्स को पुनः प्राप्त करता है और स्थानीय राग सेटअप को पूरा करते हुए, संदर्भ-जागरूक उत्तर उत्पन्न करता है।

def query_rag(question):
    result = qa_chain({"query": question})
   
    print("nQuestion:", question)
    print("nAnswer:", result("result"))
   
    print("nSources:")
    for i, doc in enumerate(result("source_documents")):
        print(f"Source {i+1}:n{doc.page_content(:200)}...n")
   
    return result


question = "What is the main topic of this document?"  
result = query_rag(question)

RAG पाइपलाइन का परीक्षण करने के लिए, एक Query_Rag फ़ंक्शन एक उपयोगकर्ता प्रश्न लेता है, रिट्रीवर का उपयोग करके प्रासंगिक संदर्भ को पुनर्प्राप्त करता है, और LLM का उपयोग करके एक उत्तर उत्पन्न करता है। यह शीर्ष स्रोत दस्तावेजों को भी प्रदर्शित करता है, मॉडल की प्रतिक्रिया के लिए पारदर्शिता और ट्रेसबिलिटी प्रदान करता है।

अंत में, यह ट्यूटोरियल ओलामा, क्रोमडब की पुनर्प्राप्ति शक्ति, लैंगचेन की ऑर्केस्ट्रेशन क्षमताओं और ओलामा के माध्यम से दीपसेक-आर 1 की तर्क क्षमताओं को जोड़ती है। इसने एक हल्के अभी तक शक्तिशाली चीर प्रणाली का निर्माण किया जो Google Colab के फ्री टियर पर कुशलता से चलता है। समाधान उपयोगकर्ताओं को अपलोड किए गए दस्तावेजों से अप-टू-डेट सामग्री में तैयार प्रश्न पूछने में सक्षम बनाता है, जिसमें स्थानीय एलएलएम के माध्यम से उत्पन्न उत्तर हैं। यह आर्किटेक्चर क्लाउड लागत या समझौता करने वाले प्रदर्शन के बिना स्केलेबल, अनुकूलन योग्य और गोपनीयता के अनुकूल एआई सहायकों के निर्माण के लिए एक नींव प्रदान करता है।


यह रहा कोलैब नोटबुक। इसके अलावा, हमें फॉलो करना न भूलें ट्विटर और हमारे साथ जुड़ें तार -चैनल और लिंक्डइन जीआरओयूपी। हमारे साथ जुड़ने के लिए मत भूलना 85K+ एमएल सबरेडिट

🔥


Asif Razzaq MarkTechPost Media Inc के सीईओ हैं .. एक दूरदर्शी उद्यमी और इंजीनियर के रूप में, ASIF सामाजिक अच्छे के लिए कृत्रिम बुद्धिमत्ता की क्षमता का उपयोग करने के लिए प्रतिबद्ध है। उनका सबसे हालिया प्रयास एक आर्टिफिशियल इंटेलिजेंस मीडिया प्लेटफॉर्म, मार्कटेकपोस्ट का शुभारंभ है, जो मशीन लर्निंग और डीप लर्निंग न्यूज के अपने गहन कवरेज के लिए खड़ा है, जो तकनीकी रूप से ध्वनि और आसानी से एक व्यापक दर्शकों द्वारा समझ में आता है। मंच 2 मिलियन से अधिक मासिक विचारों का दावा करता है, दर्शकों के बीच अपनी लोकप्रियता को दर्शाता है।

LEAVE A REPLY

Please enter your comment!
Please enter your name here

FOLLOW US

150,000FansLike
35,000FollowersFollow
100,000SubscribersSubscribe

Related Stories

Translate »