T5 (مدل زبان)
| نویسنده(های) اصلی | گوگل ایآی |
|---|---|
| انتشار اولیه | ۲۳ October ۲۰۱۹ |
| انتشار پایدار | |
| مخزن | https://github.com/google-research/text-to-text-transfer-transformer |
| نوع | |
| مجوز | پروانه آپاچی ۲٫۰ |
| وبگاه |
خانواده T5 که به معنی ترنسفومر انتقال متن-به-متن[الف] است، شامل مجموعهای از مدلهای زبان بزرگ است که توسط هوش مصنوعی گوگل در سال ۲۰۱۹ منتشر شد..[۱][۲] این مدلها بر پایه معماری ترنسفورمر طراحی شدهاند و ساختاری رمزگذار-رمزگشا دارند.[۳] در این ساختار، بخش رمزگذار متن ورودی را تحلیل کرده و پردازش میکند، در حالی که بخش رمزگشا وظیفه تولید متن خروجی را بر عهده دارد. این طراحی برای حل طیف گستردهای از مسائل پردازش زبان طبیعی (کوتهنوشت: NLP) با عملکرد بالا توسعه یافته است.
مدلهای T5 ابتدا با استفاده از مجموعههای عظیمی از دادههای متنی و کد، پیشآموزش داده میشوند. این فرایند آنها را قادر میسازد وظایف مختلف مبتنی بر متن را که مشابه آموزش اولیهشان باشد، بهخوبی انجام دهند. به علاوه، این مدلها انعطافپذیر هستند و میتوان با تنظیم دقیق آنها، برای وظایف جدید یا متفاوت نیز استفاده کرد. این ویژگی باعث میشود که T5 در بسیاری از حوزههای پردازش زبان طبیعی کاربرد داشته باشد.
مدلهای T5 در زمینههای مختلفی کاربرد دارند، از جمله طراحی رباتهای گفتگو، سیستمهای پیشرفته ترجمه ماشینی، ابزارهای خلاصهسازی خودکار متن، تولید کدهای برنامهنویسی، و حتی در روباتیک. این تنوع کاربرد به دلیل معماری انعطافپذیر و توانایی بالای این مدل در پردازش زبان طبیعی و درک متن است.[۴]
آموزش دادن
مدلهای T5 ابتدا بر روی مجموعه داده پیکره متنی خزیده شده و تمیزشده عظیم (کوتهنوشت: C4)، شامل متن و کد جمعآوریشده از اینترنت، پیشآموزش داده شدند. مدل در این فرایند به توانایی درک زبان عمومی و تولید متن را به دست پیدا میکند. پس از پیشآموزش، مدلها قابل تنظیم برای وظایف خاص هستند، به طوری که میتوانند دانش آموختهشده را برای عملکرد بهتر در برنامههای خاص مانند ترجمه، خلاصهسازی یا تولید متن تطبیق دهند. این انعطافپذیری، مدلهای T5 را برای کاربردهای متنوعی مناسب میسازد.
مدلهای T5 برای بسیاری از وظایف پردازش زبان طبیعی در قالبی ساده و یکپارچه طراحی شدهاند. در این روش، هر وظیفه به صورت <متن ورودی> -> <متن خروجی> فرمولبندی شده است. این رویکرد باعث شده تا مدل بتواند با استفاده از یک ساختار مشترک مسائل متنوعی را، از جمله ترجمه، خلاصهسازی، و تولید پاسخ برای سوالات حل کند. این قالب متن به متن، قابلیت استفاده و آموزش مدل را بسیار سادهتر کرده است.

چند نمونه از کاربردها عبارتند از:
- بازیابی متن خراب:
بابت <X> در مهمانی هفته <Y> از شما ممنونم -> <X> پیش <Y> دعوت <Z>، که در آن<Z>به معنای "پایان خروجی" است، و<X>و<Y>نشان دهنده جاهای خالی هستند که در گزارش اصلی "سنتینل" نامیده میشوند.
- ترجمه:
عبارت انگلیسی رو به آلمانی ترجمه کن: That is good.و خروجی خواهد بودDas ist gut.
- قضاوت در مورد مقبولیت دستوری یک جمله (جمله CoLA):
The course is jumping well.و نتیجه میدهدnot acceptable

ساختار
مجموعه T5 شامل چندین مدل با اندازهها و قابلیتهای متفاوت است. همه آنها ترانسفورماتورهای رمزگذار-رمزگشا هستند که در آن رمزگذار متن ورودی را پردازش میکند و رمزگشا متن خروجی را تولید میکند.
این مدلها اغلب با تعداد پارامترهایشان متمایز میشوند که نشان دهنده پیچیدگی و ظرفیت بالقوه مدل است. مقاله اصلی [۶] ۵ مدل زیر را گزارش کرد:
| نام مدل | کل پارامترها | پارامترهای رمزگذار | پارامترهای رمزگشا | |||||
|---|---|---|---|---|---|---|---|---|
| کوچک | 76,956,160 | 35,330,816 | 41,625,344 | 6 | 512 | 2048 | 64 | 8 |
| پایه | 247,577,856 | 109,628,544 | 137,949,312 | 12 | 768 | 3072 | 64 | 12 |
| بزرگ | 770,567,168 | 334,939,648 | 435,627,520 | 24 | 1024 | 4096 | 64 | 16 |
| 3B | 2,884,497,408 | 1,240,909,824 | 1,643,587,584 | 24 | 1024 | 16384 | 128 | 32 |
| 11B | 11,340,220,416 | 4,864,791,552 | 6,475,428,864 | 24 | 1024 | 65536 | 128 | 128 |
در جدول فوق،
- : تعداد لایهها در رمزگذار. همچنین تعداد لایهها در رسیور. آنها همیشه تعداد لایههای یکسانی دارند.
- : تعداد سرهای توجه در هر بلوک توجه.
- : ابعاد بردارهای تعبیه شده.
- : ابعاد شبکه پیشخور در هر لایه رمزگذار و رمزگشا.
- : ابعاد بردارهای کلید و ارزش مورد استفاده در مکانیسم خودتوجهی.
توجه داشته باشید که بر خلاف ترنسفورهای معمولی، مدلهای 3B و 11B نیاز به رعایت ندارندو
در مقایسه با ترانسفورمر اصلی، از چند تغییر جزئی استفاده میکند: نرمالسازی لایهها بدون سوگیری افزودنی. قرار دادن نرمال سازی لایه در خارج از مسیر باقیمانده؛ تعبیه موقعیتی نسبی [۷]
برای همه آزمایشها، آنها از توکنایزر وردپیس[ب] با اندازه واژگان ۳۲۰۰۰ استفاده کردند. توکنایزر در ورودی و خروجی هر مدل مشترک است. این توکنایزر بر روی ترکیبی از دادههای انگلیسی ، آلمانی ، فرانسوی و رومانیایی منشعب شده از مجموعه دادههای C4 با نسبت ۱۰:۱:۱:۱ آموزش داده شد.
انواع
مدلهای متنوعی از معماری T5 منشعب شدهاند که برای متمایز کردن آنها از قراردادهای نامگذاری غیر استاندارد استفاده شد. در این بخش سعی شده است موارد اصلی جمع آوری شود. تعدا بسیار زیادی از انواع مدلهای منتشر شده توسط گوگل برین در مخزن گیتهاب به T5X مربوط میشود.[۸]
برخی از مدلها از ابتدا آموزش میبینند در حالی که برخی دیگر با ادامه آموزش یک مدل از پیش آموزشدیده بدست میآیند. به طور پیش فرض، هر مدل از ابتدا آموزش داده میشود، مگر اینکه ذکر شده باشد.
- مدلهای اصلی (۲۰۱۹): T5 کوچک، پایه، بزرگ، 3B، و 11B.[۱]
- نسخههای بهبود یافته سری اصلی T5 1.1: کوچک، پایه، بزرگ، XL، و XXL. اینها پارامترهای تقریباً برابری دارند. ولی در تابع فعالسازی آنها به جای ReLU، از GEGLU [۹] استفاده شده است. مدلهای 3B و 11B به "XL" و "XXL" تغییر یافتند و ساختار آنها تغییر کرد: [۸][۱۰][۱۱]
| اسم | همه پارامترها | پارامترهای انکودر | پارامترهای دکودر | |||||
|---|---|---|---|---|---|---|---|---|
| کوچک | 76,961,152 | 35,332,800 | 41,628,352 | 8 | 512 | 1024 | 64 | 6 |
| پایه | 247,577,856 | 109,628,544 | 137,949,312 | 12 | 768 | 2048 | 64 | 12 |
| بزرگ | 783,150,080 | 341,231,104 | 441,918,976 | 24 | 1024 | 2816 | 64 | 16 |
| 3B | 2,849,757,184 | 1,223,527,424 | 1,626,229,760 | 24 | 2048 | 5120 | 64 | 32 |
| 11B | 11,135,332,352 | 4,762,310,656 | 6,373,021,696 | 24 | 4096 | 10240 | 64 | 64 |
- T5 سازگار با LM (۲۰۲۱): مجموعهای از مدلها (از کوچک تا XXL) که از پستهای بازرسی سری T5 شروع شدند، اما بیشتر روی 100B توکن اضافی از C4 آموزش دیدند.[۱۲]
- سوئیچ ترانسفورمر (۲۰۲۱): یک نوع ترکیبی از متخصصان T5، با جایگزینی لایههای پیشخور در بلوکهای رمزگذار و رمزگشا با مخلوطی از لایههای پیشخور خبره.[۱۳][۱۴]
- T0 3B, 11B (۲۰۲۱): مجموعهای از مدلهایی که از پستهای بازرسی T5 سازگار با LM شروع میشوند و برای انجام وظایف فقط بر اساس دستور کار ( نفر شات ) آموزش داده میشوند.[۱۵] ورودیهای مختلف در این سری از دادههای تنظیم دقیق متفاوتی استفاده میکنند.[۱۶]
- ByT5 (۲۰۲۱): نسخه سطح بایت T5، آموزش داده شده بر روی مجموعه داده mC4 (چند زبانه C4).[۱۷] بر روی متن کدگذاری شده به صورت UTF-8 بایت، بدون توکنایزر عمل میکند.
- Flan-T5-XL (۲۰۲۲): مدلی که با یک ایست بازرسی T5 XL شروع شد و سپس بر روی مجموعه داده FLAN تنظیم شد .[۱۸][۱۹][۲۰][۲۱]
- T5X (۲۰۲۲): یک پیادهسازی مجدد مبتنی بر JAX از پایگاه کد اصلی T5 . مدل نیست .[۲۲] پایگاه کد اصلی T5 در TensorFlow با MeshTF پیاده سازی شد.[۲]
- UL2 20B (۲۰۲۲): مدلی با معماری مشابه سری T5 ، اما تا 20B مقیاسبندی شده و با هدف "مخلوط زدا" در C4 آموزش دیده است.[۲۳] این بر روی یک خوشه TPU به طور تصادفی آموزش داده شد، زمانی که یک دوره آموزشی به طور تصادفی به مدت یک ماه در حال اجرا ماند.[۲۴]
- Flan-UL2 20B (۲۰۲۲): دستورالعمل UL2 20B بر روی مجموعه داده FLAN تنظیم شده است.[۲۰][۲۳]
- Pile-T5 (2024): دارای همان معماری T5 است، با این تفاوت که از توکنایزر لاما استفاده میکند. در The Pile آموزش داده شد. این در اندازههای پایه، بزرگ، XL، XXL عرضه شد.[۲۵]
کاربردها
با توجه به انی که مدل T5 یک مدل رمزگذار-رمزگشا است، این امکان وجود دارد که از آن در کاربردهای پیگیری دستورالعمل استفاده شود. رمزگذار در این مدل دستورالعمل را رمزگذاری میکند و رمزگشا به صورت خودکار پاسخ را تولید میکند.
رمزگذار T5 را میتوان به عنوان رمزگذار متن استفاده کرد، مانند برت. این یک متن را به دنباله ای از بردارهای اعداد واقعی رمزگذاری میکند، که میتواند برای برنامههای کاربردی پایین دست استفاده شود. برای مثال، Google Imagen [۲۶] از T5-XXL به عنوان رمزگذار متن استفاده میکند، و بردارهای متن کدگذاریشده به عنوان شرطیسازی در مدل انتشار استفاده میشوند. به عنوان مثال دیگر، مدل انتشار AuraFlow [۲۷] از Pile-T5-XL استفاده میکند.
یادداشتها
مراجع
- 1 2 Raffel, Colin; Shazeer, Noam; Roberts, Adam; Lee, Katherine; Narang, Sharan; Matena, Michael; Zhou, Yanqi; Li, Wei; Liu, Peter J. (2020). "Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer". Journal of Machine Learning Research. 21 (140): 1–67. arXiv:1910.10683. ISSN 1533-7928.
- 1 2 google-research/text-to-text-transfer-transformer, Google Research, 2024-08-21, retrieved 2024-08-21
- ↑ Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N; Kaiser, Łukasz; Polosukhin, Illia (2017). "Attention is All you Need". Advances in Neural Information Processing Systems. Curran Associates, Inc. 30.
- ↑ Jiang, Yunfan; Gupta, Agrim; Zhang, Zichen; Wang, Guanzhi; Dou, Yongqiang; Chen, Yanjun; Fei-Fei, Li; Anandkumar, Anima; Zhu, Yuke (2022-10-06). "VIMA: General Robot Manipulation with Multimodal Prompts" (به انگلیسی). arXiv:2210.03094 [cs.RO].
- 1 2
{{cite book}}: Empty citation (help) - ↑ Raffel, Colin; Shazeer, Noam; Roberts, Adam; Lee, Katherine; Narang, Sharan; Matena, Michael; Zhou, Yanqi; Li, Wei; Liu, Peter J. (2020). "Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer". Journal of Machine Learning Research. 21 (140): 1–67. arXiv:1910.10683. ISSN 1533-7928.
- ↑ Shaw, Peter; Uszkoreit, Jakob; Vaswani, Ashish (2018-04-12), Self-Attention with Relative Position Representations, arXiv:1803.02155
- 1 2 "t5x/docs/models.md at main · google-research/t5x". GitHub (به انگلیسی). Retrieved 2024-08-05.
- ↑ خطای یادکرد: برچسب
<ref>غیرمجاز؛ یادکردهای بدون محتوا باید نام داشته باشند. (). - ↑ خطای یادکرد: برچسب
<ref>غیرمجاز؛ یادکردهای بدون محتوا باید نام داشته باشند. (). - ↑ "config.json · google/t5-v1_1-xxl at main". huggingface.co. 2020-11-19. Retrieved 2024-09-17.
- ↑ Lester, Brian; Al-Rfou, Rami; Constant, Noah (2021-09-02), The Power of Scale for Parameter-Efficient Prompt Tuning, arXiv:2104.08691
- ↑ Fedus, William; Zoph, Barret; Shazeer, Noam (2022-06-16), Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity, arXiv:2101.03961
- ↑ "SwitchTransformers". huggingface.co. Retrieved 2024-08-05.
- ↑ Sanh, Victor; Webson, Albert; Raffel, Colin; Bach, Stephen H.; Sutawika, Lintang; Alyafeai, Zaid; Chaffin, Antoine; Stiegler, Arnaud; Scao, Teven Le (2022-03-17), Multitask Prompted Training Enables Zero-Shot Task Generalization, arXiv:2110.08207
- ↑ "bigscience/T0 · Hugging Face". huggingface.co. 2024-03-04. Retrieved 2024-08-21.
- ↑ Xue, Linting; Barua, Aditya; Constant, Noah; Al-Rfou, Rami; Narang, Sharan; Kale, Mihir; Roberts, Adam; Raffel, Colin (2022-03-25). "ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models". Transactions of the Association for Computational Linguistics (به انگلیسی). 10: 291–306. arXiv:2105.13626. doi:10.1162/tacl_a_00461. ISSN 2307-387X.
- ↑ Chung, Hyung Won; Hou, Le; Longpre, Shayne; Zoph, Barret; Tay, Yi; Fedus, William; Li, Yunxuan; Wang, Xuezhi; Dehghani, Mostafa (2024). "Scaling Instruction-Finetuned Language Models". Journal of Machine Learning Research. 25 (70): 1–53. arXiv:2210.11416. ISSN 1533-7928.
- ↑ Longpre, Shayne; Hou, Le; Vu, Tu; Webson, Albert; Chung, Hyung Won; Tay, Yi; Zhou, Denny; Le, Quoc V.; Zoph, Barret (2023-07-03). "The Flan Collection: Designing Data and Methods for Effective Instruction Tuning". Proceedings of the 40th International Conference on Machine Learning (به انگلیسی). PMLR: 22631–22648. arXiv:2301.13688.
- 1 2 google-research/FLAN, Google Research, 2024-08-03, retrieved 2024-08-05
- ↑ "google/flan-t5-xl · Hugging Face". huggingface.co. 2024-01-04. Retrieved 2024-08-05.
- ↑ Roberts, Adam; Chung, Hyung Won; Mishra, Gaurav; Levskaya, Anselm; Bradbury, James; Andor, Daniel; Narang, Sharan; Lester, Brian; Gaffney, Colin (2023). "Scaling Up Models and Data with t5x and seqio". Journal of Machine Learning Research. 24 (377): 1–8. ISSN 1533-7928.
- 1 2 Tay, Yi; Dehghani, Mostafa; Tran, Vinh Q.; Garcia, Xavier; Wei, Jason; Wang, Xuezhi; Chung, Hyung Won; Shakeri, Siamak; Bahri, Dara (2023-02-28), UL2: Unifying Language Learning Paradigms, arXiv:2205.05131
- ↑ "Training great LLMs entirely from ground up in the wilderness as a startup". Yi Tay (به انگلیسی). Retrieved 2024-10-18.
- ↑ Sutawika, Lintang; Komatsuzaki, Aran; Raffel, Colin (2024-04-15). "Pile-T5". EleutherAI Blog (به انگلیسی). Retrieved 2024-05-05.
- ↑ "Imagen: Text-to-Image Diffusion Models". imagen.research.google. Retrieved 2024-08-23.
- ↑ "AuraFlow". huggingface.co. Retrieved 2024-08-23.
نکات
- ↑
import torch from transformers import AutoConfig, AutoModelForSeq2SeqLM def count_parameters(model): enc = sum(p.numel() for p in model.encoder.parameters()) dec = sum(p.numel() for p in model.decoder.parameters()) total = enc + dec return total, enc, dec for name in ["t5-small", "t5-base", "t5-large", "t5-3b", "t5-11b"]: print(f"Model: {name}") config = AutoConfig.from_pretrained(f"google-t5/{name}") torch_dtype = torch.float16 model = AutoModelForSeq2SeqLM.from_config(config, torch_dtype=torch_dtype) total, enc, dec = count_parameters(model) print(f"Total number of parameters in {name}: {total}") print(f"Total number of parameters in encoder: {enc}") print(f"Total number of parameters in decoder: {dec}") del model
- ↑
import torch from transformers import AutoConfig, AutoModelForSeq2SeqLM def count_parameters(model): enc = sum(p.numel() for p in model.encoder.parameters()) dec = sum(p.numel() for p in model.decoder.parameters()) total = enc + dec return total, enc, dec for name in ["small", "base", "large", "xl", "xxl"]: print(f"Model: {name}") config = AutoConfig.from_pretrained(f"google/t5-v1_1-{name}") torch_dtype = torch.float16 model = AutoModelForSeq2SeqLM.from_config(config, torch_dtype=torch_dtype) total, enc, dec = count_parameters(model) print(f"Total number of parameters in {name}: {total}") print(f"Total number of parameters in encoder: {enc}") print(f"Total number of parameters in decoder: {dec}") del model
<ref> برای گروهی به نام «نکته» وجود دارد، اما برچسب <references group="نکته"/> متناظر پیدا نشد. ().