وكيل الترجمة: الترجمة الوكيلة باستخدام سير عمل الانعكاس
هذا عرض توضيحي لـ Python لسير عمل وكيل الانعكاس للترجمة الآلية. الخطوات الرئيسية هي:
- مطالبة LLM بترجمة نص من
source_language
إلى target_language
؛ - اطلب من LLM التفكير في الترجمة للتوصل إلى اقتراحات بناءة لتحسينها؛
- استخدم الاقتراحات لتحسين الترجمة.
التخصيص
باستخدام LLM كقلب محرك الترجمة، يكون هذا النظام قابلاً للتوجيه بدرجة كبيرة. على سبيل المثال، من خلال تغيير المطالبات، يكون استخدام سير العمل هذا أسهل من استخدام نظام الترجمة الآلية التقليدي (MT) من أجل:
- تعديل نمط الإخراج، مثل رسمي/غير رسمي.
- حدد كيفية التعامل مع المصطلحات الاصطلاحية والمصطلحات الخاصة مثل الأسماء والمصطلحات الفنية والمختصرات. على سبيل المثال، يتيح لك تضمين مسرد في الموجه التأكد من ترجمة مصطلحات معينة (مثل المصدر المفتوح أو H100 أو GPU) بشكل متسق.
- حدد استخدامًا إقليميًا محددًا للغة، أو لهجات محددة، لخدمة الجمهور المستهدف. على سبيل المثال، تختلف اللغة الإسبانية المستخدمة في أمريكا اللاتينية عن اللغة الإسبانية المستخدمة في إسبانيا؛ تختلف اللغة الفرنسية المستخدمة في كندا عن طريقة التحدث بها في فرنسا.
هذا ليس برنامجًا ناضجًا ، وهو نتيجة قيام أندرو بالتجول في الترجمات في عطلات نهاية الأسبوع خلال الأشهر القليلة الماضية، بالإضافة إلى المتعاونين (جواكين دومينغيز، نديلينا تينيفا، جون سانتير) الذين ساعدوا في إعادة بناء الكود.
وفقًا لتقييماتنا باستخدام درجة BLEU في مجموعات بيانات الترجمة التقليدية، يكون سير العمل هذا أحيانًا منافسًا للعروض التجارية الرائدة، ولكنه أيضًا أسوأ منها في بعض الأحيان. ومع ذلك، فقد حصلنا أيضًا في بعض الأحيان على نتائج رائعة (تتفوق على العروض التجارية) باستخدام هذا النهج. نعتقد أن هذه مجرد نقطة بداية للترجمات الوكيلة، وأن هذا اتجاه واعد للترجمة، مع وجود مجال كبير لمزيد من التحسين، ولهذا السبب نصدر هذا العرض التوضيحي لتشجيع المزيد من المناقشة والتجريب والبحث والمصادر المفتوحة المساهمات.
إذا كانت الترجمات الوكيلة قادرة على توليد نتائج أفضل من البنى التقليدية (مثل المحول الشامل الذي يقوم بإدخال النص وإخراج الترجمة مباشرة) - والتي غالبًا ما تكون أسرع/أرخص تشغيلًا من النهج الذي نتبعه هنا - فإن هذا يوفر أيضًا آلية لتوليد بيانات التدريب تلقائيًا (مجموعة نصية متوازية) يمكن استخدامها لمزيد من التدريب وتحسين الخوارزميات التقليدية. (راجع أيضًا هذه المقالة في The Batch حول استخدام LLMs لإنشاء بيانات التدريب.)
التعليقات والاقتراحات حول كيفية تحسين هذا موضع ترحيب كبير!
ابدء
للبدء في استخدام translation-agent
، اتبع الخطوات التالية:
تثبيت:
- مطلوب مدير حزمة الشعر للتثبيت. تركيب الشعر اعتمادًا على بيئتك، قد ينجح هذا:
- مطلوب ملف .env مع OPENAI_API_KEY لتشغيل سير العمل. راجع ملف .env.sample كمثال.
git clone https://github.com/andrewyng/translation-agent.git
cd translation-agent
poetry install
poetry shell # activates virtual environment
الاستخدام:
import translation_agent as ta
source_lang , target_lang , country = "English" , "Spanish" , "Mexico"
translation = ta . translate ( source_lang , target_lang , source_text , country )
راجع الأمثلة/example_script.py للحصول على مثال لبرنامج نصي لتجربته.
رخصة
تم إصدار وكيل الترجمة بموجب ترخيص MIT . لك الحرية في استخدام الكود وتعديله وتوزيعه للأغراض التجارية وغير التجارية.
أفكار للتمديدات
فيما يلي بعض الأفكار التي لم يكن لدينا الوقت الكافي لتجربتها ولكننا نأمل أن يقوم مجتمع المصادر المفتوحة بما يلي:
- جرب LLMs أخرى. لقد قمنا بتصميم نموذج أولي لهذا بشكل أساسي باستخدام gpt-4-turbo. نود أن يقوم الآخرون بتجربة LLMs أخرى بالإضافة إلى خيارات المعلمات الفائقة الأخرى ومعرفة ما إذا كان بعضها أفضل من غيرها بالنسبة لأزواج لغوية معينة.
- إنشاء المعجم. ما هي أفضل طريقة لبناء مسرد بكفاءة - ربما باستخدام ماجستير في القانون - لأهم المصطلحات التي نريد ترجمتها باستمرار؟ على سبيل المثال، تستخدم العديد من الشركات مصطلحات متخصصة لا يتم استخدامها على نطاق واسع على الإنترنت وبالتالي لا يعرفها حاملو ماجستير إدارة الأعمال، وهناك أيضًا العديد من المصطلحات التي يمكن ترجمتها بطرق متعددة. على سبيل المثال، يمكن أن يكون "المصدر المفتوح" باللغة الإسبانية هو "Código abierto" أو "Fuente abierta"؛ كلاهما جيد، ولكن من الأفضل اختيار أحدهما والاحتفاظ به في مستند واحد.
- استخدام المسرد والتنفيذ. بالنظر إلى المسرد، ما هي أفضل طريقة لإدراجه في الموجه؟
- التقييمات على لغات مختلفة. كيف يختلف أدائها في اللغات المختلفة؟ هل هناك تغييرات تجعلها تعمل بشكل أفضل مع لغات مصدر أو مستهدفة معينة؟ (لاحظ أنه بالنسبة لمستويات الأداء العالية جدًا، والتي تقترب منها أنظمة الترجمة الآلية، لسنا متأكدين مما إذا كان BLEU مقياسًا رائعًا.) كما أن أدائه في اللغات ذات الموارد المنخفضة يحتاج إلى مزيد من الدراسة.
- تحليل الخطأ. لقد وجدنا أن تحديد لغة وبلد/منطقة (على سبيل المثال، "اللغة الإسبانية كلغة عامية في المكسيك") يقوم بعمل جيد جدًا لتطبيقاتنا. أين يقصر النهج الحالي؟ نحن أيضًا مهتمون بشكل خاص بفهم أدائها في موضوعات متخصصة (مثل القانون والطب) أو أنواع خاصة من النصوص (مثل ترجمة الأفلام) لفهم حدودها.
- تقييمات أفضل. أخيرًا، نعتقد أن التقييمات الأفضل هي موضوع بحثي ضخم ومهم. كما هو الحال مع تطبيقات LLM الأخرى التي تولد نصًا حرًا، يبدو أن مقاييس التقييم الحالية غير كافية. على سبيل المثال، وجدنا أنه حتى في المستندات التي يلتقط فيها سير عمل الوكيل السياق والمصطلحات بشكل أفضل، مما يؤدي إلى ترجمات يفضلها المقيمون البشريون لدينا على العروض التجارية الحالية، أدى التقييم على مستوى الجملة (باستخدام مجموعة بيانات FLORES) إلى تسجيل نظام الوكيل درجات أقل على بلو. هل يمكننا تصميم مقاييس أفضل (ربما باستخدام ماجستير في القانون لتقييم الترجمات؟) تلتقط جودة الترجمة على مستوى المستند الذي يرتبط بشكل أفضل بالتفضيلات البشرية؟
الأعمال ذات الصلة
بدأت بعض مجموعات البحث الأكاديمي أيضًا في النظر في الترجمة المعتمدة على LLM والترجمة الوكيلة. نعتقد أنها الأيام الأولى لهذا المجال!
- ChatGPT MT: منافس للغات ذات الموارد العالية (ولكن ليست منخفضة) ، روبنسون وآخرون. (2023)، https://arxiv.org/pdf/2309.07423
- كيفية تصميم مطالبات الترجمة لـ ChatGPT: دراسة تجريبية ، جاو وآخرون. (2023)، https://arxiv.org/pdf/2304.02182v2
- ما وراء الترجمة البشرية: تسخير التعاون بين الوكلاء لترجمة النصوص الأدبية الطويلة للغاية ، وو وآخرون. (2024)، https://arxiv.org/pdf/2405.11804