تحلیل معنایی در BigQuery با توابع هوش مصنوعی مدیریت‌شده و SQL

۱. خوش آمدید

در این آزمایشگاه کد، شما یاد خواهید گرفت که چگونه از مجموعه توابع هوش مصنوعی مدیریت‌شده BigQuery برای انجام تحلیل معنایی پیچیده، طبقه‌بندی طبقه‌بندی‌شده، فیلتر چندوجهی، اتصال معنایی و خلاصه‌سازی چندردیفی به‌طور مستقیم در BigQuery Studio با استفاده از SQL استفاده کنید.

با استفاده از مجموعه داده عمومی bigquery-public-data.cymbal_pets ، شما در نقش یک تحلیلگر داده در Cymbal Pets ، یک خرده‌فروش تجارت الکترونیک برای لوازم و لوازم جانبی حیوانات خانگی، قرار خواهید گرفت.

تحلیل معنایی مستقیماً درون کوئری‌های SQL

به طور سنتی، اعمال یادگیری ماشین یا مدل‌های زبان بزرگ (LLM) به مجموعه داده‌های سازمانی مستلزم انتقال داده‌ها از انبار داده به محیط‌های خارجی نوت‌بوک پایتون بود. این امر مستلزم خطوط لوله مهندسی داده اختصاصی و تخصص ML بود.

توابع هوش مصنوعی مدیریت‌شده‌ی BigQuery - شامل AI.SCORE ، AI.CLASSIFY ، AI.IF و AI.AGG - هوش مدل پایه را مستقیماً به داده‌های شما می‌آورند. BigQuery به‌طور خودکار انتخاب مدل را بهینه می‌کند و استراتژی‌های بازنویسی داخلی prompt را اعمال می‌کند تا نتایج با دقت بالا را از promptهای ساده به زبان طبیعی ارائه دهد.

برای مجموعه داده‌های با حجم بالا، BigQuery حالت بهینه‌سازی‌شده‌ای را ارائه می‌دهد که با استفاده از تقطیر مدل در حین کار و مدل‌های پروکسی سبک، پرس‌وجوهایی تا ۱۰۰ برابر سریع‌تر و ارزان‌تر ارائه می‌دهد.

کاری که انجام خواهید داد

  • داده‌های خرده‌فروشی چندوجهی را در BigQuery Studio با استفاده از SQL کاوش کنید .
  • با استفاده از AI.SCORE رتبه‌بندی معنایی را برای ارزیابی ویژگی‌های ذهنی محصول مانند «قابلیت هدیه دادن» انجام دهید .
  • با استفاده از AI.CLASSIFY داده‌های بدون ساختار را دسته‌بندی کنید تا محصولات را بر اساس گونه‌های جانوری هدف، نگاشت کنید.
  • فیلتر کردن تصاویر چندوجهی با استفاده از AI.IF در عبارات WHERE .
  • با استفاده از AI.IF در عبارت‌های JOIN ... ON ، پیوند معنایی بین جداول اجرا کنید تا رکوردهای محصول متنی را با فایل‌های تصویری خارجی مطابقت دهید.
  • با استفاده از تابع تجمیع AI.AGG داده‌های چند ردیفی را ترکیب کنید .
  • با استفاده از AI.IF با حالت بهینه‌شده ( optimization_mode => 'MINIMIZE_COST' ) و تقطیر مدل پروکسی ، تأخیر و هزینه پرس‌وجو را در مجموعه داده‌های بزرگ بهینه کنید .

آنچه نیاز دارید

  • یک پروژه گوگل کلود با قابلیت پرداخت.
  • یک مرورگر وب مانند کروم.

۲. تنظیمات و الزامات

قبل از جستجوی داده‌ها با توابع هوش مصنوعی مدیریت‌شده، باید پروژه Google Cloud خود را پیکربندی کرده و APIهای مورد نیاز را فعال کنید.

یک پروژه Google Cloud ایجاد کنید و API ها را فعال کنید

  1. در کنسول گوگل کلود ، در صفحه انتخاب پروژه، یک پروژه گوگل کلود را انتخاب یا ایجاد کنید .
  2. مطمئن شوید که صورتحساب برای پروژه ابری شما فعال است. یاد بگیرید که چگونه بررسی کنید که آیا صورتحساب در یک پروژه فعال است یا خیر .
  3. APIهای BigQuery، BigQuery Connection و Agent Platform را فعال کنید .

استودیوی BigQuery را باز کنید

  1. در منوی ناوبری کنسول ابری گوگل ، روی BigQuery کلیک کنید تا BigQuery Studio باز شود.
  2. در نوار ابزار ویرایشگر BigQuery Studio، روی + SQL query کلیک کنید تا یک تب جدید SQL query باز شود. شما تمام کوئری‌های SQL را در این تب‌های SQL در سراسر این codelab خواهید نوشت و اجرا خواهید کرد.

ایجاد اتصال منابع ابری در SQL

بیگ‌کوئری در یک محیط داده‌ای امن عمل می‌کند. هنگام بررسی فایل‌های چندوجهی خارجی (مانند تصاویر ذخیره شده در فضای ابری گوگل)، بیگ‌کوئری از یک اتصال منابع ابری (Cloud Resource Connection) برای دسترسی ایمن به ارجاعات اشیاء بدون افشای اطلاعات احراز هویت استفاده می‌کند.

دستور زیر را در تب SQL خود اجرا کنید تا یک اتصال به نام us.conn ایجاد شود:

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

۳. مجموعه داده‌های 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 استفاده خواهید کرد.

۴. رتبه‌بندی محصولات بر اساس معیارهای معنایی با AI.SCORE

تابع AI.SCORE ورودی‌های متنی را می‌پذیرد و از یک مدل Gemini برای امتیازدهی به آنها بر اساس یک معیار امتیازدهی زبان طبیعی استفاده می‌کند و یک امتیاز عددی FLOAT64 برمی‌گرداند.

اگر یک معیار امتیازدهی صریح ارائه ندهید، BigQuery به طور خودکار استراتژی‌های بازنویسی سریع را برای ایجاد یک معیار بهینه برای مدل اعمال می‌کند.

به محصولات از نظر «قابلیت هدیه دادن» امتیاز دهید

فرض کنید تیم بازاریابی Cymbal Pets می‌خواهد یک راهنمای هدیه برای تعطیلات تهیه کند. آن‌ها می‌خواهند هر کالای موجود در کاتالوگ را بر اساس میزان مناسب بودن آن به عنوان هدیه برای صاحب حیوان خانگی، در مقیاس ۱ تا ۱۰ رتبه‌بندی کنند.

کوئری زیر را در تب 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 فیلتر کنید تا راهنماهای هدیه خودکار ایجاد شود.

۵. اقلام کاتالوگ را با 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 نگاشت می‌کند، در حالی که chew toys و fetch sticks را به Dog نگاشت می‌کند.

چندین برچسب را با طبقه‌بندی چند برچسبی اختصاص دهید

بسیاری از محصولات موجود در کاتالوگ خرده فروشی به طور همزمان برای چندین نوع حیوان خانگی کاربرد دارند (برای مثال، یک تخت خواب یا تونل مخملی مناسب برای گربه ها و حیوانات کوچک).

برای اختصاص چندین دسته به یک رکورد، پارامتر اختیاری output_mode => 'multi' را تنظیم کنید. در حالت چند برچسبی، AI.CLASSIFY یک ARRAY برمی‌گرداند. 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.CLASSIFY از انواع pet را نشان می‌دهد

بررسی مکانیک طبقه‌بندی

  • تک برچسبی در مقابل چند برچسبی : بدون output_mode ، AI.CLASSIFY یک STRING اسکالر برمی‌گرداند. تنظیم output_mode => 'multi' یک ARRAY برمی‌گرداند. ARRAY شامل صفر، یک یا چند برچسب منطبق.
  • تکلیف چند دسته‌ای : توجه کنید که چگونه اقلام اختصاصی مانند Chew-tastic! Dental Chew Toy و Playful Pup Fetch Stick [Dog] را دریافت می‌کنند، در حالی که اقلام راحتی همه‌کاره مانند Cozy Naps Dog Toy (یک تخت مستطیلی مخملی) به درستی برچسب‌های متعددی دریافت می‌کنند: [Dog, Cat, Small Animal] .
  • تطبیق صفر-شات : مدل، متن و اعلان ترکیبی را در برابر آرایه categories ارائه شده بدون نیاز به مدل‌های یادگیری ماشین سفارشی از پیش آموزش‌دیده ارزیابی می‌کند.
  • عملیات آرایه‌ای SQL در پایین‌دست : می‌توانید از توابع آرایه‌ای استاندارد BigQuery SQL مانند WHERE 'Cat' IN UNNEST(pet_types) یا CROSS JOIN UNNEST(pet_types) برای فیلتر کردن، بسط دادن و تجمیع رکوردهای چندبرچسبی استفاده کنید.

۶. تصاویر محصولات چندوجهی را با AI.IF فیلتر کنید

تابع AI.IF از Gemini برای ارزیابی یک شرط به زبان طبیعی استفاده می‌کند و یک مقدار بولی ( TRUE یا FALSE ) برمی‌گرداند.

از آنجا که AI.IF ورودی‌های چندوجهی را می‌پذیرد، می‌توانید از آن مستقیماً در یک عبارت SQL WHERE برای فیلتر کردن فایل‌های تصویری بدون ساختار ذخیره شده در 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 ارزیابی می‌کند، در مجموعه نتایج بازگردانده می‌شوند.

۷. انجام پیوند معنایی بین جداول با AI.IF

پیوندهای پایگاه داده رابطه‌ای سنتی نیاز به برابری دقیق کلید دارند (مانند products.product_id = images.product_id ). با این حال، مجموعه داده‌های سازمانی در دنیای واقعی اغلب حاوی دارایی‌های بدون ساختار هستند که فاقد کلیدهای خارجی صریح هستند.

از آنجا که AI.IF یک مقدار بولی برمی‌گرداند، می‌توانید آن را مستقیماً درون یک عبارت SQL INNER JOIN ... ON قرار دهید تا پیوند معنایی انجام شود.

به صورت معنایی توضیحات محصول را با تصاویر مرتبط کنید

فرض کنید می‌خواهید توضیحات محصول را از جدول products با فایل‌های تصویری بدون لینک در product_images برای محصولات تولید شده توسط برند Fluffy Buns مطابقت دهید.

کوئری زیر را در تب SQL در BigQuery Studio اجرا کنید (توجه داشته باشید که تکمیل آن چند دقیقه طول می‌کشد):

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 Fluffy Buns با عکس‌های تونل مخمل آبی مطابقت دارند. به دلیل معناشناسی استاندارد SQL INNER JOIN ، اگر یک محصول با بیش از یک تصویر در کاتالوگ (مانند زوایای مختلف عکس یا نماهای مشابه) مطابقت داشته باشد، می‌تواند چندین ردیف در خروجی تولید کند.
  • رندرینگ تصویر درون‌خطی : BigQuery Studio به‌طور خودکار URLهای مجاز خوانده‌شده در ستون product_image_url را مستقیماً در شبکه نتایج شما رندر می‌کند تا تأیید بصری فوری انجام شود.
  • تفکیک‌پذیری بدون ساختار موجودیت : این قابلیت، گردش‌های کاری قدرتمند تفکیک‌پذیری موجودیت را در کاتالوگ‌های قدیمی، مجموعه داده‌های خراشیده شده و آرشیوهای رسانه‌ای، بدون برچسب‌گذاری دستی یا کلیدهای خارجی صریح، فراهم می‌کند.

۸. با استفاده از AI.AGG، بینش‌ها را در سطرهای مختلف ترکیب کنید

در حالی که توابعی مانند AI.SCORE ، AI.CLASSIFY و AI.IF سطرهای منفرد (عملیات اسکالر) را ارزیابی می‌کنند، تجزیه و تحلیل داده‌های سازمانی اغلب نیاز به ترکیب الگوها در چندین رکورد دارد.

تابع AI.AGG یک تابع تجمیعی است که از دستورالعمل‌های زبان طبیعی برای خلاصه‌سازی، خوشه‌بندی یا ترکیب بینش‌های موجود در هزاران یا میلیون‌ها ردیف بدون ساختار در قالب یک پاسخ یکپارچه استفاده می‌کند.

خلاصه‌های دسته‌بندی را در کنار معیارهای سنتی SQL ترکیب کنید

AI.AGG به طور یکپارچه با توابع سنتی SQL GROUP BY و توابع تجمیعی ادغام می‌شود. به عنوان مثال، می‌توانید معیارهای سنتی (مانند تعداد اقلام) را درست در کنار یک خلاصه هوش مصنوعی مولد که نقاط مشترک محصولات در هر دسته را توصیف می‌کند، محاسبه کنید.

کوئری زیر را در 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 یا در کل جدول خود) اعمال کنید تا در عرض چند ثانیه بینش‌هایی در سطح مدیران ایجاد کنید.

۹. سرعت بخشیدن به کوئری‌ها با حالت بهینه و مدل‌های پروکسی

هنگام پردازش مجموعه داده‌های بزرگ حاوی هزاران یا میلیون‌ها ردیف، فراخوانی یک LLM از راه دور برای هر ردیف می‌تواند باعث تأخیر و هزینه شود.

برای حل این مشکل، BigQuery حالت بهینه‌سازی‌شده‌ای را برای AI.IF و AI.CLASSIFY ارائه می‌دهد. حالت بهینه‌سازی‌شده از مدل‌های پروکسی و تقطیر مدل در حین اجرا استفاده می‌کند تا اجرای بیش از ۱۰۰ برابر سریع‌تر را با هزینه توکن LLM کاهش‌یافته ارائه دهد.

نحوه عملکرد حالت بهینه

گردش کار بهینه‌سازی هوش مصنوعی

  1. نمونه‌گیری و برچسب‌گذاری نماینده : BigQuery به طور خودکار یک نمونه نماینده از ردیف‌ها را انتخاب می‌کند و برچسب‌ها را از Gemini دریافت می‌کند.
  2. آموزش مدل خلاصه‌شده : بیگ‌کوئری یک مدل پروکسی فوق‌العاده سبک (مانند رگرسیون لجستیک) را به‌صورت لحظه‌ای روی CPU با استفاده از جاسازی‌های متنی به عنوان ویژگی آموزش می‌دهد.
  3. تأیید کیفیت : BigQuery دقت مدل خلاصه‌شده را با Gemini مقایسه می‌کند. اگر به آستانه‌های کیفیت برسد، BigQuery آن را برای پردازش بقیه مجموعه داده‌ها ارتقا می‌دهد.
  4. استنتاج محلی پرسرعت : مدل پروکسی، ردیف‌های باقیمانده را به صورت محلی با هزینه توکن LLM از راه دور صفر و تأخیر بسیار کم ارزیابی می‌کند.

اجرای یک کوئری پایه بدون بهینه‌سازی

از آنجا که کاتالوگ نمونه bigquery-public-data.cymbal_pets.products شامل ردیف‌های بسیار کمی برای شروع تقطیر مدل پروکسی است، ما از مجموعه داده عمومی بزرگتر bigquery-public-data.bbc_news.fulltext (که شامل بیش از ۲۲۰۰ مقاله خبری است) استفاده خواهیم کرد.

ابتدا، کوئری استاندارد را بدون بهینه‌سازی اجرا کنید تا مقالات خبری مربوط به بلایای طبیعی را شناسایی کنید:

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، تب اطلاعات شغلی (Job information ) را انتخاب کنید.
  2. به پایین اسکرول کنید تا به بخش‌های تعداد توکن‌های ورودی (Input token) و تعداد توکن‌های خروجی (Output token) برسید .

نتایج شما مشابه موارد زیر خواهد بود:

اطلاعات شغلی BigQuery Studio برای پرس و جوی پایه

  • مصرف کامل توکن مجموعه داده : از آنجا که BigQuery مدل Gemini از راه دور را برای هر سطر در تمام ۲۲۲۵ مقاله خبری بدون بهینه‌سازی پروکسی فراخوانی می‌کند، این پرس‌وجو ۱,۲۷۹,۰۷۲ توکن ورودی و ۱۱۹۲۵ توکن خروجی مصرف می‌کند.
  • بخش بهینه‌سازی وجود ندارد : توجه داشته باشید که هیچ ورودی 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، تب اطلاعات شغلی (Job information ) را انتخاب کنید.
  2. به بخش بهینه‌سازی‌های عملکرد هوش مصنوعی نسل بعدی و همچنین تعداد توکن‌ها بروید.

نتایج شما مشابه موارد زیر خواهد بود:

اطلاعات شغلی BigQuery Studio که بهینه‌سازی‌های عملکرد Gen AI را نشان می‌دهد

  • کاهش قابل توجه توکن‌ها : توجه کنید که چگونه تعداد توکن‌های ورودی از ۱,۲۷۹,۰۷۲ توکن به ۷۷۸,۶۲۶ توکن کاهش یافته است - که منجر به صرفه‌جویی ۵۰۰,۴۴۶ توکن ورودی (تقریباً ۴۰٪ کاهش) در یک اجرای پرس‌وجو می‌شود! به طور مشابه، کاهشی در توکن‌های خروجی نیز وجود داشته است.
  • خلاصه‌سازی خودکار پروکسی : به برچسب AI.IF('The following news s'): 875 out of 2225 rows optimized. Cost Optimization successfully applied. BigQuery مجموعه داده‌ها را نمونه‌برداری کرد، مقالات نمونه را با Gemini برچسب‌گذاری کرد، یک طبقه‌بندی‌کننده پروکسی سبک و سریع را خلاصه کرد و ۸۷۵ از ۲۲۲۵ ردیف را به صورت محلی روی CPU بدون فراخوانی نقاط پایانی LLM از راه دور پردازش کرد.
  • صرفه‌جویی مستقیم در هزینه‌ها : از آنجا که توابع هوش مصنوعی مدیریت‌شده توسط BigQuery بر اساس حجم توکن‌های مدل پردازش‌شده محاسبه می‌شوند، کاهش مصرف توکن مستقیماً به کاهش هزینه‌های اجرای کوئری منجر می‌شود.
  • اعتبارسنجی کیفیت : BigQuery قبل از اینکه مدل پروکسی را برای ارزیابی ردیف‌های باقی‌مانده ارتقا دهد، به‌طور خودکار دقت آن را در برابر Gemini تأیید کرد و از حفظ کیفیت طبقه‌بندی اطمینان حاصل کرد.

کاهش بیشتر توکن و مقیاس‌بندی تأخیر در جداول بزرگتر

اگرچه صرفه‌جویی بیش از ۵۰۰۰۰۰ توکن در ۲۲۲۵ ردیف قابل توجه است، اما کاهش توکن و افزایش عملکرد در جداول بزرگتر حتی بیشتر است:

  • چرا کاهش توکن با اندازه مجموعه داده مقیاس‌پذیر است : برای پرس‌وجوهای اجرا شده در BigQuery، مدل‌های پروکسی با استفاده از یک نمونه اولیه حدود ۱۰۰۰ ردیف که توسط LLM برچسب‌گذاری شده‌اند، به صورت همزمان آموزش داده می‌شوند. پس از آموزش و اعتبارسنجی، مدل پروکسی جایگزین فراخوانی‌های مستقیم LLM در ردیف‌های باقی‌مانده می‌شود. برای پرس‌وجوهای بزرگ‌تر (مانند مجموعه داده‌های معمولی ۱ میلیون ردیفی)، این امر فراخوانی‌های LLM را برای بخش عمده‌ای از داده‌ها حذف می‌کند و تا ۴۰۰ برابر توکن کمتری مصرف می‌کند و هزینه‌ها را به شدت کاهش می‌دهد.
  • شتاب قابل توجه در زمان تأخیر : با تغییر استنتاج از سخت‌افزار تخصصی LLM به مدل‌های پروکسی فوق‌العاده سبک که مستقیماً روی پردازنده‌های استاندارد پایگاه داده اجرا می‌شوند (با بهره‌گیری از تعبیه‌های از پیش محاسبه‌شده Gemini)، BigQuery زمان اجرای کلی پرس‌وجو را 30 تا 100 برابر کاهش می‌دهد.

۱۰. منابع را پاکسازی کنید

برای پاک کردن منابع ایجاد شده در طول این آزمایش کد، دستور زیر را در تب SQL در BigQuery Studio اجرا کنید تا اتصال منابع ابری (Cloud Resource Connection) حذف شود:

DROP CONNECTION IF EXISTS `us.conn`;

از طرف دیگر، اگر یک پروژه موقت Google Cloud را منحصراً برای این آموزش ایجاد کرده‌اید، می‌توانید کل پروژه را در Cloud Resource Manager خاموش کنید.

۱۱. تبریک

تبریک! شما با موفقیت آزمایشگاه کدنویسی تحلیل معنایی در BigQuery با توابع هوش مصنوعی مدیریت‌شده و SQL را به پایان رساندید.

شما بر توابع هوش مصنوعی مولد مدیریت‌شده‌ی BigQuery مسلط شدید:

  • AI.SCORE : محصولات را بر اساس معیارهای ذهنی مانند قابلیت هدیه دادن در مقیاس ۱ تا ۱۰ با استفاده از بازنویسی خودکار سریع رتبه‌بندی می‌کند.
  • AI.CLASSIFY طبقه‌بندی: اقلام کاتالوگ بدون ساختار را در طبقه‌بندی‌های حیوانات هدف دسته‌بندی کرد.
  • AI.IF (فیلترینگ چندوجهی) : تصاویر ذخیره سازی ابری فیلتر شده در عبارات SQL WHERE بر اساس محتوای بصری.
  • AI.IF (پیوندهای معنایی) : پیوندهای بین وجهی را در عبارات SQL ON انجام داد تا توضیحات متنی محصول را با فایل‌های تصویری پیوند دهد.
  • AI.AGG : متن کاتالوگ بدون ساختار چند ردیفی را به یک خلاصه اجرایی مختصر تبدیل می‌کند.
  • مدل‌های حالت و پروکسی بهینه‌شده : پرس‌وجوهای تسریع‌شده و هزینه‌های توکن به حداقل رسیده با استفاده از optimization_mode => 'MINIMIZE_COST' با تقطیر مدل در لحظه و AI.EMBED .

بیشتر بدانید