Chức năng đám mây để tóm tắt nội dung bằng PaLM Vertex AI API và Google Cloud Storage

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 Google Cloud Storage, bằng cách 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 trên đám mây trong Python. Danh sách các dịch vụ đã 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 không 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à nhanh chóng nắm bắt dữ liệu trong 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 Cloud Function bằng Python để tóm tắt văn bản bằng Palm API.

2. Yêu cầu

  • Một trình duyệt, chẳng hạn như Chrome hoặc Firefox
  • Một dự án trên Google Cloud đã bật tính năng thanh toán

3. Trước khi bắt đầu

  1. Trong Google Cloud Console, trên trang chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud.
  2. Đảm bảo bạn đã bật tính năng thanh toán cho dự án trên Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trên một dự án hay không.
  3. Đảm bảo 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)
  4. 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.
  5. Trong 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:

51622c00acec2fa.png

Nếu bạn chưa đặt dự án, hãy dùng lệnh sau để đặt dự án:

gcloud config set project <YOUR_PROJECT_ID>
  1. Đảm bảo 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
  1. Tạo biến môi trường cho REGION và PROJECT_ID bằng cách chạy lệnh sau trong 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 địa chỉ 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 rất phù hợp với những 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 Cloud Functions cho việc này ngay bây giờ.

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 thiết bị đầu cuối đã 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 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 của bạn.

Thư mục này chứa 2 tệp:

  1. 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 cho dữ liệu đầu vào văn bản. Hàm này lấy dữ liệu đầu vào là 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. HTTP Cloud Function 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.
  2. Tệp requirements.txt có các phần phụ thuộc của 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 để sử dụng Mô hình tạo văn bản Vertex AI.
  • google-cloud-storage: Cần thiết để tạo bộ chứa lưu trữ trong Google Cloud Storage.
  • google-cloud-logging: Bắt buộc để tạo nhật ký.

5. Triển khai hàm

  1. Tạo hai bộ chứa Cloud Storage:
  • Thùng đầu tiên: Thùng $BUCKET_NAME sẽ được dùng để tải các tệp cần tóm tắt lên. Tạo biến môi trường để lưu trữ tên Bucket 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ẽ dùng lệnh gsutil để tạo các vùng 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ể dùng gsutil để thực hiện nhiều tác vụ quản lý đối tượng và vùng chứa.
  • mb là viết tắt của "Make Bucket" (Tạo vùng lưu trữ)
gsutil mb -l $REGION gs://"$BUCKET_NAME"

gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
  1. Đế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 Cloud Storage Bucket có vai trò Nhà xuất bản Pub/Sub.
  2. Chuyển đến Google Cloud Storage rồi nhấp vào "Cài đặt" ở ngăn bên trái.

8ce34eb05153abf2.png

  1. Sao chép "Tài khoản dịch vụ" trong phần cài đặt và ghi lại.
  2. Mở phần IAM và Quản trị viên trong trình đơn Điều hướng của Google Cloud Console.

c5a7103e90689684.png

  1. Trên thẻ Quyền, hãy nhấp vào 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 chú trong phần Nguyên tắc mới, sau đó chọn Vai trò là "Nhà xuất bản Pub/Sub" rồi nhấp vào LƯU.

11c2df774fa740a9.png

  1. Triển khai nguồn này cho Cloud Functions. Chạy lệnh sau đây qua Cloud Shell Terminal:
  2. Đảm bảo rằng bạn đang ở trong thư mục summarization-gcs-cloudfunction trong dự án này.
  3. 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
  1. Trong Google Cloud Console, hãy chuyển đến Cloud Functions::

Thao tác này sẽ liệt kê Cloud Function 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ẽ 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 bộ chứa $BUCKET_NAME*,* trình kích hoạt GCS sẽ gọi hàm. Thùng $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 trong thư mục summarization-gcs-cloudfunction vào máy tính của bạn.

  1. Trong Google Cloud Console, hãy chuyển đến Cloud Storage.
  2. Mở nhóm $BUCKET_NAME trong danh sách nhóm.
  3. Nhấp vào 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.

  1. Trong ngăn điều hướng bên trái, hãy nhấp vào Buckets (Nhóm).
  2. Mở nhóm $BUCKET_NAME"-summaries của bạn.

Tệp story.md có nội dung tóm tắt về 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 của bạn cho các tài nguyên được dùng trong bài đăng này, hãy làm theo các bước sau:

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Quản lý tài nguyên.
  2. Trong danh sách dự án, hãy chọn dự án bạn muốn xoá rồi nhấp vào Xoá.
  3. Trong hộp thoại, hãy nhập mã dự án rồi nhấp vào Tắt để xoá dự án.
  4. 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 bảng điều khiển Cloud Storage, nhấp vào Buckets (Thùng chứa), rồi trong danh sách, hãy đánh dấu vào các thùng chứa bạn muốn xoá và nhấp vào DELETE (XOÁ).
  5. Bạn cũng có thể xoá Cloud Function 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 bạn muốn xoá và nhấp vào 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 để thực hiện việc 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 LLM của Vertex AI để tìm hiểu thêm về các mô hình hiện có.