واجهة الطريقة المشتركة
ملخص تنفيذي. تحدد هذه الصفحة بروتوكول
TranslationMethodالذي يجب على جميع طرق Arena تنفيذه، وفئات الطرق الست (raw-llm،coached-llm،pipeline،custom-plugin،api،human)، وصيغة إضافات الطرق (plugins)، وفئات الاعتماديات (S/O/A1/A2/X) التي تحدد ما إذا كان يمكن تشغيل طريقة ما في بيئة التقييم المعزولة (sandbox) وتأهلها للجوائز. أي نهج ينفذ هذا البروتوكول يمكن قياس أدائه؛ وما يعتمد عليه يحدد أين يمكنه المنافسة.
تشترك أداة التقييم (eval harness) ونظام champollion في مفهوم موحد هو طريقة الترجمة. الطريقة هي أي إجراء يأخذ نصًا مصدريًا وينتج نصًا مترجمًا — سواء كان استدعاءً مباشرًا لنموذج لغوي كبير (LLM)، أو خط معالجة متعدد المراحل، أو واجهة برمجة تطبيقات من طرف ثالث، أو مترجمًا بشريًا.
البنية المعمارية
Method Plugin (v2 Spec)
├── method.json ← Manifest (name, class, entry_point, dependencies, metadata)
├── method_card.json ← Leaderboard description (what, not how)
├── pipeline.py ← Python module implementing TranslationMethod
└── (optional helpers) ← Additional Python modules
يتم التحميل عبر --method path/to/dir. لا تكتشف الأداة أي شيء تلقائيًا.
نظامان، واجهة واحدة
| Eval Harness | champollion | |
|---|---|---|
| اللغة | Python | Node.js |
| نقطة الدخول | translate.py | translate.js |
| الواجهة | بروتوكول TranslationMethod | إعداد methodPlugin |
| الغرض | تقييم دفعي مع التسجيل | توطين مباشر في بيئة التطوير/CI |
| المخرجات | بطاقة تشغيل مع المقاييس | ملفات لغوية مترجمة |
الطريقة التي تدعم كلا النظامين توفر نقطتي دخول — واحدة لكل بيئة تشغيل لغوية. بطاقة الطريقة هي الجسر الرابط: فهي تصف الطريقة بصيغة يفهمها كلا النظامين.
بطاقة الطريقة
تصف بطاقة الطريقة ماهية طريقة الترجمة دون الكشف عن التفاصيل المملوكة مثل موجه النظام الكامل. وهي تجيب عن الأسئلة التالية:
- ما فئة هذه الطريقة؟ (LLM خام، LLM موجَّه، خط معالجة، API، إلخ.)
- ما الأدوات التي تستخدمها؟ (محلل FST، قاموس، إلخ.)
- هل التنفيذ مفتوح المصدر؟
- ما أزواج اللغات التي تدعمها؟
راجع مواصفات بطاقة الطريقة للاطلاع على مخطط JSON الكامل.
مثال
{
"method_id": "fst-gated-v8",
"name": "FST-Gated Coached Translation v8",
"class": "pipeline",
"description": "LLM translation with morphological validation. Failed words are retried with FST feedback.",
"author": "Curtis Forbes",
"tools_used": ["HFST morphological analyzer", "Wolvengrey dictionary"],
"open_source": false,
"dependency_class": "A2",
"supported_pairs": ["eng>crk"]
}
يلخص حقل dependency_class ما تحتاجه الطريقة للتشغيل والنقل — راجع صلاحية الطريقة وفئات الاعتماديات أدناه.
فئات الطرق
| الفئة | الوصف |
|---|---|
raw-llm | استدعاء مباشر لنموذج لغوي كبير بتعليمات بسيطة |
coached-llm | نموذج لغوي كبير مع موجه منظم وأمثلة وقيود |
pipeline | خط معالجة متعدد المراحل بمكونات حتمية |
custom-plugin | عملية خارجية تنفذ بروتوكول TranslationMethod |
api | واجهة برمجة تطبيقات ترجمة من طرف ثالث (Google Translate، DeepL، إلخ.) |
human | ترجمة بشرية (لإنشاء خطوط أساس) |
صلاحية الطريقة وفئات الاعتماديات
لا تكون الطريقة قابلة للتشغيل أو النقل إلا بقدر توفر أقل اعتمادياتها توفرًا. تعتمد آليتان في Arena على المعرفة الدقيقة بما تحتاجه الطريقة:
- التقييم في بيئة معزولة (مواصفات المعيار §8.2) — تأتي الدرجات الرسمية المعيارية من بيئة معزولة سياسة شبكتها هي الرفض الافتراضي (default-deny). الطريقة التي تتطلب خدمة خارجية بشكل خفي لا يمكنها إنتاج درجة رسمية.
- نقل الجائزة (مواصفات الجوائز) — تُنقل الطرق الفائزة بالجوائز إلى منظمة الحوكمة الخاصة بمجتمع اللغة. الطريقة التي تتضمن محتوى لم يكن للمقدِّم حق تضمينه لا يمكن نقلها قانونيًا. يجب أن يمتلك المقدِّم (أو يُمنح) الحقوق لكل ما هو موجود داخل الحزمة.
ولجعل كلتا عمليتي التحقق آليتين بدلًا من اجتهادية، تعلن كل طريقة عن فئة اعتماديات مشتقة من بيان الاعتماديات في method.json.
ملاحظة حول التسمية. فئة الطريقة (الفقرة أعلاه:
raw-llm،pipeline، …) تصف كيف تترجم الطريقة. أما فئة الاعتماديات (هذا القسم) فتصف ما تحتاجه الطريقة للتشغيل والنقل. وهما محوران مستقلان: يمكن لطريقةpipelineأن تكون من أي فئة اعتماديات.
فئات الاعتماديات الخمس
| الفئة | الاسم | التعريف | قابلة للتشغيل في البيئة المعزولة؟ | مؤهلة للجائزة؟ |
|---|---|---|---|---|
| S | مكتفية ذاتيًا | تُشحن جميع الأكواد والبيانات والنماذج والأوزان داخل دليل الطريقة، بموجب تراخيص تسمح بإعادة التوزيع والنقل المجتمعي. | ✅ نعم، كما هي | ✅ نعم |
| O | خارجية مفتوحة | تعتمد على مواد مستضافة خارجيًا بموجب تراخيص مفتوحة تسمح بإعادة التوزيع (بما في ذلك تراخيص الحقوق المتروكة مثل AGPL) — مثل FST يُنزَّل عند التثبيت. | ✅ نعم — تُثبَّت المواد بإصدارات محددة وتُنسَخ داخل التقديم | ✅ نعم، بشروط توافق الترخيص: تُحفظ شروط الحقوق المتروكة عبر النقل، ويحصل المجتمع على نفس الحقوق التي يمنحها الترخيص للجميع |
| A1 | معتمدة على API، قابلة للاستبدال | تتطلب استدلال LLM في وقت التشغيل، حيث يكون النموذج إعدادًا قابلًا للاستبدال — يمكن إدراج أي نموذج كافي القدرة. تكمن قيمة الطريقة في موجهاتها وبيانات توجيهها وكودها، وليس في نموذج مزود معين. | ⚠️ فقط عبر بوابة LLM التي تحددها مواصفات البيئة المعزولة (🔲 مخطط لها — انظر أدناه) | ⚠️ مشروطة — انظر أدناه |
| A2 | معتمدة على API، غير قابلة للاستبدال | تتطلب استدعاءات في وقت التشغيل إلى API بيانات أو خدمة خارجية لا يمكن نسخها أو استبدالها — عادةً لأن المحتوى المقدَّم مملوك أو غير مرخَّص (مثل API قاموس لا يحمل قاموسه الأساسي ترخيصًا عامًا). | ❌ لا — لا يمكن للاعتمادية أن توجد في البيئة المعزولة دون إذن صاحب الحقوق | ❌ ليس قبل أن يمنح صاحب الحقوق إذني التضمين في البيئة المعزولة والنقل معًا. مسموح بها في لوحة المتصدرين المفتوحة (شريحة التطوير) مع علامة ظاهرة "اعتمادية خارجية" |
| X | مغلقة | تتضمن محتوى لا يحق للمقدِّم إعادة توزيعه — مجموعات بيانات غير مرخصة، محتوى مملوك مستخرج بالكشط، مكونات غير متوافقة الترخيص. | ❌ | ❌ غير مقبولة في أي مسار. تضمين محتوى دون حقوق يشكل انتهاكًا للترخيص بغض النظر عن مكان تشغيل الطريقة |
الفئة الفعلية. فئة اعتماديات الطريقة هي الفئة الأكثر تقييدًا بين جميع اعتمادياتها المعلنة، بالترتيب S < O < A1 < A2 < X. قاموس واحد غير مرخص يجعل خط معالجة مكتفيًا ذاتيًا بخلاف ذلك من الفئة A2 (إذا تم الوصول إليه في وقت التشغيل) أو الفئة X (إذا ضُمِّن دون حقوق).
التمييز بين A1 وA2: قابلية الاستبدال
تستدعي معظم الطرق نماذج لغوية كبيرة. لا تتظاهر Arena بغير ذلك — لكنها تميز بين نوعين مختلفين جدًا من الاعتماد على API:
- A1 (قابلة للاستبدال): توفر API استدلال LLM كسلعة عامة. معرّف النموذج هو إعداد: يجب أن تعمل الطريقة من البداية إلى النهاية مع أي نقطة استدلال متوافقة، بما في ذلك نموذج مفتوح الأوزان يستضيفه المجتمع. قد تختلف جودة المخرجات بين النماذج — وهذه مخاطرة يتحملها المطور، وترتبط الدرجات الرسمية بالنموذج المثبَّت المستخدم في التقييم. الطريقة التي تعتمد على حالة لدى المزود (ضبط دقيق مستضاف فقط لدى المزود، مخازن ملفات المزود، مساعدات خاصة بالمزود) ليست قابلة للاستبدال: لا يمكن استبدال تلك الحالة، لذا تكون الاعتمادية A2 ما لم تُضمَّن الأوزان أو البيانات الأساسية في التقديم.
- A2 (غير قابلة للاستبدال): تقدم API شيئًا فريدًا — عادةً بيانات مملوكة أو غير مرخصة. لا يمكن لأي نقطة بديلة توفيره، ولا يمكن نسخ المحتوى داخل البيئة المعزولة دون إذن صاحب الحقوق. تعمل الطريقة في لوحة المتصدرين المفتوحة (مع علامة)، لكنها لا تستطيع إنتاج درجات رسمية في البيئة المعزولة أو التأهل للجوائز حتى تتوفر الأذونات.
ما الذي ينقله فعليًا نقل جائزة من فئة A1. لا يحصل المجتمع على النموذج — لا أحد يستطيع نقل أوزان Anthropic أو Google أو OpenAI. يشمل النقل الوصفة الكاملة المحيطة بالنموذج: جميع الموجهات وبيانات التوجيه وكود خط المعالجة ومنطق إعادة المحاولة والإعدادات ومتطلبات النموذج الموثقة. ولأن النموذج قابل للاستبدال بحكم البناء، يمكن للمجتمع توجيه الطريقة المنقولة إلى أي مزود يختاره — أو إلى نموذج مفتوح الأوزان على عتاده الخاص — دون تدخل المطور. الوصفة مملوكة؛ أما المحرك فمستأجَر وقابل للاستبدال.
بيان الاعتماديات (method.json)
تعلن كل طريقة عن اعتمادياتها في بيان method.json. يسجل كل إدخال ما هي المادة، ومن أين تأتي، وما الترخيص الذي يغطيها، وكيف تصل إليها الطريقة:
{
"name": "FST-Gated Coached Translation v8",
"method_id": "fst-gated-v8",
"class": "pipeline",
"entry_point": "pipeline:PipelineMethod",
"supported_pairs": ["eng>crk"],
"dependency_class": "A2",
"dependencies": [
{
"id": "giellalt-lang-crk-fst",
"kind": "software",
"license": "AGPL-3.0-or-later",
"access": "mirrored",
"source": "https://github.com/giellalt/lang-crk",
"pin": "sha256:3f1a…",
"redistributable": true,
"transferable": true
},
{
"id": "llm-inference",
"kind": "model",
"license": "proprietary",
"access": "gateway",
"source": "openrouter:google/gemini-2.5-flash",
"substitutable": true,
"redistributable": false,
"transferable": false,
"notes": "Any compatible chat-completions endpoint works; the model slug is configuration."
},
{
"id": "crk-dictionary-api",
"kind": "service",
"license": "none",
"access": "external-api",
"source": "https://itwewina.altlab.app/",
"redistributable": false,
"transferable": false,
"notes": "Dictionary content has no public license; runtime lookups only. Class A2 until the rights holders grant permission."
}
]
}
| الحقل | مطلوب | الوصف |
|---|---|---|
id | ✅ | معرّف ثابت للاعتمادية |
kind | ✅ | data، أو model، أو software، أو service |
license | ✅ | معرّف SPDX، أو proprietary، أو none. تعني none عدم وجود ترخيص عام — وتُعامل كجميع الحقوق محفوظة |
access | ✅ | bundled (يُشحن داخل دليل الطريقة)، mirrored (يُجلب عند التثبيت، مثبَّت الإصدار، مضمَّن في التقديم)، gateway (استدلال LLM في وقت التشغيل عبر بوابة التقييم)، external-api (أي استدعاء شبكي آخر في وقت التشغيل) |
source | ✅ | عنوان URL القياسي أو معرّف provider:slug |
pin | لـ mirrored | إصدار أو commit أو تجزئة محتوى تثبّت المادة بدقة |
substitutable | لـ gateway/external-api | ما إذا كان بإمكان أي نقطة متوافقة تقديم هذه الاعتمادية |
redistributable | ✅ | ما إذا كان الترخيص يسمح بإعادة توزيع المادة |
transferable | ✅ | ما إذا كان يمكن نقل المادة (أو الحقوق عليها) إلى مجتمع بموجب شروط نقل الجائزة |
notes | ❌ | سياق حر الصياغة |
اشتقاق الفئة. تساهم كل اعتمادية بفئة؛ وتكون dependency_class الخاصة بالطريقة هي الأكثر تقييدًا:
| ملف تعريف الاعتمادية | تساهم بـ |
|---|---|
bundled + ترخيص يسمح بإعادة التوزيع والنقل | S |
mirrored + ترخيص مفتوح يسمح بإعادة التوزيع (بما في ذلك الحقوق المتروكة) | O |
gateway + substitutable: true (استدلال LLM) | A1 |
external-api، أو gateway مع substitutable: false | A2 |
bundled + license: none أو ترخيص غير متوافق مع إعادة التوزيع | X |
يجب أن تتطابق dependency_class المعلنة مع الفئة التي تشتقها الأداة من البيان. عدم التطابق يُعد خطأ تحقق.
الطريقة التي لا تملك اعتماديات خارجية تعلن "dependency_class": "S" و"dependencies": []. المصفوفة الفارغة هي إقرار إيجابي يُدقَّق مثل أي إقرار آخر.
كيف يتم التحقق من الصلاحية
ثلاث طبقات، من الأقل تكلفة إلى الأكثر حجية:
- تدقيق البيان. تشتق الأداة الفئة الفعلية من البيان وترفض حالات عدم التطابق. يتحقق المراجعون من كل اعتمادية معلنة مقابل ترخيصها ومصدرها المذكورين — الاعتمادية المعلنة كـ
redistributable: trueبينما ينص ترخيص مصدرها على خلاف ذلك ترسب في المراجعة. - التحليل الساكن. يُفحص الكود المقدَّم بحثًا عن استدعاءات شبكية وتنزيلات ديناميكية ووصول لنظام الملفات لا يفسرها البيان. أي اعتمادية غير معلنة تُكتشف في المراجعة تشكل سببًا للرفض بغض النظر عن الفئة التي كانت ستنتمي إليها — يجب أن يكون البيان كاملًا، لا دقيقًا فحسب.
- سياسة شبكة البيئة المعزولة. تتطلب مواصفات البيئة المعزولة رفضًا افتراضيًا للاتصالات الصادرة (default-deny egress): لا تحصل حاويات الطرق على أي وصول شبكي ما لم يُدرج مسار في القائمة المسموح بها صراحةً. المسار الصادر الوحيد الذي تحدده المواصفات هو بوابة LLM — وكيل استدلال تشغّله البنية التحتية للتقييم، مقيد بقائمة سماح صريحة من النماذج المثبتة، مع تسجيل كل طلب واستجابة للتدقيق بعد التشغيل. أي شيء غير مدرج في قائمة السماح يفشل على مستوى الشبكة، لا على مستوى السياسة. راجع مواصفات المعيار §8.6 للاطلاع على سياسة الشبكة وتصميم البوابة.
🔲 مخطط له. البيئة المعزولة وبوابة LLM الخاصة بها محددتان في المواصفات لكنهما لم تُبنيا بعد. وحتى تصبح البوابة عاملة، لا يمكن تقييم سوى طرق الفئتين S وO في البيئة المعزولة؛ أما طرق الفئة A1 فهي مؤهلة للجوائز من حيث المبدأ لكنها لا تستطيع بعد إنتاج درجات رسمية معيارية. تصف هذه الصفحة ما تتطلبه المواصفات، لا ما يعمل حاليًا.
العرض في لوحة المتصدرين
- تعرض لوحة المتصدرين فئة اعتماديات كل طريقة إلى جانب شارة فئة طريقتها.
- تحمل طرق الفئة A2 في لوحة المتصدرين المفتوحة علامة ظاهرة "اعتمادية خارجية": تعتمد درجاتها على خدمة طرف ثالث قد تتغير أو تختفي، وهي غير مؤهلة حاليًا للجوائز.
- لا تُدرج طرق الفئة X.
أداة التقييم: بروتوكول TranslationMethod
تستخدم أداة التقييم النمذجة البنيوية في Python (Protocol) للإضافات. أي صنف (class) يحمل توقيع الدالة الصحيح يعمل — دون الحاجة إلى الوراثة:
class MyMethod:
async def translate(self, entries: list[dict], config: RunConfig) -> list[dict]:
results = []
for entry in entries:
translation = await self.do_translation(entry["source"])
results.append({
"id": entry["id"],
"predicted": translation,
"latency_s": 0.5,
"usage": {"prompt_tokens": 0, "completion_tokens": 0},
"error": None,
"tool_calls": [],
"tool_call_count": 0,
"metadata": {},
})
return results
راجع بروتوكول الإضافات للاطلاع على التوثيق الكامل بما في ذلك أمثلة الأغلفة (wrappers) للطرق غير المكتوبة بـ Python.
champollion: إعداد methodPlugin
في champollion، تُسجَّل الطرق لكل زوج لغوي في champollion.config.json:
{
"version": 3,
"pairs": {
"en:crk": {
"methodPlugin": "crk-coached-v1"
}
}
}
راجع مواصفات الإضافات للاطلاع على الواجهة الخاصة بجانب champollion.
التكامل مع لوحة المتصدرين
عند إرفاق بطاقة طريقة بتشغيل (عبر --method-card)، تُضمَّن في بطاقة التشغيل وتُعرض في لوحة المتصدرين:
# Run with method card attached
mt-eval run \
--method path/to/my-method \
--corpus data/edtekla-dev-v1.json \
--method-card method_card.json
# Publish to the leaderboard
mt-eval publish eval/logs/harness/your-run-card.json
إذا لم تُقدَّم --method-card، يطلق mt-eval publish معالجًا تفاعليًا يرشدك خطوة بخطوة في وصف طريقتك.
تعرض لوحة المتصدرين:
- شارة الفئة — مؤشر بصري (مثل "pipeline"، "coached-llm")
- فئة الاعتماديات — S/O/A1/A2 (راجع صلاحية الطريقة وفئات الاعتماديات)؛ تحمل طرق الفئة A2 علامة "اعتمادية خارجية"
- اسم الطريقة — من بطاقة الطريقة
- الأدوات المستخدمة — مدرجة من بطاقة الطريقة
- مؤشر المصدر المفتوح
عند عدم إرفاق بطاقة طريقة، تعرض لوحة المتصدرين إعدادات الأداة الأصلية (النموذج، إصدار الموجه، درجة الحرارة، الأدوات المفعَّلة).
:::danger لا تُدرِّب على بيانات التقييم الطرق التي تضمنت عملية تطويرها التعرض لمجموعة بيانات التقييم — كبيانات تدريب، أو أمثلة few-shot، أو إدخالات قاموس، أو مواد لضبط الموجهات — ستُستبعد (disqualified) من لوحة المتصدرين. راجع تقييم الترجمة الآلية لمعرفة ما يميز الطريقة الجيدة من السيئة. :::
انظر أيضًا
- تقييم الترجمة الآلية — نظرة عامة، وقيمة لوحة المتصدرين، وإرشادات الطرق الجيدة والسيئة
- Eval Harness — كيفية تشغيل التقييمات
- مجموعات بيانات التقييم — مجموعات البيانات المتاحة (EDTeKLA، FLORES+)
- مواصفات بطاقة التشغيل — مخطط JSON لبطاقة التشغيل
- مواصفات الإضافات — واجهة الإضافات بجانب champollion
- لوحة متصدري الطرق — درجات القياس المباشرة
- مواصفات المعيار — بروتوكول التقييم، وصيغة المتن اللغوي، ومخطط بطاقة التشغيل
- مواصفات التسجيل — المصدر الوحيد للحقيقة (SSOT) للمقاييس وأوزان composite score ومستويات الجودة