1. บทนำ
ชุดข้อมูลขนาดใหญ่มีข้อมูลเชิงลึกที่มีค่า แต่การดึงข้อมูลเชิงลึกที่มีความหมายอาจเป็นงานที่ยาก เครื่องมือข้อมูลวิเคราะห์แบบเดิมมักไม่สามารถให้คำอธิบายที่ซับซ้อนและเหมือนมนุษย์ซึ่งช่วยให้เราเข้าใจเรื่องราวที่แท้จริงภายในข้อมูลได้ คลังข้อมูลมีข้อมูลที่ไม่มีโครงสร้างมากขึ้นเรื่อยๆ แต่ข้อมูลดังกล่าวไม่ได้เข้าถึงได้เสมอไปเพื่อรับข้อมูลเชิงลึก ข้อความ รูปภาพ และวิดีโอที่ไม่มีโครงสร้างมีข้อมูลที่มีคุณค่าต่อการพัฒนาธุรกิจ LLM มอบวิธีใหม่ที่มีประสิทธิภาพในการทําความเข้าใจข้อมูลของคุณ โดยให้คําอธิบาย การวิเคราะห์ความรู้สึก การตรวจหาออบเจ็กต์ และอื่นๆ การเกิดขึ้นของโมเดลหลายรูปแบบ (และความสามารถในการจัดเก็บข้อมูลออบเจ็กต์ เช่น รูปภาพและวิดีโอใน BigQuery ผ่านตารางออบเจ็กต์) การผสานรวม LLM อันทรงพลัง เช่น Gemini 1.0 Pro (สําหรับการวิเคราะห์ที่อิงตามข้อความ) และ Gemini 1.0 Pro Vision (สําหรับการวิเคราะห์ข้อความและรูปภาพ/วิดีโอ) กับ BigQuery สามารถเปลี่ยนวิธีวิเคราะห์ข้อมูลของคุณได้
ในโค้ดแล็บนี้ เราจะดู 2 วิธีต่อไปนี้ในการดึงข้อมูลเชิงลึกจาก LLM จากข้อมูลขององค์กร และปรับขนาดข้อมูลเชิงลึกเหล่านั้นเป็นหลายพันแถวภายใน BigQuery
วิธีที่ 1: การเรียกใช้โมเดลจากระยะไกล
- เรียกใช้ Gemini 1.0 Pro จากภายใน BigQuery โดยใช้
ML.GENERATE_TEXTในการค้นหาSELECT - ใช้วิธีนี้เมื่อโมเดลพร้อมใช้งานเป็นโมเดลระยะไกลใน BigQuery อยู่แล้ว และคุณต้องการใช้โมเดลดังกล่าวทันที ตรวจสอบสถานะของโมเดลที่ต้องการใช้ในเอกสารประกอบของ BigQuery
วิธีที่ 2: การติดตั้งใช้งานฟังก์ชันระยะไกล
- เรียกใช้ Cloud Function ที่ใช้การเรียก Gemini 1.0 Pro Vision ซึ่งแสดงเป็นฟังก์ชันระยะไกลใน BigQuery
- ใช้วิธีนี้เมื่อโมเดลที่ต้องการใช้ไม่พร้อมใช้งานเป็นโมเดลระยะไกลตั้งแต่แรก หรือเมื่อต้องการความยืดหยุ่นและการปรับแต่งเพิ่มเติมในกรณีการใช้งาน
สิ่งที่คุณจะสร้าง
- สำหรับเมธอดการเรียกใช้โมเดลระยะไกล คุณจะต้องสร้างตัวสรุปสถานที่ตั้งสำหรับชุดข้อมูลหนังสือจาก Internet Archive (ซึ่งพร้อมใช้งานแบบสาธารณะใน BigQuery) โดยการเรียกใช้โมเดลระยะไกลสำหรับ Gemini 1.0 Pro ในโครงสร้าง ML.GENERATE_TEXT ใน BigQuery

- สำหรับเมธอด Remote Function Implementation คุณจะต้องสร้างเครื่องมือตรวจสอบรูปภาพเพื่อตรวจสอบรูปภาพทดสอบกับรูปภาพพื้นฐาน ในกรณีนี้ คุณจะต้องสร้างชุดข้อมูลที่มีภาพหน้าจอของรูปภาพทดสอบในตารางภายนอก แล้วขอให้ Gemini 1.0 Pro Vision ตรวจสอบกับรูปภาพพื้นฐาน จากนั้นคุณจะสร้าง Cloud Function ของ Java ที่ใช้การเรียก Gemini Pro Vision และเรียกใช้เป็นฟังก์ชันระยะไกลใน BigQuery

หมายเหตุ
อาจมีโมเดล Generative AI ของ Vertex AI เพิ่มเติมที่พร้อมใช้งานเป็นโมเดลระยะไกลใน BigQuery ซึ่งหมายความว่าคุณสามารถเข้าถึงโมเดลเหล่านี้ด้วยโครงสร้าง ML.GENERATE_TEXT จาก BigQuery ได้ทันที อย่างไรก็ตาม แม้ว่าโมเดลระยะไกลจะพร้อมใช้งาน คุณก็ยังมีตัวเลือกในการสร้างการปรับแต่งขั้นสูงสำหรับกรณีการใช้งานของคุณด้วย Cloud Functions จากนั้นเข้าถึงโมเดลเหล่านี้เป็นฟังก์ชันระยะไกลจาก BigQuery
เหตุผลที่ควรใช้ BigQuery
BigQuery คือคลังข้อมูลในระบบมัลติคลาวด์แบบ Serverless ที่ปรับขนาดได้ตั้งแต่ไบต์จนถึงเพตะไบต์โดยมีค่าใช้จ่ายในการดำเนินงานน้อยที่สุด จึงเป็นตัวเลือกที่ยอดเยี่ยมสำหรับการจัดเก็บข้อมูลการฝึก ML ความสามารถด้านแมชชีนเลิร์นนิง (ML) และการวิเคราะห์ของ BigQuery (BQML) ในตัวช่วยให้คุณสร้างการคาดการณ์แบบไม่ต้องเขียนโค้ดได้โดยใช้การค้นหา SQL เพียงอย่างเดียว นอกจากนี้ คุณยังเข้าถึงข้อมูลจากแหล่งที่มาภายนอกได้ด้วยการค้นหาแบบรวม ซึ่งช่วยลดความจำเป็นในการใช้ไปป์ไลน์ ETL ที่ซับซ้อน
BigQuery เป็นคลังข้อมูลบนระบบคลาวด์ที่มีการจัดการอย่างเต็มรูปแบบ ซึ่งช่วยให้ผู้ใช้สามารถวิเคราะห์ข้อมูลที่มีโครงสร้าง กึ่งโครงสร้าง และไม่มีโครงสร้าง
2. ข้อกำหนด
3. ก่อนเริ่มต้น
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้วหรือไม่
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud และโหลด bq ไว้ล่วงหน้า คลิกเปิดใช้งาน Cloud Shell ที่ด้านบนของคอนโซล Google Cloud

- เมื่อเชื่อมต่อกับ Cloud Shell แล้ว ให้ตรวจสอบว่าคุณได้รับการตรวจสอบสิทธิ์แล้วและตั้งค่าโปรเจ็กต์เป็นรหัสโปรเจ็กต์โดยใช้คำสั่งต่อไปนี้
gcloud auth list
- เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคำสั่ง gcloud รู้จักโปรเจ็กต์ของคุณ
gcloud config list project
- หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <YOUR_PROJECT_ID>
- ไปที่ Gemini สำหรับ Google Cloud Marketplace เพื่อเปิดใช้ API นอกจากนี้ คุณยังใช้คำสั่งต่อไปนี้ในเทอร์มินัล Cloud Shell ได้ด้วย
gcloud services enable cloudaicompanion.googleapis.com --project PROJECT_ID
- ตรวจสอบว่าได้เปิดใช้ API ต่อไปนี้แล้ว
- BigQuery
- การเชื่อมต่อ BigQuery
- Cloud Function
- Cloud Run
- Vertex AI
- Cloud Build
- Cloud Storage API
อีกวิธีหนึ่งนอกเหนือจากการใช้คำสั่ง gcloud คือการไปที่คอนโซลโดยใช้ลิงก์นี้
โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ
4. สร้างชุดข้อมูล BigQuery และการเชื่อมต่อภายนอก
มาเริ่มกันด้วยการสร้างชุดข้อมูลและการเชื่อมต่อทรัพยากรระบบคลาวด์
ชุดข้อมูลใน BigQuery คือคอนเทนเนอร์สำหรับตารางและออบเจ็กต์ทั้งหมดของแอปพลิเคชัน
หากต้องการสร้างชุดข้อมูล ให้ทำดังนี้
- ไปที่หน้า BigQuery ในคอนโซล Google Cloud
- ในแผง Explorer ให้เลือกโปรเจ็กต์ที่ต้องการสร้างชุดข้อมูล
- ขยายตัวเลือกการดำเนินการ (ไอคอนจุดไข่ปลาแนวตั้ง) แล้วคลิกสร้างชุดข้อมูล

- คลิกสร้างชุดข้อมูล
- ป้อน
gemini_bq_fnในช่องรหัสชุดข้อมูล - ตั้งค่าประเภทสถานที่ตั้งเป็น
Multi-regionและยอมรับค่าเริ่มต้นซึ่งคือUS(multiple regions in United States. - คลิกสร้างชุดข้อมูล
- ตรวจสอบว่าได้สร้างชุดข้อมูลและแสดงไว้ภายใต้รหัสโปรเจ็กต์ในแผง Explorer
ต้องมีการเชื่อมต่อ BigQuery เพื่อโต้ตอบกับ Cloud Function หากต้องการสร้างฟังก์ชันระยะไกล คุณต้องสร้างการเชื่อมต่อ BigQuery ใน Codelab นี้ เราจะใช้การเชื่อมต่อ BigLake เพื่อเข้าถึงโมเดลจาก BigQuery ผ่าน Cloud Functions การเชื่อมต่อ BigLake ช่วยเชื่อมต่อแหล่งข้อมูลภายนอกในขณะที่ยังคงการควบคุมการเข้าถึงและความปลอดภัยของ BigQuery แบบละเอียด ซึ่งในกรณีของเราคือ Vertex AI Gemini Pro API
หากต้องการสร้างการเชื่อมต่อ BigLake ให้ทำดังนี้
- คลิกเพิ่มในแผงสำรวจของหน้า BigQuery

- คลิกการเชื่อมต่อกับแหล่งข้อมูลภายนอก
- จากเมนูประเภทการเชื่อมต่อ ให้เลือกโมเดลระยะไกล ฟังก์ชันระยะไกล และ BigLake (ทรัพยากรระบบคลาวด์) ของ Vertex AI
- ในช่องรหัสการเชื่อมต่อ ให้ป้อนชื่อการเชื่อมต่อเป็น
gemini-bq-conn - ตั้งค่าประเภทสถานที่ตั้งเป็น
Multi-regionและยอมรับค่าเริ่มต้นซึ่งคือUS(multiple regions in United States. - คลิกสร้างการเชื่อมต่อ
- คลิกไปที่การเชื่อมต่อ แล้วคัดลอกรหัสบัญชีบริการในแผงข้อมูลการเชื่อมต่อ

- ไปที่หน้า IAM และผู้ดูแลระบบ แล้วคลิกให้สิทธิ์เข้าถึง
- วางรหัสบัญชีบริการในช่องหลักการใหม่
- เลือก
Vertex AI userบทบาทจากรายการบทบาท แล้วคลิกบันทึก

ตอนนี้คุณสร้างชุดข้อมูลและการเชื่อมต่อ BigQuery เรียบร้อยแล้ว จากนั้นคุณจะทำตามขั้นตอนที่จำเป็นสำหรับการเรียกใช้โมเดลระยะไกล
5. กรณีการใช้งาน #1 การเรียกใช้โมเดลระยะไกล: ตั้งค่าการเรียกใช้โมเดลระยะไกล
ตอนนี้คุณได้สร้างชุดข้อมูลและการเชื่อมต่อแล้ว มาสร้างโมเดลใน BigQuery โดยอิงตามโมเดลพื้นฐาน Gemini Pro ของ Vertex AI กัน เมื่อสิ้นสุดแบบฝึกหัดนี้ คุณจะมีแอปพลิเคชัน LLM ที่ใช้งานได้โดยใช้เฉพาะการค้นหา SQL
ขั้นตอนที่ 1: สร้างตาราง BigQuery ที่มีข้อมูลนำเข้าสำหรับโมเดลระยะไกล
สร้างตารางชื่อ books ในชุดข้อมูลที่สามารถเก็บระเบียนประมาณ 50 รายการจากตาราง bigquery-public-data.gdelt_internetarchivebooks.1905 ในชุดข้อมูล Internet Archive Books ซึ่ง BigQuery จัดหามาเพื่อการใช้งานสาธารณะ
โดยให้เรียกใช้คำสั่ง DDL (Data Definition Language) ต่อไปนี้จากแผงแก้ไข SQL ของ BigQuery
create or replace table gemini_bq_fn.books as (
select *
from
bigquery-public-data.gdelt_internetarchivebooks.1905 limit 50)
ขั้นตอนที่ 2 : สร้างโมเดล BigQuery
สร้างโมเดลในชุดข้อมูล โดยให้เรียกใช้ DDL ต่อไปนี้จากแผงเครื่องมือแก้ไข SQL ของ BigQuery
CREATE MODEL `gemini_bq_fn.gemini_remote_model`
REMOTE WITH CONNECTION `us.gemini-bq-conn`
OPTIONS(ENDPOINT = 'gemini-pro');
สังเกตว่าระบบสร้างโมเดลพร้อมตัวเลือกในการดูโมเดล
ขั้นตอนที่ 3 : ทดสอบแอปพลิเคชัน Generative AI ใหม่
ใช้ฟังก์ชัน ML.GENERATE_TEXT ในการค้นหา SELECT เพื่อส่งคำขอไปยังโมเดลระยะไกล
SELECT ml_generate_text_llm_result as Gemini_Response, prompt as Prompt
FROM ML.GENERATE_TEXT(MODEL `gemini_bq_fn.gemini_remote_model`,
(select 'You are a text summarizer and standardizer. From the following text that contains address locations, standardize and print one standardized, consolidated address. You cannot return empty because you know how to pick up sensible data from the text in this field: ' ||
substring(locations, 0, 200) as prompt
from `gemini_bq_fn.books`),
STRUCT(
TRUE AS flatten_json_output));
คุณควรเห็นผลลัพธ์ต่อไปนี้

ยินดีด้วย คุณได้แสดงให้เห็นถึงวิธีใช้โมเดลระยะไกล (อิงตามgemini-proโมเดล) กับฟังก์ชัน ML.GENERATE_TEXT เพื่อวิเคราะห์ข้อมูลข้อความในตาราง BigQuery เรียบร้อยแล้ว
ตอนนี้มาลองใช้โมเดล Vertex AI อื่นโดยใช้ฟังก์ชันระยะไกลของ BigQuery กัน สมมติว่าคุณต้องการเพิ่มการปรับแต่งและความยืดหยุ่นในการใช้โมเดลจากระยะไกลใน BigQuery ดูโมเดลที่รองรับได้ในเอกสารประกอบของ BigQuery
6. กรณีการใช้งาน #2 การติดตั้งใช้งานฟังก์ชันระยะไกล: ตั้งค่าการติดตั้งใช้งานฟังก์ชันระยะไกล
ในแบบฝึกหัดนี้ คุณจะได้สร้างฟังก์ชันใน BigQuery โดยอิงตามฟังก์ชัน Cloud ของ Java ที่ใช้โมเดลพื้นฐาน Gemini 1.0 Pro Vision ก่อนอื่นคุณจะต้องสร้างและติดตั้งใช้งาน Java Cloud Function เพื่อเปรียบเทียบรูปภาพโดยใช้โมเดล Gemini 1.0 Pro Vision จากนั้นจึงสร้างฟังก์ชันระยะไกลใน BigQuery ที่เรียกใช้ Cloud Function ที่ติดตั้งใช้งาน โปรดทราบว่าคุณสามารถทำตามขั้นตอนเดียวกันนี้สำหรับการเรียกใช้ฟังก์ชันระยะไกลใน BigQuery ได้
มาเริ่มกันเลย
ขั้นตอนที่ 1: สร้าง Java Cloud Function
คุณจะสร้างฟังก์ชันระบบคลาวด์รุ่นที่ 2 ใน Java เพื่อตรวจสอบรูปภาพทดสอบกับรูปภาพพื้นฐาน ระบบจะจัดเก็บรูปภาพพื้นฐานไว้ในชุดข้อมูลที่มีภาพหน้าจอของรูปภาพทดสอบในตารางภายนอกใน BigQuery คุณจะตรวจสอบรูปภาพโดยใช้โมเดล Gemini Pro Vision (Java SDK) จากนั้นคุณจะทำให้ Java Cloud Function ใช้งานได้กับปลายทาง REST
โปรดทำตามขั้นตอนต่อไปนี้
- เปิดใช้ Cloud Shell Editor
- หากใช้เอดิเตอร์เวอร์ชันเดิม ให้คลิกลองใช้เอดิเตอร์ใหม่
- คลิก Cloud Code - ลงชื่อเข้าใช้ในแถบสถานะ
- หากได้รับแจ้งให้อนุญาต Cloud Shell Editor เพื่อทำการเรียก Google Cloud API ให้คลิกให้สิทธิ์ ทำตามข้อความแจ้งเพื่อลงชื่อเข้าใช้บัญชี Google ตอนนี้คุณเชื่อมต่อกับ Google Cloud แล้ว
- หากไม่เห็นโปรเจ็กต์ในแถบสถานะของ Cloud Code ให้คลิก Cloud Code - ลงชื่อเข้าใช้ > เลือกโปรเจ็กต์ Google Cloud เลือกโปรเจ็กต์ Google Cloud ที่คุณต้องการสร้าง Cloud Functions โปรเจ็กต์จะโหลดและกลายเป็นโปรเจ็กต์ที่ใช้งานอยู่ใน Cloud Shell Editor
- คลิกชื่อโปรเจ็กต์ที่ใช้งานอยู่ในแถบสถานะของ Cloud Code ในเมนู Quick Pick ที่ปรากฏขึ้น ให้เลือกแอปพลิเคชันใหม่
- ในกล่องโต้ตอบสร้างแอปพลิเคชันใหม่ ให้เลือกแอปพลิเคชัน Cloud Functions

- เลือก Java: Hello World เมื่อได้รับข้อความแจ้งให้เลือกเทมเพลต

- ป้อน
Gemini-BQ-Functionเป็นชื่อโปรเจ็กต์ในเส้นทางโปรเจ็กต์ โครงสร้างโปรเจ็กต์จะปรากฏในมุมมอง Cloud Shell Editor ใหม่

- เพิ่มทรัพยากร Dependency ที่จำเป็นภายในแท็ก
<dependencies>... </dependencies>หรือคัดลอกทรัพยากร Dependency จากไฟล์ pom.xml ตัวอย่าง - เปลี่ยนชื่อชั้นเรียนจาก
HelloWorld.javaเป็นชื่อที่มีความหมายมากขึ้น สมมติว่าGeminiBigQueryFunction.javaเปลี่ยนชื่อแพ็กเกจตามความเหมาะสม - แทนที่โค้ดตัวยึดตำแหน่งในไฟล์ GeminiBigQueryFunction.Java ด้วยโค้ดตัวอย่างที่ระบุไว้ในที่เก็บ GitHub โปรดตรวจสอบว่าได้แทนที่ตัวแปร <YOUR_PROJECT_ID> ด้วยรหัสโปรเจ็กต์ของคุณในโค้ดตัวอย่าง
- ไปที่เทอร์มินัล Cloud Shell ตรวจสอบว่าคุณอยู่ในไดเรกทอรีโปรเจ็กต์ หากไม่ได้ใช้ ให้ไปที่ไดเรกทอรีโปรเจ็กต์โดยเรียกใช้คำสั่งต่อไปนี้
cd Gemini-BQ-Function
- เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างและติดตั้งใช้งาน Cloud Function
gcloud functions deploy gemini-bq-fn --gen2 --runtime java17 --trigger-http --entry-point cloudcode.helloworld.GeminiBigQueryFunction --allow-unauthenticated --source .
แทนที่จุดแรกเข้าในคำสั่งด้วยจุดแรกเข้าของฟังก์ชัน เอาต์พุตคือ URL ของ REST ในรูปแบบต่อไปนี้
https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/gemini-bq-fn
- ทดสอบ Cloud Function นี้โดยเรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล
gcloud functions call gemini-bq-fn --region=us-central1 --gen2 --data '{"calls":[["https://storage.googleapis.com/img_public_test/image_validator/baseline/1.JPG", "https://storage.googleapis.com/img_public_test/image_validator/test/2.JPG", "PROMPT_ABOUT_THE_IMAGES_TO_GEMINI"]]}'
คำตอบสำหรับพรอมต์ตัวอย่างแบบสุ่ม

ยอดเยี่ยม! Cloud Function ทั่วไปสำหรับการติดตั้งใช้งานโมเดล Gemini Pro Vision พร้อมใช้งานแล้ว มาใช้ปลายทางนี้กับข้อมูล BigQuery โดยตรงจากภายในฟังก์ชันระยะไกลของ BigQuery กัน
ขั้นตอนที่ 2: สร้างตารางออบเจ็กต์และฟังก์ชันระยะไกลของ BigQuery
ข้อกำหนดเบื้องต้น
คุณจะต้องมี Bucket ของ Cloud Storage สำหรับส่วนนี้ของแบบฝึกหัด ทำตามขั้นตอนต่อไปนี้เพื่อสร้าง Bucket ของ Cloud Storage
- หากต้องการสร้าง Bucket ให้ไปที่คอนโซลของ Cloud Storage แล้วคลิกสร้าง
- ป้อน
demo-bq-gemini-public-imageเป็นชื่อที่เก็บข้อมูล แล้วคลิกสร้าง - ยกเลิกการเลือกตัวเลือก
Enforce public access prevention on this bucketแม้ว่าคุณจะสร้าง Bucket นี้เพื่อการเข้าถึงแบบสาธารณะในแบบฝึกหัดนี้ แต่เราขอแนะนำให้คุณป้องกันการเข้าถึงแบบสาธารณะและให้สิทธิ์แก่บัญชีบริการที่เฉพาะเจาะจงตามที่จำเป็นในกรณีการใช้งานระดับองค์กร - หลังจากสร้างที่เก็บข้อมูลแล้ว ให้ไปที่แท็บสิทธิ์เพื่อดูและเปลี่ยนสิทธิ์
- หากต้องการเพิ่มผู้ใช้หลัก ให้คลิกให้สิทธิ์เข้าถึง ระบุรหัสบัญชีบริการเพื่อให้สิทธิ์แก่บัญชีใดบัญชีหนึ่ง หรือระบุ
allUsersเพื่อให้สิทธิ์เข้าถึงแบบสาธารณะแก่ Bucket - เลือกบทบาท
Storage Object Viewerแล้วคลิกบันทึก หากมีข้อความแจ้ง ให้เลือกอนุญาตการเข้าถึงแบบสาธารณะ - ไปที่แท็บออบเจ็กต์ แล้วอัปโหลดรูปภาพพื้นฐานและรูปภาพทดสอบเพื่อเปรียบเทียบ สำหรับ Codelab นี้ คุณสามารถอัปโหลดออบเจ็กต์ต่อไปนี้ซึ่งพร้อมใช้งานแบบสาธารณะ ได้แก่ baseline.JPG, TEST1.JPG และ TEST2.JPG
สร้างตารางออบเจ็กต์ BigQuery
สร้างตารางออบเจ็กต์ภายนอกจาก BigQuery เพื่อเข้าถึงข้อมูลที่ไม่มีโครงสร้างในที่เก็บข้อมูลโดยใช้การเชื่อมต่อและชุดข้อมูลที่คุณสร้างไว้ก่อนหน้านี้ โดยให้รันคำสั่ง DDL (Data Definition Language) ต่อไปนี้จากแผงเครื่องมือแก้ไขการค้นหา BigQuery
CREATE OR REPLACE EXTERNAL TABLE `gemini_bq_fn.image_validation`
WITH CONNECTION `us.gemini-bq-conn`
OPTIONS(object_metadata="SIMPLE", uris=["gs://demo-bq-gemini-public-image/*.JPG"]);
ตรวจสอบว่ามีการสร้างตารางออบเจ็กต์ใหม่ชื่อ image_validation ในชุดข้อมูล
สร้างฟังก์ชันระยะไกลของ BigQuery
สร้างฟังก์ชันระยะไกลใน BigQuery เพื่อเรียกใช้ฟังก์ชัน Cloud ของ Java ที่ใช้โมเดล Gemini Pro Vision สร้างในชุดข้อมูลเดียวกัน โดยให้เรียกใช้ DDL ต่อไปนี้จากแผงเครื่องมือแก้ไข SQL ของคอนโซล BigQuery
CREATE OR REPLACE FUNCTION `gemini_bq_fn.FN_IMAGE_VALIDATE` (baseline STRING, test STRING, prompt STRING) RETURNS STRING
REMOTE WITH CONNECTION `us.gemini-bq-conn`
OPTIONS (
endpoint = 'https://us-central1-<your project id>.cloudfunctions.net/gemini-bq-fn',
max_batching_rows = 1
);
URL ของปลายทางคือ URL ของ REST ที่แสดงผลก่อนหน้านี้ในแบบฝึกหัดนี้ ซึ่งจะสร้างฟังก์ชันระยะไกลใน BigQuery DDL ข้างต้นมีพารามิเตอร์ 3 รายการ พารามิเตอร์ 2 รายการแรกคือ URL ของรูปภาพที่จัดเก็บไว้ในตารางออบเจ็กต์ที่สร้างขึ้นในขั้นตอนก่อนหน้า พารามิเตอร์สุดท้ายคือพรอมต์ที่ส่งไปยังโมเดล (Gemini Pro Vision) คุณดูโค้ด Java Cloud Functions ที่ใช้ในการแยกวิเคราะห์ลายเซ็นนี้ได้ที่
Gson().fromJson(request.getReader(), JsonObject.class);
JsonArray calls_array = requestJson.getAsJsonArray("calls");
JsonArray calls = (JsonArray) calls_array.get(0);
String baseline_url = calls.get(0).toString().replace("\"", "");
String test_url = calls.get(1).toString().replace("\"", "");
String prompt_string = calls.get(2).toString();
เรียกใช้ Gemini จาก BigQuery
ใช้ฟังก์ชันระยะไกลในคำค้นหา SELECT เพื่อทดสอบฟังก์ชันสำหรับการตรวจสอบรูปภาพกับพรอมต์
select gemini_bq_fn.FN_IMAGE_VALIDATE(
'https://storage.googleapis.com/demo-bq-gemini-public-image/Baseline.JPG',
REPLACE(uri, 'gs://', 'https://storage.googleapis.com/') ,
'You are an expert image validator who can respond with JSON result. Find 2 images here. The first one is the reference image. The second image is the test image. Compare the second image to see if the second image is similar to the first in terms of the text present in the image. Respond ONLY in JSON Format with 3 attributes namely SIMILARITY which is a \"YES\" or \"NO\", SIMILARITY_SCORE which is a percentage and DIFFERENCE_COMMENT which is a string.' ) as IMAGE_VALIDATION_RESULT
from `gemini_bq_fn.image_validation`
where uri like '%TEST1%';
ลองใช้การค้นหาด้านบนกับไฟล์ออบเจ็กต์ TEST1 และ TEST2 คุณจะเห็นผลลัพธ์ที่คล้ายกับต่อไปนี้

รูปภาพสำหรับการอ้างอิงมีดังนี้
รูปภาพพื้นฐาน

รูปภาพทดสอบ

โปรดสังเกตว่ารูปภาพทั้ง 2 รูปคล้ายกันตรงที่มีมุมมองคอนโซลระบบคลาวด์ของ Duet AI แต่ข้อความในทั้ง 2 รูปแตกต่างกันเนื่องจากโมเดลในรูปแบบ JSON
เท่านี้คุณก็ทดสอบการติดตั้งใช้งานฟังก์ชันระยะไกลเรียบร้อยแล้ว
7. ประโยชน์และกรณีการใช้งาน
มาดูประโยชน์บางส่วนของการผสานรวม BigQuery กับ Gemini เพื่อการวิเคราะห์ข้อมูลที่มีโครงสร้างและไม่มีโครงสร้างกัน
- นำ GenAI มาใช้กับข้อมูล: ไม่ต้องย้ายข้อมูลไปมา ทำซ้ำ และเพิ่มความซับซ้อนอีกต่อไป คุณวิเคราะห์ข้อมูลและสร้างข้อมูลเชิงลึกได้ภายในสภาพแวดล้อม BigQuery เดียวกัน
- การวิเคราะห์ที่ได้รับการปรับปรุง: คำอธิบายภาษาธรรมชาติของ Gemini จะเพิ่มระดับความเข้าใจใหม่ให้กับข้อมูล และคุณจะทำได้โดยใช้การค้นหา SQL
- ความสามารถในการปรับขนาด: โซลูชันนี้จัดการชุดข้อมูลขนาดใหญ่และการวิเคราะห์ที่ซับซ้อนได้อย่างง่ายดายและใช้ความพยายามในการเขียนโค้ดน้อย
การใช้งานฟีเจอร์นี้มีหลายรูปแบบ พิจารณาสถานการณ์ในด้านการเงิน (การวิเคราะห์แนวโน้มของตลาด) การค้าปลีก (ความรู้สึกของลูกค้า) การดูแลสุขภาพ (สรุปรายงานทางการแพทย์) ฯลฯ ซึ่งทีมวิเคราะห์และทีมธุรกิจของคุณสามารถนำไปใช้ได้โดยใช้ความพยายามและทรัพยากรค่อนข้างน้อย รวมถึงใช้ภาษาและเครื่องมือที่คุ้นเคย
8. ล้างข้อมูล
โปรดทำตามขั้นตอนต่อไปนี้เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในโพสต์นี้
- ใน Google Cloud Console ให้ไปที่หน้าจัดการทรัพยากร
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบโปรเจ็กต์
- หากต้องการเก็บโปรเจ็กต์ไว้ ให้ข้ามขั้นตอนข้างต้นและลบ Cloud Function โดยไปที่ Cloud Functions จากนั้นในรายการฟังก์ชัน ให้เลือกฟังก์ชันที่ต้องการลบ แล้วคลิกลบ
9. ขอแสดงความยินดี
ยินดีด้วย เมื่อผสานรวมโมเดล Gemini เข้ากับ BigQuery คุณจะไม่ใช่แค่นักวิเคราะห์ข้อมูลอีกต่อไป แต่คุณคือผู้เล่าเรื่องราวจากข้อมูล คุณสามารถสร้างเรื่องราวที่ซ่อนอยู่ภายในชุดข้อมูล และเปลี่ยนวิธีทำความเข้าใจข้อมูลเชิงลึก เริ่มทดสอบเลย ใช้เทคนิคนี้กับชุดข้อมูลของคุณเองและค้นพบเรื่องราวภายในข้อมูล เมื่อ BigQuery รองรับข้อมูลที่ไม่มีโครงสร้างในตารางออบเจ็กต์ ( ตารางภายนอก) ให้ลองใช้ Gemini Pro Vision เพื่อสร้างข้อมูลเชิงลึกแบบ Generative ในข้อมูลรูปภาพ ดูคำแนะนำเชิงลึกเพิ่มเติมได้ในเอกสารประกอบสำหรับ Vertex AI, ฟังก์ชันระยะไกลของ BigQuery และ Cloud Functions ที่เก็บ GitHub สำหรับโปรเจ็กต์นี้มีดังนี้ โปรดแจ้งให้เราทราบว่าคุณสร้างอะไรด้วยความรู้ที่ได้จากการเรียนรู้นี้