ما الذي يتسبب في إخراج نموذج اللغة الكبير المحلي بصيغة لا تتوافق مع مخطط JSON صالح؟

إيفا وونغ هي كاتبة تقنية و ومهندسة هاوية في ZimaSpace. مهووسة بالتكنولوجيا مدى الحياة ولديها شغف بالمختبرات المنزلية والبرمجيات مفتوحة المصدر، تتخصص في تبسيط المفاهيم التقنية المعقدة إلى أدلة عملية وسهلة الفهم. تؤمن إيفا بأن الاستضافة الذاتية يجب أن تكون ممتعة وليست مخيفة. من خلال دروسها، تمكّن المجتمع من تبسيط إعدادات الأجهزة، بدءًا من بناء أول نظام تخزين شبكي NAS وحتى إتقان حاويات Docker.

يفشل خرج نموذج اللغة الكبير (LLM) المحلي في الالتزام بمخطط JSON صالح عندما لا تفرض عملية التوليد ومعالجة القيود وقواعد الإيقاف والتحقق العقد نفسه.

قد يزوّد سير عمل مستضاف ذاتيًا بمخطط متوافق مع المعايير للبيانات الوصفية للملفات أو إجراءات المنزل الذكي أو استخراج المستندات أو وسيطات الأدوات، ومع ذلك يتلقى خرجًا مشوهًا أو مرفوضًا. يصف «المخطط الصالح» مستند المخطط، وليس مسار التنفيذ بأكمله. يجب أن يفهم النموذج المهمة، وأن يدعم برنامج فك الترميز ميزات المخطط ذات الصلة، وأن يكتمل التوليد قبل أن يقطعه شرط إيقاف، وأن يستعيد المحلل قيمة JSON كاملة، وأن يطبّق مدقّق التطبيق إصدار المسودة المتوقع وقواعد التحويل التلقائي.

JSON الصالح وJSON المطابق للمخطط نتيجتان مختلفتان

يمكن تحليل كائن بنجاح مع مخالفته للحقول المطلوبة أو الأنواع أو القيم المحصورة أو حدود المصفوفات أو الفروع الشرطية. وقد يحتوي أيضًا على أسماء الحقول الصحيحة، لكنه يضيف خصائص يحظرها المخطط.

تحدد وحدة JSON في Python طبقة الصياغة الخاصة بـ فك ترميز مستند JSON، لكن التحليل لا يطبّق عقد JSON Schema منفصلًا.

يمكن التعرّف على هذا السبب عندما يُحمّل الخرج دون خطأ صياغة، لكنه يفشل فقط بعد التحقق من المخطط. فالقوس المفقود أو الشرح اللاحق يمثل فشلًا في التسلسل؛ أما وجود سلسلة نصية حيث يُطلب عدد صحيح فيمثل فشلًا في العقد.

قد يؤدي تركيب المخطط إلى إنشاء فروع يصعب استيفاؤها

تجمع كلمات مفتاحية مثل allOf وanyOf وoneOf وnot القيود. وقد يكون فرع ما صالحًا بمفرده، بينما لا يطابق الكائن المدمج أيًا من البدائل المسموح بها أو يطابق عدة بدائل منها.

تشرح إرشادات JSON Schema كيف تغيّر الكلمات المفتاحية لتركيب المخططات ما إذا كان يجب مطابقة مخطط فرعي واحد أو عدة مخططات فرعية.

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

قد لا يدعم مفكك الترميز المقيّد سوى جزء من المخطط

تحوّل محركات الخرج المهيكل المخططات إلى قيود على الرموز أو قواعد نحوية أو تعبيرات نمطية أو قواعد خاصة بالواجهة الخلفية. ولا تنفذ جميعها كل مسودة أو كلمة مفتاحية في JSON Schema.

يعرض vLLM عدة واجهات خلفية للخرج المهيكل، موضحًا أن قيود مخطط JSON والقواعد النحوية والتعبيرات النمطية والخيارات الثابتة هي أوضاع تنفيذ منفصلة.

يظهر هذا السبب عندما يُتحقق من المخطط نفسه بنجاح باستخدام مدقّق متوافق مع المعايير، لكنه يفشل فقط في واجهة خلفية واحدة للاستدلال. وقد تُبسّط المراجع أو الأنماط أو الكلمات المفتاحية الشرطية غير المدعومة أو تُتجاهل أو تُرفض قبل أن يبدأ النموذج التوليد.

قد تتعارض تعليمات المطالبة مع المخطط

قد تطلب مطالبة المستخدم تعليقات أو استشهادات أو شروحات أو حذفًا اختياريًا أو تعبيرًا لغويًا عن عدم اليقين، بينما يفرض المخطط كائنًا واحدًا ذا حقول ثابتة.

عندها يواجه النموذج معيارين متنافسين للنجاح: الإجابة على المستخدم بأسلوب حواري وإصدار الرموز المسموح بها فقط ضمن العقد الآلي. وقد يتبع نموذج محلي أصغر التعليمات الأحدث أو الأكثر بروزًا بدلًا من التوفيق بينهما.

غالبًا ما تضيف هذه الإخفاقات مقدمة أو سياجًا بصيغة Markdown أو شرحًا بعد الكائن، أو قيمة تستوفي الطلب النصي لكنها تخالف التعداد المعلن. يكون المخطط صالحًا، لكن تسلسل التعليمات غير متسق.

قد يترك الاقتطاع خطة صحيحة في صورة خرج غير صالح

تحتاج المصفوفات والكائنات المتداخلة إلى عدد كافٍ من الرموز المولدة لإغلاق كل بنية. وقد ينهي حد الرموز أو سلسلة الإيقاف أو الطلب الملغى أو التدفق المتقطع الاستجابة قبل وصول المحددات النهائية.

يعرض Transformers عناصر تحكم في الحد الأقصى للرموز والإيقاف تحدد وقت انتهاء التوليد.

ويتميز هذا السبب ببادئات صالحة تنتهي فجأة، خصوصًا في المصفوفات الأكبر أو حقول السلاسل النصية الطويلة. وتشير مخالفات الأنواع المتكررة قرب البداية إلى سبب آخر؛ أما الأقواس المفقودة قرب حد الخرج فتشير إلى توليد غير مكتمل.

قد يرفض دلالات المدقّق قيمًا اعتبرها النموذج متكافئة

قد يصدر النموذج "3" لعدد صحيح، أو null لحقل محذوف، أو قيمة تعداد بأحرف صغيرة، أو تاريخًا بصيغة ISO بينما يتوقع التطبيق صيغة أخرى.

يوثق Pydantic فئات متميزة لأخطاء التحقق للقيم المفقودة وJSON غير الصالح وعدم تطابق التعداد والحقول الإضافية المحظورة والأنواع غير المتوافقة.

إذا وصل كل فشل إلى الحقل نفسه بقيمة قابلة للتحليل لكنها مرفوضة، فالمشكلة ليست تلفًا عشوائيًا في المخطط، بل اختلافًا حول التحويل التلقائي أو الصرامة أو قابلية القيمة لأن تكون فارغة أو حالة الأحرف أو الصيغ الخاصة بالتطبيق.

قد تحافظ قيود القواعد النحوية على الصياغة دون المعنى العملي

يمكن لقاعدة نحوية أن تمنع الأقواس والمفاتيح غير القانونية، مع السماح ببنية مستحيلة دلاليًا، مثل تاريخ انتهاء يسبق تاريخ البدء أو مسار ملف غير موجود.

يوفر llama-cpp-python توليدًا مقيّدًا بالقواعد النحوية بوصفه عنصر تحكم في الاستدلال، لكن القاعدة النحوية تحكم بنية الرموز المسموح بها لا الحقيقة الخارجية.

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

قد تؤدي المعالجة اللاحقة إلى إفساد خرج النموذج الصالح

تزيل التطبيقات أحيانًا تنسيق Markdown، أو تستخرج أول كتلة محاطة بالأقواس المعقوفة، أو تدمج أجزاء التدفق، أو تصلح الفواصل، أو تحوّل القيم قبل التحقق.

يمكن أن تصبح استجابة نموذج صالحة غير صالحة عندما تتكرر قطعة من التدفق، أو تُفك ترميز Unicode بصورة غير صحيحة، أو تُحذف سلسلة هروب، أو تعدّل دالة إصلاح المحتوى المتداخل. وعلى العكس، قد تخفي خطوة الإصلاح أن خرج النموذج الخام كان غير صالح.

يوضح شرح ZimaSpace لأسباب هلوسة النماذج المحلية الصغيرة أثناء إخراج JSON الحد الفاصل ذي الصلة: يجب قياس صلاحية المخطط والصحة الواقعية كلٌّ على حدة، كما ينبغي الاحتفاظ بالاستجابة الخام قبل تحويلات التطبيق.

الأسئلة الشائعة

هل يثبت JSON الصالح أن الخرج يطابق المخطط؟

لا. يتحقق تحليل JSON من الصياغة، بينما يتحقق المخطط بصورة منفصلة من الخصائص المطلوبة والأنواع والتعدادات والفروع والحدود والقيود المعلنة الأخرى.

هل تمنع درجة الحرارة صفر فشل المخطط؟

لا. قد تجعل مسار فك ترميز واحد أكثر قابلية للتكرار، لكنها لا تضيف ميزات مخطط غير مدعومة، ولا تمنع الاقتطاع، ولا تحل تعارض التعليمات.

هل يضمن فك الترميز المقيّد سجل أتمتة قابلًا للاستخدام؟

لا. يمكنه ضمان القيود البنيوية المدعومة، لكن قواعد العمل وإسناد المصدر ووجود الملفات والصلاحيات واتساق الحقول تحتاج جميعًا إلى تحقق من التطبيق.

مركز التكنولوجيا والذكاء الاصطناعي

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.