Habr AI→ المصدر

من الأكثر التزامًا بـ JSON: OpenAI وGemini وxAI تحت اختبار الالتزام بالمخططات

أجرى مطورو Habr اختبارات خصومية على Structured Outputs لدى OpenAI وGemini وxAI للتحقق من مدى التزامها بـ JSON Schema. وطلبوا من النماذج كسر تنسيق الاستجابة عمدً

من الأكثر التزامًا بـ JSON: OpenAI وGemini وxAI تحت اختبار الالتزام بالمخططات
المصدر: Habr AI. كولاج: Hamidun News.
◐ استمع للمقال

أجرى المطورون في موقع Habr دراسة اختبرت كيفية عمل Structured Outputs بالفعل لدى ثلاثة موفري LLM الرائدين: OpenAI و Gemini و xAI. بدلاً من قراءة التوثيق، استخدموا طريقة الاختبار العدائية—حيث قاموا بتعطيل المخططات عن قصد لمعرفة أين يحافظ كل موفر على الصرامة وأين يتراجع.

كيفية اختبارهم لالتزام المخطط

لم يطلب المؤلفون ببساطة من النماذج إرجاع JSON صحيح. بل بنوا بصفة متعمدة طلبات تحاول إجبار النموذج على انتهاك مخطط JSON الخاص به. طلبوا وضع قيم من النوع الخاطئ في الحقول، وإضافة مفاتيح إضافية، واستخدام قيم enum غير صالحة، وانتهاك الحد الأدنى أو الأقصى لطول السلسلة، وتجاوز النطاقات الرقمية. راقبوا أين كان النموذج يطيع strict: true وأين كان ينكسر ويرجع JSON غير صحيح. اختبروا بشكل منفصل البنى المعقدة: anyOf و oneOf و allOf—القواعد التوافقية التي يصعب تطبيقها في LLMs. في الممارسة العملية، تقوم العديد من الأنظمة بتبسيط أو تجاهل أو تطبيق جزئي لهذه البنى. تحقق المؤلفون من كيفية تفسير كل موفر لهذه القواعد.

ما اكتشفوه حول الموفرين المختلفين

النتائج مفاجئة: لكل موفر مجموعة خاصة به من القيود الصارمة والمرنة. يحافظ OpenAI على الصرامة بشكل أفضل، خاصة عندما يكون strict: true مفعلاً. يسمح Gemini برفاهية أكثر مع enum والكائنات المتداخلة. يُظهر xAI الاستقرار عند التعقيد المتوسط لكن لديه نقاط عمياء في بنى allOf والحقول المشروطة.

تُظهر مصفوفة القيود من المقالة:

  • OpenAI: موثوق به على الأنواع الأولية (string و number و boolean)، أحياناً ينزلق على الهياكل المتداخلة المعقدة
  • Gemini: يفسر anyOf و oneOf بحرية أكثر، يمكنه إضافة مفاتيح إضافية للكائنات، أقل صرامة مع قيم enum
  • xAI: جيد في التعقيد المتوسط والقواعد الأساسية، أضعف في التحقق متعدد المستويات و patternProperties

حتى strict: true لا يضمن الامتثال بنسبة 100%. هذا ينقل المسؤولية مرة أخرى إلى المطور.

الاستنتاجات العملية للإنتاج

إذا كنت تبني نظاماً يستدعي موفري LLM متعددين بالتوازي، فإن هذه الاختلافات حاسمة. لا يمكنك ببساطة التبديل من OpenAI إلى Gemini والتوقع على نفس الرد المنسق تماماً. يبقى JSON Schema كما هو، لكن سلوك النموذج مختلف بشكل جذري.

بالنسبة لسيناريوهات الإنتاج، يوصي المؤلفون بـ: أضف دائماً التحقق من الاستجابة بعد النموذج، حتى لو وعد الموفر بـ strict: true. استخدم مكتبة jsonschema التي ستتحقق من النتيجة بشكل مستقل. وأضف منطق احتياطي في حالة انقطاع التنسيق بشكل غير متوقع: أعد السؤال للنموذج، أو استخدم قيمة افتراضية، أو أرجع خطأ للمستخدم. انحراف واحد عشوائي من enum من النموذج يمكن أن يدمر خط الأنابيب بالكامل.

ماذا يعني هذا

Structured Outputs ميزة مفيدة، لكنها ليست حلاً سحرياً. أظهرت اختبارات Habr أن الاعتماد الكامل على الموفر خطأ. إذا كنت تهتم بصيغة الاستجابة، فاستثمر في التحقق من جانب العميل.

ZK
Hamidun News
أخبار الذكاء الاصطناعي بدون ضوضاء. اختيار تحريري يومي من أكثر من 400 مصدر. منتج من جمال حميدون، رئيس الذكاء الاصطناعي في Alpina Digital.
ما رأيك؟
جارٍ تحميل التعليقات…