आज के सूचना-समृद्ध डिजिटल परिदृश्य में, व्यापक वेब सामग्री को नेविगेट करना भारी हो सकता है। चाहे आप एक परियोजना के लिए शोध कर रहे हों, जटिल सामग्री का अध्ययन कर रहे हों, या लंबे लेखों से विशिष्ट जानकारी निकालने की कोशिश कर रहे हों, प्रक्रिया समय लेने वाली और अक्षम हो सकती है। यह वह जगह है जहां एक एआई-संचालित प्रश्न-उत्तर (क्यू एंड ए) बॉट अमूल्य हो जाता है।
यह ट्यूटोरियल आपको एक व्यावहारिक एआई क्यू एंड ए सिस्टम बनाने के माध्यम से मार्गदर्शन करेगा जो वेबपेज सामग्री का विश्लेषण कर सकता है और विशिष्ट प्रश्नों का उत्तर दे सकता है। महंगी एपीआई सेवाओं पर भरोसा करने के बजाय, हम एक समाधान बनाने के लिए चेहरे को गले लगाने से ओपन-सोर्स मॉडल का उपयोग करेंगे:
- पूरी तरह से उपयोग करने के लिए स्वतंत्र
- Google Colab में चलाता है (कोई स्थानीय सेटअप आवश्यक नहीं है)
- आपकी विशिष्ट आवश्यकताओं के लिए अनुकूलन योग्य
- अत्याधुनिक एनएलपी प्रौद्योगिकी पर निर्मित
इस ट्यूटोरियल के अंत तक, आपके पास एक कार्यात्मक वेब क्यू एंड ए सिस्टम होगा जो आपको ऑनलाइन सामग्री से अधिक कुशलता से अंतर्दृष्टि निकालने में मदद कर सकता है।
हम क्या निर्माण करेंगे
हम एक प्रणाली बनाएंगे:
- इनपुट के रूप में एक URL लेता है
- वेबपेज सामग्री को अर्क और संसाधित करता है
- सामग्री के बारे में प्राकृतिक भाषा के प्रश्न स्वीकार करता है
- वेबपेज के आधार पर सटीक, प्रासंगिक उत्तर प्रदान करता है
आवश्यक शर्तें
- Google Colab तक पहुँचने के लिए एक Google खाता
- अजगर की बुनियादी समझ
- कोई पूर्व मशीन सीखने के ज्ञान की आवश्यकता नहीं है
चरण 1: पर्यावरण स्थापित करना
सबसे पहले, आइए एक नया Google Colab नोटबुक बनाएं। Google Colab पर जाएं और एक नई नोटबुक बनाएं।
आइए आवश्यक पुस्तकालयों को स्थापित करके शुरू करें:
# आवश्यक पैकेज स्थापित करें
!pip install transformers torch beautifulsoup4 requests
यह स्थापित करता है:
- ट्रांसफॉर्मर: अत्याधुनिक एनएलपी मॉडल के लिए फेस लाइब्रेरी को गले लगाना
- मशाल: Pytorch डीप लर्निंग फ्रेमवर्क
- BeautifulSoup4: HTML को पार्स करने और वेब सामग्री निकालने के लिए
- अनुरोध: वेबपेजों के लिए HTTP अनुरोध करने के लिए
चरण 2: पुस्तकालयों का आयात करें और बुनियादी कार्य सेट करें
अब आइए सभी आवश्यक पुस्तकालयों को आयात करें और कुछ सहायक कार्यों को परिभाषित करें:
import torch
from transformers import AutoModelForQuestionAnswering, AutoTokenizer
import requests
from bs4 import BeautifulSoup
import re
import textwrap
# जाँच करें कि क्या GPU उपलब्ध है
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(f"Using device: {device}")
# एक वेबपेज से पाठ निकालने के लिए फ़ंक्शन
def extract_text_from_url(url):
try:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
for script_or_style in soup(('script', 'style', 'header', 'footer', 'nav')):
script_or_style.decompose()
text = soup.get_text()
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split(" "))
text="n".join(chunk for chunk in chunks if chunk)
text = re.sub(r's+', ' ', text).strip()
return text
except Exception as e:
print(f"Error extracting text from URL: {e}")
return None
यह कोड:
- सभी आवश्यक पुस्तकालयों का आयात करता है
- हमारे डिवाइस को सेट करता है (GPU यदि उपलब्ध हो, अन्यथा CPU)
- वेबपेज URL से पठनीय पाठ सामग्री निकालने के लिए एक फ़ंक्शन बनाता है
चरण 3: प्रश्न-उत्तर देने वाले मॉडल को लोड करें
अब आइए एक पूर्व-प्रशिक्षित प्रश्न-उत्तर देने वाले मॉडल को गले लगाने से लोड करें:
# लोड प्री-प्रशिक्षित मॉडल और टोकनर
model_name = "deepset/roberta-base-squad2"
print(f"Loading model: {model_name}")
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForQuestionAnswering.from_pretrained(model_name).to(device)
print("Model loaded successfully!")
हम उपयोग कर रहे हैं दीपसेट/रॉबर्टा-बेस-स्क्वाड 2जो है:
- रॉबर्टा आर्किटेक्चर पर आधारित (एक मजबूत अनुकूलित बर्ट दृष्टिकोण)
- स्क्वाड 2.0 पर फाइन-ट्यून (स्टैनफोर्ड प्रश्न डेटासेट का जवाब)
- हमारे कार्य के लिए सटीकता और गति के बीच एक अच्छा संतुलन
चरण 4: प्रश्न-उत्तर फ़ंक्शन को लागू करें
अब, आइए मुख्य कार्यक्षमता को लागू करते हैं – निकाले गए वेबपेज सामग्री के आधार पर प्रश्नों के उत्तर देने की क्षमता:
def answer_question(question, context, max_length=512):
max_chunk_size = max_length - len(tokenizer.encode(question)) - 5
all_answers = ()
for i in range(0, len(context), max_chunk_size):
chunk = context(i:i + max_chunk_size)
inputs = tokenizer(
question,
chunk,
add_special_tokens=True,
return_tensors="pt",
max_length=max_length,
truncation=True
).to(device)
with torch.no_grad():
outputs = model(**inputs)
answer_start = torch.argmax(outputs.start_logits)
answer_end = torch.argmax(outputs.end_logits)
start_score = outputs.start_logits(0)(answer_start).item()
end_score = outputs.end_logits(0)(answer_end).item()
score = start_score + end_score
input_ids = inputs.input_ids.tolist()(0)
tokens = tokenizer.convert_ids_to_tokens(input_ids)
answer = tokenizer.convert_tokens_to_string(tokens(answer_start:answer_end+1))
answer = answer.replace("(CLS)", "").replace("(SEP)", "").strip()
if answer and len(answer) > 2:
all_answers.append((answer, score))
if all_answers:
all_answers.sort(key=lambda x: x(1), reverse=True)
return all_answers(0)(0)
else:
return "I couldn't find an answer in the provided content."
यह फ़ंक्शन:
- इनपुट के रूप में एक प्रश्न और वेबपेज सामग्री लेता है
- चंक्स में इसे संसाधित करके लंबी सामग्री को संभालता है
- उत्तर अवधि (प्रारंभ और अंत स्थिति) की भविष्यवाणी करने के लिए मॉडल का उपयोग करता है
- कई chunks को संसाधित करता है और उच्चतम आत्मविश्वास स्कोर के साथ उत्तर देता है
चरण 5: परीक्षण और उदाहरण
आइए कुछ उदाहरणों के साथ हमारे सिस्टम का परीक्षण करें। यहाँ पूरा कोड है:
url = "https://en.wikipedia.org/wiki/Artificial_intelligence"
webpage_text = extract_text_from_url(url)
print("Sample of extracted text:")
print(webpage_text(:500) + "...")
questions = (
"When was the term artificial intelligence first used?",
"What are the main goals of AI research?",
"What ethical concerns are associated with AI?"
)
for question in questions:
print(f"nQuestion: {question}")
answer = answer_question(question, webpage_text)
print(f"Answer: {answer}")
यह प्रदर्शित करेगा कि सिस्टम वास्तविक उदाहरणों के साथ कैसे काम करता है।
सीमाएं और भविष्य में सुधार
हमारे वर्तमान कार्यान्वयन की कुछ सीमाएँ हैं:
- यह संदर्भ लंबाई सीमाओं के कारण बहुत लंबे वेबपेजों के साथ संघर्ष कर सकता है
- मॉडल जटिल या अस्पष्ट प्रश्नों को नहीं समझ सकता है
- यह राय या व्यक्तिपरक सामग्री के बजाय तथ्यात्मक सामग्री के साथ सबसे अच्छा काम करता है
भविष्य में सुधार शामिल हो सकते हैं:
- लंबे दस्तावेजों को बेहतर संभालने के लिए शब्दार्थ खोज को लागू करना
- दस्तावेज़ सारांश क्षमताओं को जोड़ना
- कई भाषाओं का समर्थन करना
- पिछले प्रश्नों और उत्तरों की स्मृति को लागू करना
- विशिष्ट डोमेन पर मॉडल को ठीक करना (जैसे, चिकित्सा, कानूनी, तकनीकी)
निष्कर्ष
अब आपने ओपन-सोर्स मॉडल का उपयोग करके वेबपेजों के लिए अपने एआई-संचालित क्यू एंड ए सिस्टम को सफलतापूर्वक बनाया है। यह उपकरण आपकी मदद कर सकता है:
- लंबे लेखों से विशिष्ट जानकारी निकालें
- अधिक कुशलता से शोध करें
- जटिल दस्तावेजों से त्वरित उत्तर प्राप्त करें
फेसिंग फेस के शक्तिशाली मॉडल और Google Colab के लचीलेपन का उपयोग करके, आपने एक व्यावहारिक अनुप्रयोग बनाया है जो आधुनिक एनएलपी की क्षमताओं को प्रदर्शित करता है। अपनी विशिष्ट आवश्यकताओं को पूरा करने के लिए इस परियोजना को अनुकूलित करने और विस्तारित करने के लिए स्वतंत्र महसूस करें।
उपयोगी संसाधन
यह रहा कोलैब नोटबुक। इसके अलावा, हमें फॉलो करना न भूलें ट्विटर और हमारे साथ जुड़ें तार -चैनल और लिंक्डइन जीआरओयूपी। हमारे साथ जुड़ने के लिए मत भूलना 85K+ एमएल सबरेडिट।
🔥 ।

ASJAD MarkTechPost में एक प्रशिक्षु सलाहकार है। वह भारतीय प्रौद्योगिकी संस्थान, खड़गपुर में मैकेनिकल इंजीनियरिंग में B.Tech को बनाए रख रहे हैं। असजाद एक मशीन लर्निंग और डीप लर्निंग उत्साही है जो हमेशा हेल्थकेयर में मशीन लर्निंग के अनुप्रयोगों पर शोध कर रहा है।
