هوش مصنوعی مولد برای تجزیه و تحلیل ویدیو با هوش مصنوعی Vertex

1. مقدمه

با نحوه تجزیه و تحلیل دیدگاه های Inluencers در یوتیوب در مورد هر شرکت یا محصولی با استفاده از قابلیت های Gen AI گوگل آشنا شوید.

با ظهور LLM ها از بینش های طیف گسترده ای از منابع مانند ترازنامه، دیدگاه ها در پلتفرم های رسانه های اجتماعی، نظرات تأثیرگذاران آسان تر شده است.

تأثیرگذاران رسانه های اجتماعی به ویژه در دنیای فناوری و مالی به طور فزاینده ای به عنوان حامیان اصلی یک سازمان یا محصولات و سیاست های رقبای آن دیده می شوند.

چیزی که خواهی ساخت

در این نرم‌افزار، نحوه ترکیب مدل PaLM2 در VertexAI و Langchain را برای راه‌حل تحلیلی اینفلوئنسر یوتیوب بررسی خواهید کرد.

محیط زیست

برای ایجاد یک نوت بوک جدید در محیط سندباکس 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

پس از نصب بسته های فوق، از شما می خواهد که دستگاه زمان اجرا را مجددا راه اندازی کنید. روی RESTART RUNTIME کلیک کنید یا از منوی Runtime گزینه Restart runtime را انتخاب کنید.

اکانت ابری گوگل خود را احراز هویت کنید

حساب شما باید نقش کاربری Vertex AI را داشته باشد.

  • کنسول Google Cloud را باز کنید و IAM و سرویس Admin را جستجو کنید. در برگه PERMISSIONs در زیر VIEW BY PRINCIPALS، GRANT ACCESS را انتخاب کنید. اصل خود را وارد کنید / انتخاب کنید و سپس نقش Vertex AI User و SAVE را اضافه کنید، همانطور که در تصویر زیر نشان داده شده است:

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 برای تبدیل تکه‌های ویدیو به جاسازی استفاده می‌کنیم. در این قسمت از کد، ما فقط آبجکت embeddings را مقداردهی اولیه می کنیم. در بخش ذخیره و بازیابی، جاسازی‌ها را روی تکه‌های ایجاد شده از ویدیو اعمال می‌کنیم.

خرد کردن در هوش مصنوعی مولد فرآیند تجزیه محتوای بزرگ به قطعات کوچکتر و قابل مدیریت یا «تکه‌ها» است. این کار به این دلیل انجام می‌شود که مدل‌های هوش مصنوعی مولد محدودیت‌هایی برای پردازش همزمان داده‌ها دارند. با تقسیم کردن داده ها، مدل می تواند در یک زمان بر روی یک تکه تمرکز کند و خروجی های دقیق و منسجم تری تولید کند.

جاسازی ها راهی برای نمایش محتوا به عنوان بردار اعداد هستند. این به رایانه‌ها این امکان را می‌دهد تا معنای داده‌ها را به روشی پیچیده‌تر از روش‌های سنتی، مانند تشخیص عکس یا استخراج فریم کلیدی، اگر برای ویدیوها و مجموعه‌ای از کلمات باشد، اگر برای داده‌های زبانی باشد، درک کنند.

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 model LLM و retriver را که جاسازی‌ها را از 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. محلول را تست کنید

حالا بیایید به آزمایش راه حل ادامه دهیم. سلول حاوی کد بالا را اجرا کنید. یا رابط کاربری را در نتیجه سلول مشاهده کنید یا روی پیوند ایجاد شده کلیک کنید. شما باید بتوانید رابط را با اجزای ورودی-خروجی تجسم کنید. یک سوال در ویدیو وارد کنید و پاسخ مدل را مشاهده کنید.

825c38058aab0aae.png

با این کار، اکنون می‌توانیم ویدیوهای یوتیوب را ادغام کرده و با استفاده از مدل‌های Vertex AI PalM API تجزیه و تحلیل کنیم. شما می توانید این را بیشتر گسترش دهید تا با پایگاه های داده یا انبارهای داده ادغام شود. برای کسب اطلاعات بیشتر در مورد مدل های موجود، به مستندات محصول Vertex AI LLM مراجعه کنید.

10. تبریک می گویم!

تبریک می گویم! شما با موفقیت از Vertex AI Text Generation LLM به صورت برنامه نویسی برای انجام تجزیه و تحلیل متن روی داده های خود فقط با استفاده از SQL-queries استفاده کرده اید. برای کسب اطلاعات بیشتر در مورد مدل های موجود، مستندات محصول Vertex AI LLM را بررسی کنید.