توفير الرموز وتحسين المطالبات: فن المحادثات الفعالة للذكاء الاصطناعي

٦ ديسمبر ٢٠٢٥

Saving Tokens and Optimizing Prompts: The Art of Efficient AI Conversations
count_tokens(prompt.format(article="This is a long article about..."))

لنفترض أن هذا ينتج 150 رمزًا قبل حتى إدراج المقالة.

3. ضغط وتبسيط

قلل من الإطالة والتعليمات الزائدة:

prompt_optimized = """
Summarize the text below clearly and concisely, including key points and examples.

Text: {article}
"""

الآن أصبح ~90 رمزًا — خفض بنسبة 40% دون فقدان الوضوح.

4. تقييم جودة الإخراج

قم بتشغيل كلا الموجهين وقارن الملخصات. إذا بقيت الجودة كما هي، فقد حققت كفاءة في الرموز دون التضحية بالأداء.


مقارنة قبل وبعد

المقياس الموجه البدائي الموجه المُحسَّن
عدد الرموز 150 90
جودة الإخراج عالية عالية
كفاءة التكلفة منخفضة عالية
التأخير أبطأ أسرع

متى تستخدم مقابل متى لا تستخدم تحسين الموجه

السيناريو استخدام التحسين تجنب التحسين
واجهات برمجة عالية الحجم
أنظمة حساسة للتأخير
النماذج الأولية أو التجارب
الكتابة الإبداعية أو العصف الذهني
نماذج محدودة السياق (مثل 8K رمز)

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


تقنيات متقدمة لتحسين الرموز

1. تخزين السياق المؤقت

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

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

SYSTEM_PROMPT = "You are a legal assistant trained on company policy v3."

# Cache policy summary locally
POLICY_SUMMARY = "Employees must follow GDPR and internal compliance rules."

user_query = "Can we use customer data for marketing emails?"

final_prompt = f"{SYSTEM_PROMPT}\nPolicy: {POLICY_SUMMARY}\nQuestion: {user_query}"

هذا يتجنب إعادة إرسال المستندات الطويلة بشكل متكرر.

2. موجهات منظمة

استخدام هياكل JSON أو المفاتيح-القيم يساعد النموذج على تحليل المعلومات بكفاءة:

{
  "task": "summarize",
  "text": "Article about token optimization...",
  "length": "short"
}

الموجهات المنظمة تقلل الغموض وهدر الرموز الناتج عن اللغة الطبيعية المطولة.

3. نوافذ سياق ديناميكية

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

MAX_TOKENS = 8000
context = get_recent_messages(limit=MAX_TOKENS)

4. استرجاع مبني على التضمينات

بدلًا من إرسال المستندات الكاملة، استخدم التضمينات لاسترجاع الفقرات ذات الصلة فقط4. هذه الطريقة تدعم أنظمة توليد مُعزز بالاسترجاع (RAG) المستخدمة في روبوتات الدردشة المؤسسية.

5. نماذج ضغط الموجهات

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

compressed = small_model.summarize(context)
response = large_model.answer(question, context=compressed)

هذه العملية ذات الخطوتين يمكن أن تقلل بشكل كبير عدد الرموز في الأنظمة متعددة المحاور.


دراسة حالة واقعية: توسيع نطاق روبوتات الدعم

واجهت منصة دعم عملاء كبيرة (مشابهة لـ Zendesk أو Intercom) ارتفاعًا في تكاليف LLM. كل جلسة دردشة استهلكت ~15K رمزًا بسبب سياق التاريخ المطول.

  1. تخزين التعليمات الثابتة مؤقتًا مثل "أنت مساعد مفيد."
  2. تلخيص تاريخ الدردشة بعد كل 5 دورات.
  3. استخدام التضمينات لاسترجاع الرسائل السابقة ذات الصلة.

النتيجة: انخفض استخدام توكين بنسبة ~45%، وتحسّن التأخير، وانخفضت التكاليف الشهرية بشكل متناسب.


المزالق الشائعة والحلول

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

اختبار ومراقبة استخدام التوكين

اختبار الوحدة لكفاءة المطالبات

يمكنك كتابة اختبارات للتأكد من بقاء المطالبات ضمن ميزانيات التوكين:

def test_prompt_length():
    prompt = generate_prompt()
    assert count_tokens(prompt) < 2000, "Prompt exceeds token budget!"

التسجيل والمراقبة

استخدم التسجيل المنظم لمراقبة متوسط استخدام التوكين:

import logging
logging.basicConfig(level=logging.INFO)

logging.info({
    "event": "prompt_sent",
    "token_count": count_tokens(prompt)
})

في الإنتاج، قم بتجميع هذه السجلات لتتبع الاتجاهات وكشف الشذوذ.


اعتبارات الأمان

يمكن لتحسين المطالبات أن يُزيل عن غير قصد تعليمات السلامة أو السياق الذي يضمن الامتثال. دائمًا:

  • احتفظ بـمطالبات النظام التي تحدد حدود السلامة.
  • تجنب تقليص معرفات المستخدمين أو المراجع السياساتية.
  • تحقق من دقة الملخصات المضغوطة.

اتبع إرشادات أمان الذكاء الاصطناعي لـ OWASP لتجنب حقن البيانات أو تسريبها5.


رؤى الأداء والقابلية للتوسع

  • الإنتاجية: المطالبات الأقصر تعني تأخير أقل وإنتاجية أعلى لكل مثيل للنموذج.
  • كفاءة التخزين المؤقت: إعادة استخدام المطالبات تحسن نسبة التوكين إلى الاستجابة.
  • توسيع التكلفة: يتناسب تحسين التوكين خطيًا مع توفير التكاليف — تخفيض 30% في التوكينات ينتج عادةً تخفيض 30% في تكلفة API.

غالبًا ما تقوم الأنظمة الكبيرة بمعالجة الطلبات دفعة واحدة أو استخدام قنوات غير متزامنة لتحقيق أقصى كفاءة6.


أنماط معالجة الأخطاء

عند تحسين المطالبات، قد تواجه أخطاء مثل تجاوز السياق أو JSON غير صحيح. تعامل معها بحذر:

try:
    response = client.chat.completions.create(model="gpt-4-turbo", messages=messages)
except openai.error.InvalidRequestError as e:
    if "maximum context length" in str(e):
        truncate_context()
    else:
        raise

دليل استكشاف الأخطاء وإصلاحها

الخطأ السبب الإصلاح
context_length_exceeded المطالبة طويلة جدًا قص أو لخص السياق
invalid_json مطالبة هيكلية غير صحيحة تحقق من JSON قبل الإرسال
مخرجات غير متوقعة مطالبة مضغوطة بشكل مفرط أعد إضافة سياق أدنى
تأخير عالٍ عدد كبير من التوكينات حسّن واحفظ مؤقتًا

تحدي جربه بنفسك

  1. اختر أحد مطالبات LLM الحالية.
  2. قِس عدد توكيناته.
  3. قلله بنسبة 25% دون فقدان المعنى.
  4. قارن جودة المخرجات والتأخير.

ستتفاجأ بكيفية تحقيقك لكفاءة كبيرة.


الأخطاء الشائعة التي يرتكبها الجميع

  • استخدام رسائل نظام مطولة («أنت مساعد مفيد يساعد المستخدمين مع...» مكررة في كل مرة).
  • نسيان قياس عدد التوكينات قبل التوسع.
  • تجاهل تحذيرات التقليص.
  • ضغط المطالبات دون اختبار.

يصبح تحسين المطالبات مجالًا أساسيًا في هندسة الذكاء الاصطناعي. تتضمن الإطارات مثل LangChain وLlamaIndex الآن أدوات إدارة التوكين، وفرق الذكاء الاصطناعي في الشركات تبني «مُجمّعات مطالبات» داخلية لتوحيد الكفاءة7.

مع توسع نوافذ السياق (مثل 1M توكين في بعض النماذج)، يكون هناك إغراء لإرسال المزيد من البيانات. لكن أذكى الفرق تعلم: الأقل هو أكثر عندما يكون الأقل المناسب.


الاستنتاجات الرئيسية

تحسين الرموز ليس فقط لتوفير المال — بل هو بناء أنظمة ذكاء اصطناعي أسرع وأذكى وأكثر موثوقية.

  • قِس قبل أن تُحسّن.
  • اضغط دون المساس بالمعنى.
  • خزّن السياق الثابت.
  • راقب استخدام الرموز في الإنتاج.
  • اختبر الجودة دائمًا بعد التغييرات.

أسئلة شائعة

Q1: كيف أعرف أن الطلب طويل جدًا؟
استخدم عدادات الرموز مثل tiktoken وقارنها مع حد سياق نموذجك.

Q2: هل يؤثر تحسين الطلب على الإبداع؟
أحيانًا. للمهام الإبداعية، اترك بعض التفصيل — التحسين أفضل للمهام المنظمة أو المتكررة.

Q3: هل يمكنني أتمتة تحسين الطلب؟
نعم، عبر مُجمّعات الطلب أو خطوط أنابيب التلخيص الديناميكي.

Q4: ما هو أفضل ميزانية رموز لكل طلب؟
يعتمد على نموذجك واستخدامك. بالنسبة للروبوتات المحادثة، 1–2K رمز لكل دورة شائع.

Q5: كيف أتعامل مع المحادثات متعددة الدورات؟
لخص أو قص الرسائل القديمة مع الحفاظ على السياق الرئيسي.


الخطوات التالية

  • دمج عد الرموز في خط أنابيب LLM.
  • جرب الطلب المنظم.
  • أنشئ طبقة تخزين مؤقت للرسائل النظام المتكررة.
  • راقب مقاييس استخدام الرموز في الإنتاج.

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


الهوامش

  1. OpenAI دليل تجزئة الرموز – https://platform.openai.com/tokenizer

  2. OpenAI وثائق التسعير – https://openai.com/pricing 2

  3. Sennrich, Haddow, Birch. “Neural Machine Translation of Rare Words with Subword Units.” ACL 2016.

  4. OpenAI وثائق التضمينات – https://platform.openai.com/docs/guides/embeddings

  5. OWASP دليل أمان الذكاء الاصطناعي والخصوصية – https://owasp.org/www-project-top-ten-for-large-language-model-applications/

  6. وثائق AsyncIO لـ Python – https://docs.python.org/3/library/asyncio.html

  7. وثائق LangChain – https://python.langchain.com/docs/modules/model_io/prompts/