1. Giới thiệu
Trong lớp học lập trình này, bạn có thể tìm thấy các bước để tóm tắt nội dung được tải lên trong Google Cloud Storage, sử dụng Mô hình ngôn ngữ lớn Vertex AI để tạo văn bản ( text-bison) dưới dạng một hàm Cloud trong Python. Danh sách các dịch vụ được sử dụng là:
- Vertex AI PaLM API: Một API mô hình ngôn ngữ lớn (LLM) cung cấp quyền truy cập vào mô hình PaLM Text Bison của AI của Google.
- Cloud Functions: Một nền tảng phi máy chủ để chạy các hàm mà không cần quản lý máy chủ.
- Cloud Storage: Một dịch vụ được quản lý để lưu trữ dữ liệu không có cấu trúc.
- Cloud Logging: Một dịch vụ được quản lý toàn diện, cho phép bạn lưu trữ, tìm kiếm, phân tích, giám sát và cảnh báo về dữ liệu ghi nhật ký.
Sản phẩm bạn sẽ tạo ra
Bạn sẽ tạo một ứng dụng được triển khai dưới dạng một hàm Cloud Functions Python để tóm tắt văn bản bằng Palm API.
2. Yêu cầu
3. Trước khi bắt đầu
- Trong Google Cloud Console, trên trang bộ chọn dự án, hãy chọn hoặc tạo một dự án Google Cloud.
- Đảm bảo rằng bạn đã bật tính năng thanh toán cho dự án trên đám mây của bạn. Tìm hiểu cách kiểm tra xem tính năng thanh toán đã được bật trên một dự án hay chưa.
- Đảm bảo rằng bạn đã bật tất cả các API cần thiết (Cloud Storage API, Vertex AI API, Cloud Function API và Cloud Logging)
- Bạn sẽ sử dụng Cloud Shell, một môi trường dòng lệnh chạy trong Google Cloud. Tham khảo tài liệu để biết các lệnh và cách sử dụng gcloud.
- Trên Cloud Console, hãy nhấp vào Activate Cloud Shell (Kích hoạt Cloud Shell) ở góc trên cùng bên phải:

Nếu dự án của bạn chưa được thiết lập, hãy sử dụng lệnh sau để thiết lập:
gcloud config set project <YOUR_PROJECT_ID>
- Đảm bảo rằng bạn đã bật tất cả các API cần thiết bằng cách chạy lệnh sau từ Cloud Shell Terminal:
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
- Tạo các biến Môi trường cho REGION và PROJECT_ID bằng cách chạy lệnh sau từ Cloud Shell Terminal:
export PROJECT_ID=<your project id>
export REGION=us-central1
4. Hàm Cloud để gọi Vertex AI API
Chúng ta sẽ tạo một hàm Cloud Python và gọi Vertex AI API trong hàm này.
Tạo tài khoản dịch vụ mới
Tạo một tài khoản dịch vụ mới bằng cách thực thi lệnh sau trong Cloud Shell Terminal.
gcloud iam service-accounts create vertex-service-acc
Để cấp quyền truy cập vào dự án và tài nguyên của bạn, hãy cấp một vai trò cho tài khoản dịch vụ.
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com" --role=roles/ml.developer
Để cấp cho Tài khoản Google của bạn một vai trò cho phép bạn sử dụng các vai trò của tài khoản dịch vụ và đính kèm tài khoản dịch vụ vào các tài nguyên khác, hãy chạy lệnh bên dưới. Thay thế USER_EMAIL bằng Mã nhận dạng email Tài khoản Google của bạn.
gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Tạo hàm Python
PaLM API cho văn bản là lựa chọn lý tưởng cho các tác vụ có thể hoàn thành bằng một phản hồi API mà không cần trò chuyện liên tục. Hãy tạo hàm Cloud cho API này ngay.
Thực thi các lệnh sau trong Cloud Shell để sao chép kho lưu trữ và chuyển đến dự án (sử dụng cùng một cửa sổ dòng lệnh đã mở trong phần trước):
git clone https://github.com/rominirani/genai-apptemplates-googlecloud
cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction
Thư mục mà chúng ta quan tâm ở đây trong dự án này là: summarization-gcs-cloudfunction.
Mở Cloud Shell Editor từ cửa sổ dòng lệnh và kiểm tra nội dung của thư mục dự án vừa được sao chép từ github vào máy Cloud Shell.
Thư mục này chứa 2 tệp:
- Tệp Python main.py xác định một hàm Cloud HTTP đơn giản sử dụng Mô hình tạo văn bản Vertex AI để tạo bản tóm tắt ngắn gọn về dữ liệu đầu vào văn bản. Hàm này lấy dữ liệu đầu vào văn bản làm tham số và trả về bản tóm tắt ngắn gọn về dữ liệu đầu vào. Hàm này sử dụng nhiều tham số để kiểm soát quá trình tạo, chẳng hạn như tính sáng tạo, tính đa dạng và tính trôi chảy của văn bản được tạo. Hàm Cloud HTTP chấp nhận một đối tượng yêu cầu và trả về bản tóm tắt của mô hình dưới dạng phản hồi.
- Tệp requirements.txt có các phần phụ thuộc gói:
- functions-framework==3.: Đảm bảo rằng hàm sử dụng các tính năng và bản sửa lỗi mới nhất của Functions Framework.
- google-cloud-aiplatform: Bắt buộc phải sử dụng Mô hình tạo văn bản Vertex AI.
- google-cloud-storage: Bắt buộc phải tạo bộ chứa lưu trữ trong Google Cloud Storage.
- google-cloud-logging: Bắt buộc phải tạo nhật ký.
5. Triển khai hàm
- Tạo hai bộ chứa Cloud Storage:
- Bộ chứa đầu tiên: Bộ chứa $BUCKET_NAME sẽ được dùng để tải các tệp lên nhằm tóm tắt. Tạo biến môi trường để lưu trữ tên bộ chứa như sau:
export BUCKET_NAME='Your Bucket Name'
- Bộ chứa thứ hai: Bộ chứa $BUCKET_NAME-summaries sẽ được dùng để lưu trữ tệp đã tóm tắt.
- Chúng ta sẽ sử dụng lệnh gsutil để tạo các bộ chứa:
- gsutil là một ứng dụng Python cho phép bạn truy cập vào Cloud Storage từ dòng lệnh. Bạn có thể sử dụng gsutil để thực hiện nhiều tác vụ quản lý đối tượng và bộ chứa.
- mb là viết tắt của "Make Bucket" (Tạo bộ chứa)
gsutil mb -l $REGION gs://"$BUCKET_NAME"
gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
- Tại thời điểm này, chúng ta đã sẵn sàng triển khai hàm. Tuy nhiên, trước đó, hãy đảm bảo rằng tài khoản dịch vụ của bộ chứa Cloud Storage có vai trò Nhà xuất bản Pub/Sub.
- Chuyển đến Google Cloud Storage rồi nhấp vào "Settings" (Cài đặt) trên ngăn bên trái.

- Sao chép "Service account" (Tài khoản dịch vụ) từ phần cài đặt và ghi lại.
- Mở IAM và Quản trị từ trình đơn điều hướng của bảng điều khiển Cloud.

- Trên thẻ Permissions (Quyền), hãy nhấp vào GRANT ACCESS (CẤP QUYỀN TRUY CẬP) rồi nhập mã nhận dạng Tài khoản dịch vụ mà bạn đã ghi lại, trong phần New principals (Chủ thể mới) và chọn Role (Vai trò) là "Pub/Sub Publisher" (Nhà xuất bản Pub/Sub) rồi nhấp vào SAVE (LƯU).

- Triển khai nguồn này vào Cloud Functions. Chạy lệnh sau từ Cloud Shell Terminal:
- Đảm bảo rằng bạn đang ở trong thư mục summarization-gcs-cloudfunction trong dự án này.
- Thực thi lệnh sau:
gcloud functions deploy summarizeArticles \
--gen2 \
--runtime=python311 \
--source=. \
--region=$REGION \
--project=$PROJECT_ID \
--entry-point=summarize_gcs_object \
--trigger-bucket=$BUCKET_NAME \
--set-env-vars=GCP_PROJECT=$PROJECT_ID,GCP_REGION=$REGION \
--max-instances=1 \
--quiet
- Trong bảng điều khiển Cloud, hãy chuyển đến Cloud Functions::
Thao tác này sẽ liệt kê hàm Cloud vertex-ai-function mà chúng ta vừa tạo cùng với URL công khai của hàm đó. Chúng ta sẽ sử dụng hàm này để tạo một trình kích hoạt GCS.
6. Gọi hàm
Khi một tệp được tải lên trong bộ chứa $BUCKET_NAME*,* trình kích hoạt GCS sẽ gọi hàm. Bộ chứa $BUCKET_NAME"-summaries chứa tệp đã tóm tắt có cùng tên.
Trước khi bắt đầu, hãy lưu tệp story.md mẫu từ thư mục summarization-gcs-cloudfunction vào máy cục bộ.
- Trong bảng điều khiển Cloud, hãy chuyển đến Cloud Storage.
- Mở bộ chứa
$BUCKET_NAMEcủa bạn từ danh sách bộ chứa. - Nhấp vào Upload files (Tải tệp lên) rồi chọn tệp story.md.
Hàm summarizeArticles được kích hoạt và bắt đầu tóm tắt nội dung của tệp.
- Trong ngăn điều hướng bên trái, hãy nhấp vào Buckets (Bộ chứa).
- Mở bộ chứa
$BUCKET_NAME"-summariescủa bạn.
Tệp story.md chứa bản tóm tắt nội dung của tệp.
7. Dọn dẹp
Để tránh bị tính phí vào tài khoản Google Cloud cho các tài nguyên được sử dụng trong bài đăng này, hãy làm theo các bước sau:
- Trong bảng điều khiển Cloud, hãy chuyển đến trang Quản lý tài nguyên.
- Trong danh sách dự án, hãy chọn dự án mà bạn muốn xoá, rồi nhấp vào Delete (Xoá).
- Trong hộp thoại, hãy nhập mã dự án, rồi nhấp vào Shut down (Tắt) để xoá dự án.
- Nếu bạn muốn giữ lại dự án và chỉ xoá một số tài nguyên, hãy chuyển đến Cloud Storage Console, nhấp vào Buckets (Bộ chứa) rồi trong danh sách, hãy đánh dấu vào các bộ chứa mà bạn muốn xoá và nhấp vào DELETE (XOÁ).
- Bạn cũng có thể xoá hàm Cloud bằng cách chuyển đến Cloud Functions rồi trong danh sách các hàm, hãy đánh dấu vào hàm mà bạn muốn xoá và nhấp vào DELETE (XOÁ).
8. 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 Vertex AI theo phương thức lập trình để tóm tắt văn bản trên dữ liệu của mình. Hãy xem tài liệu về sản phẩm Vertex AI LLM để tìm hiểu thêm về các mô hình hiện có.