1. บทนำ
ดูวิธีวิเคราะห์ยอดดูของอินฟลูเอนเซอร์ใน YouTube เกี่ยวกับบริษัทหรือผลิตภัณฑ์ใดก็ตามโดยใช้ความสามารถของ Gen AI ของ Google
การถือกำเนิดของ LLM ที่ใช้ข้อมูลเชิงลึกจากแหล่งข้อมูลที่หลากหลาย เช่น งบดุล ยอดดูบนแพลตฟอร์มโซเชียลมีเดีย ความคิดเห็นของอินฟลูเอนเซอร์ ทำให้การวิเคราะห์ข้อมูลดังกล่าวทำได้ง่ายยิ่งขึ้น
อินฟลูเอนเซอร์บนโซเชียลมีเดีย โดยเฉพาะในโลกเทคโนโลยีและการเงิน ได้รับการมองว่าเป็นผู้สนับสนุนหลักขององค์กรหรือผลิตภัณฑ์และนโยบายของคู่แข่งมากขึ้นเรื่อยๆ
สิ่งที่คุณจะสร้าง
ใน Codelab นี้ คุณจะได้ดูว่าโมเดล PaLM2 ใน Vertex AI และ Langchain ทำงานร่วมกันเพื่อโซลูชันข้อมูลวิเคราะห์ของอินฟลูเอนเซอร์บน YouTube ได้อย่างไร
สภาพแวดล้อม
ไปที่ https://colab.research.google.com/#create=true เพื่อสร้าง Notebook ใหม่ในสภาพแวดล้อมแซนด์บ็อกซ์ของ Google Colab
2. ติดตั้งแพ็กเกจและตรวจสอบสิทธิ์
ในเซลล์แรกของ Notebook ใหม่ ให้ใช้คำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจที่จำเป็น
!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 แล้วค้นหาบริการ IAM และผู้ดูแลระบบ ในแท็บสิทธิ์ในส่วนดูตามผู้รับสิทธิ์ ให้เลือกให้สิทธิ์เข้าถึง ป้อน / เลือกหลักการ จากนั้นเพิ่มบทบาท "ผู้ใช้ Vertex AI" แล้วบันทึก ดังที่แสดงในรูปภาพด้านล่าง

ตอนนี้กลับไปที่แท็บ Colab แล้วป้อนข้อมูลโค้ดด้านล่างในเซลล์ที่ 2 ในไฟล์ที่กำลังทำงานอยู่ ซึ่งจะตรวจสอบการตรวจสอบสิทธิ์
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 เพื่อแปลงก้อนวิดีโอเป็นการฝัง ในส่วนนี้ของโค้ด เราจะเริ่มต้นออบเจ็กต์การฝังเท่านั้น ในส่วนจัดเก็บและเรียกข้อมูล เราจะใช้การฝังกับก้อนข้อมูลที่สร้างจากวิดีโอ
การแบ่งกลุ่มใน Generative AI คือกระบวนการแบ่งเนื้อหาขนาดใหญ่ออกเป็นส่วนย่อยๆ ที่จัดการได้ง่ายขึ้นหรือ "กลุ่ม" เราทำเช่นนี้เนื่องจากโมเดล Generative AI มีข้อจำกัดเกี่ยวกับปริมาณข้อมูลที่ประมวลผลได้ในครั้งเดียว การแบ่งข้อมูลออกเป็นก้อนๆ ช่วยให้โมเดลมุ่งเน้นไปที่ก้อนข้อมูลทีละก้อน และสร้างเอาต์พุตที่แม่นยำและสอดคล้องกันมากขึ้น
การฝังเป็นวิธีแสดงเนื้อหาเป็นเวกเตอร์ของตัวเลข ซึ่งช่วยให้คอมพิวเตอร์เข้าใจความหมายของข้อมูลได้ซับซ้อนกว่าวิธีการแบบเดิม เช่น การตรวจจับช็อตหรือการแยกคีย์เฟรม หากเป็นวิดีโอ และ Bag-of-Words หากเป็นข้อมูลภาษา
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})
สร้างเชน Retriever
สร้างเชนตัวดึงข้อมูลเพื่อตอบคำถาม ในส่วนนี้ เราจะเชื่อมโยง LLM โมเดล Vertex AI Text Bison กับตัวดึงข้อมูลที่ดึงข้อมูลการฝังจาก 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. ทดสอบโซลูชัน
ตอนนี้มาทดสอบโซลูชันกัน เรียกใช้เซลล์ที่มีโค้ดด้านบน ดู UI ในผลลัพธ์ของเซลล์หรือคลิกลิงก์ที่สร้างขึ้น คุณควรจะเห็นภาพอินเทอร์เฟซที่มีคอมโพเนนต์อินพุต-เอาต์พุต ป้อนคำถามในวิดีโอและดูคำตอบของโมเดล

ด้วยฟีเจอร์นี้ ตอนนี้เราจึงสามารถผสานรวมวิดีโอ YouTube และวิเคราะห์วิดีโอโดยใช้โมเดล Vertex AI PaLM API ได้แล้ว คุณยังขยายการทำงานนี้เพื่อผสานรวมกับฐานข้อมูลหรือคลังข้อมูลได้อีกด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่มีให้บริการได้ที่เอกสารประกอบสำหรับผลิตภัณฑ์ LLM ของ Vertex AI
10. ยินดีด้วย
ยินดีด้วย คุณใช้ LLM การสร้างข้อความของ Vertex AI โดยอัตโนมัติเพื่อทำการวิเคราะห์ข้อความในข้อมูลโดยใช้เฉพาะการค้นหา SQL ได้สำเร็จ ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่มีได้ในเอกสารประกอบของผลิตภัณฑ์ LLM ของ Vertex AI