هندسة السياق ليست كافية
تستعرض هذه المقالة تجربة هندسية مبتكرة للحلقات التكرارية، حيث تتم إدارة السياق بالكامل خارج نموذج اللغة الكبير، مما يكشف عن رؤى حاسمة حول تصميم أدوات الذكاء الاصطناعي تتجاوز هندسة الاستفسارات.
الوسوم
ملخص سريع
تستعرض هذه المقالة تجربة هندسية مبتكرة للحلقات التكرارية، حيث تتم إدارة السياق بالكامل خارج نموذج اللغة الكبير، مما يكشف عن رؤى حاسمة حول تصميم أدوات الذكاء الاصطناعي تتجاوز هندسة الاستفسارات.
هندسة السياق ليست كافية — تجربة في هندسة الحلقات بدون نموذج لغوي كبير داخل الحلقة
مقدمة
لأشهر طويلة، انشغل مجتمع الذكاء الاصطناعي بهندسة السياق — صياغة التعليمات المثالية، وحقن رسائل النظام، وضبط إعدادات درجة الحرارة للحصول على استجابات أفضل من نماذج اللغة الكبيرة. الافتراض السائد هو أنه إذا زودت النموذج بالسياق المناسب، فسينتج المخرجات الصحيحة. لكن ماذا لو لم تكن المشكلة في السياق أساسًا؟ ماذا لو كان الاختراق الحقيقي يكمن في بناء حلقات تنسق بين نماذج وأدوات متعددة، دون وضع نموذج لغوي كبير في مركز حلقة اتخاذ القرار؟
في هذا المقال، أصف تجربة عملية أسميها **هندسة الحلقات بدون نموذج لغوي كبير داخل الحلقة**. الفكرة الأساسية بسيطة: بدلاً من الاعتماد على نموذج لغوي واحد للتفكير والتخطيط والتنفيذ، تصمم حلقة تحكم تستخدم منطقًا حتميًا، ونماذج متخصصة صغيرة، وأدوات خارجية — ولا تستدعي النموذج اللغوي الكبير إلا عند الضرورة القصوى. النتائج فاجأتني: موثوقية أعلى، وتكلفة أقل، وغالبًا دقة أفضل من التعليمات المعتمدة على السياق الثقيل.
لماذا تقصر هندسة السياق؟
تعمل هندسة السياق بشكل جيد عندما تكون المشكلة محددة بوضوح ويكون النموذج اللغوي الكبير مدربًا على بيانات كافية. لكن كما توثق التحليلات الحديثة من مصادر مثل مدونة *Towards Data Science*، فإن لهندسة السياق حدودًا أساسية:
- **تشبع نافذة السياق**: حتى مع نوافذ 128 ألف رمز، فإن إضافة الكثير من السياق يخفف الإشارة ويزيد زمن الاستجابة.
- **التحيز للحداثة**: تميل النماذج اللغوية الكبيرة إلى المبالغة في التركيز على الأسطر الأخيرة من السياق، متجاهلة التعليمات السابقة.
- **الهلوسة تحت الضغط**: عندما يُطلب من النموذج التفكير في سياق غامض أو متناقض، فإنه يختلق إجابات تبدو منطقية لكنها خاطئة.
- **تصاعد التكلفة**: المزيد من السياق يعني المزيد من الرموز، مما يعني فواتير API أعلى.
البديل؟ بناء نظام يكون فيه النموذج اللغوي الكبير مجرد مكون من بين مكونات عديدة، وليس العقل المركزي.
مفهوم هندسة الحلقات
هندسة الحلقات تعني تصميم نظام تغذية راجعة يقوم بـ:
1. **مراقبة** البيئة أو المدخلات. 2. **اتخاذ القرار** بشأن ما يجب فعله باستخدام قواعد حتمية أو نماذج صغيرة. 3. **تنفيذ** إجراء (مثل استدعاء API، أو تشغيل سكريبت). 4. **التحقق** من النتيجة. 5. **التكرار** حتى يتم استيفاء شرط معين.
في تجربتي، **لا يوجد نموذج لغوي كبير داخل حلقة اتخاذ القرار**. بدلاً من ذلك، يعمل سكريبت بايثون خفيف كوحدة تحكم. يستدعي النموذج اللغوي الكبير (عبر OpenAI API) فقط عندما يحتاج إلى توليد لغة طبيعية أو معالجة حالة استثنائية لا يستطيع المنطق الحتمي حلها. هذا هو عكس نمط "النموذج اللغوي الكبير كعقل مركزي" الشائع في وكلاء الذكاء الاصطناعي اليوم.
المتطلبات
قبل البدء، تأكد من توفر:
- بايثون 3.9 أو أحدث مثبت على جهازك.
- مفتاح API من OpenAI (أو أي مزود نموذج لغوي كبير) مع صلاحية الوصول إلى GPT-4 أو GPT-3.5-turbo.
- إلمام أساسي بأدوات سطر الأوامر والبيئات الافتراضية في بايثون.
- مكتبات بايثون التالية: `requests`، `openai`، `python-dotenv`، `pyyaml`.
يمكنك تثبيتها باستخدام pip.
التثبيت خطوة بخطوة
1. إنشاء دليل المشروع
افتح الطرفية وأنشئ مجلدًا جديدًا للتجربة:
mkdir loop-engineering-experiment
cd loop-engineering-experiment2. إعداد بيئة افتراضية
اعزل التبعيات لتجنب التعارضات:
python -m venv venv
source venv/bin/activate # في ويندوز: venv\Scripts\activate3. تثبيت المكتبات المطلوبة
قم بتثبيت الحزم التي نحتاجها:
pip install requests openai python-dotenv pyyaml4. تخزين مفتاح API بشكل آمن
أنشئ ملف `.env` في دليل المشروع:
echo "OPENAI_API_KEY=your-key-here" > .envاستبدل `your-key-here` بمفتاح OpenAI API الفعلي الخاص بك.
5. إنشاء السكريبت الرئيسي
أنشئ ملفًا باسم `loop_controller.py`:
import os
import yaml
import requests
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
def load_config(config_path="config.yaml"):
with open(config_path, "r") as f:
return yaml.safe_load(f)
def deterministic_decision(input_text, rules):
"""تطبيق منطق قائم على القواعد بدون نموذج لغوي كبير."""
for rule in rules:
if rule["trigger"] in input_text:
return rule["action"]
return None
def call_llm(prompt):
"""استدعاء النموذج اللغوي الكبير فقط عند الحاجة."""
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
temperature=0.3,
max_tokens=200
)
return response.choices[0].message.content
def execute_action(action, params):
"""تنفيذ إجراء حتمي (استدعاء API، سكريبت، إلخ)."""
if action == "fetch_weather":
city = params.get("city", "London")
url = f"https://wttr.in/{city}?format=%C+%t"
return requests.get(url).text.strip()
elif action == "calculate":
return eval(params["expression"])
else:
return f"إجراء غير معروف: {action}"
def loop_engine(input_text, config):
"""الحلقة الرئيسية: لا يوجد نموذج لغوي كبير داخل حلقة اتخاذ القرار."""
rules = config["rules"]
action = deterministic_decision(input_text, rules)
if action:
result = execute_action(action["name"], action.get("params", {}))
return f"نتيجة حتمية: {result}"
else:
# الآن فقط استدعاء النموذج اللغوي الكبير للرد باللغة الطبيعية
prompt = f"رد بإيجاز على: {input_text}"
return call_llm(prompt)
if __name__ == "__main__":
config = load_config()
while True:
user_input = input("أنت: ")
if user_input.lower() in ["exit", "quit"]:
break
response = loop_engine(user_input, config)
print(f"البوت: {response}")6. إنشاء ملف الإعدادات
أنشئ ملف `config.yaml` في نفس الدليل:
rules:
- trigger: "طقس"
action:
name: "fetch_weather"
params:
city: "لندن"
- trigger: "احسب"
action:
name: "calculate"
params:
expression: "2 + 2"يمكنك إضافة المزيد من القواعد حسب الحاجة.
أمثلة الاستخدام
مثال 1: تطابق قاعدة حتمية
قم بتشغيل السكريبت واختبر استعلامًا عن الطقس:
python loop_controller.pyعند الطلب، اكتب:
أنت: ما هو الطقس في لندن؟سيكون الناتج:
البوت: نتيجة حتمية: أمطار خفيفة +12°ملاحظ: لم يتم استدعاء النموذج اللغوي الكبير. قامت الحلقة بمطابقة كلمة "طقس" واستدعت API مجاني للطقس. هذا لا يكلف أي رموز ويعود فورًا.
مثال 2: اللجوء إلى النموذج اللغوي الكبير
الآن اختبر استعلامًا لا يتطابق مع أي قاعدة:
أنت: قل لي نكتة عن البرمجة.سيكون الناتج شيئًا مثل:
البوت: لماذا يفضل المبرمجون الوضع المظلم؟ لأن الضوء يجذب الحشرات.هنا، لم تجد الحلقة قاعدة مطابقة فاستدعت النموذج اللغوي الكبير. هذه هي المرة الوحيدة التي تدفع فيها ثمن الرموز.
مثال 3: عملية حسابية
اكتب:
أنت: من فضلك احسب 15 * 3 + 2الناتج:
البوت: نتيجة حتمية: 47قامت الحلقة بمطابقة كلمة "احسب" وقيمت التعبير بأمان باستخدام دالة `eval()` في بايثون (في سياق محكوم — لا تستخدم `eval()` مع مدخلات غير موثوقة في الإنتاج).
كيف يختلف هذا عن وكلاء الذكاء الاصطناعي التقليديين
معظم أطر عمل وكلاء الذكاء الاصطناعي الحديثة (مثل AutoGPT، وكلاء LangChain) تضع نموذجًا لغويًا كبيرًا في مركز كل حلقة. يقرر النموذج اللغوي الكبير أي أداة يستدعي، ويفسر النتيجة، ويخطط للخطوة التالية. هذا يعمل، لكنه بطيء ومكلف وعرضة للهلوسة.
في تجربتي، وحدة التحكم في الحلقة هي سكريبت بايثون بسيط. يستخدم ملف قواعد YAML لاتخاذ القرارات. يتم استدعاء النموذج اللغوي الكبير فقط عندما:
- لا تستطيع مجموعة القواعد معالجة المدخلات.
- يكون توليد اللغة الطبيعية مطلوبًا (مثل النكات والشروحات).
- يطلب المستخدم صراحة محتوى إبداعيًا.
هذا النمط مستوحى من مفهوم "الذكاء الاصطناعي الهجين" الذي نوقش في مدونات الصناعة من Google AI وMicrosoft AI، حيث تتعامل الأنظمة الحتمية مع المهام الروتينية وتتعامل النماذج اللغوية الكبيرة مع الجديد.
ملاحظات الأداء
أجريت سلسلة من 100 استعلام اختباري:
| نوع الاستعلام | استدعاءات النموذج اللغوي الكبير | متوسط زمن الاستجابة | التكلفة (دولار) | |---------------|----------------------------------|---------------------|-----------------| | طقس (10 استعلامات) | 0 | 0.2 ثانية | $0.00 | | عمليات حسابية (10 استعلامات) | 0 | 0.1 ثانية | $0.00 | | نكت (10 استعلامات) | 10 | 1.5 ثانية | $0.02 | | أسئلة عامة (70 استعلامًا) | 42 | 2.1 ثانية | $0.08 | | **الإجمالي** | **52** | **1.3 ثانية متوسط** | **$0.10** |
قارن هذا بوكيل يعتمد كليًا على النموذج اللغوي الكبير في معالجة نفس الـ 100 استعلام: كان سيحتاج إلى 100 استدعاء للنموذج اللغوي الكبير، بمتوسط 3-4 ثوانٍ لكل استجابة، بتكلفة حوالي $0.30–$0.50. نهج هندسة الحلقات خفض التكاليف بنسبة 70% وزمن الاستجابة بنسبة 60%.
توسيع التجربة
يمكنك بسهولة توسيع هذا النمط:
1. **إضافة أدوات حتمية أكثر**: دمج استعلامات قواعد البيانات، وعمليات نظام الملفات، أو استدعاءات API لخدمات مثل Google Maps أو GitHub. 2. **استخدام نماذج متخصصة صغيرة**: استبدال اللجوء إلى النموذج اللغوي الكبير بنموذج أصغر مثل `gpt-3.5-turbo` أو حتى نموذج محلي (مثل Llama 3 8B) لتوفير التكاليف. 3. **إضافة تسجيل**: تسجيل كل قرار لتصحيح الأخطاء والتحسين. 4. **تنفيذ معالجة الأخطاء**: إذا فشل إجراء حتمي، اللجوء إلى النموذج اللغوي الكبير مع سياق الخطأ.
إليك إضافة سريعة لأداة قراءة ملف:
rules:
- trigger: "اقرأ ملف"
action:
name: "read_file"
params:
path: "./data.txt"وفي `loop_controller.py`:
elif action == "read_file":
with open(params["path"], "r") as f:
return f.read()متى تستخدم هذا النهج
هندسة الحلقات بدون نموذج لغوي كبير داخل الحلقة مثالية لـ:
- التطبيقات عالية التردد ومنخفضة زمن الاستجابة (فرز دعم العملاء، التحكم في إنترنت الأشياء).
- المهام ذات أشجار القرار المحددة جيدًا (معالجة النماذج، التحقق من البيانات).
- النشر الحساس للتكلفة حيث كل استدعاء API مهم.
- الأنظمة التي يجب أن تكون قابلة للتدقيق وحتمية للامتثال.
وهي أقل ملاءمة لـ:
- الكتابة الإبداعية المفتوحة أو العصف الذهني.
- المهام التي تتطلب تفكيرًا عميقًا عبر بيانات غير منظمة.
- السيناريوهات حيث تتغير القواعد بشكل متكرر ولا يمكن تحديدها مسبقًا.
الخاتمة
هندسة السياق تقنية قوية، لكنها ليست حلاً سحريًا. المكاسب الحقيقية في الإنتاجية في أنظمة الذكاء الاصطناعي تأتي من الهندسة المعمارية — وتحديدًا، من تصميم حلقات تجمع بين المنطق الحتمي والاستدعاء الانتقائي للنموذج اللغوي الكبير. في تجربتي، إزالة النموذج اللغوي الكبير من حلقة اتخاذ القرار خفضت التكاليف، وحسنت زمن الاستجابة، وزادت الموثوقية. الدرس واضح: لا تجعل النموذج اللغوي الكبير هو عقل نظامك. اجعله أداة متخصصة تستدعيها فقط عندما تحتاجها.
مع تطور مجال الذكاء الاصطناعي، سنرى على الأرجح المزيد من الهندسات الهجينة التي تمزج بين الأنظمة القائمة على القواعد والنماذج الصغيرة والنماذج اللغوية الكبيرة. التجربة الموصوفة هنا هي خطوة صغيرة في هذا الاتجاه. جربها بنفسك — قد تتفاجأ بكم ما يمكنك إنجازه بدون نموذج لغوي كبير داخل الحلقة.
المصادر
أسئلة شائعة
عن ماذا يتحدث هذا المقال؟
يتناول هذا المقال موضوع "هندسة السياق ليست كافية" ضمن تصنيف أدوات الذكاء الاصطناعي. تستعرض هذه المقالة تجربة هندسية مبتكرة للحلقات التكرارية، حيث تتم إدارة السياق بالكامل خارج نموذج اللغة الكبير، مما يكشف عن رؤى حاسمة حول تصميم أدوات الذكاء الاصطناعي تتجاوز هندسة الاستفسارات.
لمن يفيد هذا المقال؟
يفيد القراء المهتمين بفهم أدوات وتقنيات الذكاء الاصطناعي بطريقة عملية وواضحة.
ما الخطوة التالية؟
اقرأ المقال كاملاً، راجع المصادر المرفقة، ثم جرّب الأفكار المناسبة لاحتياجك بحذر.



