1- مقدمة
تعرَّف على كيفية تحليل آراء المؤثّرين في YouTube حول أي شركة أو منتج باستخدام إمكانات الذكاء الاصطناعي التوليدي من Google.
مع ظهور النماذج اللغوية الكبيرة (LLM) التي تستفيد من الرؤى من مجموعة واسعة من المصادر، مثل الميزانيات العمومية والآراء على منصات وسائل التواصل الاجتماعي، أصبح من الأسهل بكثير معرفة آراء المؤثّرين.
يُنظر إلى المؤثّرين على وسائل التواصل الاجتماعي، لا سيما في عالم التكنولوجيا والتمويل، بشكل متزايد على أنّهم مؤيدون رئيسيون لمؤسسة أو لمنتجات وسياسات منافسيها.
ما ستنشئه
في هذا الدرس التطبيقي حول الترميز، ستتعرّف على كيفية دمج نموذج PaLM2 في Vertex AI وLangchain لإنشاء حلّ تحليلات المؤثّرين على YouTube.
البيئة
انتقِل إلى https://colab.research.google.com/#create=true لإنشاء دفتر ملاحظات جديد في بيئة وضع الحماية في Google Colab.
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 وابحث عن خدمة "إدارة الهوية وإمكانية الوصول والمشرف". في علامة التبويب "الأذونات" ضِمن "عرض حسب الأساسيين"، انقر على **منح إذن الوصول**. أدخِل الأساسي أو اختَره، ثم أضِف دور "مستخدِم Vertex AI" وانقر على **حفظ**، كما هو موضّح في الصورة أدناه:

ارجِع الآن إلى علامة تبويب 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
تهيئة نموذج LLM في Vertex AI
استخدِم مقتطف الرمز البرمجي هذا لتهيئة نموذج LLM في Vertex AI. يؤدي هذا إلى تهيئة "llm" باستخدام نموذج Text-Bison من Vertex AI.
!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()
تقسيم الفيديو
قسِّم الفيديو إلى أجزاء متعددة باستخدام تقنية Recursive Character splitter.
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 لتخزين عمليات تضمين المتّجهات واستردادها لاستخدامها مع النماذج اللغوية الكبيرة وإجراء بحث دلالي عن البيانات.
db = Chroma.from_documents(docs, embeddings)
retriever = db.as_retriever(search_type="similarity", search_kwargs={"k": 2})
إنشاء سلسلة استرداد
أنشئ سلسلة استرداد للإجابة عن السؤال. هذا هو المكان الذي نربط فيه نموذج Vertex AI Text Bison LLM والمسترد الذي يسترد عمليات التضمين من 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
يمكنك دمج تطبيق 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- تهانينا!
تهانينا! لقد استخدمت بنجاح نموذج لغوي كبير (LLM) لإنشاء النصوص في Vertex AI آليًا لإجراء إحصاءات نصية على بياناتك باستخدام طلبات لغة الاستعلامات البنيوية (SQL) فقط. راجِع مستندات منتج Vertex AI LLM لمعرفة المزيد عن النماذج المتاحة.