HyperAIHyperAI
Back to Headlines

Generating Structured Outputs from LLMs: A Guide for Engineers

منذ 5 أيام

تُعدّ إنتاج المخرجات المُهيكلة من النماذج اللغوية الكبيرة (LLMs) خطوة حاسمة لتمكين البرمجيات من الاستفادة الفعّالة من قدرات هذه النماذج، خصوصًا في التطبيقات الصناعية والبرمجيات التي لا تستطيع فهم النصوص غير المهيكلة كما يفعل البشر. بينما تُستخدم واجهات الدردشة التقليدية مثل تلك الموجودة في ChatGPT أو Gemini بشكل فعّال مع المستخدمين البشريين، فإن البرامج البرمجية تحتاج إلى مخرجات منظمة مسبقًا، مثل JSON أو تنسيقات مهيكلة أخرى، لتسهيل معالجتها تلقائيًا. تتعدد الطرق لتحقيق هذا الهدف، وتمحور هذه المقالة حول ثلاث من أكثرها شيوعًا: الاعتماد على مزودي واجهات برمجة التطبيقات (API)، واستراتيجيات التوجيه والتكرار (prompting and reprompting)، والفكّ المُحدّد (constrained decoding). أولى الطرق هي الاعتماد على مزودي API مثل OpenAI وGoogle Gemini، الذين يتيحون تحديد مخطط مخرجات باستخدام صيغة مثل Pydantic، ويضمنون إخراجًا مهيكلًا تلقائيًا. هذه الطريقة بسيطة وفعّالة، لكنها تُقيّد المستخدم بمنصة واحدة، وتجعل المشروع عرضة للتغيرات السعرية أو توقف الخدمة، كما تقلل من المرونة في استخدام نماذج مفتوحة المصدر. الثانية هي استخدام التوجيه المُعدّل (prompting)، حيث يتم توجيه النموذج كتابةً لاتباع هيكل معيّن، مع إعطاء أمثلة وتحذيرات بعدم إضافة نصوص غير مطلوبة. ومع ذلك، فإن هذه الطريقة غير موثوقة دائمًا، إذ قد يُخرِج النموذج نصًا غير مهيكل. لذا، يُستخدم مُحلّل (parser) لفحص المخرجات، وإذا فشل التحليل، يُعاد التوجيه (reprompting). تُعدّ مكتبة Instructor من أبرز الأدوات في هذا المجال، حيث تدعم تعدد مزودي الخدمة، وتُعدّل التكرار تلقائيًا عند الفشل، لكنها تتطلب تكلفة إضافية نظرًا لزيادة عدد الرسائل (tokens) الناتجة عن التكرار. أما الطريقة الثالثة، وهي الأفضل من حيث الكفاءة والتكلفة، فهي الفك المُحدّد. تُعتمد هذه الطريقة على مبدأ أن النماذج الكبيرة تُولّد الكلمات تباعًا (autoregressive)، ويمكن التحكم في التوليد من خلال تحديد مجموعة الكلمات المسموح بها في كل خطوة. يتم تحويل المخطط المطلوب إلى تعبير منتظم (RegEx)، ثم إلى آلة منتهية محددة (DFA)، التي تُحدد في كل حالة مجموعة الكلمات المسموحة. أثناء التوليد، تُصفر (zero-out) احتمالات الكلمات غير المسموحة في التوزيع الاحتمالي (softmax)، مما يضمن أن النموذج يُولّد فقط تسلسلًا يلتزم بالهيكل المطلوب. هذه الطريقة لا تتطلب تكرارًا ولا تكلفة إضافية، وتحقيقها ممكن عبر مكتبات مثل Outlines، التي تدعم تحويل Pydantic إلى RegEx تلقائيًا، وتُبسّط التكامل مع مزودي النماذج مثل OpenAI وOllama. باختصار، بينما تُعدّ الطرق القائمة على التوجيه مفيدة للتطبيقات السريعة، فإن الفك المُحدّد هو الخيار الأمثل للمشاريع التي تتطلب كفاءة عالية، وتكلفة منخفضة، وموثوقية مضمونة. مع توفر أدوات برمجية متقدمة مثل Outlines، أصبح من السهل دمج هذه التقنية في أي مشروع برمجي، مما يفتح آفاقًا واسعة لاستخدام LLMs في التطبيقات الصناعية، مثل استخراج البيانات من المستندات، معالجة الطلبات التلقائية، أو توليد بيانات قابلة للتحليل.

Related Links