توفير التوكنات وتحسين المطالبات: فن المحادثات الفعالة للذكاء الاصطناعي
٦ ديسمبر ٢٠٢٥
باختصار
- الرموز هي عملة تفاعلات النموذج اللغوي الكبير (LLM) — كل كلمة، مسافة، ورمز يُحسب.
- تحسين المطالبات يقلل التكاليف، ويُسرع الاستجابات، ويحسن موثوقية النموذج.
- تشمل التقنيات الضغط، المطالبات المهيكلة، تخزين السياق المؤقت، والقص الذكي.
- أدوات مثل
tiktokenالتابعة لـ OpenAI وعدادات الرموز التابعة لـ Anthropic تساعد في قياس وإدارة ميزانيات الرموز. - تستخدم الأنظمة الواقعية تحسين المطالبات لتوسيع نطاق أحمال العمل بالذكاء الاصطناعي بكفاءة مع الحفاظ على الدقة.
ما ستتعلمه
- ما هي الرموز وكيف تؤثر على التكلفة والأداء.
- كيف تقاس وتُحسَّن استخدام الرموز.
- أنماط تصميم للمطالبات الفعالة.
- متى تستخدم ضغط السياق ومتى لا تستخدمه.
- أمثلة واقعية لتحسين المطالبات في الأنظمة الإنتاجية.
- كيف تختبر وتراقب وتصلح أخطاء استخدام الرموز في سير عمل الذكاء الاصطناعي الخاص بك.
المتطلبات الأساسية
- فهم أساسي لكيفية عمل نماذج اللغة الكبيرة (LLMs) مثل GPT-4 أو Claude.
- خبرة مع بايثون (لتشغيل أمثلة الكود).
- الوصول إلى مفتاح API من مزود LLM مثل OpenAI أو Anthropic.
مقدمة: لماذا تهم كفاءة الرموز
في كل مرة ترسل فيها مطالبة إلى نموذج LLM، فإنك تنفق رموزًا — الوحدات الأساسية لفهم اللغة. فكر في الرموز كـ"الكلمات" التي يقرأها النموذج ويكتبها. على سبيل المثال، قد يتم تقسيم كلمة "optimization" إلى عدة رموز اعتمادًا على مجزئ الرموز1.
في واجهات برمجة التطبيقات التجارية مثل نماذج GPT التابعة لـ OpenAI، يتم فرض رسوم لكل رمز. كلما زادت عدد الرموز التي تستخدمها، زادت التكلفة2. ولكن بالإضافة إلى التكلفة، تؤثر كفاءة الرموز أيضًا على:
- التأخير: عدد أقل من الرموز = استجابات أسرع.
- نافذة السياق: للنماذج حد أقصى من الرموز (مثل 128k). تجاوزه يؤدي إلى قص المدخلات.
- الدقة: المطالبات الطويلة جدًا يمكن أن تشتت النموذج عن المهمة الرئيسية.
لذلك، تحسين المطالبات ليس مجرد تدبير لتوفير التكاليف — بل هو تخصص هندسة الأداء.
فهم الرموز وتجزئة الرموز
ما هي الرموز؟
الرمز هو وحدة نصية يعالجها النموذج — قد تكون كلمة، جزء من كلمة، أو حتى علامة ترقيم. تستخدم النماذج خوارزميات تجزئة الرموز (مثل ترميز الأزواج البايتية أو BPE) لتحويل النص إلى رموز3.
| نص المثال | تمثيل مجزأ | عدد الرموز |
|---|---|---|
| "Hello world!" | ["Hello", " world", "!"] | 3 |
| "Optimization matters." | ["Optimization", " matters", "."] | 3 |
| "Large language models are powerful." | ["Large", " language", " models", " are", " powerful", "."] | 6 |
قياس الرموز
يمكنك استخدام مكتبة tiktoken التابعة لـ OpenAI لحساب الرموز قبل إرسال الطلب:
import tiktoken
def count_tokens(text: str, model: str = "gpt-4-turbo") -> int:
encoding = tiktoken.encoding_for_model(model)
return len(encoding.encode(text))
prompt = "Summarize this article about AI token optimization."
print(count_tokens(prompt))
الإخراج:
8
هذا الفحص البسيط يساعدك في توقع التكاليف والتأكد من بقائك ضمن حدود النموذج.
اقتصاديات الرموز
استخدام الرموز يرتبط مباشرة بالتكلفة. على سبيل المثال، قد تفرض OpenAI’s GPT-4-Turbo جزءًا من السنت لكل ألف رمز2. وعلى الرغم من أن هذا يبدو صغيرًا، إلا أن التطبيقات الكبيرة (مثل روبوتات الدردشة أو ملخصات المستندات) يمكن أن تعالج ملايين الرموز يوميًا.
مثال: تفصيل التكلفة
| حالة الاستخدام | رموز لكل طلب | طلبات يوميًا | التكلفة لكل 1000 رمز | التكلفة اليومية |
|---|---|---|---|---|
| Customer Support Bot | 3,000 | 10,000 | $0.01 | $300 |
| Document Summarizer | 10,000 | 1,000 | $0.01 | $100 |
| Code Assistant | 1,000 | 5,000 | $0.01 | $50 |
الآن تخيل خفض استخدام الرموز بنسبة 30% عبر مطالبات أكثر ذكاءً — هذا يوفر تكاليف مباشرة ومكاسب في الأداء.
خطوة بخطوة: تحسين المطالبة
لنمر عبر عملية تحسين حقيقية.
1. ابدأ بمطالبة بسيطة
prompt = """
You are a helpful assistant. Please summarize the following text in detail, covering all aspects, key points, and conclusions. Make sure to include examples and maintain clarity.
Text: {article}
"""
2. احسب الرموز
لنفترض أن هذا يُنتج 150 رمزًا حتى قبل تضمين المقالة.3. الضغط والتبسيط
قلل من الإسهاب والتعليمات الزائدة:
count_tokens(prompt.format(article="This is a long article about..."))
الآن أصبح ~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 رمز بسبب سياق التاريخ المطول.
- التعليمات الثابتة المخزنة مؤقتًا مثل «أنت مساعد مفيد.»
- تلخيص تاريخ الدردشة بعد كل 5 تبادلات.
- استخدام التضمينات لاسترجاع الرسائل السابقة ذات الصلة.
النتيجة: انخفض استخدام التوكين بنسبة ~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 قبل الإرسال |
| مخرجات غير متوقعة | موجه مضغوط بشكل مفرط | أضف سياقًا حدّيًا |
| تأخير عالٍ | عدد توكينات كبير جدًا | حسّن واحفظ في الذاكرة المؤقتة |
تحدي جربه بنفسك
- اختر أحد موجهات LLM الحالية.
- قِس عدد التوكينات.
- قلله بنسبة 25% دون فقدان المعنى.
- قارن جودة الناتج والتأخير.
ستتفاجأ بمدى الكفاءة التي يمكنك تحقيقها.
الأخطاء الشائعة التي يرتكبها الجميع
- استخدام رسائل نظام مطولة (مثل «أنت مساعد مفيد يساعد المستخدمين في...» مكررة في كل مرة).
- نسيان قياس عدد التوكينات قبل التوسع.
- تجاهل تحذيرات القص.
- ضغط الموجهات دون اختبار.
اتجاهات الصناعة
يصبح تحسين الموجهات مجالًا أساسيًا في هندسة الذكاء الاصطناعي. تشمل الإطارات مثل LangChain و LlamaIndex الآن أدوات إدارة التوكين، وفرق الذكاء الاصطناعي في الشركات تبني «مُجمّعات موجهات» داخلية لتوحيد الكفاءة7.
مع توسع نوافذ السياق (مثل 1 مليون توكين في بعض النماذج)، يكون هناك إغراء لإرسال المزيد من البيانات. لكن الفرق الأكثر ذكاءً تعرف: الأقل هو أكثر عندما يكون الأقل المناسب.
النقاط الرئيسية
تحسين التوكين ليس مجرد توفير المال — بل هو بناء أنظمة ذكاء اصطناعي أسرع وأذكى وأكثر موثوقية.
- قِس قبل أن تُحسّن.
- اضغط دون المساس بالمعنى.
- خزّن السياق الثابت.
- راقب استخدام التوكين في الإنتاج.
- افحص الجودة دائمًا بعد التغييرات.
الأسئلة الشائعة
س1: كيف أعرف أن طلبى طويل جدًا؟
استخدم عدادات التوكين مثل tiktoken وقارنها مع حد السياق الخاص بنموذجك.
س2: هل يؤثر تحسين الطلب على الإبداع؟
أحيانًا. للمهام الإبداعية، اسمح ببعض التفصيل — التحسين هو الأفضل للمهام المنظمة أو المتكررة.
س3: هل يمكنني أتمتة تحسين الطلب؟
نعم، عبر مُجمّعات الطلب أو خطوط أنابيب التلخيص الديناميكي.
س4: ما هو أفضل ميزانية توكين لكل طلب؟
يعتمد على نموذجك واستخدامك. بالنسبة للدردشات، 1–2K توكين لكل جولة شائع.
س5: كيف أتعامل مع المحادثات متعددة الجولات؟
لخص أو قصر الرسائل القديمة مع الحفاظ على السياق الرئيسي.
الخطوات التالية
- دمج عد التوكين في خط أنابيب LLM.
- جرّب الطلب المنظم.
- أنشئ طبقة تخزين مؤقت للرسائل النظامية المتكررة.
- راقب مقاييس استخدام التوكين في الإنتاج.
إذا وجدت هذا الدليل مفيدًا، فكر في الاشتراك في نشرتنا الإخبارية لمزيد من التحليلات المتعمقة لممارسات هندسة الذكاء الاصطناعي الأفضل.
الهوامش
-
دليل تجزئة OpenAI – https://platform.openai.com/tokenizer ↩
-
وثائق تسعير OpenAI – https://openai.com/pricing ↩ ↩2
-
Sennrich, Haddow, Birch. «الترجمة الآلية العصبية للكلمات النادرة باستخدام وحدات تحت الكلمة». ACL 2016. ↩
-
وثائق تضمينات OpenAI – https://platform.openai.com/docs/guides/embeddings ↩
-
دليل أمان الذكاء الاصطناعي OWASP – https://owasp.org/www-project-top-ten-for-large-language-model-applications/ ↩
-
وثائق Python AsyncIO – https://docs.python.org/3/library/asyncio.html ↩
-
وثائق LangChain – https://python.langchain.com/docs/modules/model_io/prompts/ ↩