1. บทนำ
ดูวิธีวิเคราะห์มุมมองของครีเอเตอร์อินลูเอนเซอร์ใน YouTube เกี่ยวกับบริษัทหรือผลิตภัณฑ์ใดๆ โดยใช้ความสามารถของ Gen AI ของ Google
เมื่อ LLM ถือกำเนิดขึ้น ซึ่งได้นำข้อมูลเชิงลึกจากแหล่งต่างๆ มากมาย เช่น งบดุล การดูในแพลตฟอร์มโซเชียลมีเดีย ทำให้ความคิดเห็นจากผู้ทรงอิทธิพล (Influencer) กลายเป็นเรื่องที่ง่ายขึ้น
อินฟลูเอนเซอร์บนโซเชียลมีเดียโดยเฉพาะในแวดวงเทคโนโลยีและ ผู้คนในแวดวงการเงินกลายเป็นผู้สนับสนุนคนสำคัญขององค์กรหรือคู่แข่งมากขึ้นเรื่อยๆ ผลิตภัณฑ์และ
สิ่งที่คุณจะสร้าง
ใน Codelab นี้ คุณจะได้สำรวจวิธีที่โมเดล 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
ระบบจะแจ้งให้คุณรีสตาร์ทเครื่องรันไทม์หลังจากติดตั้งแพ็กเกจข้างต้น คลิก "รีสตาร์ท RUNTIME" หรือเลือก "รีสตาร์ทรันไทม์" จากเมนูรันไทม์
ตรวจสอบสิทธิ์บัญชี 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
เริ่มต้นโมเดล 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 เพื่อแปลงส่วนวิดีโอเป็นการฝัง ในส่วนนี้ เราจะเริ่มต้นเฉพาะออบเจ็กต์ที่ฝัง ในส่วนของ Store และเรียกข้อมูล เราจะใช้การฝังกับเนื้อหาที่สร้างขึ้นจากวิดีโอ
การแยกส่วนใน Generative AI คือกระบวนการแบ่งเนื้อหาขนาดใหญ่ออกเป็น "ส่วนเล็กๆ ที่จัดการได้" หรือ "ส่วนเล็กๆ" เนื่องจากโมเดล Generative 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 กับ 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 ได้ คุณยังขยายระยะเวลานี้ให้ผสานรวมกับฐานข้อมูลหรือคลังข้อมูลได้ด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่พร้อมใช้งานได้ที่เอกสารประกอบผลิตภัณฑ์ Vertex AI LLM
10. ยินดีด้วย
ยินดีด้วย คุณได้ใช้ Vertex AI Text Generation LLM แบบเป็นโปรแกรมเพื่อวิเคราะห์ข้อความในข้อมูลโดยใช้เฉพาะการค้นหา SQL เท่านั้นเรียบร้อยแล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่พร้อมใช้งานได้ในเอกสารประกอบผลิตภัณฑ์ Vertex AI LLM