شعار زيفيرنت

قم بإنشاء مسار بدون خادم لترجمة المستندات الكبيرة باستخدام Amazon Translate

التاريخ:

لدينا في السابقة آخر، وصفنا كيفية ترجمة المستندات باستخدام واجهة برمجة تطبيقات الترجمة في الوقت الفعلي تبدأ من ترجمة أمازون و  AWS لامدا. ومع ذلك ، قد لا تعمل هذه الطريقة مع الملفات الكبيرة جدًا. قد يستغرقون وقتًا طويلاً جدًا ، مما يؤدي إلى تشغيل ملف مهلة 15 دقيقة وظائف لامدا. يمكن للمرء أن يستخدم دفعة API، ولكن هذا متاح فقط في سبع مناطق AWS (اعتبارًا من منشور هذه المدونة). لتمكين ترجمة الملفات الكبيرة في المناطق التي لا يتم فيها دعم Batch Translation ، أنشأنا الحل التالي.

في هذا المنشور ، نوجهك خلال إجراء ترجمة للمستندات الكبيرة.

نظرة عامة على العمارة

مقارنة بالهندسة المميزة في المنشور ترجمة المستندات باستخدام Amazon Translate و AWS Lambda وواجهة برمجة تطبيقات Batch Translate الجديدة، لدينا فرق رئيسي واحد: وجود وظائف خطوة AWS، وهو منظم وظائف بدون خادم يجعل من السهل تسلسل وظائف Lambda والخدمات المتعددة في تطبيقات الأعمال المهمة. تسمح لنا وظائف الخطوة بتتبع تشغيل الترجمة ، وإدارة إعادة المحاكمات في حالة حدوث أخطاء أو انقضاء المهلات ، وتنظيم تدفقات العمل التي تعتمد على الأحداث.

يوضح الرسم البياني التالي بنية الحلول لدينا.

تُظهر هذه البنية المستندة إلى الحدث تدفق الإجراءات عند وصول مستند جديد إلى الإدخال خدمة تخزين أمازون البسيطة (Amazon S3) دلو. يقوم هذا الحدث بتشغيل أول وظيفة Lambda ، والتي تعمل كنقطة بداية لسير عمل Step Functions.

يوضح الرسم البياني التالي آلة الحالة وتدفق الإجراءات.

يتم تشغيل وظيفة Process Document Lambda عند بدء تشغيل آلة الحالة ؛ تؤدي هذه الوظيفة جميع الأنشطة المطلوبة لترجمة المستندات. يصل إلى الملف من حاوية S3 ، ويقوم بتنزيله محليًا في البيئة التي يتم فيها تشغيل الوظيفة ، ويقرأ محتويات الملف ، ويستخرج مقاطع قصيرة من المستند التي يمكن تمريرها عبر واجهة برمجة تطبيقات الترجمة في الوقت الفعلي ، ويستخدم إخراج API لإنشاء المستند المترجم.

يتم تنفيذ آليات أخرى داخل الكود لتجنب الفشل ، مثل التعامل مع خطأ اختناق Amazon Translate وانتهاء مهلة وظيفة Lambda من خلال اتخاذ الإجراء وتخزين التقدم الذي تم إحرازه في مجلد / temp قبل 30 ثانية من انتهاء مهلة الوظيفة. هذه الآليات ضرورية للتعامل مع المستندات النصية الكبيرة.

عند انتهاء معالجة الوظيفة بنجاح ، تقوم بتحميل المستند النصي المترجم في حاوية الإخراج S3 داخل مجلد لرمز اللغة الهدف ، مثل en للغة الإنجليزية. ينتهي سير عمل Step Functions عندما تقوم وظيفة Lambda بنقل ملف الإدخال من المجلد / drop إلى المجلد / المعالج داخل حاوية الإدخال S3.

لدينا الآن كل القطع في مكانها لتجربة ذلك عمليًا.

انشر الحل باستخدام AWS CloudFormation

يمكنك نشر هذا الحل في حساب AWS الخاص بك عن طريق بدء تشغيل تكوين سحابة AWS كومة. يوفر نموذج CloudFormation الموارد اللازمة اللازمة للحل. يُنشئ القالب المكدس منطقة us-east-1 ، ولكن يمكنك استخدام القالب لإنشاء مجموعتك في أي منطقة يتوفر فيها Amazon Translate. حتى كتابة هذه السطور ، يتوفر Amazon Translate في 16 منطقة تجارية و AWS GovCloud (غرب الولايات المتحدة). للحصول على أحدث قائمة بالمناطق ، راجع قائمة خدمات AWS الإقليمية.

لنشر التطبيق ، أكمل الخطوات التالية:

  1. قم بتشغيل قالب CloudFormation عن طريق الاختيار قم بتشغيل Stack:

  1. اختار التالى.

بدلاً من ذلك ، في وحدة تحكم AWS CloudFormation ، اختر إنشاء مكدس بموارد جديدة (قياسي)، اختر عنوان URL لـ Amazon S3 كمصدر للقالب ، أدخل https://s3.amazonaws.com/aws-ml-blog/artifacts/create-a-serverless-pipeline-to-translate-large-docs-amazon-translate/translate.yml، و اختار التالى.

  1. في حالة اسم المكدس، أدخل اسم مكدس فريد لهذا الحساب ؛ على سبيل المثال ، ترجمة المستندات بدون خادم.
  2. في حالة اسم_InputBucketName، أدخل اسمًا فريدًا لحاوية S3 التي ينشئها المكدس ؛ على سبيل المثال ، حاوية إدخال ترجمة بدون خادم.

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

  1. في حالة OutputBucketName، أدخل اسمًا فريدًا لحاوية الإخراج S3 ؛ على سبيل المثال ، حاوية - ترجمة - إخراج - بدون خادم.

يخزن هذا المستودع المستندات بعد ترجمتها. اتبع نفس قواعد التسمية مثل حاوية الإدخال.

  1. في حالة SourceLanguageCode، أدخل رمز اللغة الذي توجد به مستندات الإدخال الخاصة بك ؛ في هذا المنشور ، ندخل تلقائيًا لاكتشاف اللغة السائدة.
  2. في حالة TargetLanguageCode، أدخل رمز اللغة الذي تريد ترجمة المستندات الخاصة بك به ؛ على سبيل المثال ، للغة الإنجليزية.

لمزيد من المعلومات حول رموز اللغات المدعومة ، راجع اللغات المدعومة ورموز اللغات.

  1. اختار التالى.

  1. على تكوين خيارات المكدس الصفحة ، قم بتعيين أي معلمات إضافية للمكدس ، بما في ذلك العلامات.
  2. اختار التالى.
  3. أختار أقر بأن AWS CloudFormation قد تنشئ موارد IAM بأسماء مخصصة.
  4. اختار إنشاء مكدس.

يستغرق إنشاء المكدس حوالي دقيقة حتى يكتمل.

ترجمة المستندات الخاصة بك

يمكنك الآن تحميل مستند نصي تريد ترجمته إلى حاوية الإدخال S3 ، ضمن القائمة المنسدلة / المجلد.

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

يبدأ هذا الإجراء سير العمل ، ويظهر المستند المترجم تلقائيًا في حاوية الإخراج S3 ، في المجلد الخاص باللغة الهدف (على سبيل المثال ، ar). يعتمد طول الفترة الزمنية لظهور الملف على حجم مستند الإدخال.

يبدو ملفنا المترجم مثل لقطة الشاشة التالية.

يمكنك أيضًا تتبع تقدم آلة الحالة في وحدة التحكم في وظائف الخطوة ، أو من خلال استدعاءات API ذات الصلة.

لنجرب الحل بملف أكبر. يحتوي ملف test_large.txt على محتوى من منشورات مدونة AWS متعددة ومحتويات أخرى مكتوبة باللغة الألمانية (على سبيل المثال ، نستخدم كل النص من المنشور AWS DeepLens (إصدار 2019) kommt nach Deutschland und in weitere Länder).

هذا الملف أكبر بكثير من الملف في الاختبار السابق. نقوم بتحميل الملف في مجلد الإسقاط / حاوية الإدخال.

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

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

عند اكتمال آلة الحالة ، يمكنك استرداد الملف المترجم من حاوية الإخراج.

توضح لقطة الشاشة التالية أن ملفنا مترجم باللغة الإنجليزية.

استكشاف الأخطاء:

إذا كنت لا ترى المستند المترجم في حاوية الإخراج S3 ، فتحقق سجلات الأمازون CloudWatch لوظيفة Lambda المقابلة وابحث عن الأخطاء المحتملة. لتحسين التكلفة ، يستخدم الحل افتراضيًا 256 ميجابايت من الذاكرة لوظيفة Process Document Lambda. أثناء معالجة مستند كبير ، إذا رأيت Runtime.ExitError للوظيفة في CloudWatch Logs ، فقم بزيادة ذاكرة الوظيفة.

اعتبارات أخرى

يجدر تسليط الضوء على قوة ميزة الكشف التلقائي عن اللغة من Amazon Translate ، التي تم التقاطها تلقائيًا في حقل SourceLanguageCode الذي حددناه عند نشر مكدس CloudFormation. في الأمثلة السابقة ، أرسلنا ملفًا يحتوي على نص باللغة اليونانية وملف آخر باللغة الألمانية ، وتم ترجمتهما بنجاح إلى اللغة الإنجليزية. باستخدام الحل الذي نقدمه ، لن تضطر إلى إعادة نشر المكدس (أو تغيير رمز اللغة المصدر يدويًا في وظيفة Lambda) في كل مرة تقوم فيها بتحميل ملف مصدر بلغة مختلفة. يكتشف Amazon Translate اللغة المصدر ويبدأ عملية الترجمة. بعد النشر ، إذا كنت بحاجة إلى تغيير رمز اللغة الهدف ، يمكنك إما نشر حزمة CloudFormation جديدة أو تحديث الحزمة الحالية.

يستخدم هذا الحل واجهة برمجة تطبيقات الوقت الفعلي المتزامن لـ Amazon Translate. يتعامل مع الحد الأقصى لحجم المستند (5,000 بايت) عن طريق تقسيم المستند إلى فقرات (تنتهي بحرف سطر جديد). إذا لزم الأمر ، فإنه يقسم كل فقرة إلى جمل (تنتهي بنقطة). يمكنك تعديل هذه المحددات بناءً على نص المصدر الخاص بك. يمكن أن يدعم هذا الحل 5,000 بايت كحد أقصى لجملة واحدة ويتعامل فقط مع المستندات النصية بتنسيق UTF-8 ذات امتدادات الملفات .txt أو .text. يمكنك تعديل كود Python في وظيفة Process Document Lambda للتعامل مع تنسيقات ملفات مختلفة.

بالإضافة إلى تكاليف Amazon S3 ، يتحمل الحل تكاليف الاستخدام من Amazon Translate و Lambda و Step Functions. لمزيد من المعلومات، راجع تسعير Amazon Translate, تسعير Amazon S3, تسعير AWS Lambdaو تسعير AWS Step Functions.

وفي الختام

في هذا المنشور ، أظهرنا تنفيذ خط أنابيب بدون خادم يمكنه ترجمة المستندات في الوقت الفعلي باستخدام ترجمة فورية ميزة Amazon Translate وقوة وظائف الخطوة كمنسقين لوظائف Lambda الفردية. يتيح هذا الحل مزيدًا من التحكم وإضافة وظائف متطورة إلى تطبيقاتك. تعال لبناء مسار ترجمة المستندات المتقدم الخاص بك باستخدام Amazon Translate!

لمزيد من المعلومات، راجع دليل مطور Amazon Translate و موارد Amazon Translate. إذا كنت جديدًا في Amazon Translate ، فجربها باستخدام Free Tier ، الذي يقدم 2 مليون حرف شهريًا مجانًا لأول 12 شهرًا ، بدءًا من طلب الترجمة الأول.


حول المؤلف

جاي راو هو مهندس حلول أول في AWS. إنه يستمتع بتقديم التوجيه الفني للعملاء ومساعدتهم في تصميم وتنفيذ الحلول على AWS.

 سب كاسبرزاك هو مهندس حلول في AWS. يقضي أيامه في أمازون في مساعدة العملاء على حل مشاكلهم التجارية المعقدة من خلال استخدام تقنيات أمازون.

نيكيفوروس بوتيس هو مهندس حلول في AWS. إنه يستمتع بمساعدة عملائه على النجاح في رحلتهم السحابية ، ويهتم بشكل خاص بتقنيات الذكاء الاصطناعي / التعلم الآلي.

بوبي كوهبور هو مهندس حلول أول للابتكار الرقمي في AWS ، يساعد العملاء على حل المشكلات الصعبة مع التكنولوجيا الناشئة ، مثل التعلم الآلي ، والروبوتات ، وإنترنت الأشياء.

كوينسمارت. Beste Bitcoin-Börse في أوروبا
المصدر: https://aws.amazon.com/blogs/machine-learning/create-a-serverless-pipeline-to-translate-large-documents-with-amazon-translate/

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟