لقد بدأنا مشروعًا جديدًا متاحًا على Github
إنها عرضية من OpenNMT-PY من حيث الميزات ولكننا قمنا بتجديد الكثير من الأشياء.
Eole Gondles NMT ، LLM ، تشفير بالإضافة إلى مفهوم جديد للمقدر في نموذج NMT انظر هذا المنشور وهذا الخبر
إذا كنت مطورًا ، فقم بالتبديل الآن. إذا كنت مستخدمًا فقط ، فسنقوم بنشر إصدارات PY-PI الأولى قريبًا.
OpenNMT-PY هو إصدار Pytorch من مشروع OpenNMT ، وهو إطار مترجمة آلية عصبية مفتوحة المصدر (وخارجها!). إنه مصمم ليكون صديقًا للبحث لتجربة أفكار جديدة في الترجمة ، ونمذجة اللغة ، والتلخيص ، والعديد من مهام NLP الأخرى. لقد أثبتت بعض الشركات أن الكود جاهز للإنتاج.
نحن نحب المساهمات! يرجى إلقاء نظرة على المشكلات التي تحمل علامة ترحيب المساهمات.
قبل إثارة مشكلة ، تأكد من قراءة المتطلبات وأمثلة الوثائق الكاملة.
ما لم يكن هناك خطأ ، يرجى استخدام المنتدى أو الهروب لطرح الأسئلة.
هناك خطوة بخطوة وشرح توتو (بفضل Yasmin Moslem): البرنامج التعليمي
يرجى محاولة قراءة و/أو متابعة قبل رفع مشكلات المبتدئين.
وإلا يمكنك فقط إلقاء نظرة على خطوات التشغيل السريع
scaled_dot_product_attentionبالنسبة لجميع الأوعية الدموية بما في ذلك NMT ، يمكنك الآن استخدام Multiquery بدلاً من الاهتمام متعدد الرأس (أسرع في التدريب والاستدلال) وإزالة التحيزات من جميع الخطوط (QKV وكذلك الوحدات النمطية للتغذية).
إذا استخدمت الإصدارات السابقة من OpenNMT-PY ، فيمكنك التحقق من Changelog أو التغييرات المكسورة
لتسهيل الإعداد والاستنساخ ، يتم توفير بعض صور Docker عبر سجل حاوية Github: https://github.com/opennmt/opennmt-py/pkgs/container/opennmt-py
يمكنك تكييف سير العمل وإنشاء صور (صور) خاصة بك بناءً على الاحتياجات المحددة باستخدام build.sh و Dockerfile في دليل docker في الريبو.
docker pull ghcr.io/opennmt/opennmt-py:3.4.3-ubuntu22.04-cuda12.1
مثال على oneliner لتشغيل حاوية وفتح قذيفة باش داخلها
docker run --rm -it --runtime=nvidia ghcr.io/opennmt/opennmt-py:test-ubuntu22.04-cuda12.1
ملاحظة: تحتاج إلى تثبيت مجموعة أدوات حاوية NVIDIA (المعروفة سابقًا باسم NVIDIA-Docker) للاستفادة بشكل صحيح من ميزات CUDA/GPU.
بناءً على احتياجاتك ، يمكنك إضافة علامات مختلفة:
-p 5000:5000 لإعادة توجيه بعض المنافذ المكشوفة من الحاوية إلى مضيفك ؛-v /some/local/directory:/some/container/directory لتركيب بعض الدليل المحلي إلى بعض الدليل الحاويات ؛--entrypoint some_command لتشغيل بعض الأوامر المحددة مباشرة كنقطة إدخال الحاوية (بدلاً من قذيفة bash الافتراضية) ؛يتطلب OpenNmt-Py:
تثبيت OpenNMT-py من pip :
pip install OpenNMT-pyأو من المصدر:
git clone https://github.com/OpenNMT/OpenNMT-py.git
cd OpenNMT-py
pip install -e . ملاحظة: إذا واجهت MemoryError أثناء التثبيت ، فحاول استخدام pip مع --no-cache-dir .
(اختياري) تتطلب بعض الميزات المتقدمة (مثل النماذج المسبقة أو التحويلات المحددة) حزمًا إضافية ، يمكنك تثبيتها بـ:
pip install -r requirements.opt.txtينصح بشدة أن يكون لدى Apex أداء سريعًا (خاصةً Legacy Fusedadam Optimizer و FusedRmsnorm)
git clone https://github.com/NVIDIA/apex
cd apex
pip3 install -v --no-build-isolation --config-settings --build-option= " --cpp_ext --cuda_ext --deprecated_fused_adam --xentropy --fast_multihead_attn " ./
cd ..انتباه فلاش:
اعتبارًا من 2023 أكتوبر ، تم إلقاء نظرة فلاش 1 على Pytorch V2 ولكن يوصى باستخدام Flash Velation 2 مع v2.3.1 لدعم انتباه النافذة.
عند استخدام position_encoding=True أو دوار مع max_relative_positions=-1 سيحاول OpenNMT-PY استخدام مسار المنتج المحسّن.
إذا كنت ترغب في استخدام اهتمام فلاش ، فأنت بحاجة إلى تثبيته يدويًا أولاً:
pip install flash-attn --no-build-isolation إذا لم يتم تثبيت Flash Lunting 2 ، فسنستخدم F.scaled_dot_product_attention من Pytorch 2.x
عند استخدام max_relative_positions > 0 أو alibi max_relative_positions=-2 OpenNmt-Py ستستخدم الرمز القديم لمضاعفات المصفوفة.
فلاش انتباه و F.scaled_dot_product_attention أسرع قليلاً ويوفر بعض ذاكرة وحدة معالجة الرسومات.
AWQ:
إذا كنت ترغب في تشغيل الاستدلال أو تحديد نموذج AWQ ، فستحتاج إلى AutoAwq.
لـ Autoawq: PIP تثبيت Autoawq
وثائق HTML كاملة
الأسئلة الشائعة
يتم تشغيل OpenNMT-PY كمشروع تعاوني مفتوح المصدر. تم تحضين المشروع من قبل Systran و Harvard NLP في عام 2016 في لوا وتم نقله إلى Pytorch في عام 2017.
المشاهدون الحاليون (منذ عام 2018):
فرانسوا هيرنانديز فنسنت نغوين (سقوط)
إذا كنت تستخدم OpenNMT-PY للعمل الأكاديمي ، فيرجى الاستشهاد بورقة عرض النظام الأولية المنشورة في ACL 2017:
@misc{klein2018opennmt,
title={OpenNMT: Neural Machine Translation Toolkit},
author={Guillaume Klein and Yoon Kim and Yuntian Deng and Vincent Nguyen and Jean Senellart and Alexander M. Rush},
year={2018},
eprint={1805.11462},
archivePrefix={arXiv},
primaryClass={cs.CL}
}