Prompt as a Data Type: In-Database LLM Prompt Management and Rewriting
تقدم هذه الورقة البحثية PromptDB، وهو نظام قواعد بيانات يعامل المطالبات (prompts) كأنواع بيانات من الدرجة الأولى على مستوى الصفوف (tuple-level) لتمكين الإدارة والتحسين وإعادة الكتابة داخل قاعدة البيانات لتفاعلات النماذج اللغوية الكبيرة، مما يؤدي إلى تحسين صلاحية المخرجات والموازنة بين التكلفة والجودة مقارنةً بالتخزين الخارجي الساكن للمطالبات.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
لغة قواعد البيانات والروبوتات السرية
تخيل أن لديك مكتبة ضخمة ومنظمة للغاية (قاعدة بيانات) تحتوي على ملايين الحقائق، ولديك روبوت عبقري وثرثار (نموذج لغوي كبير، أو LLM) يمكنه القراءة وفهم أي شيء تقريبًا. عادةً، لجعل الروبوت يقوم بمهمة باستخدام حقائق المكتبة، يتعين على الإنسان أن يلعب دور الوسيط؛ حيث يأخذ ورقة من المكتبة، ويكتب مجموعة محددة من التعليمات (أمر/prompt) للروبوت، ثم يرسلها وينتظر الإجابة. المشكلة هي أن المكتبة نفسها لا تعرف ما هي التعليمات التي يتبعها الروبوت. الأمر يشبه طباخًا يعرف بالضبط ما هي المكونات الموجودة في الثلاجة، لكنه لا يستطيع رؤية الوصفة التي يستخدمها الطاهي؛ فلا يمكن للطباخ المساعدة في إصلاح وصفة سيئة أو اقتراح مكونات أفضل لأن الوصفة مخفية في دفتر ملاحظات على الطاولة.
ينتقل هذا البحث إلى عالم علوم الحاسوب حيث تلتقي قواعد البيانات والذكاء الاصطعي. إنه يعالج مشكلة مزعجة محددة: في الوقت الحالي، غالبًا ما تُخزن التعليمات التي نعطيها لروبوتات الذكاء الاصطناعي خارج قاعدة البيانات، في أكواد برمجية فوضوية أو دفاتر ملاحظات. وهذا يجعل من الصعب على قاعدة البيانات التحقق مما إذا كانت التعليمات جيدة، أو إصلاحها إذا كانت مربكة، أو جعل تشغيلها أقل تكلفة. يقترح المؤلفون فكرة ثورية: ماذا لو عاملنا هذه التعليمات كأي بيانات أخرى، مثل اسم أو رقم، مخزنة مباشرة داخل جداول قاعدة البيانات؟ من خلال جعل التعليمات "مرئية" لقاعدة البيانات، يمكن للنظام إعادة كتابتها تلقائيًا لتصبح أذكى، وأسرع، وأكثر دقة، باستخدام معرفة قاعدة البيانات نفسها لمساعدة الروبوت على أداء مهمته بشكل أفضل.
الفكرة الكبرى للبحث: الأوامر (Prompts) كبيانات
يقدم المؤلفان، دينيس ماير ليما مارتينز وغوتفريد فوسن، نظامًا جديدًا يسمى PromptDB. فكر فيه كقاعدة بيانات لا تخزن الحقائق فحسب، بل تخزن أيضًا التعليمات حول كيفية التحدث إلى الذكاء الاصطناعي. في الأنظمة التقليدية، إذا كنت تريد من الذكاء الاصطناعي تصنيف شكوى عميل (مثل "لم تصل شحنتي أبدًا!")، فستكتب أمرًا (prompt) في كود التطبيق الخاص بك، وتجلب النص من قاعدة البيانات، ثم ترسله إلى الذكاء الاصطناي. ترى قاعدة البيانات مجرد سلسلة نصية؛ فهي لا تعرف أن هذا النص هو مجموعة من التعليمات المعدة للتنفيذ.
في PromptDB، يُعتبر الأمر (prompt) مواطنًا من الدرجة الأولى. إنه نوع بيانات خاص يسمى PROMPT. بدلاً من إخفاء التعليمات في دفتر ملاحظات، تقوم قاعدة البيانات بتخزينها مباشرة داخل صفوف الجدول، جنبًا إلى جنب مع البيانات التي تصفها. قد يبدو الصف كالتالي:
- معرف التذكرة: 1001
- الرسالة: "الشحنة لم تصل أبدًا"
- الأولوية: عالية
- التعليمات:
PROMPT("صنف هذه التذكرة: {{body}}", output: [refund, delivery, technical, other])
هنا، التعليمات هي كائن مهيكل. فهي تعرف القالب ("صنف هذه التذكرة...")، وتعرف الجزء الذي يجب وضعه من الصف (الـ body)، وتعرف الإجابات الصالحة (قائمة الـ output). ولأن قاعدة البيانات تستطيع "رؤية" التعليمات، يمكنها العمل كمحرر ذكي.
المحرر السحري: PromptOpt
يحدث السحر الحقيقي مع مكون يسمى PromptOpt. تخيل أنك معلم تصحح مقال طالب. إذا كتب الطالب إجابة طويلة ومسهبة، فقد تقول له: "كن موجزًا". إذا نسي ذكر الخطوات المطلية، فقد تقول له: "أضف الخطوات المفقودة". يقوم PromptOpt بهذا تلقائيًا للأوامر الموجهة للذكاء الاصطناعي.
يستخدم النظام معرفة قاعدة البيانات الخاصة به لإعادة كتابة التعليمات قبل إرسالها إلى الذكاء الاصطناعي. لديه بعض الحيل في جعبته:
- حقن القيود (Constraint Injection): إذا كانت قاعدة البيانات تعرف أن الإجابات الوحيدة الصالحة هي "استرداد" (refund) أو "توصيل" (delivery)، فإن PromptOpt يعيد كتابة الأمر ليخبر الذكاء الاصطناعي صراحةً: "يجب عليك اختيار إحدى هاتين الكلمتين بالضبط". هذا يمنع الذكاء الاصطناعي من اختراع إجابات غريبة مثل "العميل حزين".
- إسقاط الأعمدة (Column Projection): إذا كان الصف يحتوي على 50 عمودًا من البيانات ولكن الذكاء الاصطناي يحتاج فقط لقراءة عمود "الرسالة"، فإن PromptOpt يقوم بقص الأعمدة الـ 49 الأخرى. هذا يوفر المال (عدد كلمات/tokens أقل للقراءة) ويقلل الارتباك.
- أمثلة قليلة الخطوات (Few-Shot Examples): يمكن للنظام النظر في الصفوف الأخرى في قاعدة البيانات، وإيجاد أمثلة جيدة للإجابات الصحيحة، وإدراجها في الأمر لإظهار ما يجب فعله للذكاء الاصطناي بالضبط.
يعامل النظام عمليات إعادة الكتابة هذه مثل "محسن الاستعلام" (query optimizer). تمامًا كما يقرر محسن قاعدة البيانات أسرع طريقة للبحث عن البيانات، يقرر PromptOpt أفضل طريقة لكتابة الأمر. إنه يوازن بين التكلفة (كم عدد الكلمات التي يجب على الذكاء الاصطناعي قراءتها/كتابتها) وبين الجودة (مدى احتمالية أن تكون الإجابة صحيحة). قد يقرر أنه بالنسبة لمهمة بسيطة، فإن أمرًا قصيرًا يكفي، ولكن بالنسبة لمهمة معقدة، فمن الجدير دفع التكلفة الإضافية لإضافة أمثلة.
ما وجدوه
اختبر المؤلفون PromptDB على ثلاث مجموعات بيانات مختلفة: تذاكر دعم وهمية، ومجموعة بيانات لتقييم السيارات، ومجموعة بيانات صناعية قياسية تسمى TPC-H. وقارنوا بين ثلاث طرق للقيام بالأمر:
- الثابت (Static): الطريقة القديمة، حيث يُكتب الأمر مرة واحدة ولا يتغير أبدًا.
- كل القواعد (All Rules): نسخة تطبق كل قواعد إعادة الكتابة الممكنة دون تمييز.
- PromptOpt: النسخة الذكية التي تختار أفضل إعادة كتابة لكل مهمة محددة.
تشير النتائج إلى أن معاملة الأوامر كبيانات هو أمر فعال.
- جودة أفضل: عندما تتطلب المهمة من الذكاء الاصطناعي الاختيار من قائمة محددة من الخيارات (مثل تصنيف تذكرة)، جعلت إعادة الكتابة الموجهة من قاعدة البيانات الذكاء الاصطناعي أكثر دقة بكثير. نهج "كل القواعد" قدم غالبًا أفضل النتائج، لكنه كان مكلفًا.
- المقايضة: نجح نظام PromptOpt في إيجاد نقطة التوازن المثالية. لم يقم دائمًا باختيار الأوامر الأكثر تعقيدًا وتكلفة، بل اختار أوامر أبسط كانت "جيدة بما يكفي" للمهمة، مما وفر في تكاليف الحوسبة مع الحصول على نتائج عالية الجودة في الوقت نفسه. على سبيل المثال، في بعض الاختبارات، حقق PromptOpt جودة تنافسية بعدد أقل بكثير من الـ "tokens" المدخلة مقارنة بالطريقة الثابتة.
- المهمة تفرق: يشير البحث إلى أن المقاس الواحد لا يناسب الجميع. إعادة الكتابة التي تساعد في "التصفية الدلالية" (التحقق مما إذا كان الصف يطابق قاعدة ما) قد لا تساعد في "تطبيع القيم" (تنظيف النصوص الفوضوية). يقترح النظام أن النسخ المستقبلية تحتاج لتكون أكثر ذكاءً في معرفة أي قاعدة يجب استخدامها لأي مهمة.
ماذا يعني هذا (وماذا لا يعني)
يجادل البحث بضرورة التوقف عن معاملة تعليمات الذكاء الاصطناعي كأكواد مخفية وغير قابلة للتغيير. من خلال جعلها بيانات مرئية، يمكننا استخدام قدرات قاعدة البيانات الخارقة — معرفتها بالقيود، وقدرتها على تصفية البيانات، ومهارات التحسين الخاصة بها — لجعل تفاعلات الذكاء الاصطناعي أكثر موثوقية وكفاءة.
ومع ذلك، فإن المؤلفين حذرون من الادعاء بأن هذا حل مثالي ونهائي. فهم يعترفون بأن نظامهم الحالي يستخدم قواعد "استدلالية" بسيطة (تخمينات مدروسة) لتقدير الجودة والتكلفة، بدلاً من نموذج تعلم آلي كامل يعرف بدقة مدى جودة الأمر. ويقترحون أنه بينما يعمل النموذج الأولي بشكل جيد في عمليات المحاكاة وعلى مجموعات بيانات محددة، فإن "مقدر الجودة" يحتاج لأن يصبح أكثر ذكاءً للتعامل مع كل مهمة محتملة بشكل مثالي.
باختصار، يقترح PromptDB مستقبلًا لا تكون فيه قاعدة بياناتك مجرد مستودع للحقائق، بل مدربًا نشطًا لذكائك الاصطناعي، يعيد كتابة تعليماته في الوقت الفعلي لضمان تنفيذ المهمة بشكل صحيح، وبسرعة، ودون هدر للموارد. إنها خطوة نحو جعل الذكاء الاصطناعي يبدو أقل كصندوق أسود وأكثر كجزء طبيعي من عالم البيانات.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.