การวิเคราะห์เชิงความหมายใน BigQuery ด้วยฟังก์ชัน AI ที่มีการจัดการและ SQL

1. ยินดีต้อนรับ

ใน Codelab นี้ คุณจะได้เรียนรู้วิธีใช้ชุดฟังก์ชัน AI ที่มีการจัดการของ BigQuery เพื่อทำการวิเคราะห์เชิงความหมายที่ซับซ้อน การแยกประเภท การกรองแบบหลายรูปแบบ การรวมเชิงความหมาย และการสรุปหลายแถวภายใน BigQuery Studio โดยใช้ SQL

คุณจะได้สวมบทบาทเป็นนักวิเคราะห์ข้อมูลที่ Cymbal Pets ซึ่งเป็นผู้ค้าปลีกอีคอมเมิร์ซสำหรับอุปกรณ์และเครื่องประดับสำหรับสัตว์เลี้ยง โดยใช้ชุดข้อมูลสาธารณะ bigquery-public-data.cymbal_pets

การวิเคราะห์เชิงความหมายภายในคำค้นหา SQL โดยตรง

โดยปกติแล้ว การใช้แมชชีนเลิร์นนิงหรือโมเดลภาษาขนาดใหญ่ (LLM) กับชุดข้อมูลระดับองค์กรกำหนดให้ต้องย้ายข้อมูลออกจากคลังข้อมูลไปยังสภาพแวดล้อมสมุดบันทึก Python ภายนอก ซึ่งต้องใช้ไปป์ไลน์วิศวกรรมข้อมูลเฉพาะและผู้เชี่ยวชาญด้าน ML

ฟังก์ชัน AI ที่มีการจัดการของ BigQuery ซึ่งรวมถึง AI.SCORE, AI.CLASSIFY, AI.IF และ AI.AGG จะนำข้อมูลเชิงลึกของโมเดลพื้นฐานมาสู่ข้อมูลของคุณโดยตรง BigQuery จะเพิ่มประสิทธิภาพการเลือกโมเดลโดยอัตโนมัติและใช้กลยุทธ์การเขียนข้อความแจ้งใหม่ภายในเพื่อแสดงผลลัพธ์ที่มีความแม่นยำสูงจากข้อความแจ้งภาษาธรรมชาติแบบง่ายๆ

สำหรับชุดข้อมูลขนาดใหญ่ BigQuery มีโหมดที่เพิ่มประสิทธิภาพ ซึ่งใช้การกลั่นโมเดลแบบทันทีและโมเดลพร็อกซีแบบเบาเพื่อแสดงผลการค้นหาที่เร็วขึ้นและถูกลงสูงสุด 100 เท่า

สิ่งที่คุณจะได้ทำ

  • สำรวจข้อมูลการค้าปลีกแบบหลายรูปแบบ ใน BigQuery Studio โดยใช้ SQL
  • ทำการจัดอันดับเชิงความหมาย โดยใช้ AI.SCORE เพื่อประเมินแอตทริบิวต์ผลิตภัณฑ์เชิงอัตวิสัย เช่น "ความเหมาะสมที่จะเป็นของขวัญ"
  • แยกประเภทข้อมูลที่ไม่มีโครงสร้าง โดยใช้ AI.CLASSIFY เพื่อจับคู่ผลิตภัณฑ์กับสัตว์สายพันธุ์เป้าหมาย
  • กรองชิ้นงานรูปภาพแบบหลายรูปแบบ โดยใช้ AI.IF ภายในอนุประโยค WHERE
  • ดำเนินการรวมเชิงความหมายในตารางต่างๆ โดยใช้ AI.IF ในอนุประโยค JOIN ... ON เพื่อจับคู่ระเบียนผลิตภัณฑ์ที่เป็นข้อความกับไฟล์ภาพจากภายนอก
  • สังเคราะห์ข้อมูลเชิงลึกหลายแถว โดยใช้ฟังก์ชันการรวม AI.AGG
  • เพิ่มประสิทธิภาพเวลาในการตอบสนองและค่าใช้จ่ายในการค้นหา ในชุดข้อมูลขนาดใหญ่โดยใช้ AI.IF กับ โหมดที่เพิ่มประสิทธิภาพ (optimization_mode => 'MINIMIZE_COST') และการกลั่นโมเดลพร็อกซี

สิ่งที่คุณต้องมี

  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงินแล้ว
  • เว็บเบราว์เซอร์ เช่น Chrome

2. การตั้งค่าและข้อกำหนด

ก่อนที่จะค้นหาข้อมูลด้วยฟังก์ชัน AI ที่มีการจัดการ คุณต้องกำหนดค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google และเปิดใช้ API ที่จำเป็น

สร้างโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google และเปิดใช้ API

  1. ใน คอนโซล Google Cloud ในหน้าตัวเลือกโปรเจ็กต์ ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud
  2. ตรวจสอบว่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์เปิดใช้การเรียกเก็บเงินแล้ว ดูวิธีตรวจสอบว่าโปรเจ็กต์เปิดใช้การเรียกเก็บเงินแล้วหรือไม่
  3. เปิดใช้ BigQuery, BigQuery Connection และ Agent Platform API

เปิด BigQuery Studio

  1. ในเมนูการนำทางของ คอนโซล Google Cloud ให้คลิก BigQuery เพื่อเปิด BigQuery Studio
  2. ในแถบเครื่องมือของตัวแก้ไข BigQuery Studio ให้คลิก + การค้นหา SQL เพื่อเปิด แท็บการค้นหา SQL ใหม่ คุณจะเขียนและเรียกใช้การค้นหา SQL ทั้งหมดในแท็บ SQL เหล่านี้ตลอด Codelab นี้

สร้างการเชื่อมต่อทรัพยากร Cloud ใน SQL

BigQuery ทำงานภายในขอบเขตข้อมูลที่ปลอดภัย เมื่อตรวจสอบไฟล์แบบหลายรูปแบบภายนอก (เช่น รูปภาพที่เก็บไว้ใน Google Cloud Storage) BigQuery จะใช้การเชื่อมต่อทรัพยากร Cloud เพื่อเข้าถึงการอ้างอิงออบเจ็กต์อย่างปลอดภัยโดยไม่เปิดเผยข้อมูลเข้าสู่ระบบ

เรียกใช้คำสั่งต่อไปนี้ในแท็บ SQL เพื่อสร้างการเชื่อมต่อชื่อ us.conn

CREATE CONNECTION IF NOT EXISTS `us.conn`
OPTIONS (
  connection_type = "CLOUD_RESOURCE"
);

3. สำรวจชุดข้อมูล Cymbal Pets

Cymbal Pets มีแคตตาล็อกผลิตภัณฑ์ที่สมบูรณ์ในชุดข้อมูลสาธารณะภายในตารางชื่อ bigquery-public-data.cymbal_pets.products ระเบียนผลิตภัณฑ์แต่ละรายการจะมีแอตทริบิวต์ที่มีโครงสร้าง เช่น รหัสผลิตภัณฑ์ ชื่อ หมวดหมู่การค้าปลีก ราคา และข้อความอธิบาย

ค้นหาแคตตาล็อกผลิตภัณฑ์

เปิดแท็บ SQL ใน BigQuery Studio แล้วเรียกใช้การค้นหาต่อไปนี้เพื่อตรวจสอบตารางผลิตภัณฑ์

SELECT
  product_id,
  product_name,
  category,
  price,
  description
FROM
  `bigquery-public-data.cymbal_pets.products`;

ผลลัพธ์จะมีลักษณะคล้ายกับผลลัพธ์ต่อไปนี้

ผลการค้นหาของ BigQuery Studio ที่แสดงระเบียนแคตตาล็อกผลิตภัณฑ์

ตรวจสอบรูปภาพผลิตภัณฑ์

Cymbal Pets ยังเก็บข้อมูลอ้างอิงรูปภาพสินค้าไว้ใน bigquery-public-data.cymbal_pets.product_images ด้วย เรียกใช้การค้นหาต่อไปนี้เพื่อดูระเบียนรูปภาพ

SELECT
  uri,
  OBJ.GET_READ_URL(OBJ.MAKE_REF(uri, 'us.conn')).url AS product_image_url,
  metadata
FROM
  `bigquery-public-data.cymbal_pets.product_images`;

ผลลัพธ์จะมีลักษณะคล้ายกับผลลัพธ์ต่อไปนี้

ผลการค้นหาของ BigQuery Studio ที่แสดงตัวอย่างรูปภาพสินค้าและข้อมูลเมตา

จากนั้นคุณจะใช้ฟังก์ชันที่มีการจัดการของ BigQuery เพื่อวิเคราะห์ทั้งข้อมูลข้อความและข้อมูลรูปภาพจากคลังข้อมูลของ Cymbal Pets

4. จัดอันดับผลิตภัณฑ์ตามเกณฑ์เชิงความหมายด้วย AI.SCORE

ฟังก์ชัน AI.SCORE รับอินพุตข้อความและใช้โมเดล Gemini เพื่อให้คะแนนตามเกณฑ์การให้คะแนนภาษาธรรมชาติ โดยแสดงผลคะแนนตัวเลข FLOAT64

หากคุณไม่ได้ระบุเกณฑ์การให้คะแนนอย่างชัดเจน BigQuery จะใช้กลยุทธ์การเขียนข้อความแจ้งใหม่โดยอัตโนมัติเพื่อสร้างเกณฑ์ที่เหมาะสมที่สุดสำหรับโมเดล

ให้คะแนนผลิตภัณฑ์สำหรับ "ความเหมาะสมที่จะเป็นของขวัญ"

สมมติว่าทีมการตลาดของ Cymbal Pets ต้องการสร้างคู่มือของขวัญสำหรับวันหยุด ทีมต้องการจัดอันดับสินค้าทุกรายการในแคตตาล็อกตามความเหมาะสมที่จะเป็นของขวัญสำหรับเจ้าของสัตว์เลี้ยงในระดับ 1 ถึง 10

เรียกใช้การค้นหาต่อไปนี้ในแท็บ SQL

SELECT
  product_name,
  description,
  AI.SCORE(
    ('How "giftable" is this product for a pet owner? ', description,
    'Use a scale from 1-10.')
  ) AS giftability_score
FROM
  `bigquery-public-data.cymbal_pets.products`
ORDER BY
  giftability_score DESC;

ทำความเข้าใจผลลัพธ์

ผลลัพธ์จะมีลักษณะคล้ายกับผลลัพธ์ต่อไปนี้

core_giftability_results.png

ตรวจสอบคอลัมน์ giftability_score ในผลการค้นหา

  • ของเล่นแบบอินเทอร์แอกทีฟที่น่าสนใจ: สินค้าที่น่าสนใจ เช่น Cozy Naps Cat Teaser Wand, Playful Pup Puzzle Toy และ Playful Pup Treat Dispenser ได้รับคะแนนสูงสุด (9.0)
  • สินค้าพิเศษเพื่อความสบายและการขีดข่วน: สินค้าจำเป็นยอดนิยม เช่น Purrfect Perch Cat Scratcher ได้คะแนนสูงที่ 8.0
  • การจัดอันดับปลายทางที่นำไปใช้ได้: เนื่องจาก AI.SCORE แสดงผลคะแนน FLOAT64 ที่เป็นค่าปกติ คุณจึงจัดเรียงผลลัพธ์ด้วย ORDER BY giftability_score DESC หรือกรองรายการที่อาจเป็นไปได้ด้วย WHERE AI.SCORE(...) >= 8.0 ได้ทันทีเพื่อสร้างคู่มือของขวัญอัตโนมัติ

5. แยกประเภทสินค้าในแคตตาล็อกด้วย AI.CLASSIFY

ฟังก์ชัน AI.CLASSIFY ใช้ Gemini เพื่อแยกประเภทระเบียนอินพุตเป็นรายการหมวดหมู่เป้าหมายที่ไม่ต่อเนื่อง ซึ่งระบุเป็นอาร์เรย์ SQL

AI.CLASSIFY รองรับอินพุตแบบหลายรูปแบบ (ข้อความ รูปภาพ เสียง วิดีโอ) และไม่จำเป็นต้องสร้าง ฝึก หรือติดตั้งใช้งานโมเดลการแยกประเภทที่กำหนดเองสำหรับการจัดการอนุกรมวิธาน

แยกประเภทของเล่นตามสัตว์สายพันธุ์เป้าหมาย (ป้ายกำกับเดียว)

สมมติว่าผลิตภัณฑ์บางรายการในแคตตาล็อกของ Cymbal Pets ติดแท็กทั่วไปว่า "ของเล่น" โดยไม่ได้ระบุสัตว์เป้าหมาย คุณสามารถใช้ AI.CLASSIFY เพื่อแยกประเภทของเล่นแต่ละชิ้นตามชื่อและคำอธิบาย

เรียกใช้การค้นหาต่อไปนี้ใน BigQuery Studio

SELECT
  product_name,
  description,
  AI.CLASSIFY(
    ('What animal is this product for?', product_name, ' ', description),
    categories => ["Dog", "Cat", "Bird", "Fish", "Small Animal", "All Pets"]
  ) AS animal_type
FROM
  `bigquery-public-data.cymbal_pets.products`
WHERE
  category = "Toys"
LIMIT 20;

ดูผลลัพธ์

ผลลัพธ์จะมีลักษณะคล้ายกับผลลัพธ์ต่อไปนี้

ผลลัพธ์การค้นหาของ BigQuery Studio ที่แสดงการจัดประเภทสัตว์ AI.CLASSIFY แบบป้ายกำกับเดียว

โดยค่าเริ่มต้น AI.CLASSIFY จะทำการแยกประเภทแบบป้ายกำกับเดียวและแสดงผล STRING ที่มีหมวดหมู่ที่เกี่ยวข้องมากที่สุดรายการเดียวจากอาร์เรย์รายการที่อาจเป็นไปได้ โปรดสังเกตว่า Gemini จับคู่ลูกบอลแคทนิปและของเล่นล่อแมวด้วยขนนกกับ Cat ในขณะที่ของเล่นสำหรับกัดและไม้สำหรับคาบจะจับคู่กับ Dog

กำหนดแท็กหลายรายการด้วยการแยกประเภทแบบหลายป้ายกำกับ

ผลิตภัณฑ์จำนวนมากในแคตตาล็อกการค้าปลีกใช้ได้กับสัตว์เลี้ยงหลายประเภทพร้อมกัน (เช่น เตียงหรืออุโมงค์แบบนุ่มที่เหมาะสำหรับทั้งแมวและสัตว์ขนาดเล็ก)

หากต้องการกำหนดหมวดหมู่หลายรายการให้กับระเบียนเดียว ให้ตั้งค่าพารามิเตอร์ที่ไม่บังคับ output_mode => 'multi' ในโหมดหลายป้ายกำกับ AI.CLASSIFY จะแสดงผล ARRAY ที่มีหมวดหมู่ที่ตรงกันทั้งหมด

เรียกใช้การค้นหาต่อไปนี้ในแท็บ SQL

SELECT
  product_name,
  description,
  AI.CLASSIFY(
    ('Identify all pet types that this product is suitable for: ', product_name, ' ', description),
    categories => ["Dog", "Cat", "Bird", "Fish", "Small Animal", "Reptile"],
    output_mode => 'multi'
  ) AS pet_types
FROM
  `bigquery-public-data.cymbal_pets.products`
WHERE
  category = "Toys";

ผลลัพธ์จะมีลักษณะคล้ายกับผลลัพธ์ต่อไปนี้

ผลลัพธ์การค้นหาของ BigQuery Studio ที่แสดง AI แบบหลายป้ายกำกับ AI.CLASSIFY ซึ่งแสดงผลอาร์เรย์ของประเภทสัตว์เลี้ยง

ตรวจสอบกลไกการแยกประเภท

  • ป้ายกำกับเดียวเทียบกับหลายป้ายกำกับ: หากไม่มี output_mode ฟังก์ชัน AI.CLASSIFY จะแสดงผล STRING แบบสเกลาร์ การตั้งค่า output_mode => 'multi' จะแสดงผล ARRAY ที่มีป้ายกำกับที่ตรงกัน 0, 1 หรือหลายรายการ
  • การกำหนดหลายหมวดหมู่: โปรดสังเกตว่าสินค้าเฉพาะ เช่น Chew-tastic! Dental Chew Toy และ Playful Pup Fetch Stick ได้รับ [Dog] ในขณะที่สินค้าอเนกประสงค์เพื่อความสบาย เช่น Cozy Naps Dog Toy (เตียงสี่เหลี่ยมแบบนุ่ม) ได้รับแท็กหลายรายการอย่างถูกต้อง [Dog, Cat, Small Animal]
  • การจับคู่แบบ Zero-Shot: โมเดลจะประเมินข้อความและข้อความแจ้งที่รวมกันกับอาร์เรย์ categories ที่ระบุโดยไม่จำเป็นต้องใช้โมเดล ML ที่กำหนดเองซึ่งได้รับการฝึกไว้ล่วงหน้า
  • การดำเนินการอาร์เรย์ SQL ปลายทาง: คุณสามารถใช้ฟังก์ชันอาร์เรย์ SQL มาตรฐานของ BigQuery เช่น WHERE 'Cat' IN UNNEST(pet_types) หรือ CROSS JOIN UNNEST(pet_types) เพื่อกรอง แยก และรวมระเบียนที่มีหลายป้ายกำกับ

6. กรองรูปภาพผลิตภัณฑ์แบบหลายรูปแบบด้วย AI.IF

ฟังก์ชัน AI.IF ใช้ Gemini เพื่อประเมินเงื่อนไขภาษาธรรมชาติและแสดงผลบูลีน (TRUE หรือ FALSE)

เนื่องจาก AI.IF รับอินพุตแบบหลายรูปแบบ คุณจึงใช้ฟังก์ชันนี้ได้โดยตรงภายในอนุประโยค WHERE ของ SQL เพื่อกรองไฟล์รูปภาพที่ไม่มีโครงสร้างซึ่งเก็บไว้ใน Cloud Storage

กรองรูปภาพที่มีออบเจ็กต์ที่เฉพาะเจาะจง

สมมติว่าทีมการค้าต้องการค้นหารูปภาพผลิตภัณฑ์ทั้งหมดในแคตตาล็อกที่มีอาหารหรือขนมสำหรับสัตว์เลี้ยง

เรียกใช้การค้นหาต่อไปนี้ในแท็บ SQL

SELECT
  uri,
  OBJ.GET_READ_URL(OBJ.MAKE_REF(uri, 'us.conn')).url AS product_image_url,
  metadata
FROM
  `bigquery-public-data.cymbal_pets.product_images`
WHERE
  AI.IF(
    ('Does this product image contain pet food or snacks? ', OBJ.MAKE_REF(uri, 'us.conn'))
  );

ผลลัพธ์จะมีลักษณะคล้ายกับผลลัพธ์ต่อไปนี้

ผลลัพธ์การค้นหาของ BigQuery Studio ที่แสดงการกรองรูปภาพหลายรูปแบบสำหรับผลิตภัณฑ์ที่มีอาหารหรือขนมสำหรับสัตว์เลี้ยง

วิธีการทำงานของการกรองแบบหลายรูปแบบ

  • การอ้างอิงออบเจ็กต์แบบทันที: แม้ว่าเราจะสร้างการอ้างอิงออบเจ็กต์แบบทันทีที่นี่โดยใช้ OBJ.MAKE_REF(uri, 'us.conn') แต่คุณยังสร้างและจัดเก็บคอลัมน์ ObjectRef ในตาราง BigQuery ได้โดยตรงเพื่อให้พร้อมใช้งานในการวิเคราะห์ได้ทันทีโดยไม่จำเป็นต้องใช้ฟังก์ชัน OBJ.MAKE_REF ในการค้นหาทุกครั้ง
  • การจดจำออบเจ็กต์ด้วยภาพเชิงลึก: โปรดสังเกตว่า Gemini ระบุรูปแบบบรรจุภัณฑ์ที่หลากหลายได้อย่างแม่นยำ (เช่น กล่องรวมอาหารเปียก ถุงอาหารแฮมสเตอร์แบบแห้ง และอาหารกระป๋องสำหรับแมว) พร้อมทั้งจดจำขนมที่กินได้ซึ่งบรรจุไว้ในของเล่น เช่น เครื่องจ่ายขนมสีน้ำเงิน
  • การประเมินเพรดิเคตระดับแถว: BigQuery จะประเมินเงื่อนไขภาษาธรรมชาติเทียบกับการอ้างอิงรูปภาพ Cloud Storage แต่ละรายการโดยตรงภายในอนุประโยค WHERE
  • การกรองแบบบูลีน: ระบบจะแสดงผลเฉพาะระเบียนที่ Gemini ประเมินเงื่อนไขเป็น TRUE ในชุดผลลัพธ์

7. ทำการรวมเชิงความหมายในตารางต่างๆ ด้วย AI.IF

การรวมฐานข้อมูลเชิงสัมพันธ์แบบเดิมกำหนดให้ต้องมีความเท่ากันของคีย์ที่แน่นอน (เช่น products.product_id = images.product_id) อย่างไรก็ตาม ชุดข้อมูลระดับองค์กรในโลกแห่งความเป็นจริงมักจะมีเนื้อหาที่ไม่มีโครงสร้างซึ่งไม่มีคีย์นอกที่ชัดเจน

เนื่องจาก AI.IF แสดงผลค่าบูลีน คุณจึงวางฟังก์ชันนี้ไว้ภายในอนุประโยค INNER JOIN ... ON ของ SQL ได้โดยตรงเพื่อทำการรวมเชิงความหมาย

รวมคำอธิบายผลิตภัณฑ์กับชิ้นงานรูปภาพเชิงความหมาย

สมมติว่าคุณต้องการจับคู่คำอธิบายผลิตภัณฑ์จากตาราง products กับไฟล์รูปภาพที่ไม่ได้ลิงก์ใน product_images สำหรับผลิตภัณฑ์ที่ผลิตโดยแบรนด์ Fluffy Buns

เรียกใช้การค้นหาต่อไปนี้ในแท็บ SQL ของ BigQuery Studio (โปรดทราบว่าการดำเนินการนี้จะใช้เวลา 2-3 นาที)

SELECT
  products.product_id,
  products.product_name,
  products.description,
  products.brand,
  images.uri AS image_uri,
  OBJ.GET_READ_URL(OBJ.MAKE_REF(images.uri, 'us.conn')).url AS product_image_url
FROM
  `bigquery-public-data.cymbal_pets.products` AS products
INNER JOIN
  `bigquery-public-data.cymbal_pets.product_images` AS images
ON
  AI.IF(
    ('You will be provided an image of a pet product. ',
    'Determine if the image is of the following pet toy: ',
    products.product_name,
    products.description,
    OBJ.MAKE_REF(images.uri, 'us.conn')
    )
  )
WHERE
  products.category = "Toys" AND
  products.brand = "Fluffy Buns";

ผลลัพธ์จะมีลักษณะคล้ายกับผลลัพธ์ต่อไปนี้

ผลลัพธ์การค้นหาของ BigQuery Studio ที่แสดงการเชื่อมโยงเชิงความหมายระหว่างผลิตภัณฑ์กับรูปภาพ

ทำความเข้าใจการรวมเชิงความหมายใน SQL

  • การประเมินเงื่อนไขแบบข้ามรูปแบบ: สำหรับคู่ระเบียนที่อาจเป็นไปได้ BigQuery จะส่งทั้งข้อมูลเมตาที่เป็นข้อความจาก products และข้อมูลอ้างอิงรูปภาพ (OBJ.MAKE_REF(...)) ไปยัง Gemini
  • การจับคู่ด้วยภาพที่แม่นยำ: ดังที่แสดงในผลลัพธ์ Fluffy Buns Hamster Exercise Ball จะจับคู่กับรูปภาพลูกบอลพลาสติกใส ในขณะที่ Fluffy Buns Chinchilla Play Tunnel และ Guinea Pig Tunnel จะจับคู่กับรูปภาพอุโมงค์แบบนุ่มสีน้ำเงิน เนื่องจากความหมายของ INNER JOIN ใน SQL มาตรฐาน ผลิตภัณฑ์จึงแสดงผลหลายแถวได้หากตรงกับชิ้นงานรูปภาพมากกว่า 1 รายการในแคตตาล็อก (เช่น รูปภาพหลายมุมหรือภาพที่คล้ายกัน)
  • การแสดงรูปภาพแบบอินไลน์: BigQuery Studio จะแสดงผล URL การอ่านที่ได้รับอนุญาตในคอลัมน์ product_image_url ภายในกริดผลลัพธ์โดยอัตโนมัติเพื่อให้ยืนยันด้วยภาพได้ทันที
  • การแก้ปัญหาเอนทิตีที่ไม่มีโครงสร้าง: การดำเนินการนี้จะปลดล็อกเวิร์กโฟลว์การแก้ปัญหาเอนทิตีที่มีประสิทธิภาพในแคตตาล็อกเดิม ชุดข้อมูลที่ดึงข้อมูล และคลังสื่อโดยไม่ต้องติดป้ายกำกับด้วยตนเองหรือใช้คีย์นอกที่ชัดเจน

8. สังเคราะห์ข้อมูลเชิงลึกในแถวต่างๆ ด้วย AI.AGG

แม้ว่าฟังก์ชันต่างๆ เช่น AI.SCORE, AI.CLASSIFY และ AI.IF จะประเมินแถวแต่ละแถว (การดำเนินการแบบสเกลาร์) แต่การวิเคราะห์ข้อมูลระดับองค์กรมักจะต้องสังเคราะห์รูปแบบในระเบียนหลายรายการ

ฟังก์ชัน AI.AGG เป็นฟังก์ชันการรวมที่ใช้คำแนะนำภาษาธรรมชาติเพื่อสรุป จัดกลุ่ม หรือสังเคราะห์ข้อมูลเชิงลึกในแถวที่ไม่มีโครงสร้างหลายพันหรือหลายล้านแถวเป็นคำตอบเดียว

สังเคราะห์ข้อมูลสรุปหมวดหมู่ควบคู่ไปกับเมตริก SQL แบบเดิม

AI.AGG ผสานรวมกับฟังก์ชัน GROUP BY และฟังก์ชันการรวม SQL แบบเดิมได้อย่างราบรื่น ตัวอย่างเช่น คุณสามารถคำนวณเมตริกแบบเดิม (เช่น จำนวนสินค้า) ควบคู่ไปกับข้อมูลสรุป Generative AI ที่อธิบายสิ่งที่ผลิตภัณฑ์ในแต่ละหมวดหมู่มีเหมือนกัน

เรียกใช้การค้นหาต่อไปนี้ใน BigQuery Studio

SELECT 
  category,
  COUNT(*) AS item_count,
  AI.AGG(
    ('Product: ', product_name, ' - Description: ', description),
    'Write a concise, one-sentence summary describing the common characteristics or purpose of the products in this category.'
  ) AS category_summary
FROM 
  `bigquery-public-data.cymbal_pets.products`
GROUP BY 
  category
ORDER BY 
  item_count DESC;

ผลลัพธ์จะมีลักษณะคล้ายกับผลลัพธ์ต่อไปนี้

ผลลัพธ์การค้นหาของ BigQuery Studio ที่แสดงสรุปหมวดหมู่ AI.AGG พร้อมจำนวนรายการ

วิธีที่ AI.AGG รวมข้อมูลที่ไม่มีโครงสร้าง

  • การรวมแบบลำดับชั้น: BigQuery จะจัดกลุ่มข้อมูลแถวตามพาร์ติชันหมวดหมู่ สร้างหน้าต่างบริบทที่มีโครงสร้าง และใช้ Gemini เพื่อสังเคราะห์คอลเล็กชันระเบียนผลิตภัณฑ์ทั้งหมด
  • การสังเคราะห์แคตตาล็อกอัตโนมัติ: โปรดสังเกตว่าแต่ละหมวดหมู่จะได้รับข้อมูลสรุปที่แตกต่างกันและแม่นยำ เช่น Accessories ที่รวบรวมที่อยู่อาศัยและอุปกรณ์การฝึก หรือ Food ที่เน้นโภชนาการที่สมดุลในสัตว์หลายสายพันธุ์
  • การรายงานเชิงปริมาณและเชิงคุณภาพแบบไฮบริด: การรวมการรวมมาตรฐาน เช่น COUNT(*) กับ AI.AGG จะสร้างภาพรวมแคตตาล็อกที่ครอบคลุมในการค้นหาเดียวโดยไม่ต้องใช้ไปป์ไลน์ ETL ที่กำหนดเอง
  • การแบ่งพาร์ติชันที่ยืดหยุ่น: คุณสามารถใช้ AI.AGG ในมิติข้อมูลการจัดกลุ่มใดก็ได้ (เช่น GROUP BY brand, GROUP BY category หรือในตารางทั้งหมด) เพื่อสร้างข้อมูลเชิงลึกระดับผู้บริหารในไม่กี่วินาที

9. เพิ่มความเร็วในการค้นหาด้วยโหมดที่เพิ่มประสิทธิภาพและโมเดลพร็อกซี

เมื่อประมวลผลชุดข้อมูลขนาดใหญ่ที่มีแถวหลายพันหรือหลายล้านแถว การเรียกใช้ LLM ระยะไกลสำหรับทุกแถวอาจทำให้เกิดเวลาในการตอบสนองและค่าใช้จ่าย

BigQuery จึงมีโหมดที่เพิ่มประสิทธิภาพ สำหรับ AI.IF และ AI.CLASSIFY เพื่อแก้ปัญหานี้ โหมดที่เพิ่มประสิทธิภาพใช้โมเดลพร็อกซีและการกลั่นโมเดลแบบทันที เพื่อแสดงผลการดำเนินการที่เร็วขึ้นกว่า 100 เท่าโดยมีค่าใช้จ่ายโทเค็น LLM ลดลง

วิธีการทำงานของโหมดที่เพิ่มประสิทธิภาพ

เวิร์กโฟลว์การเพิ่มประสิทธิภาพด้วย AI

  1. การสุ่มตัวอย่างและการติดป้ายกำกับแบบเป็นตัวแทน: BigQuery จะเลือกตัวอย่างแถวแบบเป็นตัวแทนโดยอัตโนมัติและรับป้ายกำกับจาก Gemini
  2. การฝึกโมเดลที่กลั่นแล้ว: BigQuery จะฝึกโมเดลพร็อกซีแบบเบามาก (เช่น การถดถอยแบบโลจิสติก) แบบทันเวลาใน CPU โดยใช้การฝังข้อความเป็นฟีเจอร์
  3. การยืนยันคุณภาพ: BigQuery จะประเมินความแม่นยำของโมเดลที่กลั่นแล้วเทียบกับ Gemini หากโมเดลเป็นไปตามเกณฑ์คุณภาพ BigQuery จะเลื่อนระดับโมเดลเพื่อประมวลผลชุดข้อมูลที่เหลือ
  4. การอนุมานความเร็วสูงในเครื่อง: โมเดลพร็อกซีจะประเมินแถวที่เหลือในเครื่องโดยไม่มีค่าใช้จ่ายโทเค็น LLM ระยะไกลและมีเวลาในการตอบสนองต่ำมาก

เรียกใช้การค้นหาพื้นฐานโดยไม่มีการเพิ่มประสิทธิภาพ

เนื่องจากแคตตาล็อก bigquery-public-data.cymbal_pets.products ตัวอย่างมีแถวน้อยเกินไปที่จะทริกเกอร์การกลั่นโมเดลพร็อกซี เราจึงจะใช้ชุดข้อมูลสาธารณะขนาดใหญ่ขึ้น bigquery-public-data.bbc_news.fulltext (ซึ่งมีบทความข่าวมากกว่า 2,200 รายการ)

ขั้นแรก ให้เรียกใช้การค้นหามาตรฐานโดยไม่มีการเพิ่มประสิทธิภาพเพื่อระบุบทความข่าวเกี่ยวกับภัยพิบัติทางธรรมชาติ

SELECT
  title,
  body
FROM
  `bigquery-public-data.bbc_news.fulltext`
WHERE
  AI.IF(
    ('The following news story is about a natural disaster: ', body)
  );

ตรวจสอบรายละเอียดงานพื้นฐานและการใช้โทเค็น

หลังจากที่การค้นหาพื้นฐานเสร็จสมบูรณ์แล้ว ให้ตรวจสอบเมตริกการดำเนินการ

  1. ในบานหน้าต่างผลลัพธ์ด้านล่างของ BigQuery Studio ให้เลือกแท็บข้อมูลงาน
  2. เลื่อนลงไปที่ส่วนจำนวนโทเค็นอินพุต และจำนวนโทเค็นเอาต์พุต

ผลลัพธ์จะมีลักษณะคล้ายกับผลลัพธ์ต่อไปนี้

ข้อมูลงาน BigQuery Studio สำหรับการค้นหาพื้นฐาน

  • การใช้โทเค็นชุดข้อมูลทั้งหมด: เนื่องจาก BigQuery เรียกใช้โมเดล Gemini ระยะไกลสำหรับแต่ละแถวในบทความข่าวทั้งหมด 2,225 รายการโดยไม่มีการเพิ่มประสิทธิภาพพร็อกซี การค้นหาจึงใช้โทเค็นอินพุต 1,279,072 รายการ และโทเค็นเอาต์พุต 11,925 รายการ
  • ไม่มีส่วนการเพิ่มประสิทธิภาพ: โปรดสังเกตว่าไม่มีรายการ Gen AI Function Optimizations เนื่องจากมีการดำเนินการมาตรฐานจะประเมินแต่ละแถวเทียบกับปลายทาง LLM ระยะไกล

เรียกใช้การค้นหาด้วยโหมดที่เพิ่มประสิทธิภาพ

หากต้องการลดการใช้โทเค็นและใช้ประโยชน์จากการกลั่นโมเดลพร็อกซี ให้เปิดใช้โหมดที่เพิ่มประสิทธิภาพโดยส่ง embeddings => AI.EMBED(...) และตั้งค่า optimization_mode => 'MINIMIZE_COST'

SELECT
  title,
  body
FROM
  `bigquery-public-data.bbc_news.fulltext`
WHERE
  AI.IF(
    ('The following news story is about a natural disaster: ', body),
    embeddings => AI.EMBED(body, endpoint => 'text-embedding-005', task_type => 'CLASSIFICATION').result,
    optimization_mode => 'MINIMIZE_COST'
  );

ยืนยันการเพิ่มประสิทธิภาพและสังเกตการใช้โทเค็นที่ลดลง

หลังจากเรียกใช้การค้นหาที่เพิ่มประสิทธิภาพแล้ว ให้เปลี่ยนไปที่แท็บข้อมูลงาน ของ BigQuery Studio เพื่อดูการเปรียบเทียบการใช้โทเค็นและเมตริกการดำเนินการ

  1. ในบานหน้าต่างผลลัพธ์ด้านล่างของ BigQuery Studio ให้เลือกแท็บข้อมูลงาน
  2. เลื่อนไปที่ส่วนการเพิ่มประสิทธิภาพฟังก์ชัน Gen AI รวมถึงจำนวนโทเค็น

ผลลัพธ์จะมีลักษณะคล้ายกับผลลัพธ์ต่อไปนี้

ข้อมูลงาน BigQuery Studio ที่แสดงการเพิ่มประสิทธิภาพฟังก์ชัน Gen AI

  • การลดโทเค็นอย่างมาก: โปรดสังเกตว่าจำนวนโทเค็นอินพุต ลดลงจากโทเค็น 1,279,072 รายการ เหลือโทเค็น 778,626 รายการ ซึ่งช่วยประหยัดโทเค็นอินพุต 500,446 รายการ (ลดลงเกือบ 40%) ในการเรียกใช้การค้นหาครั้งเดียว เช่นเดียวกัน โทเค็นเอาต์พุตก็ลดลงด้วย
  • การกลั่นพร็อกซีอัตโนมัติ: โปรดสังเกตป้ายกำกับ AI.IF('The following news s'): 875 out of 2225 rows optimized. Cost Optimization successfully applied. BigQuery สุ่มตัวอย่างชุดข้อมูล ติดป้ายกำกับบทความที่เป็นตัวแทนด้วย Gemini กลั่นตัวแยกประเภทพร็อกซีแบบเบาที่รวดเร็ว และประมวลผลแถว 875 จาก 2,225 แถวในเครื่อง ใน CPU โดยไม่ต้องเรียกปลายทาง LLM ระยะไกล
  • การประหยัดค่าใช้จ่ายโดยตรง: เนื่องจากระบบจะเรียกเก็บเงินฟังก์ชัน AI ที่มีการจัดการของ BigQuery ตามปริมาณโทเค็นโมเดลที่ประมวลผล การลดการใช้โทเค็นจึงหมายถึงค่าใช้จ่ายในการดำเนินการค้นหาที่ลดลงโดยตรง
  • การตรวจสอบคุณภาพ: BigQuery จะตรวจสอบความแม่นยำของโมเดลพร็อกซีเทียบกับ Gemini โดยอัตโนมัติก่อนที่จะเลื่อนระดับโมเดลเพื่อประเมินแถวที่เหลือ ซึ่งจะช่วยรักษาคุณภาพการแยกประเภท

การลดโทเค็นและการปรับขนาดเวลาในการตอบสนองที่มากขึ้นในตารางขนาดใหญ่

แม้ว่าการประหยัดโทเค็นมากกว่า 500,000 รายการใน 2,225 แถวจะเป็นจำนวนมาก แต่การลดโทเค็นและประสิทธิภาพที่เพิ่มขึ้นจะสูงขึ้นในตารางขนาดใหญ่

  • เหตุผลที่การลดโทเค็นปรับขนาดตามขนาดชุดข้อมูล: สำหรับการค้นหาที่ดำเนินการใน BigQuery โมเดลพร็อกซีจะได้รับการฝึกแบบทันทีโดยใช้ตัวอย่างเริ่มต้นประมาณ 1,000 แถวที่ LLM ติดป้ายกำกับ เมื่อได้รับการฝึกและตรวจสอบแล้ว โมเดลพร็อกซีจะแทนที่การเรียกใช้ LLM โดยตรงในแถวที่เหลือ สำหรับการค้นหาขนาดใหญ่ (เช่น ชุดข้อมูลทั่วไป 1 ล้านแถว) การดำเนินการนี้จะขจัดการเรียกใช้ LLM สำหรับข้อมูลส่วนใหญ่ ซึ่งใช้โทเค็นน้อยลงสูงสุด 400 เท่าและลดค่าใช้จ่ายลงอย่างมาก
  • การเพิ่มความเร็วในการตอบสนองอย่างมาก: การเปลี่ยนการอนุมานจากฮาร์ดแวร์ LLM เฉพาะทางไปยังโมเดลพร็อกซีแบบเบามากที่ทำงานโดยตรงใน CPU ของ Worker ฐานข้อมูลมาตรฐาน (ใช้ประโยชน์จากการฝัง Gemini ที่คำนวณไว้ล่วงหน้า) BigQuery จะลดเวลาในการเรียกใช้การค้นหาโดยรวมลง 30-100 เท่า

10. ล้างข้อมูลทรัพยากร

หากต้องการล้างข้อมูลทรัพยากรที่สร้างขึ้นระหว่าง Codelab นี้ ให้เรียกใช้คำสั่งต่อไปนี้ในแท็บ SQL ของ BigQuery Studio เพื่อนำการเชื่อมต่อทรัพยากร Cloud ออก

DROP CONNECTION IF EXISTS `us.conn`;

หรือหากคุณสร้างโปรเจ็กต์ที่อยู่ในระบบคลาวด์ Google ชั่วคราวสำหรับบทแนะนำนี้โดยเฉพาะ คุณสามารถปิดโปรเจ็กต์ทั้งหมดใน Cloud Resource Manager ได้

11. ขอแสดงความยินดี

ขอแสดงความยินดี คุณทำ Codelab เรื่องการวิเคราะห์เชิงความหมายใน BigQuery ด้วยฟังก์ชัน AI ที่มีการจัดการและ SQL สำเร็จแล้ว

คุณเชี่ยวชาญฟังก์ชัน Generative AI ที่มีการจัดการของ BigQuery แล้ว ดังนี้

  • AI.SCORE: จัดอันดับผลิตภัณฑ์ตามเกณฑ์เชิงอัตวิสัย เช่น ความเหมาะสมที่จะเป็นของขวัญในระดับ 1-10 โดยใช้การเขียนข้อความแจ้งใหม่โดยอัตโนมัติ
  • AI.CLASSIFY: แยกประเภทสินค้าในแคตตาล็อกที่ไม่มีโครงสร้างเป็นการแยกประเภทสัตว์เป้าหมาย
  • AI.IF (การกรองแบบหลายรูปแบบ): กรองชิ้นงานรูปภาพ Cloud Storage ในอนุประโยค WHERE ของ SQL ตามเนื้อหาภาพ
  • AI.IF (การรวมเชิงความหมาย): ทำการรวมแบบข้ามรูปแบบในอนุประโยค ON ของ SQL เพื่อลิงก์คำอธิบายผลิตภัณฑ์ที่เป็นข้อความกับไฟล์รูปภาพ
  • AI.AGG: สังเคราะห์ข้อความแคตตาล็อกที่ไม่มีโครงสร้างหลายแถวเป็นข้อมูลสรุปสำหรับผู้บริหารที่กระชับ
  • โหมดที่เพิ่มประสิทธิภาพและโมเดลพร็อกซี: เพิ่มความเร็วในการค้นหาและลดค่าใช้จ่ายโทเค็นโดยใช้ optimization_mode => 'MINIMIZE_COST' กับการกลั่นโมเดลแบบทันทีและ AI.EMBED

ดูข้อมูลเพิ่มเติม