تُحدَّث يومياً

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

أخبار، تقارير، أدوات وتحليلات يومية — كل ما تحتاجه لمتابعة ثورة الذكاء الاصطناعي باللغة العربية

✅ تم الاشتراك!
أخبار الذكاء الاصطناعي

NVIDIA تطلق Kumo Tabular المفتوح وتعلن تصدره أربعة مقاييس للتنبؤ بالجداول

بدلاً من تدريب نموذج أشجار لكل سؤال، يقرأ Kumo Tabular جدولك ويتنبأ فوراً، ويتصدر TabArena بتقييم 1950 وفق أرقام NVIDIA.

ضمن ملف: إنفيديا، نماذج الذكاء الاصطناعي

بقلم: سارة | محررة نماذج الذكاء الاصطناعي · صوت تحريري بإشراف بشري

المصدر الأساسي: NVIDIA Blog on Hugging Face

لماذا يهم

فرق علوم البيانات في المؤسسات تستطيع اختبار أسئلة تنبؤ جديدة دون هندسة خصائص أو ضبط معاملات. هذا قد يقلص زمن بناء خط الأساس من أسابيع إلى دقائق على GPU واحد.

أطلقت NVIDIA نموذج Kumo Tabular، وهو نموذج أساس مفتوح للبيانات الجدولية (وفقاً لـ مدونة NVIDIA على Hugging Face). تعطيه جدولاً فيه صفوف معروفة التصنيف، فيتنبأ بتصنيف الصفوف الجديدة في تمريرة أمامية واحدة. لا يحتاج ذلك إلى تدريب أو ضبط للمعاملات أو هندسة للخصائص، ويعمل في التصنيف والانحدار معاً. يأتي النموذج بثلاثة أحجام، من 28 مليون إلى 215 مليون معامل (وفقاً لـ مدونة NVIDIA على Hugging Face). تُنشر أوزانه على صفحة النموذج في Hugging Face، ويُشغَّل عبر مكتبة structured-data-models مفتوحة المصدر. الترخيص هو OpenMDW-1.1 ويسمح بالاستخدام التجاري. بحسب NVIDIA، يتصدر النموذج أربعة مقاييس هي TabArena وBeyondArena وTALENT وScoringBench، وهذه أرقام معلنة من الشركة نفسها.

أهمية الخبر تتضح حين ننظر إلى طريقة العمل الحالية. بيانات المؤسسات تعيش في الجداول: سجلات العملاء والمعاملات وقراءات الحساسات والمطالبات والطلبات. والتنبؤ منها بانسحاب العميل أو التعثر في السداد أو الطلب أو السعر من أكثر مهام تعلم الآلة شيوعاً في الصناعة. تقول NVIDIA إن هذا العمل يجري منذ عقدين بأشجار القرار المعززة (gradient-boosted trees) وإنها أدّت أداءً جيداً، لكن دورة العمل حولها لم تتغير تقريباً. كل سؤال جديد يعني جمع تصنيفات، وهندسة خصائص، والبحث في المعاملات الفائقة، ثم التحقق والنشر. والنتيجة نموذج لا يعرف شيئاً عن الجداول عموماً ويتعلم كل مهمة من الصفر. الفكرة البديلة مأخوذة من نماذج LLM، وهي التعلم داخل السياق (in-context learning). النموذج المدرّب مسبقاً على ملايين الجداول يقرأ جدولك المصنّف كأنه سياق، ثم يتنبأ مباشرة دون تحديث أي وزن.

تقنياً، النموذج Transformer مبني حول بنية الجدول، ويستخدم انتباه الأعمدة والصفوف والسياق كما قدّمته نماذج TabICL وTabPFN (وفقاً لـ مدونة NVIDIA على Hugging Face). عليه أن يفهم معنى كل قيمة داخل عمودها، وأن يفهم تفاعل أعمدة الصف الواحد، وأن يربط صفوف السياق المصنّفة بصفوف الاستعلام المجهولة. يبدأ ذلك بتضمين الخلايا: تتحول كل مجموعة خلايا إلى token، وتمر القيم الرقمية والفئوية عبر خصائص فورييه (جيوب وجيوب تمام بترددات متعلَّمة) بأوزان منفصلة لكل نوع. القيم المفقودة لا تحتاج إلى تعويض بل تُعامَل معاملة خاصة، وكل token في السياق يحصل على تضمين للتصنيف.

مخطط معمارية نموذج Kumo Tabular يوضح انتباه الأعمدة والصفوف والسياق
معمارية Kumo Tabular كما نشرتها NVIDIA: من تضمين الخلايا إلى التعلم داخل السياق.

بعد ذلك يُضغط كل صف في تضمين واحد عبر تناوب نوعين من الانتباه عدة مرات. انتباه الأعمدة ينظر نزولاً في عمود واحد ليفهم موقع القيمة في توزيعها، كأن يحدد إن كانت 42 قيمة عادية أم متطرفة. يعتمد في ذلك على induced self-attention، فتنمو كلفته خطياً مع عدد الصفوف. أما انتباه الصفوف فينظر أفقياً ليتعلم تفاعل الخصائص، ويستخدم مواضع دوّارة (rotary) للتمييز بين الأعمدة. تنضم إلى كل صف أربعة tokens من نوع [CLS] تعمل كقراءة نهائية له (وفقاً لـ مدونة NVIDIA على Hugging Face). بعد هذا الضغط لا تعود كلفة المرحلة الأخيرة مرتبطة بعدد الأعمدة. في المرحلة الأخيرة يعمل Transformer على تضمينات الصفوف: صفوف السياق ينتبه بعضها لبعض، وصفوف الاستعلام تنتبه للسياق فقط. لذلك يعتمد كل تنبؤ على السياق والصف نفسه، لا على الصفوف الأخرى المرافقة له في الدفعة. ولأن السياق لا ينظر إلى الاستعلامات، تُحسب مفاتيحه وقيمه مرة واحدة ويُعاد استخدامها في التنبؤات اللاحقة، بينما تقلّص تقنية Test-GQA الذاكرة المؤقتة التي يقرأها كل تنبؤ. يُخرج النموذج احتمالات الفئات في التصنيف، و999 كمية (quantile) في الانحدار، ومنها يُشتق تنبؤ نقطي وتقدير لعدم اليقين (وفقاً لـ مدونة NVIDIA على Hugging Face).

أذكى ما في المعمارية في رأينا هو معالجة مشكلة معروفة: انتباه softmax يتشتت كلما زاد عدد المفاتيح. انتباه حاد على بضع مئات من الصفوف قد يذوب على عشرات الآلاف، وهذا ما يحدث حين يكون جدول الاستدلال أكبر بكثير من جداول التدريب. لهذا يضرب Kumo Tabular كل استعلام في «درجة حرارة» تنمو مع لوغاريتم عدد المفاتيح، بمعامل متعلَّم لكل رأس انتباه على حدة. الهدف أن يبقى الانتباه حاداً مع زيادة طول الجدول أو عرضه.

اللافت أن النموذج لم يرَ جدولاً حقيقياً واحداً أثناء التدريب المسبق، فكل بياناته اصطناعية. كل جدول مولَّد من نموذج سببي هيكلي (Structural Causal Model) عبر ست خطوات (وفقاً لـ مدونة NVIDIA على Hugging Face):

  1. سحب إعدادات الجدول كاملاً: حجمه ونوع مهمته وآلياته ونمط القيم المفقودة فيه.
  2. بناء رسم سببي عشوائي يربط متغيرات خفية.
  3. حساب المتغيرات من الجذر إلى الأوراق بدوال عشوائية في كل عقدة، مثل التحويلات الخطية والشبكات العصبية الصغيرة والأشجار وعمليات Gauss.
  4. تحويل بعض العقد إلى أعمدة رقمية أو فئوية، واختيار عقدة واحدة هدفاً، وإبقاء البقية خفية مثل الأسباب غير المقيسة في البيانات الحقيقية.
  5. معالجة لاحقة تربط مجموعات من الأعمدة وتقص القيم المتطرفة وتحقن قيماً مفقودة.
  6. فحص سريع بمجموعة أشجار يستبعد أي جدول لا يحمل إشارة قابلة للتعلم.
مخطط خطوات توليد الجداول الاصطناعية من نموذج سببي هيكلي
مسار توليد بيانات التدريب الاصطناعية بحسب NVIDIA.

ولأن المولّد إجراء عشوائي وليس نموذجاً مدرّباً، فهو ينتج عدداً غير محدود من الجداول، لكل منها رسم وآليات جديدة. وأضاف الفريق عيوب البيانات الحقيقية عمداً: قيم مفقودة بأنماط متعددة، وخصائص مقرّبة تجعل صفوفاً متطابقة تختلف في تصنيفها، وأعمدة فئوية بمستويات كثيرة، وأهداف انحدار ذات ذيول ثقيلة. في كل جدول يرى النموذج معظم الصفوف مع تصنيفاتها ويتعلم التنبؤ بالباقي. تُستخدم خسارة cross-entropy للتصنيف وخسارة الكميات للانحدار، ويُدرَّب كل منهما كنموذج منفصل. يمر التدريب بثلاث مراحل على غرار TabICLv2 (وفقاً لـ مدونة NVIDIA على Hugging Face). الأولى هي الأطول، بجداول من 1,024 صفاً وحتى 100 عمود. الثانية تنوّع السياق بين 400 و10,240 صفاً، والثالثة تمدده إلى 60,000 صف، مع بقاء الحد عند 100 عمود. إجمالاً، رأت النسخ Small وMedium وLarge نحو 35 و71 و137 مليون جدول اصطناعي على الترتيب. تقول NVIDIA إن وصفة التدريب والمولّدات ستُنشر «قريباً»، ولم يُحدد الموعد بعد.

أما النتائج، فقد شغّلت الشركة الأحجام الثلاثة بالإعدادات الافتراضية أمام لوحة TabArena كاملة. شملت المقارنة أشجاراً معززة مضبوطة وAutoGluon وأحدث نماذج الأساس الجدولية. هذه النتائج كلها بحسب مصدر وحيد هو مدونة NVIDIA، وهي أرقام معلنة من الشركة نفسها لم يتسنَّ التحقق منها بشكل مستقل:

  1. في TabArena: المركز الأول بتقييم ELO 1950، مع تشغيل أسرع بنحو 17 مرة من LimiX-2 على بطاقة RTX 6000 Pro واحدة في إعداد تقييم موحّد (وفقاً لـ مدونة NVIDIA على Hugging Face).
  2. في BeyondArena: المركز الأول بتقييم ELO 1418 ودرجة Improvability تبلغ 7.78% (وفقاً لـ مدونة NVIDIA على Hugging Face).
  3. في TALENT: الترتيب الأول إجمالاً في دقة التصنيف وlog-loss التصنيف وRMSE الانحدار، بمتوسطات ترتيب 6.67 و3.98 و4.22 (وفقاً لـ مدونة NVIDIA على Hugging Face).
  4. في ScoringBench، وهو مقياس للتوزيعات التنبؤية: حلّت نسختا Large وMedium في المركزين الأول والثاني بمتوسط الترتيب (وفقاً لـ مدونة NVIDIA على Hugging Face).
رسم بياني لجبهة Pareto بين الدقة والكفاءة لنماذج البيانات الجدولية
جبهة الدقة والكفاءة في TabArena كما نشرتها NVIDIA.

الرسالة الأهم في هذا الرسم أن الأحجام الثلاثة تقع على جبهة Pareto الجديدة، أي أنها تقدم دقة أعلى مقابل كل وحدة من زمن التشغيل. وهذا الادعاء أهم عملياً من ترتيب ELO وحده.

إن أردت تجربته، فالمسار قصير. تنزّل المكتبة الأوزان من Hub عند أول استخدام، وتتولى المعالجة المسبقة والتجميع (ensembling) ومعالجة الفئات الكثيرة التي استُخدمت في التقييمات. الخطوات بحسب المثال المنشور:

  1. ثبّت مكتبة structured-data-models من مستودع GitHub واستوردها باسم sdm، مع توفر GPU يدعم CUDA.
  2. حوّل جدول pandas إلى tensor عبر sdm.TableTensor.from_pandas(..., device="cuda").
  3. حدّد الصفوف المجهولة بقناع على عمود الهدف: na_mask = table["target"].isnan().
  4. أنشئ النموذج: model = sdm.models.KumoTabular(device="cuda").
  5. مرّر الصفوف المعروفة سياقاً (x_context وy_context) والصفوف المجهولة استعلاماً (x_query)، فتحصل على التنبؤات مباشرة.
import pandas as pd
import sdm  # structured-data-models

table = sdm.TableTensor.from_pandas(pd.read_csv("data.csv"), device="cuda")
na_mask = table["target"].isnan()
model = sdm.models.KumoTabular(device="cuda")
pred = model(
    x_context=table[~na_mask].drop_columns("target"),
    y_context=table[~na_mask, "target"],
    x_query=table[na_mask].drop_columns("target"),
)

ملاحظة لم توضحها المدونة: المثال الأصلي يستخدم pd.load_csv، وهي دالة غير موجودة في pandas، والصحيح pd.read_csv. كما يتنقل المثال بين drop_columns وdrop_column، فراجع توثيق المكتبة قبل النسخ.

هل يعني هذا نهاية XGBoost في مؤسستك؟ ليس بعد، وحدود النموذج تشرح السبب. فهو يعمل على الأعمدة الرقمية والفئوية فقط، ويحتاج النص والصور والطوابع الزمنية إلى تحويل عبر وصفات معالجة مدمجة. والتمريرة الواحدة تغطي حتى 10 فئات (وفقاً لـ مدونة NVIDIA على Hugging Face)، وتتجاوز المكتبة ذلك بأكواد تصحيح الأخطاء (error-correcting output codes). الأهم أن الدقة قد تتراجع في جداول تتجاوز نطاقات التدريب بكثير، أي أكثر من 60 ألف صف و100 عمود، أو حين تأتي صفوف الاستعلام من توزيع مختلف عن السياق، وهو وضع شائع في بيانات تتغير عبر الزمن. توصي NVIDIA بالتحقق من الدقة والمعايرة على بيانات محجوزة قبل النشر. تقديرنا أن القيمة الحقيقية هنا ليست تصدّر المقاييس، بل حذف أسابيع من هندسة الخصائص والضبط عند اختبار سؤال جديد. نموذج كهذا مرشح ليكون خط الأساس الأول قبل أي pipeline تقليدي، بشرط أن تختبره على بياناتك أنت لا على لوحات الترتيب.

مقالات ذات صلة

زر الذهاب إلى الأعلى