1. บทนำ
ในโค้ดแล็บนี้ คุณจะเห็นขั้นตอนในการสรุปเนื้อหาที่อัปโหลดใน Google Cloud Storage โดยใช้โมเดลภาษาขนาดใหญ่ของ Vertex AI เพื่อสร้างข้อความ ( text-bison) เป็นฟังก์ชันระบบคลาวด์ใน Python รายการบริการที่ใช้มีดังนี้
- Vertex AI PaLM API: API โมเดลภาษาขนาดใหญ่ (LLM) ที่ให้สิทธิ์เข้าถึงโมเดล PaLM Text Bison ของ AI ของ Google
- Cloud Functions: แพลตฟอร์มแบบ Serverless สำหรับเรียกใช้ฟังก์ชันโดยไม่ต้องจัดการเซิร์ฟเวอร์
- Cloud Storage: บริการที่มีการจัดการสำหรับจัดเก็บข้อมูลที่ไม่เป็นโครงสร้าง
- Cloud Logging: บริการที่มีการจัดการครบวงจรซึ่งช่วยให้คุณจัดเก็บ ค้นหา วิเคราะห์ ตรวจสอบ และแจ้งเตือนเกี่ยวกับข้อมูลการบันทึกได้
สิ่งที่คุณจะสร้าง
คุณจะได้สร้างแอปพลิเคชันที่ทําให้ใช้งานได้เป็นฟังก์ชัน Cloud ของ Python เพื่อสรุปข้อความโดยใช้ Palm API
2. ข้อกำหนด
3. ก่อนเริ่มต้น
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าเปิดใช้การเรียกเก็บเงินในโปรเจ็กต์หรือไม่
- ตรวจสอบว่าได้เปิดใช้ API ที่จำเป็นทั้งหมด (Cloud Storage API, Vertex AI API, Cloud Function API และการบันทึกในระบบคลาวด์) แล้ว
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ
- จาก Cloud Console ให้คลิกเปิดใช้งาน Cloud Shell ที่มุมขวาบน
หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คําสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <YOUR_PROJECT_ID>
- ตรวจสอบว่าได้เปิดใช้ API ที่จำเป็นทั้งหมดแล้วโดยเรียกใช้คําสั่งต่อไปนี้จากเทอร์มินัล Cloud Shell
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
- สร้างตัวแปรสภาพแวดล้อมสำหรับ REGION และ PROJECT_ID โดยเรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล Cloud Shell
export PROJECT_ID=<your project id>
export REGION=us-central1
4. Cloud Function เพื่อเรียกใช้ Vertex AI API
เราจะสร้าง Cloud Function ของ Python และเรียกใช้ Vertex AI API ในฟังก์ชันนี้
การสร้างบัญชีบริการใหม่
สร้างบัญชีบริการใหม่โดยเรียกใช้คําสั่งต่อไปนี้ในเทอร์มินัล Cloud Shell
gcloud iam service-accounts create vertex-service-acc
หากต้องการให้สิทธิ์เข้าถึงโปรเจ็กต์และทรัพยากร ให้มอบบทบาทให้กับบัญชีบริการ
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com" --role=roles/ml.developer
หากต้องการให้บัญชี Google มีบทบาทที่ให้คุณใช้บทบาทของบัญชีบริการและแนบบัญชีบริการกับทรัพยากรอื่นๆ ให้เรียกใช้คําสั่งด้านล่าง แทนที่ USER_EMAIL ด้วยรหัสอีเมลบัญชี Google
gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
การสร้างฟังก์ชัน Python
PaLM API สําหรับข้อความเหมาะสําหรับงานที่ทําได้ด้วยการตอบกลับ API รายการเดียวโดยไม่ต้องสนทนาต่อเนื่อง มาสร้าง Cloud Function กัน
เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อทําการโคลน repository และไปยังโปรเจ็กต์ (ใช้เทอร์มินัลเดียวกับที่เปิดไว้ในส่วนก่อนหน้า)
git clone https://github.com/rominirani/genai-apptemplates-googlecloud
cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction
โฟลเดอร์ที่เราสนใจในโปรเจ็กต์นี้คือ summarization-gcs-cloudfunction
เปิดเครื่องมือแก้ไข Cloud Shell จากเทอร์มินัล แล้วตรวจสอบเนื้อหาของโฟลเดอร์โปรเจ็กต์ที่เพิ่งโคลนจาก GitHub ไปยังเครื่อง Cloud Shell
โฟลเดอร์นี้มี 2 ไฟล์ ได้แก่
- ไฟล์ Python main.py จะกำหนดฟังก์ชัน Cloud HTTP ง่ายๆ ที่ใช้โมเดลการสร้างข้อความ Vertex AI เพื่อสร้างสรุปสั้นๆ ของอินพุตข้อความ ฟังก์ชันนี้ใช้อินพุตข้อความเป็นพารามิเตอร์และแสดงผลสรุปสั้นๆ ของอินพุต ฟังก์ชันนี้ใช้พารามิเตอร์ที่หลากหลายเพื่อควบคุมกระบวนการสร้าง เช่น ความคิดสร้างสรรค์ ความหลากหลาย และความลื่นไหลของข้อความที่สร้างขึ้น HTTP Cloud Function จะยอมรับออบเจ็กต์คำขอและแสดงผลสรุปของโมเดลเป็นการตอบกลับ
- ไฟล์ requirements.txt มีการพึ่งพาแพ็กเกจ
- functions-framework==3.: ตรวจสอบว่าฟังก์ชันใช้ฟีเจอร์และการแก้ไขข้อบกพร่องล่าสุดของเฟรมเวิร์กฟังก์ชัน
- google-cloud-aiplatform: ต้องใช้ในการใช้โมเดลการสร้างข้อความ Vertex AI
- google-cloud-storage: ต้องระบุเพื่อสร้างที่เก็บข้อมูลใน Google Cloud Storage
- google-cloud-logging: ต้องระบุเพื่อสร้างบันทึก
5. ทำให้ฟังก์ชันใช้งานได้
- สร้างที่เก็บข้อมูล Cloud Storage 2 ที่ดังนี้
- ที่เก็บข้อมูลแรก: ระบบจะใช้ที่เก็บข้อมูล $BUCKET_NAME เพื่ออัปโหลดไฟล์ที่จะสรุป สร้างตัวแปรสภาพแวดล้อมเพื่อจัดเก็บชื่อที่เก็บข้อมูล ดังนี้
export BUCKET_NAME='Your Bucket Name'
- ที่เก็บข้อมูลที่สอง: ระบบจะใช้ที่เก็บข้อมูล $BUCKET_NAME-summaries เพื่อจัดเก็บไฟล์สรุป
- เราจะใช้คำสั่ง gsutil เพื่อสร้างที่เก็บข้อมูล
- gsutil เป็นแอปพลิเคชัน Python ที่ช่วยให้คุณเข้าถึง Cloud Storage จากบรรทัดคำสั่งได้ คุณใช้ gsutil เพื่อทำงานด้านการจัดการที่เก็บข้อมูลและออบเจ็กต์ได้หลากหลาย
- mb ย่อมาจาก "Make Bucket"
gsutil mb -l $REGION gs://"$BUCKET_NAME"
gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
- ตอนนี้เราพร้อมที่จะทําให้ฟังก์ชันใช้งานได้แล้ว แต่ก่อนอื่น โปรดตรวจสอบว่าบัญชีบริการของที่เก็บข้อมูล Cloud Storage มีบทบาทผู้เผยแพร่ Pub/Sub
- ไปที่ Google Cloud Storage แล้วคลิก "การตั้งค่า" ในแผงด้านซ้าย
- คัดลอก "บัญชีบริการ" จากการตั้งค่าและจดบันทึกไว้
- เปิด IAM และผู้ดูแลระบบจากเมนูการนำทางของคอนโซล Google Cloud
- ในแท็บสิทธิ์ ให้คลิก "ให้สิทธิ์เข้าถึง" แล้วป้อนรหัสบัญชีบริการที่คุณจดไว้ในส่วน "ผู้ใช้หลักใหม่" แล้วเลือกบทบาทเป็น "ผู้เผยแพร่ Pub/Sub" แล้วคลิก "บันทึก"
- ติดตั้งใช้งานแหล่งที่มานี้ใน Cloud Functions เรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล Cloud Shell
- ตรวจสอบว่าคุณอยู่ในโฟลเดอร์ summarization-gcs-cloudfunction ในโปรเจ็กต์นี้
- เรียกใช้คำสั่งต่อไปนี้
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
- ในคอนโซล Google Cloud ให้ไปที่ Cloud Functions
ซึ่งจะแสดงรายการ Cloud Function vertex-ai-function ที่เราเพิ่งสร้างพร้อม URL สาธารณะ เราจะใช้ฟังก์ชันนี้เพื่อสร้างทริกเกอร์ GCS
6. เรียกใช้ฟังก์ชัน
เมื่อมีการอัปโหลดไฟล์ในที่เก็บข้อมูล $BUCKET_NAME ทริกเกอร์ GCS จะเรียกใช้ฟังก์ชัน ที่เก็บข้อมูล $BUCKET_NAME"-summaries
มีไฟล์สรุปที่ใช้ชื่อเดียวกัน
ก่อนเริ่มต้น ให้บันทึกไฟล์ story.md ตัวอย่างจากโฟลเดอร์ summarization-gcs-cloudfunction ลงในเครื่อง
- ไปที่ Cloud Storage ในคอนโซล Google Cloud
- เปิดที่เก็บข้อมูล
$BUCKET_NAME
จากรายการที่เก็บข้อมูล - คลิก "อัปโหลดไฟล์" แล้วเลือกไฟล์ story.md
ระบบจะเรียกใช้ฟังก์ชัน summarizeArticles
และเริ่มสรุปเนื้อหาของไฟล์
- คลิกที่ที่เก็บข้อมูลในแผงการนำทางด้านซ้าย
- เปิด
$BUCKET_NAME"-summaries
ที่เก็บข้อมูล
ไฟล์ story.md มีข้อมูลสรุปของเนื้อหาในไฟล์
7. ล้างข้อมูล
โปรดทำตามขั้นตอนต่อไปนี้เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในโพสต์นี้
- ในคอนโซล Google Cloud ให้ไปที่หน้าจัดการทรัพยากร
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิก "ลบ"
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิก "ปิด" เพื่อลบโปรเจ็กต์
- หากต้องการเก็บโปรเจ็กต์ไว้และลบเฉพาะทรัพยากรบางรายการ ให้ไปที่คอนโซล Cloud Storage แล้วคลิกที่ที่เก็บข้อมูล จากนั้นเลือกที่เก็บข้อมูลที่ต้องการลบจากรายการ แล้วคลิก "ลบ"
- นอกจากนี้ คุณยังลบ Cloud Function ได้โดยไปที่ Cloud Function แล้วเลือกฟังก์ชันที่ต้องการลบจากรายการฟังก์ชัน แล้วคลิก "ลบ"
8. ขอแสดงความยินดี
ยินดีด้วย คุณใช้ LLM การสร้างข้อความของ Vertex AI แบบเป็นโปรแกรมเพื่อทำการสรุปข้อความในข้อมูลเรียบร้อยแล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่ใช้ได้ได้จากเอกสารประกอบผลิตภัณฑ์ LLM ของ Vertex AI