الذكاء الاصطناعي التوليدي لتحليلات الفيديو باستخدام Vertex AI

1. مقدمة

تعرَّف على كيفية تحليل آراء الأشخاص البارزين على YouTube في أيّ شركة أو منتج باستخدام إمكانات الذكاء الاصطناعي التوليدي من Google.

مع إطلاق النماذج اللغوية الكبيرة التي تستند إلى الإحصاءات من مجموعة واسعة من المصادر، مثل الميزانيات الإجمالية وعدد المشاهدات على منصات التواصل الاجتماعي، أصبحت آراء الأشخاص المؤثّرين أسهل من أي وقت مضى.

المؤثرون في وسائل التواصل الاجتماعي خاصة في مجال التكنولوجيا يُنظر إلى العالم المالي بصورة متزايدة كمؤيدين رئيسيين للمؤسسة أو منافسيها المنتجات .

ما الذي ستقوم ببنائه

في هذا الدرس التطبيقي حول الترميز، ستتعرَّف على نموذج PaLM2 في VertexAI و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 Console وابحث عن "إدارة الهوية وإمكانية الوصول وخدمة المشرف". في علامة التبويب "الأذونات" ضمن "عرض حسب المبادئ"، اختَر "منح إذن الوصول". أدخِل أو اختَر المدير الرئيسي، ثم أضِف الدور "مستخدم Vertex AI". و"حفظ"، كما هو موضح في الصورة أدناه:

c6d26238f3d57a45.png

ارجع الآن إلى علامة تبويب "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" مع نموذج 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()

تقسيم الفيديو

قسّم الفيديو إلى مقاطع متعددة باستخدام أسلوب تقسيم الأحرف التكراري.

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 النموذج اللغوي الكبير (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) مع Gراديو الواجهة الأمامية المرئية.

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. اختبار الحلّ

لننتقل الآن إلى اختبار الحل. شغِّل الخلية التي تحتوي على الرمز أعلاه. يمكنك عرض واجهة المستخدم في نتيجة الخلية أو النقر على الرابط الذي يتم إنشاؤه. يجب أن يكون بإمكانك عرض الواجهة بشكل مرئي من خلال مكوّنات الإدخال والمخرجات. إدخال سؤال في الفيديو وعرض ردّ النموذج

825c38058aab0aae.png

وبذلك، يمكننا الآن دمج فيديوهات YouTube وتحليلها باستخدام نماذج Vertex AI PaLM API. يمكنك توسعة ذلك أيضًا للتكامل مع قواعد البيانات أو مستودعات البيانات. يمكنك الاطّلاع على مستندات منتج Vertex AI LLM لمزيد من المعلومات حول النماذج المتوفّرة.

10. تهانينا!

تهانينا! لقد تمكّنت من استخدام Vertex AI Text Generation LLM آليًا لإجراء إحصاءات نصية على بياناتك باستخدام طلبات بحث SQL فقط. يمكنك الاطّلاع على مستندات منتجات Vertex AI LLM لمعرفة المزيد من المعلومات حول النماذج المتوفّرة.