تلخيص ، ترجمة ، أسئلة وأجوبة ، توليد النص وأكثر في سرعة النيران باستخدام إصدار T5 الذي تم تنفيذه في ONNX.
لا تزال هذه الحزمة في مرحلة ألفا ، وبالتالي فإن بعض الوظائف مثل عمليات البحث عن الشعاع لا تزال قيد التطوير.
ONNX-T5 متاح على PYPI.
pip install onnxt5لإصدار DEV يمكنك تشغيل ما يلي.
git clone https://github.com/abelriboulot/onnxt5
cd onnxt5
pip install -e . إن أبسط طريقة للبدء في الجيل هي استخدام الإصدار الافتراضي الذي تم تدريبه مسبقًا من T5 على ONNX المدرجة في الحزمة.
ملاحظة: يرجى ملاحظة أنه في المرة الأولى التي تتصل فيها get_encoder_decoder_tokenizer ، يتم تنزيل النماذج التي قد تستغرق دقيقة أو دقيقتين.
from onnxt5 import GenerativeT5
from onnxt5 . api import get_encoder_decoder_tokenizer
decoder_sess , encoder_sess , tokenizer = get_encoder_decoder_tokenizer ()
generative_t5 = GenerativeT5 ( encoder_sess , decoder_sess , tokenizer , onnx = True )
prompt = 'translate English to French: I was a victim of a series of accidents.'
output_text , output_logits = generative_t5 ( prompt , max_length = 100 , temperature = 0. )
# output_text: "J'ai été victime d'une série d'accidents."تتطلب المهام الأخرى فقط تغيير البادئة في مطالبك ، على سبيل المثال للتلخيص:
prompt = 'summarize: <PARAGRAPH>'
output_text , output_logits = generative_t5 ( prompt , max_length = 100 , temperature = 0. )إذا كنت ترغب في الحصول على تضمينات النص ، يمكنك تشغيل ما يلي
from onnxt5 . api import get_encoder_decoder_tokenizer , run_embeddings_text
decoder_sess , encoder_sess , tokenizer = get_encoder_decoder_tokenizer ()
prompt = 'Listen, Billy Pilgrim has come unstuck in time.'
encoder_embeddings , decoder_embeddings = run_embeddings_text ( encoder_sess , decoder_sess , tokenizer , prompt ) يتيح لك ONNXT5 أيضًا تصدير النماذج الخاصة بك واستخدامها. راجع examples المجلد للحصول على أمثلة أكثر تفصيلاً.
يعمل T5 مع الرموز المميزة مثل summarize: ، translate English to German: ، أو question: ... context: . يمكنك رؤية قائمة بالمهام المسبقة والرمز المميز في الملحق (د) للورقة الأصلية.
يختلف الأداء المتفوق اعتمادًا على طول السياق. بالنسبة للسياقات التي تقل عن 500 كلمة تقريبًا ، يتفوق Onnx بشكل كبير ، حيث تصل إلى سرعة 4x مقارنةً بـ Pytorch. ومع ذلك ، كلما طالما كان السياق ، أصغر تسريع ONNX ، مع Pytorch يكون أسرع فوق 500 كلمة.


لا يزال المشروع في مهده ، لذلك أحب ملاحظاتك ، لمعرفة المشكلات التي تحاول حلها ، وسماع المشكلات التي تواجهها ، ومناقشة الميزات التي من شأنها أن تساعدك. لذلك لا تتردد في إطلاق النار على رسالة بريد إلكتروني لي (انظر ملف التعريف الخاص بي للعنوان!) أو الانضمام إلى مجتمع Slack الخاص بنا.
يعتمد هذا الريبو على عمل كولن رافيل ونوم شازير وآدم روبرتس وكاثرين لي وشاران نارانج ومايكل ماتينا ويانكي تشو ووي لي وبيتر جي. نص.
ورقة T5 الأصلية
@article{2019t5,
author = {Colin Raffel and Noam Shazeer and Adam Roberts and Katherine Lee and Sharan Narang and Michael Matena and Yanqi Zhou and Wei Li and Peter J. Liu},
title = {Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer},
journal = {arXiv e-prints},
year = {2019},
archivePrefix = {arXiv},
eprint = {1910.10683},
}
Microsoft onnxruntime repo
تطبيق Luggingface من T5