जानें कि प्रोजेक्ट प्लानिंग, डेटा प्रीप्रोसेसिंग, एक्सप्लोरेटरी डेटा एनालिसिस, फीचर इंजीनियरिंग, मॉडल चयन, हाइपरपैरामीटर ट्यूनिंग, मॉडल वैलिडेशन, और वेब एप्लिकेशन के निर्माण एवं डिप्लॉयमेंट के लिए Google Bard का लाभ कैसे उठाएँ।
PaLM 2 मॉडल द्वारा संचालित Bard का नवीनतम संस्करण तर्क, कोडिंग और बहुभाषी क्षमताओं में बेहतर प्रदर्शन प्रदान करता है। ChatGPT के विपरीत, उच्च-गुणवत्ता वाले उत्तर प्राप्त करने के लिए उपयोगकर्ताओं को Bard के अनुरूप अपना इनपुट तैयार करना होता है।
यह पोस्ट बताती है कि एंड-टू-एंड डेटा साइंस प्रोजेक्ट बनाने के लिए नए Bard का लाभ कैसे उठाएं। आप सीखेंगे कि प्रयोगों और डेवलपमेंट के लिए आइडिया और कोड जनरेट करने वाले प्रभावी प्रॉम्प्ट कैसे तैयार करें।
योजना चरण हर प्रोजेक्ट में एक अहम कदम होता है, क्योंकि यह उसकी सफलता की नींव रखता है। इस चरण के दौरान, हम उपलब्ध संसाधनों और उद्देश्यों का सावधानीपूर्वक विश्लेषण करते हैं और एक प्रोजेक्ट प्लान विकसित करते हैं, जो हमारे लक्ष्यों को हासिल करने के लिए आवश्यक चरणों की रूपरेखा प्रस्तुत करता है।
प्रोजेक्ट आउटलाइन बनाने के लिए, हम Bard के लिए एक विस्तृत प्रॉम्प्ट तैयार करेंगे, जिसमें हमारे फेक न्यूज़ डिटेक्शन एप्लिकेशन के विकास से संबंधित सभी प्रासंगिक जानकारी शामिल होगी। इसमें प्रमुख विवरण होंगे, जैसे कि हम जिस डेटासेट का उपयोग करेंगे वह Fake News Classification डेटासेट है, जो WELFake पेपर से है, साथ ही वे प्रोजेक्ट निर्देश भी जो पूरे विकास प्रक्रिया में हमारी टीम का मार्गदर्शन करेंगे।
प्रॉम्प्ट: “डेटा साइंस मैनेजर की तरह कार्य करें और एंड-टू-एंड फेक न्यूज़ डिटेक्शन प्रोजेक्ट के लिए योजनाएँ बनाएं। हमारे पास पहले से FakeNewsDetection डेटासेट है, जिसमें 72,134 पंक्तियाँ और 4 कॉलम हैं: [Unnamed: 0, title, text, और ;abel (0 = fake और 1 = real)].”
हालाँकि सामान्य प्रोजेक्ट आउटलाइन एक ठोस आधार प्रदान करती है, लेकिन कुछ महत्वपूर्ण चरण गायब हैं। हम एक फ़ॉलो-अप प्रॉम्प्ट लिखकर आवश्यक चरण जोड़ सकते हैं।
फ़ॉलो-अप प्रॉम्प्ट: “कृपया EDA, मॉडल चयन, हाइपरपैरामीटर ऑप्टिमाइज़ेशन, Streamlit वेबऐप और Streamlit Cloud डिप्लॉयमेंट जैसे चरण जोड़ें। संयुक्त प्रोजेक्ट प्लान प्रदान करें।”
ऐसा लगता है कि Bard यह समझने में विफल हो रहा है कि हमारे पास पहले से डेटासेट है और हमें डेटा कलेक्शन भाग की आवश्यकता नहीं है। आप इसको संक्षिप्त करने के लिए एक फ़ॉलो-अप प्रॉम्प्ट लिख सकते हैं।
फ़ॉलो-अप प्रॉम्प्ट: “हमारे पास पहले से डेटा है, इसलिए प्रोजेक्ट प्लान से डेटा कलेक्शन स्टेप हटा दें।”
यह फेक न्यूज़ डिटेक्शन प्रोजेक्ट की रूपरेखा है:
डेटा प्रीप्रोसेसिंग
एक्सप्लोरेटरी डेटा एनालिसिस (EDA)
फीचर एक्सट्रैक्शन
मॉडल चयन
हाइपरपैरामीटर ऑप्टिमाइज़ेशन
मॉडल ट्रेनिंग और इवैल्यूएशन
Streamlit वेबऐप
Streamlit Cloud डिप्लॉयमेंट
प्रोजेक्ट प्लान में हमारी फेक न्यूज़ डिटेक्शन एप्लिकेशन बनाने के प्रत्येक चरण की विस्तृत व्याख्या के साथ-साथ अनुशंसित कार्यप्रणालियाँ शामिल हैं, जिनका उपयोग हम अपने परिणामों का अनुकूलन करने के लिए कर सकते हैं। इसके अतिरिक्त, हमारी योजना एक साप्ताहिक एजेंडा भी प्रदान करती है, जिसमें प्रमुख कार्य और माइलस्टोन शामिल हैं।
यदि आपको प्रॉम्प्ट लिखने में कठिनाई हो रही है या आप अभिभूत महसूस कर रहे हैं, तो चिंता न करें। हमारा प्रॉम्प्ट इंजीनियरिंग चीट शीट डाउनलोड करें, जो विभिन्न डेटा साइंस कार्यों के लिए विशेष रूप से तैयार 60+ विशेषज्ञ प्रॉम्प्ट का संग्रह उपलब्ध कराती है।
डेटा प्रीप्रोसेसिंग के लिए Bard
इस चरण में, हम डेटासेट को लोड करेंगे, साफ करेंगे, और उस पर फीचर इंजीनियरिंग करेंगे।
डेटा लोड करना
अब आपको डेटा मैनेजर से डेटा साइंटिस्ट के किरदार में बदलना है और डेटा लोड करने के लिए प्रॉम्प्ट लिखना है।
प्रॉम्प्ट: “एक प्रोफ़ेशनल डेटा साइंटिस्ट की तरह कार्य करें और उपर्युक्त प्रोजेक्ट के लिए डेटासेट से पाँच हज़ार रैंडम सैंपल लोड करने का Python कोड लिखें।”
नोट: हम मॉडलों को तेज़ी से ट्रेन और ऑप्टिमाइज़ करने के लिए डेटा को डाउनसैंपल कर रहे हैं।
import pandas as pd
# Load the dataset
df = pd.read_csv("fake-news-classification/WELFake_Dataset.csv")# Get 5 thousand random samples
df = df.sample(n=5000, random_state=42)# Print the first 5 rows of the data
df.head()संचालित द्वारा
डेटा क्लीनिंग
यह सुनिश्चित करने के लिए कि हमारा डेटासेट सही तरीके से साफ और विश्लेषण के लिए तैयार हो, हम Bard को आवश्यक डेटा-क्लीनिंग फ़ंक्शनों के बारे में विशिष्ट निर्देश देंगे।
प्रॉम्प्ट: “अब, डेटासेट की सफाई के लिए एक Python फ़ंक्शन लिखें। फ़ंक्शन मिसिंग वैल्यूज़ ड्रॉप करे, "Unnamed: 0" कॉलम ड्रॉप करे, टेक्स्ट को साफ करे और स्टॉपवर्ड्स हटाए।”
कोड में किसी भी बग या त्रुटि को दूर करने के लिए, हम Bard से स्टॉपवर्ड त्रुटि को हल करने के लिए कहेंगे। यह गलती को समझेगा और कोड का बेहतर संस्करण जनरेट करेगा।
अपडेटेड प्रॉम्प्ट: “स्टॉपवर्ड्स से संबंधित त्रुटि को हल करें”
from nltk.corpus import stopwords
defclean_dataset(df):# Drop missing values
df = df.dropna()# Drop Unnamed column
df = df.drop(["Unnamed: 0"], axis=1)# Clean text
df['text']= df['text'].str.lower()
df["Text"]= df["Text"].str.replace("[^a-zA-Z]"," ")# Remove stopwords
stopword =set(stopwords.words('english'))
df['text']= df['text'].apply(lambda x:' '.join([word for word in x.split()if word notin stopword]))return df
df = clean_dataset(df)
df.head()संचालित द्वारा
हमारे पास काफ़ी हद तक साफ किया हुआ डेटासेट है।
फीचर इंजीनियरिंग
यह सुनिश्चित करने के लिए कि Bard इष्टतम कोड जनरेट करे, सामान्य प्रश्नों के बजाय विशिष्ट निर्देश देना महत्वपूर्ण है। उदाहरण के लिए, यदि हम Bard से कोई विशिष्ट कार्य करने के लिए कहते हैं, जैसे “दोनों टेक्स्ट कॉलम की लंबाई को संयोजित करें,” तो यह हमारे प्रोजेक्ट की ज़रूरतों के अनुरूप बेहतर गुणवत्ता वाला कोड जनरेट कर पाएगा।
प्रॉम्प्ट: “अब, फीचर इंजीनियरिंग करने के लिए एक Python फ़ंक्शन लिखें। title कॉलम को लोअर करें और text तथा title को संयोजित करें, दोनों टेक्स्ट कॉलम की लंबाई को जोड़ें, यूनिक शब्दों की गणना करें, और अन्य।”
deffeature_engineering(df):# Lower the title column
df['title']= df['title'].str.lower()# Combine text and title
df['combined']= df['title']+' '+ df['text']# Length of the combined text
df['combined_length']= df['combined'].str.len()# Count unique words
df['unique_words']= df['text'].apply(lambda x:len(set(x.split())))return df
# Perform feature engineering
df = feature_engineering(df)# Print the first few rows of the DataFrame with the new features
df.head()संचालित द्वारा
हमने तीन नए फीचर बनाए हैं जिनका उपयोग हम डेटा विश्लेषण के लिए करेंगे।
एक्सप्लोरेटरी डेटा एनालिसिस (EDA) के लिए Bard
EDA भाग में, हम Bard से डेटा की खोज के लिए महत्वपूर्ण कुछ विज़ुअल्स बनाने के लिए कहेंगे।
प्रॉम्प्ट: “ऊपर दिए गए प्रोजेक्ट पर एक्सप्लोरेटरी डेटा एनालिसिस (EDA) करने के लिए Python कोड लिखें। इसमें फेक बनाम रियल की संयुक्त लंबाई का हिस्टोग्राम, लेबल डिस्ट्रीब्यूशन और वर्ड क्लाउड शामिल करें।”
हम बिन एज जोड़ने के लिए एक फ़ॉलो-अप प्रॉम्प्ट लिखेंगे।
फ़ॉलो-अप प्रॉम्प्ट: “`np.linspace` के साथ EDA कोड अपडेट करें ताकि 0 से 200 तक 40 बिन चौड़ाई के साथ बिन एज बन सकें।”
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
bins = np.linspace(0,200,40)# Histogram of the length of fake vs real news articles
plt.hist(df['combined_length'].where(df['label']==1),bins, alpha=0.5, label='Real')
plt.hist(df['combined_length'].where(df['label']==0),bins, alpha=0.5, label='Fake')
plt.xlabel('Combined Text Length')
plt.ylabel('Number of Articles')
plt.legend()
plt.show()संचालित द्वारा
ऐसा प्रतीत होता है कि फेक न्यूज़ की टेक्स्ट लंबाई रियल न्यूज़ से अधिक है।
# Label distribution
plt.pie(df['label'].value_counts(), labels=['Fake','Real'], autopct='%1.1f%%')
plt.show()संचालित द्वारा
लेबल डिस्ट्रीब्यूशन काफ़ी हद तक बराबर है, और हमें क्लास बैलेंसिंग करने की ज़रूरत नहीं है।
from wordcloud import WordCloud
wc = WordCloud(max_words=100, background_color='white')
wc.generate(' '.join(df[df['label']==0]['combined']))
plt.imshow(wc)
plt.axis('off')
plt.title('Word cloud of fake news articles')
plt.show()संचालित द्वारा
wc = WordCloud(max_words=100, background_color='white')
wc.generate(' '.join(df[df['label']==1]['combined']))
plt.imshow(wc)
plt.axis('off')
plt.title('Word cloud of real news articles')
plt.show()संचालित द्वारा
रियल न्यूज़ में “trump” और “said” जैसे शब्द फेक न्यूज़ की तुलना में अधिक प्रमुख हैं।
Bard के साथ फीचर एक्सट्रैक्शन
इस भाग में, हम “text” कॉलम को वेक्टर में बदलने और डेटासेट को ट्रेन और टेस्ट डेटासेट में विभाजित करने के लिए प्रॉम्प्ट लिखेंगे।
प्रॉम्प्ट: “text कॉलम को वेक्टर में बदलें और डेटासेट को ट्रेनिंग और टेस्टिंग डेटासेट में विभाजित करें।”
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
# Convert the text column into vectors
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(df['text'])# Split the dataset into training and testing datasets
X_train, X_test, y_train, y_test = train_test_split(X, df['label'], test_size=0.25)संचालित द्वारा
मॉडल चयन के लिए Bard
आवश्यक पृष्ठभूमि जानकारी प्रदान करने के बाद, अब आप सीधे प्रश्न पूछ सकते हैं।
प्रॉम्प्ट: “मॉडल चयन करें।”
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# Train the models
models =[LogisticRegression(), SVC(), DecisionTreeClassifier(), RandomForestClassifier()]for model in models:
model.fit(X_train, y_train)# Evaluate the models
predictions =[]for model in models:
predictions.append(model.predict(X_test))# Calculate the accuracy of the models
accuracies =[]for predictions in predictions:
accuracies.append(accuracy_score(y_test, predictions))# Print the accuracy of the modelsprint("Accuracy of LogisticRegression:", accuracies[0])print("Accuracy of SVC:", accuracies[1])print("Accuracy of DecisionTreeClassifier:", accuracies[2])print("Accuracy of RandomForestClassifier:", accuracies[3])संचालित द्वारा
Accuracy of LogisticRegression:0.9024979854955681
Accuracy of SVC:0.91941982272361
Accuracy of DecisionTreeClassifier:0.8767123287671232
Accuracy of RandomForestClassifier:0.8863819500402901संचालित द्वारा
हमारे विश्लेषण के आधार पर, जिन सभी मॉडलों का हमने परीक्षण किया है, उनका प्रदर्शन अपेक्षाकृत अच्छा रहा है। हालाँकि, परीक्षण किए गए मॉडलों में सपोर्ट वेक्टर क्लासिफायर (SVC) ने सबसे अधिक एक्यूरेसी स्कोर हासिल किया।
Bard के साथ हाइपरपैरामीटर ट्यूनिंग
हमने Bard से ऐसा हाइपरपैरामीटर ट्यूनिंग कोड लिखने को कहा है जो डिप्लॉयमेंट के लिए इष्टतम मॉडल और वेक्टर ऑब्जेक्ट को सेव कर दे।
प्रॉम्प्ट: ”SVC के हाइपरपैरामीटर ऑप्टिमाइज़ेशन के लिए Python कोड लिखें। साथ ही, Joblib का उपयोग करके सर्वश्रेष्ठ मॉडल और वेक्टराइज़र को सेव करें।”
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import accuracy_score,f1_score, classification_report, confusion_matrix
import joblib
# Create a RandomForestClassifier model
svm = SVC()# Create the hyperparameter grid
param_grid ={'C':[1,10,100],'gamma':[0.01,0.1,1]}# Create the GridSearchCV object
grid = GridSearchCV(SVC(), param_grid, cv=5)# Fit the GridSearchCV object to the training data
grid.fit(X_train, y_train)# Print the best parametersprint(grid.best_params_)संचालित द्वारा
# Predict the labels of the testing data using the best model
y_pred = grid.predict(X_test)# Calculate the accuracy of the best model
accuracy = accuracy_score(y_test, y_pred)# Print the accuracy of the best modelprint("Accuracy of the best model:", accuracy)संचालित द्वारा
एक्यूरेसी में थोड़ी सुधार हुआ है।
Accuracy of the best model:0.9298952457695407संचालित द्वारा
सेव किया गया मॉडल और वेक्टर इन्फरेंस चलाने के लिए उपयोग किए जाएंगे।
# Save the best model
joblib.dump(grid.best_estimator_,'best_model.pkl')# Save the TfidfVectorizer
joblib.dump(vectorizer,'tfidf_vectorizer.pkl')संचालित द्वारा
मॉडल इवैल्यूएशन के लिए Bard
क्लासिफिकेशन मॉडल के लिए अकेली एक्यूरेसी पर्याप्त नहीं है। हमें f1-स्कोर, रिकॉल, प्रिसीजन और कन्फ्यूज़न मैट्रिक्स पर भी इसे परखना होगा।
प्रॉम्प्ट: ”मॉडल इवैल्यूएशन के लिए Python कोड लिखें। क्लासिफिकेशन रिपोर्ट, कन्फ्यूज़न मैट्रिक्स और f1 स्कोर शामिल करें।”
print(classification_report(y_test, y_pred))संचालित द्वारा
रिपोर्ट के अनुसार, हमारा मॉडल टेस्ट डेटासेट पर काफ़ी स्थिर है।
precision recall f1-score support
00.940.920.9362010.920.940.93621
accuracy 0.931241
macro avg 0.930.930.931241
weighted avg 0.930.930.931241संचालित द्वारा
# Plot the confusion matrixprint(confusion_matrix(y_test, y_pred))संचालित द्वारा
परिणाम से संतुष्ट होने के बाद, हम ऐसा ऐप विकसित करेंगे जो इनपुट टेक्स्ट को वेक्टर में बदलेगा, उसे मॉडल से गुज़ारेगा, और परिणाम दिखाएगा।
उससे पहले, हमें एक GitHub रिपोजिटरी बनानी होगी।
रिपोजिटरी को क्लोन करें और एप्लिकेशन के सभी आवश्यक कॉम्पोनेंट सेव करें। यह चरण न केवल उनकी सुरक्षा सुनिश्चित करता है बल्कि ऐप और मॉडल दोनों के प्रभावी वर्ज़निंग को भी सक्षम बनाता है।
git clone https://github.com/kingabzpro/Fake-News-DataCamp-Project.gitसंचालित द्वारा
यह अनुमान लगाने के लिए कि न्यूज़ रियल है या फेक, एक ऐप विकसित करने हेतु एक सामान्य प्रॉम्प्ट लिखें।
प्रॉम्प्ट: “Streamlit का उपयोग करके एक वेब ऐप बनाने के लिए एक अलग Python फ़ाइल लिखें, जो यह प्रेडिक्ट करे कि न्यूज़ (0 = fake या 1 = real) है। केवल Streamlit ऐप भाग शामिल करें।”
अब, एक app.py फ़ाइल बनाते हैं और Bard से मिला कोड इस फ़ाइल में डालते हैं। हो जाने पर, आप streamlit run app.py कमांड का उपयोग करके एप्लिकेशन चला सकते हैं।
नोट: सुनिश्चित करें कि Streamlit ऐप चलाने के लिए आवश्यक सभी Python पैकेज आपके पास हैं।
ऐसा लगता है कि Bard वेक्टराइज़र को लोड करने में विफल रहा। हम इस समस्या को ठीक करने के लिए एक फ़ॉलो-अप प्रॉम्प्ट लिख सकते हैं।
फ़ॉलो-अप प्रॉम्प्ट: “joblib का उपयोग करते हुए ऐप फ़ाइल में वेक्टराइज़र और मॉडल लोड करना जोड़ें।”
ऐप ठीक से काम नहीं कर रहा है, इसलिए हमें इसे ठीक करने के लिए एक रन बटन जोड़ना होगा।
फ़ॉलो-अप प्रॉम्प्ट: “इन्फरेंस चलाने के लिए एक बटन भी जोड़ें।”
import streamlit as st
import joblib
# Load the vectorizer
vectorizer = joblib.load("tfidf_vectorizer.pkl")# Load the model
model = joblib.load("best_model.pkl")# Create a title
st.title("Predict Fake News")# Input text
text = st.text_input("Enter the news article:")# Button to run inferenceif st.button("Predict"):# Convert the text to a vector
vector = vectorizer.transform([text])# Predict the label
label = model.predict(vector)[0]# Display the labelif label ==0:
st.write("The news article is fake.")else:
st.write("The news article is real.")संचालित द्वारा
हमने सफलतापूर्वक एक Streamlit ऐप बनाया है जो टेक्स्ट इनपुट स्वीकार करता है और न्यूज़ आर्टिकल्स की प्रामाणिकता पर प्रेडिक्शन प्रदान करता है।
Streamlit Cloud डिप्लॉयमेंट के लिए Bard का उपयोग
ऐप को क्लाउड पर डिप्लॉय करने के लिए, हमें Bard से मदद मांगनी होगी। पता चला कि हमें बस अपना कोड GitHub रिपोजिटरी पर पुश करना है और इसे Streamlit सर्वर से कनेक्ट करना है।
प्रॉम्प्ट: “Streamlit Community Cloud पर ऐप डिप्लॉय करने में मेरी मदद करें।”
1. एक requirements.txt फ़ाइल बनाएँ और “scikit-learn” जैसे सभी आवश्यक Python पैकेज जोड़ें।
2. Git का उपयोग करके फ़ाइलें जोड़ें, कमिट करें और बाहरी सर्वर पर पुश करें। सुनिश्चित करें कि आपने मॉडल, वेक्टर, app.py और requirements.txt जोड़ दिए हैं।
3. share.streamlit.io पर जाएँ, “New app” पर क्लिक करें, GitHub रिपोजिटरी चुनें और एप्लिकेशन के बारे में आवश्यक जानकारी जोड़ें।
ChatGPT, Bard और Claude जैसे AI टूल हमें अपनी रोज़मर्रा की डेटा साइंस कार्यों में उत्कृष्टता प्राप्त करने में सक्षम बनाते हैं। इन टूल्स की क्षमताओं का लाभ उठाकर, हम अपनी दक्षता और प्रवीणता को बढ़ाते हैं, जिससे जटिल डेटा चुनौतियों का सामना करना आसान हो जाता है।
इस पोस्ट में, हमने व्यापक एंड-टू-एंड डेटा साइंस प्रोजेक्ट्स विकसित करने के लिए Bard के नए संस्करण की शक्ति का अन्वेषण किया। आप हमारा गाइड डेटा साइंस प्रोजेक्ट्स के लिए ChatGPT का उपयोग भी देख सकते हैं या एक विस्तृत ChatGPT कोर्स करें: Introduction to ChatGPT, और प्रॉम्प्ट लिखने की सर्वोत्तम प्रथाएँ जानें।
एक प्रमाणित डेटा साइंटिस्ट के रूप में, मैं अत्याधुनिक तकनीक का उपयोग करके नवाचारी मशीन लर्निंग अनुप्रयोग बनाने के लिए उत्साहित रहता/रहती हूँ। स्पीच रिकॉग्निशन, डेटा विश्लेषण और रिपोर्टिंग, MLOps, संवादात्मक AI और NLP में मजबूत पृष्ठभूमि के साथ, मैंने ऐसे बुद्धिमान सिस्टम विकसित करने में अपनी विशेषज्ञता निखारी है जो वास्तविक प्रभाव डाल सकें। तकनीकी दक्षता के अलावा, मैं जटिल अवधारणाओं को स्पष्ट और संक्षिप्त भाषा में प्रस्तुत करने में भी निपुण हूँ। परिणामस्वरूप, मैं डेटा साइंस पर एक मांग में रहने वाला/वाली ब्लॉगर बन गया/गई हूँ, और डेटा प्रोफेशनलों के बढ़ते समुदाय के साथ अपने अनुभव और विचार साझा करता/करती हूँ। वर्तमान में, मैं कंटेंट निर्माण और संपादन पर केंद्रित हूँ, बड़े भाषा मॉडलों के साथ काम करते हुए ऐसा प्रभावशाली और आकर्षक कंटेंट विकसित कर रहा/रही हूँ जो व्यवसायों और व्यक्तियों दोनों को अपने डेटा का अधिकतम लाभ उठाने में मदद कर सके।
PaLM 2 मॉडल द्वारा संचालित Bard का नवीनतम संस्करण तर्क, कोडिंग और बहुभाषी क्षमताओं में बेहतर प्रदर्शन प्रदान करता है। ChatGPT के विपरीत, उच्च-गुणवत्ता वाले उत्तर प्राप्त करने के लिए उपयोगकर्ताओं को Bard के अनुरूप अपना इनपुट तैयार करना होता है।
यह पोस्ट बताती है कि एंड-टू-एंड डेटा साइंस प्रोजेक्ट बनाने के लिए नए Bard का लाभ कैसे उठाएं। आप सीखेंगे कि प्रयोगों और डेवलपमेंट के लिए आइडिया और कोड जनरेट करने वाले प्रभावी प्रॉम्प्ट कैसे तैयार करें।
Google Bard और ChatGPT के बीच विस्तृत तुलना के लिए हमारा Bard बनाम ChatGPT फॉर डेटा साइंस लेख पढ़ें, हमारा सामान्य लेख ChatGPT बनाम Google Bard देखें, और एक अन्य विकल्प के रूप में हमारा ट्यूटोरियल डेटा साइंस प्रोजेक्ट्स के लिए ChatGPT भी देखें।
प्रोजेक्ट प्लानिंग
योजना चरण हर प्रोजेक्ट में एक अहम कदम होता है, क्योंकि यह उसकी सफलता की नींव रखता है। इस चरण के दौरान, हम उपलब्ध संसाधनों और उद्देश्यों का सावधानीपूर्वक विश्लेषण करते हैं और एक प्रोजेक्ट प्लान विकसित करते हैं, जो हमारे लक्ष्यों को हासिल करने के लिए आवश्यक चरणों की रूपरेखा प्रस्तुत करता है।
प्रोजेक्ट आउटलाइन बनाने के लिए, हम Bard के लिए एक विस्तृत प्रॉम्प्ट तैयार करेंगे, जिसमें हमारे फेक न्यूज़ डिटेक्शन एप्लिकेशन के विकास से संबंधित सभी प्रासंगिक जानकारी शामिल होगी। इसमें प्रमुख विवरण होंगे, जैसे कि हम जिस डेटासेट का उपयोग करेंगे वह Fake News Classification डेटासेट है, जो WELFake पेपर से है, साथ ही वे प्रोजेक्ट निर्देश भी जो पूरे विकास प्रक्रिया में हमारी टीम का मार्गदर्शन करेंगे।
प्रॉम्प्ट: “डेटा साइंस मैनेजर की तरह कार्य करें और एंड-टू-एंड फेक न्यूज़ डिटेक्शन प्रोजेक्ट के लिए योजनाएँ बनाएं। हमारे पास पहले से
FakeNewsDetectionडेटासेट है, जिसमें 72,134 पंक्तियाँ और 4 कॉलम हैं: [Unnamed: 0, title, text, और ;abel (0 = fake और 1 = real)].”हालाँकि सामान्य प्रोजेक्ट आउटलाइन एक ठोस आधार प्रदान करती है, लेकिन कुछ महत्वपूर्ण चरण गायब हैं। हम एक फ़ॉलो-अप प्रॉम्प्ट लिखकर आवश्यक चरण जोड़ सकते हैं।
फ़ॉलो-अप प्रॉम्प्ट: “कृपया EDA, मॉडल चयन, हाइपरपैरामीटर ऑप्टिमाइज़ेशन, Streamlit वेबऐप और Streamlit Cloud डिप्लॉयमेंट जैसे चरण जोड़ें। संयुक्त प्रोजेक्ट प्लान प्रदान करें।”
ऐसा लगता है कि Bard यह समझने में विफल हो रहा है कि हमारे पास पहले से डेटासेट है और हमें डेटा कलेक्शन भाग की आवश्यकता नहीं है। आप इसको संक्षिप्त करने के लिए एक फ़ॉलो-अप प्रॉम्प्ट लिख सकते हैं।
फ़ॉलो-अप प्रॉम्प्ट: “हमारे पास पहले से डेटा है, इसलिए प्रोजेक्ट प्लान से डेटा कलेक्शन स्टेप हटा दें।”
यह फेक न्यूज़ डिटेक्शन प्रोजेक्ट की रूपरेखा है:
प्रोजेक्ट प्लान में हमारी फेक न्यूज़ डिटेक्शन एप्लिकेशन बनाने के प्रत्येक चरण की विस्तृत व्याख्या के साथ-साथ अनुशंसित कार्यप्रणालियाँ शामिल हैं, जिनका उपयोग हम अपने परिणामों का अनुकूलन करने के लिए कर सकते हैं। इसके अतिरिक्त, हमारी योजना एक साप्ताहिक एजेंडा भी प्रदान करती है, जिसमें प्रमुख कार्य और माइलस्टोन शामिल हैं।
यदि आपको प्रॉम्प्ट लिखने में कठिनाई हो रही है या आप अभिभूत महसूस कर रहे हैं, तो चिंता न करें। हमारा प्रॉम्प्ट इंजीनियरिंग चीट शीट डाउनलोड करें, जो विभिन्न डेटा साइंस कार्यों के लिए विशेष रूप से तैयार 60+ विशेषज्ञ प्रॉम्प्ट का संग्रह उपलब्ध कराती है।
डेटा प्रीप्रोसेसिंग के लिए Bard
इस चरण में, हम डेटासेट को लोड करेंगे, साफ करेंगे, और उस पर फीचर इंजीनियरिंग करेंगे।
डेटा लोड करना
अब आपको डेटा मैनेजर से डेटा साइंटिस्ट के किरदार में बदलना है और डेटा लोड करने के लिए प्रॉम्प्ट लिखना है।
प्रॉम्प्ट: “एक प्रोफ़ेशनल डेटा साइंटिस्ट की तरह कार्य करें और उपर्युक्त प्रोजेक्ट के लिए डेटासेट से पाँच हज़ार रैंडम सैंपल लोड करने का Python कोड लिखें।”
नोट: हम मॉडलों को तेज़ी से ट्रेन और ऑप्टिमाइज़ करने के लिए डेटा को डाउनसैंपल कर रहे हैं।
डेटा क्लीनिंग
यह सुनिश्चित करने के लिए कि हमारा डेटासेट सही तरीके से साफ और विश्लेषण के लिए तैयार हो, हम Bard को आवश्यक डेटा-क्लीनिंग फ़ंक्शनों के बारे में विशिष्ट निर्देश देंगे।
प्रॉम्प्ट: “अब, डेटासेट की सफाई के लिए एक Python फ़ंक्शन लिखें। फ़ंक्शन मिसिंग वैल्यूज़ ड्रॉप करे, "Unnamed: 0" कॉलम ड्रॉप करे, टेक्स्ट को साफ करे और स्टॉपवर्ड्स हटाए।”
कोड में किसी भी बग या त्रुटि को दूर करने के लिए, हम Bard से स्टॉपवर्ड त्रुटि को हल करने के लिए कहेंगे। यह गलती को समझेगा और कोड का बेहतर संस्करण जनरेट करेगा।
अपडेटेड प्रॉम्प्ट: “स्टॉपवर्ड्स से संबंधित त्रुटि को हल करें”
हमारे पास काफ़ी हद तक साफ किया हुआ डेटासेट है।
फीचर इंजीनियरिंग
यह सुनिश्चित करने के लिए कि Bard इष्टतम कोड जनरेट करे, सामान्य प्रश्नों के बजाय विशिष्ट निर्देश देना महत्वपूर्ण है। उदाहरण के लिए, यदि हम Bard से कोई विशिष्ट कार्य करने के लिए कहते हैं, जैसे “दोनों टेक्स्ट कॉलम की लंबाई को संयोजित करें,” तो यह हमारे प्रोजेक्ट की ज़रूरतों के अनुरूप बेहतर गुणवत्ता वाला कोड जनरेट कर पाएगा।
प्रॉम्प्ट: “अब, फीचर इंजीनियरिंग करने के लिए एक Python फ़ंक्शन लिखें। title कॉलम को लोअर करें और text तथा title को संयोजित करें, दोनों टेक्स्ट कॉलम की लंबाई को जोड़ें, यूनिक शब्दों की गणना करें, और अन्य।”
हमने तीन नए फीचर बनाए हैं जिनका उपयोग हम डेटा विश्लेषण के लिए करेंगे।
एक्सप्लोरेटरी डेटा एनालिसिस (EDA) के लिए Bard
EDA भाग में, हम Bard से डेटा की खोज के लिए महत्वपूर्ण कुछ विज़ुअल्स बनाने के लिए कहेंगे।
प्रॉम्प्ट: “ऊपर दिए गए प्रोजेक्ट पर एक्सप्लोरेटरी डेटा एनालिसिस (EDA) करने के लिए Python कोड लिखें। इसमें फेक बनाम रियल की संयुक्त लंबाई का हिस्टोग्राम, लेबल डिस्ट्रीब्यूशन और वर्ड क्लाउड शामिल करें।”
हम बिन एज जोड़ने के लिए एक फ़ॉलो-अप प्रॉम्प्ट लिखेंगे।
फ़ॉलो-अप प्रॉम्प्ट: “`np.linspace` के साथ EDA कोड अपडेट करें ताकि 0 से 200 तक 40 बिन चौड़ाई के साथ बिन एज बन सकें।”
ऐसा प्रतीत होता है कि फेक न्यूज़ की टेक्स्ट लंबाई रियल न्यूज़ से अधिक है।
लेबल डिस्ट्रीब्यूशन काफ़ी हद तक बराबर है, और हमें क्लास बैलेंसिंग करने की ज़रूरत नहीं है।
रियल न्यूज़ में “trump” और “said” जैसे शब्द फेक न्यूज़ की तुलना में अधिक प्रमुख हैं।
Bard के साथ फीचर एक्सट्रैक्शन
इस भाग में, हम “text” कॉलम को वेक्टर में बदलने और डेटासेट को ट्रेन और टेस्ट डेटासेट में विभाजित करने के लिए प्रॉम्प्ट लिखेंगे।
प्रॉम्प्ट: “text कॉलम को वेक्टर में बदलें और डेटासेट को ट्रेनिंग और टेस्टिंग डेटासेट में विभाजित करें।”
मॉडल चयन के लिए Bard
आवश्यक पृष्ठभूमि जानकारी प्रदान करने के बाद, अब आप सीधे प्रश्न पूछ सकते हैं।
प्रॉम्प्ट: “मॉडल चयन करें।”
हमारे विश्लेषण के आधार पर, जिन सभी मॉडलों का हमने परीक्षण किया है, उनका प्रदर्शन अपेक्षाकृत अच्छा रहा है। हालाँकि, परीक्षण किए गए मॉडलों में सपोर्ट वेक्टर क्लासिफायर (SVC) ने सबसे अधिक एक्यूरेसी स्कोर हासिल किया।
Bard के साथ हाइपरपैरामीटर ट्यूनिंग
हमने Bard से ऐसा हाइपरपैरामीटर ट्यूनिंग कोड लिखने को कहा है जो डिप्लॉयमेंट के लिए इष्टतम मॉडल और वेक्टर ऑब्जेक्ट को सेव कर दे।
प्रॉम्प्ट: ”SVC के हाइपरपैरामीटर ऑप्टिमाइज़ेशन के लिए Python कोड लिखें। साथ ही, Joblib का उपयोग करके सर्वश्रेष्ठ मॉडल और वेक्टराइज़र को सेव करें।”
एक्यूरेसी में थोड़ी सुधार हुआ है।
सेव किया गया मॉडल और वेक्टर इन्फरेंस चलाने के लिए उपयोग किए जाएंगे।
मॉडल इवैल्यूएशन के लिए Bard
क्लासिफिकेशन मॉडल के लिए अकेली एक्यूरेसी पर्याप्त नहीं है। हमें f1-स्कोर, रिकॉल, प्रिसीजन और कन्फ्यूज़न मैट्रिक्स पर भी इसे परखना होगा।
प्रॉम्प्ट: ”मॉडल इवैल्यूएशन के लिए Python कोड लिखें। क्लासिफिकेशन रिपोर्ट, कन्फ्यूज़न मैट्रिक्स और f1 स्कोर शामिल करें।”
रिपोर्ट के अनुसार, हमारा मॉडल टेस्ट डेटासेट पर काफ़ी स्थिर है।
Streamlit वेबऐप के लिए Bard का उपयोग
परिणाम से संतुष्ट होने के बाद, हम ऐसा ऐप विकसित करेंगे जो इनपुट टेक्स्ट को वेक्टर में बदलेगा, उसे मॉडल से गुज़ारेगा, और परिणाम दिखाएगा।
उससे पहले, हमें एक GitHub रिपोजिटरी बनानी होगी।
रिपोजिटरी को क्लोन करें और एप्लिकेशन के सभी आवश्यक कॉम्पोनेंट सेव करें। यह चरण न केवल उनकी सुरक्षा सुनिश्चित करता है बल्कि ऐप और मॉडल दोनों के प्रभावी वर्ज़निंग को भी सक्षम बनाता है।
यह अनुमान लगाने के लिए कि न्यूज़ रियल है या फेक, एक ऐप विकसित करने हेतु एक सामान्य प्रॉम्प्ट लिखें।
प्रॉम्प्ट: “Streamlit का उपयोग करके एक वेब ऐप बनाने के लिए एक अलग Python फ़ाइल लिखें, जो यह प्रेडिक्ट करे कि न्यूज़ (0 = fake या 1 = real) है। केवल Streamlit ऐप भाग शामिल करें।”
अब, एक
app.pyफ़ाइल बनाते हैं और Bard से मिला कोड इस फ़ाइल में डालते हैं। हो जाने पर, आपstreamlit run app.pyकमांड का उपयोग करके एप्लिकेशन चला सकते हैं।नोट: सुनिश्चित करें कि Streamlit ऐप चलाने के लिए आवश्यक सभी Python पैकेज आपके पास हैं।
ऐसा लगता है कि Bard वेक्टराइज़र को लोड करने में विफल रहा। हम इस समस्या को ठीक करने के लिए एक फ़ॉलो-अप प्रॉम्प्ट लिख सकते हैं।
फ़ॉलो-अप प्रॉम्प्ट: “joblib का उपयोग करते हुए ऐप फ़ाइल में वेक्टराइज़र और मॉडल लोड करना जोड़ें।”
ऐप ठीक से काम नहीं कर रहा है, इसलिए हमें इसे ठीक करने के लिए एक रन बटन जोड़ना होगा।
फ़ॉलो-अप प्रॉम्प्ट: “इन्फरेंस चलाने के लिए एक बटन भी जोड़ें।”
हमने सफलतापूर्वक एक Streamlit ऐप बनाया है जो टेक्स्ट इनपुट स्वीकार करता है और न्यूज़ आर्टिकल्स की प्रामाणिकता पर प्रेडिक्शन प्रदान करता है।
Streamlit Cloud डिप्लॉयमेंट के लिए Bard का उपयोग
ऐप को क्लाउड पर डिप्लॉय करने के लिए, हमें Bard से मदद मांगनी होगी। पता चला कि हमें बस अपना कोड GitHub रिपोजिटरी पर पुश करना है और इसे Streamlit सर्वर से कनेक्ट करना है।
प्रॉम्प्ट: “Streamlit Community Cloud पर ऐप डिप्लॉय करने में मेरी मदद करें।”
1. एक
requirements.txtफ़ाइल बनाएँ और “scikit-learn” जैसे सभी आवश्यक Python पैकेज जोड़ें।2. Git का उपयोग करके फ़ाइलें जोड़ें, कमिट करें और बाहरी सर्वर पर पुश करें। सुनिश्चित करें कि आपने मॉडल, वेक्टर,
app.pyऔरrequirements.txtजोड़ दिए हैं।3. share.streamlit.io पर जाएँ, “New app” पर क्लिक करें, GitHub रिपोजिटरी चुनें और एप्लिकेशन के बारे में आवश्यक जानकारी जोड़ें।
बस इतना ही। हमारा ऐप डिप्लॉय हो गया है और Streamlit (fake-news-detector.streamlit.app) पर पब्लिक के लिए उपलब्ध है।
निष्कर्ष
ChatGPT, Bard और Claude जैसे AI टूल हमें अपनी रोज़मर्रा की डेटा साइंस कार्यों में उत्कृष्टता प्राप्त करने में सक्षम बनाते हैं। इन टूल्स की क्षमताओं का लाभ उठाकर, हम अपनी दक्षता और प्रवीणता को बढ़ाते हैं, जिससे जटिल डेटा चुनौतियों का सामना करना आसान हो जाता है।
इस पोस्ट में, हमने व्यापक एंड-टू-एंड डेटा साइंस प्रोजेक्ट्स विकसित करने के लिए Bard के नए संस्करण की शक्ति का अन्वेषण किया। आप हमारा गाइड डेटा साइंस प्रोजेक्ट्स के लिए ChatGPT का उपयोग भी देख सकते हैं या एक विस्तृत ChatGPT कोर्स करें: Introduction to ChatGPT, और प्रॉम्प्ट लिखने की सर्वोत्तम प्रथाएँ जानें।