1. Giới thiệu
Tìm hiểu cách phân tích lượt xem của những người có ảnh hưởng trên YouTube về bất kỳ công ty hoặc sản phẩm nào bằng các tính năng AI tạo sinh của Google.
Với sự ra đời của LLM, việc khai thác thông tin chi tiết từ nhiều nguồn như bảng cân đối kế toán, lượt xem trên các nền tảng truyền thông xã hội, ý kiến của những người có tầm ảnh hưởng trở nên dễ dàng hơn bao giờ hết.
Những người có tầm ảnh hưởng trên mạng xã hội, đặc biệt là trong lĩnh vực Công nghệ và Tài chính, ngày càng được xem là những người ủng hộ chính cho một tổ chức hoặc các sản phẩm và chính sách của đối thủ cạnh tranh.
Sản phẩm bạn sẽ tạo ra
Trong lớp học lập trình này, bạn sẽ khám phá cách mô hình PaLM2 trong VertexAI và Langchain kết hợp với nhau để tạo ra giải pháp phân tích hiệu suất của người có ảnh hưởng trên YouTube.
Môi trường
Truy cập vào https://colab.research.google.com/#create=true để tạo một sổ tay mới trong môi trường hộp cát của Google Colab.
2. Cài đặt gói và xác thực
Trong ô đầu tiên của sổ tay mới, hãy dùng các lệnh này để cài đặt các gói bắt buộc.
!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
Hệ thống sẽ nhắc bạn khởi động lại máy thời gian chạy sau khi cài đặt các gói trên. Nhấp vào KHỞI ĐỘNG LẠI THỜI GIAN CHẠY hoặc chọn Khởi động lại thời gian chạy trong trình đơn Thời gian chạy.
Xác thực tài khoản Google Cloud của bạn
Tài khoản của bạn phải có vai trò Người dùng Vertex AI.
- Mở bảng điều khiển Google Cloud rồi tìm dịch vụ IAM và Quản trị. Trong thẻ PERMISSIONS (QUYỀN) trong phần VIEW BY PRINCIPALS (XEM THEO CHỦ THỂ), hãy chọn GRANT ACCESS (CẤP QUYỀN TRUY CẬP). Nhập / chọn đối tượng chính của bạn rồi thêm vai trò "Người dùng Vertex AI" và LƯU, như minh hoạ trong hình bên dưới:

Bây giờ, hãy quay lại thẻ colab và nhập đoạn mã dưới đây vào ô thứ hai trong tệp đang hoạt động. Thao tác này sẽ kiểm tra quy trình xác thực.
from google.colab import auth as google_auth
google_auth.authenticate_user()
Hệ thống sẽ nhắc bạn cho phép truy cập. Hãy tiếp tục làm như vậy.
3. Khởi tạo và nhập
Khởi chạy dự án bằng cách nhập đoạn mã bên dưới vào ô tiếp theo.
import vertexai
PROJECT_ID = "<projectid>" #enter your project id here
vertexai.init(project=PROJECT_ID)
Nhập các thư viện cho giải pháp
Sử dụng các lệnh này để nhập các thư viện bắt buộc.
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
Khởi chạy mô hình LLM Vertex AI
Sử dụng đoạn mã này để khởi chạy mô hình LLM Vertex AI. Thao tác này sẽ khởi tạo "llm" bằng mô hình Text-Bison của 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. Bắt đầu nhúng
Chúng ta sẽ sử dụng các mục nhúng Vertex AI để chuyển đổi các đoạn video thành mục nhúng. Trong phần mã này, chúng ta sẽ chỉ khởi chạy đối tượng nhúng. Trong phần lưu trữ và truy xuất, chúng ta sẽ áp dụng các vectơ nhúng cho các đoạn được tạo từ video.
Phân đoạn trong AI tạo sinh là quá trình chia nội dung lớn thành các phần nhỏ hơn, dễ quản lý hơn hoặc "đoạn". Điều này là do các mô hình AI tạo sinh có giới hạn về lượng dữ liệu mà chúng có thể xử lý cùng một lúc. Bằng cách chia dữ liệu thành các khối, mô hình có thể tập trung vào từng khối tại một thời điểm và tạo ra kết quả chính xác và nhất quán hơn.
Vectơ nhúng là một cách biểu thị nội dung dưới dạng một vectơ số. Điều này cho phép máy tính hiểu được ý nghĩa của dữ liệu theo cách tinh vi hơn so với các phương pháp truyền thống, chẳng hạn như phát hiện cảnh quay hoặc trích xuất khung hình chính (nếu đó là video) và mô hình túi từ (nếu đó là dữ liệu ngôn ngữ).
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. Tải và chia nhỏ video
Tải video lên để tóm tắt hoặc đặt câu hỏi.
loader = YoutubeLoader.from_youtube_url("https://www.youtube.com/watch?v=A8jyW_6hCGU&t=161s", add_video_info=True)
result = loader.load()
Phân chia video
Chia video thành nhiều đoạn bằng kỹ thuật Recursive Character splitter.
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=0)
docs = text_splitter.split_documents(result)
print(f"# of documents = {len(docs)}")
6. Lưu trữ và truy xuất
Lưu trữ tài liệu
Trong bài tập này, chúng ta sẽ sử dụng ChromaDB. Bạn cũng có thể sử dụng Vertex AI Vector Search. Lưu trữ tài liệu và lập chỉ mục trong ChromaDB dưới dạng một kho lưu trữ vectơ. ChromaDB được dùng để lưu trữ và truy xuất các giá trị nhúng vectơ để sử dụng với các LLM và thực hiện tìm kiếm ngữ nghĩa trên dữ liệu.
db = Chroma.from_documents(docs, embeddings)
retriever = db.as_retriever(search_type="similarity", search_kwargs={"k": 2})
Tạo chuỗi truy xuất
Tạo một chuỗi truy xuất để trả lời câu hỏi. Đây là nơi chúng ta liên kết LLM mô hình Vertex AI Text Bison và trình truy xuất để truy xuất các vectơ nhúng từ Chroma DB.
qa = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True)
7. Xác định câu lệnh
Xác định câu lệnh để đặt câu hỏi và nhận câu trả lời từ nội dung đã được lập chỉ mục.
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. Tích hợp ứng dụng LLM
Tích hợp ứng dụng LLM với Gradio để có một giao diện người dùng trực quan.
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. Kiểm thử giải pháp
Bây giờ, hãy tiến hành kiểm thử giải pháp. Chạy ô chứa mã ở trên. Xem giao diện người dùng trong kết quả ô hoặc nhấp vào đường liên kết được tạo. Bạn sẽ có thể hình dung giao diện với các thành phần đầu vào-đầu ra. Nhập câu hỏi về video và xem câu trả lời của mô hình.

Nhờ đó, giờ đây chúng ta có thể tích hợp các video trên YouTube và phân tích chúng bằng các mô hình Vertex AI PaLM API. Bạn có thể mở rộng hơn nữa để tích hợp với cơ sở dữ liệu hoặc kho dữ liệu. Hãy xem Tài liệu về sản phẩm LLM của Vertex AI để tìm hiểu thêm về các mô hình hiện có.
10. Xin chúc mừng!
Xin chúc mừng! Bạn đã sử dụng thành công một chương trình LLM tạo văn bản của Vertex AI theo cách lập trình để thực hiện phân tích văn bản trên dữ liệu của mình chỉ bằng cách sử dụng các truy vấn SQL. Hãy xem tài liệu về sản phẩm LLM của Vertex AI để tìm hiểu thêm về các mô hình hiện có.