1. परिचय
Google की जेन एआई सुविधाओं का इस्तेमाल करके, किसी कंपनी या प्रॉडक्ट पर YouTube में इन्लूएंसर के व्यू का विश्लेषण करने का तरीका जानें.
एलएलएम के आने से, बैलेंस शीट, सोशल मीडिया प्लैटफ़ॉर्म पर मिले व्यू, और प्रभावशाली लोगों की राय जैसे अलग-अलग सोर्स से मिली अहम जानकारी का इस्तेमाल करना और भी आसान हो गया है.
सोशल मीडिया के क्षेत्र में प्रभावशाली लोग, खास तौर पर टेक्नोलॉजी और समाचार के क्षेत्र में वित्तीय मामलों में लोग, किसी संगठन या उसके प्रतिस्पर्धियों के मुख्य सलाहकारों के रूप में देखे जा रहे हैं प्रॉडक्ट और की नीतियों के बारे में ज़्यादा जानें.
आपको क्या बनाना होगा
इस कोडलैब में यह बताया गया है कि YouTube के इन्फ़्लुएंसर ऐनलिटिक्स सलूशन के लिए, VertexAI और Langchain में PaLM2 मॉडल कैसे काम करते हैं.
परिवेश
Google Colab के सैंडबॉक्स में एक नई नोटबुक बनाने के लिए, https://colab.research.google.com/#create=true पर जाएं.
2. पैकेज इंस्टॉल करें और उनकी पुष्टि करें
नई नोटबुक की पहली सेल में, ज़रूरी पैकेज इंस्टॉल करने के लिए, इन निर्देशों का इस्तेमाल करें.
!pip install google-cloud-aiplatform
!pip install langchain
!pip install chromadb
!pip install pytube
!pip install youtube-transcript-api
!pip install gradio
from google.cloud import aiplatform
इसमें आपसे ऊपर दिए गए पैकेज इंस्टॉल करने के बाद, रनटाइम मशीन को रीस्टार्ट करने के लिए कहा जाएगा. 'रनटाइम फिर से शुरू करें' पर क्लिक करें या रनटाइम मेन्यू से, 'रनटाइम फिर से शुरू करें' को चुनें.
अपने Google Cloud खाते की पुष्टि करें
आपके खाते में Vertex AI के उपयोगकर्ता की भूमिका होनी चाहिए.
- Google Cloud Console खोलें और IAM और एडमिन सेवा खोजें. 'अधिकारों के हिसाब से देखें' सेक्शन में 'अनुमतियां' टैब में, 'ऐक्सेस दें' चुनें. मुख्य खाता डालें या चुनें. इसके बाद, "Vertex AI User" भूमिका जोड़ें और सेव करें, जैसा कि नीचे इमेज में दिखाया गया है:
अब colab टैब पर वापस जाएं और काम कर रही मौजूदा फ़ाइल की दूसरी सेल में, नीचे दिया गया कोड स्निपेट डालें. यह पुष्टि करने के लिए जांच करेगा.
from google.colab import auth as google_auth
google_auth.authenticate_user()
आपसे ऐक्सेस देने के लिए कहा जाएगा. इसे जारी रखें.
3. शुरू करना और इंपोर्ट करना
अगले सेल में नीचे दिया गया स्निपेट डालकर अपने प्रोजेक्ट को शुरू करें.
import vertexai
PROJECT_ID = "<projectid>" #enter your project id here
vertexai.init(project=PROJECT_ID)
इस समस्या को हल करने के लिए लाइब्रेरी इंपोर्ट करें
ज़रूरी लाइब्रेरी इंपोर्ट करने के लिए, इन निर्देशों का इस्तेमाल करें.
from langchain.document_loaders import YoutubeLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.chains import RetrievalQA
from langchain.llms import VertexAI
Vertex AI एलएलएम मॉडल को शुरू करना
Vertex AI LLM मॉडल को शुरू करने के लिए, इस कोड स्निपेट का इस्तेमाल करें. यह "llm" शुरू होता है हमने Vertex AI के Text-Bison मॉडल के साथ काम किया है.
!python3 -m pip install langchain
llm = VertexAI(
model_name="text-bison@001",
max_output_tokens=256,
temperature=0.1,
top_p=0.8,
top_k=40,
verbose=True,
)
4. एम्बेड करना शुरू करें
हम वीडियो के हिस्सों को एम्बेड करने के लिए, Vertex AI की मदद से एम्बेड करने की सुविधा का इस्तेमाल करेंगे. कोड के इस हिस्से में, हम सिर्फ़ एम्बेडिंग ऑब्जेक्ट को शुरू करेंगे. 'स्टोर' और 'वापस पाएं' सेक्शन में, हम वीडियो से बनाए गए हिस्सों पर एम्बेड करने की सुविधा लागू करेंगे.
जनरेटिव एआई में चंकिंग का मतलब, बड़े कॉन्टेंट को छोटे-छोटे हिस्सों में बांटना या मैनेज करना आसान है. ऐसा इसलिए किया गया है, क्योंकि जनरेटिव एआई मॉडल की यह सीमा होती है कि वे एक बार में कितना डेटा प्रोसेस कर सकते हैं. डेटा को छोटे-छोटे हिस्सों में बांटकर, यह मॉडल एक बार में डेटा के सिर्फ़ एक हिस्से पर फ़ोकस कर सकता है. साथ ही, ज़्यादा सटीक और बेहतर आउटपुट जनरेट कर सकता है.
एम्बेड करने की सुविधा, कॉन्टेंट को संख्याओं के वेक्टर के रूप में दिखाने का एक तरीका है. इससे कंप्यूटर डेटा का मतलब ज़्यादा बेहतर तरीके से समझ पाते हैं. अगर बात भाषा से जुड़े डेटा के लिए है, तो कंप्यूटर शॉट की पहचान करने या कीफ़्रेम निकालने जैसे पारंपरिक तरीकों से ज़्यादा बेहतर तरीके से डेटा को समझ पाते हैं.
from langchain.embeddings import VertexAIEmbeddings
# Embedding
EMBEDDING_QPM = 100
EMBEDDING_NUM_BATCH =5
embeddings = VertexAIEmbeddings(
requests_per_minute=EMBEDDING_QPM,
num_instances_per_batch=EMBEDDING_NUM_BATCH,
)
5. वीडियो लोड करें और उसे कई हिस्सों में बांटें
खास जानकारी पाने या सवाल पूछने के लिए वीडियो को लोड करें.
loader = YoutubeLoader.from_youtube_url("https://www.youtube.com/watch?v=A8jyW_6hCGU&t=161s", add_video_info=True)
result = loader.load()
वीडियो को स्प्लिट करें
रिकर्सिव कैरेक्टर स्प्लिटर तकनीक का इस्तेमाल करके, वीडियो को कई हिस्सों में बांटें.
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=0)
docs = text_splitter.split_documents(result)
print(f"# of documents = {len(docs)}")
6. सेव करें और वापस पाएं
अपने दस्तावेज़ सेव करना
इस अभ्यास के लिए, हम ChromaDB का इस्तेमाल कर रहे हैं. आपके पास Vertex AI वेक्टर Search का इस्तेमाल करने का विकल्प भी है. अपने दस्तावेज़ संग्रहित करें और उन्हें ChromaDB में वेक्टर स्टोर के रूप में इंडेक्स करें. ChromaDB का इस्तेमाल एलएलएम के साथ इस्तेमाल करने और डेटा पर सिमैंटिक सर्च करने के लिए, वेक्टर एम्बेडिंग को सेव और वापस पाने के लिए किया जाता है.
db = Chroma.from_documents(docs, embeddings)
retriever = db.as_retriever(search_type="similarity", search_kwargs={"k": 2})
रिट्रीवर चेन बनाना
सवाल का जवाब देने के लिए एक रिट्रीवर चेन बनाएं. यहां हम Vertex AI Text Bison मॉडल एलएलएम और रिट्रीवर को जोड़ते हैं. यह रिट्रीवर, Chroma DB से एम्बेड किए गए एम्बेड को वापस लाता है.
qa = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True)
7. अपना प्रॉम्प्ट तय करें
इंडेक्स किए गए कॉन्टेंट से सवाल पूछने और जवाब पाने के लिए प्रॉम्प्ट तय करें.
def sm_ask(question, print_results=True):
video_subset = qa({"query": question})
context = video_subset
prompt = f"""
Answer the following question in a detailed manner, using information from the text below. If the answer is not in the text,say I dont know and do not generate your own response.
Question:
{question}
Text:
{context}
Question:
{question}
Answer:
"""
parameters = {
"temperature": 0.1,
"max_output_tokens": 256,
"top_p": 0.8,
"top_k": 40
}
response = llm.predict(prompt, **parameters)
return {
"answer": response
}
8. एलएलएम ऐप्लिकेशन को इंटिग्रेट करें
विज़ुअल फ़्रंट एंड इंटरैक्शन के लिए, Gradio के साथ एलएलएम ऐप्लिकेशन को इंटिग्रेट करें.
import gradio as gr
def get_response(input_text):
response = sm_ask(input_text)
return response
grapp = gr.Interface(fn=get_response, inputs="text", outputs="text")
grapp.launch()
9. समाधान की जांच करें
अब समाधान की जांच करते हैं. ऊपर दिए गए कोड वाले सेल को चलाएं. सेल के नतीजे में यूज़र इंटरफ़ेस (यूआई) देखें या जनरेट किए गए लिंक पर क्लिक करें. आपको इनपुट-आउटपुट कॉम्पोनेंट के साथ इंटरफ़ेस को विज़ुअलाइज़ करना चाहिए. वीडियो पर कोई सवाल डालें और मॉडल का जवाब देखें.
इसकी मदद से, अब हम YouTube वीडियो को इंटिग्रेट कर सकते हैं. साथ ही, Vertex AI PaLM API मॉडल का इस्तेमाल करके, उनका विश्लेषण कर सकते हैं. डेटाबेस या डेटा वेयरहाउस के साथ इंटिग्रेट करने के लिए, इस जानकारी का दायरा बढ़ाया जा सकता है. उपलब्ध मॉडल के बारे में ज़्यादा जानने के लिए, Vertex AI एलएलएम से जुड़े प्रॉडक्ट के दस्तावेज़ देखें.
10. बधाई हो!
बधाई हो! आपने सिर्फ़ SQL-क्वेरी का इस्तेमाल करके, अपने डेटा का टेक्स्ट ऐनलिटिक्स करने के लिए, Vertex AI Text Generation एलएलएम प्रोग्राम के ज़रिए सही तरीके से इस्तेमाल किया है. Vertex AI के एलएलएम से जुड़े प्रॉडक्ट के दस्तावेज़ देखें, ताकि आपको उनके उपलब्ध मॉडल के बारे में ज़्यादा जानकारी मिल सके.