الانتقال إلى المحتوى الرئيسي

تجميع الدُفعات مع ترحيل السياق

ترحيل السياق هو ميزة لاتساق الترجمة على مستوى المستند، تنقل نافذة من الترجمات السابقة إلى الدُفعات اللاحقة، مما يمنح نموذج اللغة الكبير (LLM) "ذاكرة قصيرة المدى" عبر حدود الدُفعات.

لماذا توجد هذه الميزة

عند ترجمة ملفات كبيرة (أكثر من 100 مفتاح أو مستندات Markdown طويلة)، يقسّم champollion العمل إلى دُفعات. بدون الترحيل، تُترجم كل دُفعة بشكل مستقل — فلا يملك نموذج اللغة الكبير أي ذاكرة لما ترجمه في الدُفعة السابقة. ويؤدي هذا إلى:

  • انحراف المصطلحات: يُترجم المصطلح الإنجليزي نفسه بشكل مختلف عبر الدُفعات (مثلًا، "dashboard" → "tableau de bord" في الدُفعة 1، و"panneau" في الدُفعة 3)
  • فشل الإحالة المرجعية: تفقد الضمائر والإشارات الممتدة عبر حدود الدُفعات مرجعها السابق
  • عدم اتساق الأسلوب: قد تتغير النبرة بين الدُفعات (رسمية → غير رسمية → رسمية)

هذه مشكلة موثقة جيدًا في أدبيات الترجمة الآلية. وقد جرى التحقق من صحة نهج النافذة المنزلقة من خلال أبحاث الترجمة الآلية على مستوى المستند (ورش عمل ACL وWMT).

كيف تعمل

النافذة المنزلقة

عند تفعيل contextRollover، يحتفظ خط أنابيب الترجمة بنافذة من أزواج المفتاح-القيمة المترجمة حديثًا. بعد اكتمال كل دُفعة، يُرحَّل جزء من مخرجاتها (الافتراضي: 20% من batchSize) إلى موجّه الدُفعة التالية بوصفه "ترجمات مرجعية".

Batch 1: Translate keys 1-80 → LLM sees: system prompt + keys 1-80
Batch 2: Translate keys 81-160 → LLM sees: system prompt + [16 reference translations from batch 1] + keys 81-160
Batch 3: Translate keys 161-240 → LLM sees: system prompt + [16 reference translations from batch 2] + keys 161-240

تُدرج الترجمات المرجعية في رسالة المستخدم مع تسمية واضحة:

--- Previous translations for context (do NOT re-translate these) ---
"nav.dashboard": "Tableau de bord"
"nav.settings": "Paramètres"
"header.welcome": "Bienvenue sur la plateforme"
---

{
"content.main_heading": "Getting Started with Your Dashboard",
...
}

استراتيجية الاختيار

هناك وضعان لاختيار الترجمات التي ستُرحَّل:

الاستراتيجيةالسلوكالأنسب لـ
tail (الافتراضي)آخر N ترجمة من الدُفعة السابقةالمستندات المتسلسلة، ومحتوى Markdown
diverseيختار مدخلات تغطي أنواع مفاتيح مختلفة (أزرار، عناوين، أوصاف)ملفات JSON الكبيرة ذات أنواع عناصر واجهة المستخدم المختلطة

ميزانية الرموز (Tokens)

تستهلك نافذة الترحيل رموزًا من المدخلات. يحسب Champollion التكلفة التقريبية للرموز ويُصدر تحذيرًا إذا تجاوزت النافذة 15% من نافذة السياق المقدّرة للنموذج. يتضمن التحذير اقتراحًا للتقليل:

[WARN] Rollover window is ~2400 tokens (18% of model context).
Consider reducing rolloverSize to 0.15 or lowering batchSize.

التمرير التمهيدي للسياق العام

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

  1. ملخص المستند — وصف من جملتين إلى ثلاث جمل لما تجري ترجمته
  2. الكيانات المسماة — أسماء المنتجات والمصطلحات التقنية وأسماء الأعلام مع المعالجة المقترحة
  3. قائمة اتساق المصطلحات — المصطلحات الأساسية التي حددها النموذج بوصفها تتطلب ترجمة متسقة

يُدرج هذا السياق العام في رسالة النظام لكل دُفعة، مما يمنح كل دُفعة وعيًا بالمستند الكامل رغم أنها لا ترى سوى شريحة منه.

نموذج التمرير التمهيدي

يستخدم استخراج السياق العام استدعاءً منفصلًا ومنخفض التكلفة لنموذج اللغة الكبير (الافتراضي: google/gemini-3.5-flash بدرجة حرارة 0.1) بصرف النظر عن نموذج الترجمة الذي ضبطه المستخدم. هذه مهمة استخراج بيانات وصفية، وليست مهمة ترجمة — فالسرعة والتكلفة أهم من المخرجات الإبداعية.

تقطيع المحتوى

في مستندات Markdown الطويلة (ترجمة المحتوى)، قد يتجاوز نص المستند نافذة السياق الفعلية للنموذج، أو قد يبتر النموذج مخرجاته. يقسّم تقطيع المحتوى المستند إلى مقاطع متداخلة تُترجم كل منها بشكل مستقل، ثم يُعاد تجميعها.

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

يتبع التقطيع تسلسلًا هرميًا من الأولويات — إذ يجرّب أولًا نقطة التقسيم الأكثر دلالة من حيث المعنى:

  1. حدود العناوين — تُنشئ علامات ## و### وحدات ترجمة طبيعية. كل قسم مكتفٍ ذاتيًا بما يكفي للترجمة المستقلة، وتمنح العناوين النموذج سياقًا بنيويًا حول ما يترجمه.
  2. حدود الفقرات — إذا تجاوز قسم عنوان واحد حجم المقطع، يجري التقسيم عند الأسطر الجديدة المزدوجة (\n\n). الفقرات هي الحد التالي الأفضل لأنها تمثل أفكارًا مكتملة.
  3. حدود الجمل — الملاذ الأخير للفقرات الطويلة جدًا (مثل الجداول الكبيرة، والنثر الكثيف). يجري التقسيم عند حدود النقطة المتبوعة بمسافة مع احترام الاختصارات.

لا تُقسَّم الكتل المحمية (كتل الشيفرة، والرموز المختصرة — انظر How Sync Works) أبدًا عبر المقاطع. إذا كان من شأن التقسيم قطع كتلة محمية، تنتقل نقطة التقسيم إلى ما قبلها أو ما بعدها.

مشغّلات التقطيع التلقائي

يُفعَّل التقطيع بطريقتين:

المشغّلالسلوك
ضبط contentChunkSize في الإعداداتيقطّع استباقيًا جميع المستندات التي تتجاوز ذلك العدد من الرموز
إرجاع النموذج لـ finish_reason: "length"يقطّع تلقائيًا كآلية احتياطية، حتى بدون إعداد

يعني المشغّل الاحتياطي أن التقطيع يعمل كشبكة أمان حتى لو لم تضبطه — فإذا بتر النموذج مخرجاته، يعيد champollion المحاولة تلقائيًا باستخدام المقاطع.

الإعدادات

  • contentChunkSize: الحد الأقصى للرموز لكل مقطع (الافتراضي: null = إرسال النص الكامل؛ اضبطه مثلًا على 4000 للمستندات الطويلة)
  • contentOverlap: التداخل بالرموز بين المقاطع (الافتراضي: 200). يضمن التداخل انتقالات سلسة عند حدود المقاطع.

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

champollion.config.json
{
"contentChunkSize": 4000,
"contentOverlap": 200
}

للاطلاع على نظام مرونة ترجمة المحتوى الكامل (إعادة المحاولة التشخيصية، والتراجع إلى نموذج بديل، ومحاسبة حالات الفشل)، انظر Content Resilience.

الإعدادات

البدء السريع

champollion.config.json
{
"contextRollover": true,
"globalContext": true,
"contentChunkSize": 4000,
"contentOverlap": 200
}

جميع الخيارات

champollion.config.json (advanced)
{
"contextRollover": {
"size": 0.2,
"strategy": "tail",
"maxTokens": null
},
"globalContext": {
"model": "google/gemini-3.5-flash",
"maxEntities": 20,
"temperature": 0.1
},
"contentChunkSize": 4000,
"contentOverlap": 200,
"contentFallbackChain": [
"google/gemini-2.5-flash",
"anthropic/claude-sonnet-4"
]
}
الحقلالنوعالافتراضيالوصف
contextRolloverboolean | objectfalseتفعيل ترحيل النافذة المنزلقة
contextRollover.sizenumber0.2نسبة batchSize التي تُرحَّل (0.0–1.0)
contextRollover.strategystring"tail"استراتيجية الاختيار: "tail" أو "diverse"
contextRollover.maxTokensnumber | nullnullحد أقصى صارم لميزانية رموز الترحيل
globalContextboolean | objectfalseتفعيل التمرير التمهيدي للسياق العام
globalContext.modelstring"google/gemini-3.5-flash"النموذج المستخدم في استدعاء التمرير التمهيدي
globalContext.maxEntitiesnumber20الحد الأقصى للكيانات المسماة المراد استخراجها
globalContext.temperaturenumber0.1درجة الحرارة لاستدعاء التمرير التمهيدي
contentChunkSizenumber | nullnullالحد الأقصى للرموز لكل مقطع محتوى (null = لا تقطيع)
contentOverlapnumber200رموز التداخل بين مقاطع المحتوى
contentFallbackChainstring[][]النماذج الاحتياطية لترجمة المحتوى عند فشل النموذج المضبوط بنيويًا

متى تُستخدم

السيناريوالتوصية
ملفات JSON صغيرة (أقل من 50 مفتاحًا)غير مطلوبة — دُفعة واحدة، لا مشاكل حدود
ملفات JSON كبيرة (أكثر من 100 مفتاح)فعّل contextRollover لاتساق المصطلحات
مستندات Markdown طويلةفعّل contextRollover + contentChunkSize + globalContext
الوثائق التقنيةفعّل globalContext لاستخراج الكيانات
نصوص واجهة المستخدم ذات الأساليب المختلطةاستخدم contextRollover مع strategy: "diverse"

حالة التنفيذ

الميزةالحالة
ترحيل النافذة المنزلقة (مفتاح-قيمة)🔲 مخطط له
ترحيل النافذة المنزلقة (المحتوى)🔲 مخطط له
التمرير التمهيدي للسياق العام🔲 مخطط له
تقطيع المحتوى🔲 مخطط له
التقطيع التلقائي عند البتر🔲 مخطط له
استراتيجية الاختيار diverse🔲 مخطط له

المراجع البحثية

تستند هذه الميزة إلى أبحاث منشورة في الترجمة الآلية على مستوى المستند:

  • نهج النافذة المنزلقة: ثبتت فعاليته في تحسين درجات BLEU وchrF وCOMET عند استخدام نماذج اللغة الكبيرة للترجمة (ورش عمل ACL 2023–2025 حول الترجمة الآلية على مستوى المستند)
  • دمج المعرفة المتعددة: يحسّن إدراج ملخصات المستندات وقوائم الكيانات بوصفها سياقًا عامًا من اتساق المصطلحات عبر المستندات الطويلة
  • التوجيه الواعي بالسياق (CAP): اختيار السياق ذي الصلة عبر درجات الانتباه أو التشابه الدلالي للتعلم داخل السياق

انظر أيضًا

  • Content Resilience — إعادة المحاولة التشخيصية، والتراجع إلى نموذج بديل، ومحاسبة حالات الفشل
  • How Sync Works — خط أنابيب الدُفعات الذي يعزّزه الترحيل
  • Coaching Data — ميزة مكمّلة لإدراج القواعد النحوية/القواميس
  • Translation Memory — ذاكرة الترجمة (TM) التي تعمل جنبًا إلى جنب مع الترحيل