النموذج لا يتذكر. أنت من يتذكر.
نماذج اللغات الكبيرة (LLMs) ليس لديها ذاكرة.
كنت أعتقد أن كل محادثة تخزن سياقها الخاص. كنت أظن أن النموذج يتذكر كلماتنا السابقة تلقائيًا. كنت مخطئًا.
واجهة برمجة تطبيقات الرسائل (Messages API) هي واجهة عديمة الحالة (stateless). النموذج لا يعرف سوى ما ترسله في الطلب الحالي. إذا كنت تريد إجراء محادثة، فيجب عليك إرسال السجل الكامل إلى النموذج في كل مرة.
ذاكرتك ليست سوى مصفوفة من الرسائل.
عندما تبني محادثة، فأنت تدير هذه المصفوفة. وتبدو بهذا الشكل:
• المستخدم: مرحبًا، Claude • المساعد: مرحبًا! كيف يمكنني مساعدتك؟ • المستخدم: هل يمكنك وصف نماذج LLMs؟
في كل مرة تطرح فيها سؤالًا جديدًا، تقوم بإلحاق الرسالة الجديدة بتلك القائمة وإرسال القائمة بأكملها إلى الـ API.
لقد تعلمت هذا من خلال تجنب استخدام الـ SDKs. يستخدم معظم المطورين أدوات مثل Anthropic SDK. هذه الأدوات تخفي التعقيد؛ فهي تتولى عمليات إعادة المحاولة والرؤوس (headers) نيابة عنك.
لقد اخترت استخدام fetch الخام بدلاً من ذلك. أجبرني هذا على إدارة الرؤوس (headers) وجسم الطلب (request body) يدويًا. لقد أزال هذا التجريد (abstraction)، ورأيت بالضبط كيف تنتقل البيانات.
هذا المفهوم هو الأساس لكل شيء آخر. إذا كنت تريد بناء أنظمة متقدمة، فيجب عليك فهم هذه المصفوفة. استراتيجيات مثل RAG أو النوافذ المنزلقة (sliding windows) تبدأ جميعها بكيفية إدارتك لقائمة الرسائل هذه.
بمجرد إتقانك للسجل، يمكنك الانتقال إلى استخدام الأدوات (tool use). يتيح ذلك للنموذج تنفيذ المهام واختيار الوظائف (functions) الصحيحة لتشغيلها.
تحكم في سياقك. تحكم في نموذجك.
المصدر: https://dev.to/marcochavezco/the-model-doesnt-remember-you-do-3mmk
مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi