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 और Admin सेवा खोजें. VIEW BY PRINCIPALS में जाकर, PERMISSIONS टैब में GRANT ACCESS चुनें. अपना प्रिंसिपल डालें / चुनें. इसके बाद, "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 LLM मॉडल को शुरू करना
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 Vector Search का भी इस्तेमाल किया जा सकता है. अपने दस्तावेज़ों को ChromaDB में सेव करें और उन्हें वेक्टर स्टोर के तौर पर इंडेक्स करें. ChromaDB का इस्तेमाल, LLM के साथ इस्तेमाल करने के लिए वेक्टर एम्बेडिंग को सेव करने और वापस पाने के लिए किया जाता है. साथ ही, इसका इस्तेमाल डेटा पर सिमैंटिक सर्च करने के लिए भी किया जाता है.
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. एलएलएम ऐप्लिकेशन को इंटिग्रेट करना
विज़ुअल फ़्रंट एंड इंटरैक्शन के लिए, LLM ऐप्लिकेशन को 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 LLM प्रॉडक्ट का दस्तावेज़ देखें.
10. बधाई हो!
बधाई हो! आपने Vertex AI के टेक्स्ट जनरेशन वाले एलएलएम का इस्तेमाल करके, अपने डेटा पर टेक्स्ट विश्लेषण किया है. इसके लिए, आपने सिर्फ़ SQL क्वेरी का इस्तेमाल किया है. उपलब्ध मॉडल के बारे में ज़्यादा जानने के लिए, Vertex AI LLM प्रॉडक्ट का दस्तावेज़ देखें.