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ụ đượ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.
- Hàm trên đám mây: 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: Dịch vụ được quản lý để lưu trữ dữ liệu không có cấu trúc.
- Cloud Logging: 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 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 Hàm trên đám mây 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 trên Google Cloud.
- Đả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 dự án hay không.
- Đảm bảo bạn đã bật tất cả các API cần thiết (API Cloud Storage, API Vertex AI, API Cloud Function 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 đặt, hãy sử dụng lệnh sau để đặt dự án:
gcloud config set project <YOUR_PROJECT_ID>
- Đảm bảo tất cả các API cần thiết đều được bậ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 biến môi trường cho REGION và PROJECT_ID bằng cách chạy lệnh sau từ Dòng lệnh Cloud Shell:
export PROJECT_ID=<your project id>
export REGION=us-central1
4. Hàm trên đám mây để gọi API Vertex AI
Chúng ta sẽ tạo một Hàm trên đám mây Python và gọi API Vertex AI 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 Dấu nhắc Cloud Shell.
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 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ã 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
API PaLM cho văn bản rất phù hợp với những nhiệm vụ có thể hoàn thành bằng một phản hồi API mà không cần cuộc trò chuyện liên tục. Hãy tạo Hàm trên đám mây cho ứng dụng 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 trong dự án này là: summarization-gcs-cloudfunction.
Mở Trình chỉnh sửa Cloud Shell 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 sang 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 trên đám mây HTTP đơn giản sử dụng Mô hình tạo văn bản AI Vertex để tạo bản tóm tắt ngắn về dữ liệu đầu vào văn bản. Hàm này lấy dữ liệu đầu vào dạng văn bản làm tham số và trả về một bản tóm tắt ngắ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, sự đa dạng và tính trôi chảy của văn bản được tạo. Hàm trên đám mây 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 Khung hàm.
- 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 để tạo bộ chứa bộ nhớ trong Google Cloud Storage.
- google-cloud-logging: Bắt buộc để 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 để tóm tắt. Tạo biến môi trường để lưu trữ tên Vùng 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 thao tác quản lý đối tượng và bộ chứa.
- mb là viết tắt của "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 trên Google Cloud Storage có vai trò là Nhà xuất bản Pub/Sub.
- Chuyển đến Google Cloud Storage rồi nhấp vào "Cài đặt" trong ngăn bên trái.
- Sao chép "Tài khoản dịch vụ" trong phần cài đặt rồi ghi lại.
- Mở IAM và Quản trị viên trong trình đơn Điều hướng của Google Cloud Console.
- Trên thẻ Quyền, hãy nhấp vào CẤP QUYỀN TRUY CẬP rồi nhập mã tài khoản dịch vụ mà bạn đã ghi chú trong phần Chủ thể mới, sau đó chọn Vai trò là "Nhà xuất bản Pub/Sub" rồi nhấp vào LƯU.
- Triển khai nguồn này cho Cloud Functions. Chạy lệnh sau đây từ Dấu nhắc dòng lệnh trên đám mây:
- Đảm bảo rằng bạn đang ở 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 Google Cloud Console, hãy chuyển đến Cloud Functions (Hàm trên đám mây):
Thao tác này sẽ liệt kê Hàm trên đám mây 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 điều kiện 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, điều kiện kích hoạt GCS sẽ gọi hàm này. Bộ chứa $BUCKET_NAME"-summaries
bao gồm 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ủa bạn.
- Trong Google Cloud Console, hãy chuyển đến Cloud Storage.
- Mở bộ chứa
$BUCKET_NAME
trong danh sách bộ chứa. - 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.
- Trong ngăn điều hướng bên trái, hãy nhấp vào Bộ chứa.
- Mở bộ chứa
$BUCKET_NAME"-summaries
.
Tệp story.md bao gồm bản tóm tắt nội dung của tệp.
7. Dọn dẹp
Để tránh bị tính phí cho tài khoản Google Cloud của bạn đối với 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 Google Cloud Console, 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 Xoá.
- Trong hộp thoại, hãy nhập mã dự án rồi nhấp vào 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 bảng điều khiển Cloud Storage, nhấp vào Bộ chứa, rồi trong danh sách, hãy đánh dấu vào các bộ chứa bạn muốn xoá rồi nhấp vào XOÁ.
- Bạn cũng có thể xoá Chức năng trên đám mây bằng cách chuyển đến Chức năng trên đám mây, sau đó đánh dấu vào chức năng bạn muốn xoá trong danh sách chức năng rồi 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ô hình ngôn ngữ lớn (LLM) Tạo văn bản của 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 LLM của Vertex AI để tìm hiểu thêm về các mô hình hiện có.