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:
Ş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.
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.