التحليل الدلالي في BigQuery باستخدام دوال الذكاء الاصطناعي المُدارة ولغة SQL

1. مرحبًا

في هذا الدرس التطبيقي حول الترميز، ستتعرّفون على كيفية استخدام حزمة وظائف الذكاء الاصطناعي المُدارة في BigQuery لإجراء تحليل دلالي متطوّر، وتصنيف حسب الفئات، وفلترة متعددة الوسائط، وعمليات ربط دلالية، وتلخيص متعدد الصفوف مباشرةً في BigQuery Studio باستخدام لغة الاستعلامات البنيوية (SQL).

باستخدام مجموعة البيانات العلنية bigquery-public-data.cymbal_pets، ستتولّون دور محلّل بيانات في Cymbal Pets، وهو متجر إلكتروني لبيع مستلزمات الحيوانات الأليفة وإكسسواراتها.

التحليل الدلالي مباشرةً داخل طلبات SQL

في السابق، كان تطبيق تعلُّم الآلة أو النماذج اللغوية الكبيرة (LLM) على مجموعات بيانات المؤسسات يتطلّب نقل البيانات من مستودع البيانات إلى بيئات دفاتر ملاحظات Python الخارجية. وكان ذلك يتطلّب خطوط أنابيب مخصّصة لهندسة البيانات وخبرة في تعلُّم الآلة.

توفر وظائف الذكاء الاصطناعي المُدارة في 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. الإعداد والمتطلبات

قبل طلب البيانات باستخدام وظائف الذكاء الاصطناعي المُدارة، يجب ضبط مشروع Google Cloud وتفعيل واجهات برمجة التطبيقات المطلوبة.

إنشاء مشروع على Google Cloud وتفعيل واجهات برمجة التطبيقات

  1. في Google Cloud Console، في صفحة اختيار المشروع، اختَر مشروعًا على Google Cloud أو أنشِئ مشروعًا.
  2. تأكَّد من أنّ الفوترة مفعَّلة لمشروعك على السحابة الإلكترونية. كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع.
  3. فعِّل BigQuery وBigQuery Connection وAgent Platform APIs.

فتح BigQuery Studio

  1. في قائمة التنقّل في Google Cloud Console، انقر على BigQuery لفتح BigQuery Studio.
  2. في شريط أدوات المحرّر في BigQuery Studio، انقر على + طلب SQL لفتح علامة تبويب طلب SQL جديدة. ستكتبون جميع طلبات SQL وتنفّذونها في علامات تبويب SQL هذه خلال هذا الدرس العملي.

إنشاء اتصال بمورد على السحابة الإلكترونية في SQL

يعمل BigQuery ضمن محيط بيانات آمن. عند فحص الملفات الخارجية المتعددة الوسائط (مثل الصور المخزّنة في Google Cloud Storage)، يستخدم BigQuery اتصالاً بمورد على السحابة الإلكترونية للوصول بشكل آمن إلى مراجع الكائنات بدون عرض بيانات الاعتماد.

نفِّذوا العبارة التالية في علامة تبويب 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.CLASSIFY التي تعرض تصنيفًا متعدد التصنيفات يعرض مصفوفات من أنواع الحيوانات الأليفة

مراجعة آليات التصنيف

  • علامة واحدة مقابل علامات متعددة: بدون output_mode، تعرض الدالة AI.CLASSIFY ‏ STRING عدديًا. يؤدي ضبط output_mode => 'multi' إلى عرض ARRAY يحتوي على صفر أو علامة واحدة أو علامات متعددة مطابقة.
  • تعيين فئات متعددة: لاحظوا كيف تحصل السلع المخصّصة، مثل Chew-tastic! Dental Chew Toy وPlayful Pup Fetch Stick، على [Dog]، بينما تحصل سلع الراحة المتعدّدة الاستخدامات، مثل Cozy Naps Dog Toy (سرير مستطيل من القطيفة)، على علامات متعددة بشكل صحيح: [Dog, Cat, Small Animal].
  • المطابقة بدون أمثلة: يقيّم النموذج النص والطلب المجمّعَين مقابل صفيف categories المقدَّم بدون الحاجة إلى نماذج تعلُّم آلة مخصّصة مدرَّبة مسبقًا.
  • عمليات صفيف 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 (يُرجى العِلم أنّه يستغرق بضع دقائق حتى يكتمل):

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 العادية، يمكن أن ينتج عن المنتج صفوف متعددة في الناتج إذا كان يتطابق مع أكثر من مادة عرض صورة واحدة في الكتالوج (مثل زوايا صور متعددة أو لقطات مشابهة).
  • عرض الصور المضمّنة: يعرض BigQuery Studio تلقائيًا عناوين URL للقراءة المُرخّصة في العمود product_image_url مباشرةً ضمن شبكة النتائج للتحقّق المرئي الفوري.
  • حلّ الكيانات غير المنظَّمة: يتيح ذلك مهام سير عمل قوية لحلّ الكيانات في الكتالوجات القديمة ومجموعات البيانات التي تم جمعها وأرشيفات الوسائط بدون وضع علامات يدويًا أو استخدام مفاتيح خارجية صريحة.

8. تجميع الإحصاءات على مستوى الصفوف باستخدام AI.AGG

في حين أنّ وظائف مثل AI.SCORE وAI.CLASSIFY وAI.IF تقيّم الصفوف الفردية (العمليات العددية)، غالبًا ما يتطلّب تحليل بيانات المؤسسات تجميع الأنماط على مستوى سجلات متعددة.

الدالة AI.AGG هي دالة تجميع تستخدم تعليمات باللغة الطبيعية لتلخيص الإحصاءات أو تجميعها أو تجميعها على مستوى آلاف أو ملايين الصفوف غير المنظَّمة في ردّ موحّد.

تجميع ملخّصات الفئات جنبًا إلى جنب مع مقاييس SQL التقليدية

تتكامل الدالة AI.AGG بسلاسة مع عبارات GROUP BY ودوال التجميع التقليدية في SQL. على سبيل المثال، يمكنكم حساب المقاييس التقليدية (مثل عدد السلع) جنبًا إلى جنب مع ملخّص مستند إلى الذكاء الاصطناعي التوليدي يصف ما تشترك فيه المنتجات في كل فئة.

نفِّذوا طلب البحث التالي في 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 ضعف بتكلفة أقل للرموز المميّزة في النموذج اللغوي الكبير.

آلية عمل الوضع المحسّن

سير عمل التحسين باستخدام الذكاء الاصطناعي

  1. أخذ عينات تمثيلية ووضع العلامات: يختار BigQuery تلقائيًا عينة تمثيلية من الصفوف ويحصل على العلامات من Gemini.
  2. تدريب النموذج المقطّر: يدرّب BigQuery نموذجًا وكيلاً خفيف الوزن للغاية (مثل الانحدار اللوجستي) في الوقت المناسب على وحدة المعالجة المركزية باستخدام تضمينات النص كميزات.
  3. التحقّق من الجودة: يقيّم BigQuery دقة النموذج المقطّر مقارنةً بنموذج Gemini. إذا استوفى النموذج عتبات الجودة، يروّجه BigQuery لمعالجة ما تبقّى من مجموعة البيانات.
  4. الاستنتاج المحلي عالي السرعة: يقيّم النموذج الوكيل الصفوف المتبقية محليًا بدون أي تكلفة للرموز المميّزة في النموذج اللغوي الكبير عن بُعد وبوقت استجابة منخفض للغاية.

تنفيذ طلب بحث أساسي بدون تحسين

بما أنّ كتالوج 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 لأنّ التنفيذ العادي يقيّم كل صف على حدة مقابل نقطة نهاية النموذج اللغوي الكبير عن بُعد.

تنفيذ طلب البحث باستخدام الوضع المحسّن

لتقليل استهلاك الرموز المميّزة والاستفادة من تقطير النموذج الوكيل، فعِّلوا الوضع المحسّن من خلال تمرير 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 Function Optimizations ، بالإضافة إلى عدد الرموز المميّزة.

ستبدو النتائج مشابهة لما يلي:

عرض معلومات مهمة BigQuery Studio التي تعرض تحسينات وظائف الذكاء الاصطناعي التوليدي

  • انخفاض كبير في الرموز المميّزة: لاحظوا كيف انخفض عدد الرموز المميّزة للإدخال من 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 صفًا محليًا على وحدة المعالجة المركزية بدون استدعاء نقاط نهاية النموذج اللغوي الكبير عن بُعد.
  • توفير مباشر في التكاليف: بما أنّ وظائف الذكاء الاصطناعي المُدارة في BigQuery تتم فوترتها استنادًا إلى حجم الرموز المميّزة للنموذج التي تتم معالجتها، فإنّ تقليل استهلاك الرموز المميّزة يؤدي مباشرةً إلى خفض تكاليف تنفيذ طلب البحث.
  • التحقّق من الجودة: تحقّق BigQuery تلقائيًا من دقة النموذج الوكيل مقارنةً بنموذج Gemini قبل الترويج له لتقييم الصفوف المتبقية، ما يضمن الحفاظ على جودة التصنيف.

انخفاض أكبر في الرموز المميّزة وتحسين وقت الاستجابة على الجداول الأكبر

على الرغم من أنّ توفير أكثر من 500,000 رمز مميّز على 2,225 صفًا هو أمر كبير، فإنّ الانخفاض في الرموز المميّزة وتحسين الأداء يكون أكبر على الجداول الأكبر:

  • لماذا يزداد الانخفاض في الرموز المميّزة مع حجم مجموعة البيانات؟: بالنسبة إلى طلبات البحث التي يتم تنفيذها في BigQuery، يتم تدريب النماذج الوكيلة بشكل فوري باستخدام عينة أولية من حوالي 1,000 صف تم وضع علامات عليها بواسطة النموذج اللغوي الكبير. بعد تدريب النموذج الوكيل والتحقّق من صحته، يحلّ محلّ عمليات استدعاء النموذج اللغوي الكبير المباشرة على مستوى الصفوف المتبقية. بالنسبة إلى طلبات البحث الأكبر (مثل مجموعات البيانات النموذجية التي تحتوي على مليون صف)، يؤدي ذلك إلى إلغاء عمليات استدعاء النموذج اللغوي الكبير لمعظم البيانات، ما يؤدي إلى استهلاك رموز مميّزة أقل بنسبة تصل إلى 400 ضعف وخفض التكاليف بشكل كبير.
  • تسريع كبير في وقت الاستجابة: من خلال نقل الاستنتاج من أجهزة النموذج اللغوي الكبير المتخصّصة إلى النماذج الوكيلة الخفيفة للغاية التي يتم تشغيلها مباشرةً على وحدات المعالجة المركزية العادية للعامل في قاعدة البيانات (باستخدام تضمينات Gemini المحسوبة مسبقًا)، يقلّل BigQuery أوقات تشغيل طلبات البحث الإجمالية بمقدار 30 إلى 100 ضعف.

10. تنظيف الموارد

لتنظيف الموارد التي تم إنشاؤها خلال هذا الدرس التطبيقي حول الترميز، نفِّذوا العبارة التالية في علامة تبويب SQL في BigQuery Studio لإزالة الاتصال بمورد على السحابة الإلكترونية:

DROP CONNECTION IF EXISTS `us.conn`;

بدلاً من ذلك، إذا أنشأتم مشروعًا مؤقتًا على Google Cloud حصريًا لهذا البرنامج التعليمي، يمكنكم إيقاف المشروع بأكمله في Cloud Resource Manager.

11. تهانينا

تهانينا! لقد أكملتم بنجاح الدرس العملي حول التحليل الدلالي في BigQuery باستخدام وظائف الذكاء الاصطناعي المُدارة وSQL.

لقد أتقنتم وظائف الذكاء الاصطناعي التوليدي المُدارة في 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

مزيد من المعلومات