Vertex AI ile video analizi için üretken yapay zeka

1. Giriş

Google'ın üretken yapay zeka özelliklerinden yararlanarak YouTube'daki Inluencer'ların herhangi bir şirket veya ürün ile ilgili görüşlerini nasıl analiz edeceğinizi öğrenin.

Bilançolar, sosyal medya platformlarındaki görüntülemeler ve sosyal medya platformlarındaki görüntülemeler gibi çok çeşitli kaynaklardan analizlere ulaşan LLM'lerin ortaya çıkmasıyla birlikte sosyal medyada etkisi yüksek kullanıcıların fikirleri de artık daha kolay hale geldi.

Sosyal medyada etkisi yüksek sosyal medya kullanıcıları, özellikle Finans dünyası, bir kuruluşun veya onun rakiplerinin temel destekçileri olarak giderek daha fazla görülmektedir. ürünler ve politikalar.

Neler oluşturacaksınız?

Bu codelab'de, VertexAI'daki PaLM2 modeli ve Langchain'in youtube influencer analizi çözümü için nasıl bir araya geldiğini keşfedeceksiniz.

Ortam

Google Colab korumalı alan ortamında yeni bir not defteri oluşturmak için https://colab.research.google.com/#create=true adresine gidin.

2. Paketleri yükleme ve kimlik doğrulama

Yeni not defterindeki ilk hücrede, gerekli paketleri yüklemek için bu komutları kullanın.

!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

Yukarıdaki paketleri yükledikten sonra çalışma zamanı makinesini yeniden başlatmanız istenir. ÇALIŞMA ZAMANINI YENİDEN BAŞLAT'ı tıklayın veya Çalışma zamanı menüsünden Çalışma zamanını yeniden başlat'ı seçin.

Google Cloud hesabınızın kimliğini doğrulayın

Hesabınızın Vertex AI kullanıcısı rolüne sahip olması gerekir.

  • Google Cloud konsolunu açıp IAM ve Yönetici hizmetini arayın. İZİNLER sekmesinde, İLKELERE GÖRE GÖRÜNTÜLE'nin altındaki ERİŞİM İZNİ VER'i seçin. Ana hesabınızı girin veya seçin, ardından "Vertex AI User" rolünü ekleyin ve KAYDET'i seçin:

c6d26238f3d57a45.png

Şimdi ortak çalışma sekmesine geri dönün ve mevcut çalışma dosyasındaki ikinci hücreye aşağıdaki kod snippet'ini girin. Bu işlem, kimlik doğrulamayı kontrol eder.

from google.colab import auth as google_auth
google_auth.authenticate_user()

Erişim izni vermeniz istenir. Aynı şekilde devam edin.

3. Başlatma ve içe aktarma

Sonraki hücreye aşağıdaki snippet'i girerek projenizi başlatın.

import vertexai
PROJECT_ID = "<projectid>" #enter your project id here
vertexai.init(project=PROJECT_ID)

Çözüm için kitaplıkları içe aktarma

Gerekli kitaplıkları içe aktarmak için bu komutları kullanın.

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 modelini başlatma

Vertex AI LLM modelini başlatmak için bu kod snippet'ini kullanın. Bu komut "llm"yi başlatır Vertex AI'ın Text-Bison modeliyle çalışıyor.

!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. Yerleştirmeleri başlatma

Video parçalarını yerleştirmelere dönüştürmek için Vertex AI yerleştirmelerini kullanacağız. Kodun bu bölümünde yalnızca yerleştirme nesnesini ilk kullanıma hazırlayacağız. Depola ve alma bölümünde, yerleştirmeleri videodan oluşturulan parçalara uygularız.

Üretken yapay zekada parçalama, büyük içerikleri daha küçük ve yönetilebilir parçalara ya da "parçalara" ayırma işlemidir. Bunun nedeni, üretken yapay zeka modellerinin tek seferde işleyebilecekleri veri miktarını sınırlamalarıdır. Model, verileri parçalara ayırarak aynı anda tek bir parçaya odaklanarak daha doğru ve tutarlı çıkışlar oluşturabilir.

Yerleştirmeler, içeriği sayı vektörü olarak göstermenin bir yoludur. Bu sayede bilgisayarlar, verilerin anlamını, videolar ve dil verileri için varsa kare algılama veya animasyon karesi çıkarma gibi geleneksel yöntemlerden daha sofistike bir şekilde anlayabilir.

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. Videoyu yükle ve parçala

Özetlemek veya soru sormak için videoyu yükleyin.

loader = YoutubeLoader.from_youtube_url("https://www.youtube.com/watch?v=A8jyW_6hCGU&t=161s", add_video_info=True)
result = loader.load()

Videoyu böl

Yinelemeli Karakter ayırıcı tekniğini kullanarak videoyu birden çok parçaya bölün.

text_splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=0)
docs = text_splitter.split_documents(result)
print(f"# of documents = {len(docs)}")

6. Depolayın ve alın

Dokümanlarınızı depolayın

Bu alıştırma için ChromaDB kullanıyoruz. Vertex AI Vector Search'ü de kullanabilirsiniz. Dokümanlarınızı depolayın ve vektör deposu olarak ChromaDB'de dizine ekleyin. ChromaDB, LLM'lerle kullanmak üzere vektör yerleştirmelerini depolamak ve almak ve veriler üzerinde anlamsal arama yapmak için kullanılır.

db = Chroma.from_documents(docs, embeddings)
retriever = db.as_retriever(search_type="similarity", search_kwargs={"k": 2})

Retriever zinciri oluştur

Soruyu yanıtlamak için bir retriever zinciri oluşturun. Bu şekilde, Vertex AI Text Bison modeli LLM'si ile Chroma DB'den yerleştirilmiş öğeleri alan retriever ilişkilendirilmiştir.

qa = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True)

7. İsteminizi tanımlayın

Dizine eklenen içerik hakkında soru sorma ve yanıt alma isteminizi tanımlayın.

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 uygulamasını entegre etme

Görsel bir kullanıcı arabirimi etkileşimi için LLM uygulamasını GRadyo ile entegre edin.

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. Çözümü test edin

Şimdi çözümü test edelim. Yukarıdaki kodu içeren hücreyi çalıştırın. Hücre sonucundaki kullanıcı arayüzünü görüntüleyin veya oluşturulan bağlantıyı tıklayın. Giriş-çıkış bileşenlerini kullanarak arayüzü görselleştirebiliyor olmanız gerekir. Videoya soru girin ve modelin yanıtını görüntüleyin.

825c38058aab0aae.png

Bu sayede artık YouTube videolarını entegre edip Vertex AI PaLM API modelleri aracılığıyla analiz edebiliyoruz. Veritabanları veya veri ambarlarıyla entegrasyon sağlamak için bu aralığı daha da genişletebilirsiniz. Mevcut modeller hakkında daha fazla bilgi edinmek için Vertex AI LLM ürün belgelerine bakın.

10. Tebrikler!

Tebrikler! Yalnızca SQL sorgularını kullanarak verilerinizde metin analizi gerçekleştirmek için programatik olarak Vertex AI Metin Oluşturma LLM'sini başarıyla kullandınız. Mevcut modeller hakkında daha fazla bilgi edinmek için Vertex AI LLM ürün belgelerine göz atın.