یک فناوری جدیدتر، مدلهای زبان بزرگ ( LLMs ) نشانه یا دنبالهای از نشانهها را پیشبینی میکنند، گاهی اوقات تعداد پاراگرافهای زیادی از نشانههای پیشبینیشده. به یاد داشته باشید که یک نشانه می تواند یک کلمه، یک زیرکلمه (زیر مجموعه یک کلمه) یا حتی یک کاراکتر باشد. LLM ها پیش بینی های بسیار بهتری نسبت به مدل های زبان N-gram یا شبکه های عصبی تکراری انجام می دهند زیرا:
- LLM ها دارای پارامترهای بسیار بیشتری نسبت به مدل های تکراری هستند.
- LLM زمینه بسیار بیشتری را جمع آوری می کند.
این بخش موفق ترین و پرکاربردترین معماری برای ساخت LLM ها را معرفی می کند: ترانسفورماتور.
ترانسفورماتور چیست؟
ترانسفورماتورها معماری پیشرفته ای برای کاربردهای متنوع مدل زبانی مانند ترجمه هستند:
![شکل 1. ورودی این است: من سگ خوبی هستم. یک مترجم مبتنی بر ترانسفورماتور آن ورودی را به خروجی تبدیل می کند: Je suis un bon chien، که همان جمله ای است که به فرانسوی ترجمه شده است.](https://developers.google.cn/static/machine-learning/crash-course/images/Iamagooddog.png?authuser=4&hl=fa)
ترانسفورماتورهای کامل از یک رمزگذار و یک رمزگشا تشکیل شده اند:
- یک رمزگذار متن ورودی را به یک نمایش میانی تبدیل می کند. رمزگذار یک شبکه عصبی عظیم است.
- یک رمزگشا آن نمایش میانی را به متن مفید تبدیل می کند. رمزگشا همچنین یک شبکه عصبی عظیم است.
به عنوان مثال، در یک مترجم:
- رمزگذار متن ورودی (به عنوان مثال، یک جمله انگلیسی) را به یک نمایش میانی پردازش می کند.
- رمزگشا آن نمایش میانی را به متن خروجی تبدیل می کند (مثلاً جمله فرانسوی معادل).
![شکل 2. مترجم مبتنی بر ترانسفورماتور با یک رمزگذار شروع می شود، که یک نمایش متوسط از یک جمله انگلیسی را ایجاد می کند. یک رمزگشا آن نمایش میانی را به یک جمله خروجی فرانسوی تبدیل می کند.](https://developers.google.cn/static/machine-learning/crash-course/images/TransformerBasedTranslator.png?authuser=4&hl=fa)
توجه به خود چیست؟
برای تقویت زمینه، ترانسفورماتورها به شدت به مفهومی به نام توجه به خود متکی هستند. به طور مؤثر، از طرف هر نشانه ورودی، توجه به خود سؤال زیر را میپرسد:
"یک نشانه ورودی چقدر بر تفسیر این نشانه تاثیر می گذارد؟"
«خود» در «توجه به خود» به دنباله ورودی اشاره دارد. برخی مکانیسمهای توجه روابط وزن نشانههای ورودی را به نشانهها در یک دنباله خروجی مانند ترجمه یا به نشانهها در یک دنباله دیگر نشان میدهند. اما توجه به خود فقط اهمیت روابط بین نشانهها را در توالی ورودی وزن میکند.
برای ساده کردن مسائل، فرض کنید که هر نشانه یک کلمه است و متن کامل فقط یک جمله است. جمله زیر را در نظر بگیرید:
The animal didn't cross the street because it was too tired.
جمله قبل شامل یازده کلمه است. هر یک از یازده کلمه به ده کلمه دیگر توجه می کند و در این فکر است که هر یک از آن ده کلمه چقدر برای خودش مهم است. به عنوان مثال، توجه کنید که جمله حاوی ضمیر it است . ضمایر اغلب مبهم هستند. ضمیر آن معمولاً به یک اسم یا عبارت اسمی اخیر اشاره دارد، اما در جمله مثال، به کدام اسم اخیر اشاره میکند - حیوان یا خیابان؟
مکانیسم توجه به خود، ارتباط هر کلمه نزدیک به ضمیر آن را تعیین می کند. شکل 3 نتایج را نشان می دهد - هر چه خط آبی تر باشد، اهمیت کلمه برای ضمیر آن بیشتر است. یعنی حیوان به ضمیر آن اهمیت بیشتری نسبت به خیابان دارد.
![شکل 3. ارتباط هر یک از یازده کلمه در جمله: "حیوان به دلیل خسته بودن از خیابان عبور نکرد" با ضمیر "آن". کلمه "حیوان" بیشترین ارتباط را با ضمیر "آن" دارد.](https://developers.google.cn/static/machine-learning/crash-course/images/Theanimaldidntcrossthestreet.png?authuser=4&hl=fa)
برعکس، فرض کنید کلمه پایانی جمله به صورت زیر تغییر کند:
The animal didn't cross the street because it was too wide.
در این جمله تجدید نظر شده، توجه به خود امیدوار است خیابان را بیشتر از حیوان با ضمیر it مرتبط ارزیابی کند.
برخی از مکانیسمهای توجه به خود دو طرفه هستند، به این معنی که امتیازات مربوط به نشانههای قبل و بعد از کلمه مورد توجه را محاسبه میکنند. به عنوان مثال در شکل 3 توجه کنید که کلمات دو طرف آن بررسی شده است. بنابراین، یک مکانیسم دوسویه توجه به خود می تواند زمینه را از کلمات در هر طرف کلمه مورد توجه جمع آوری کند. در مقابل، یک مکانیسم خودتوجهی یک طرفه فقط می تواند زمینه را از کلمات یک طرف کلمه مورد توجه جمع آوری کند. خودتوجهی دو جهته مخصوصاً برای تولید نمایشهایی از توالیهای کامل مفید است، در حالی که برنامههایی که توالیها را نشانه به نشانه تولید میکنند نیاز به توجه یک طرفه دارند. به همین دلیل، رمزگذارها از خود توجهی دو طرفه استفاده می کنند، در حالی که رمزگشاها از یک طرفه استفاده می کنند.
خود توجهی چند سر چیست؟
هر لایه توجه به خود معمولاً از چندین سر خود توجه تشکیل شده است. خروجی یک لایه یک عملیات ریاضی (مثلاً میانگین وزنی یا حاصل ضرب نقطه ای) از خروجی هدهای مختلف است.
از آنجایی که هر لایه توجه به خود به مقادیر تصادفی مقداردهی اولیه می شود، سرهای مختلف می توانند روابط متفاوتی بین هر کلمه مورد توجه و کلمات نزدیک را بیاموزند. به عنوان مثال، لایه توجه به خود که در بخش قبل توضیح داده شد، بر تعیین این که ضمیر به کدام اسم اشاره دارد ، تمرکز داشت. با این حال، سایر لایههای توجه به خود ممکن است ارتباط دستوری هر کلمه با هر کلمه دیگر را یاد بگیرند یا تعاملات دیگری را بیاموزند.
چرا ترانسفورماتورها اینقدر بزرگ هستند؟
ترانسفورماتورها حاوی صدها میلیارد یا حتی تریلیون ها پارامتر هستند. این دوره به طور کلی مدل های ساختمانی با تعداد پارامترهای کمتر را نسبت به مدل هایی با تعداد پارامترهای بیشتر توصیه می کند. از این گذشته، مدلی با تعداد پارامترهای کمتر از مدلی با تعداد پارامترهای بیشتر از منابع کمتری برای پیش بینی استفاده می کند. با این حال، تحقیقات نشان می دهد که ترانسفورماتورهایی با پارامترهای بیشتر به طور مداوم از ترانسفورماتورهای با پارامترهای کمتر بهتر عمل می کنند.
اما چگونه یک LLM متن تولید می کند؟
شما دیده اید که چگونه محققان LLM ها را برای پیش بینی یک یا دو کلمه از دست رفته آموزش می دهند و ممکن است تحت تأثیر قرار نگیرید. به هر حال، پیشبینی یک یا دو کلمه اساساً ویژگی تکمیل خودکار است که در نرمافزارهای مختلف متن، ایمیل و تالیف تعبیه شده است. ممکن است تعجب کنید که چگونه LLM ها می توانند جملات یا پاراگراف ها یا هایکو در مورد آربیتراژ تولید کنند.
در واقع، LLM ها اساساً مکانیزم های تکمیل خودکار هستند که می توانند به طور خودکار هزاران توکن را پیش بینی (تکمیل) کنند. به عنوان مثال، جمله ای را در نظر بگیرید که به دنبال آن یک جمله پوشیده شده است:
My dog, Max, knows how to perform many traditional dog tricks. ___ (masked sentence)
یک LLM می تواند احتمالاتی را برای جمله پوشانده ایجاد کند، از جمله:
احتمال | کلمه(ها) |
---|---|
3.1٪ | مثلا می تواند بنشیند، بماند و بغلتد. |
2.9٪ | مثلاً می داند چگونه بنشیند، بماند و بغلتد. |
یک LLM به اندازه کافی بزرگ می تواند احتمالاتی را برای پاراگراف ها و کل مقالات ایجاد کند. می توانید سؤالات کاربر از یک LLM را به عنوان جمله "داده شده" و به دنبال آن یک ماسک خیالی در نظر بگیرید. به عنوان مثال:
User's question: What is the easiest trick to teach a dog? LLM's response: ___
LLM احتمالاتی را برای پاسخ های ممکن مختلف ایجاد می کند.
به عنوان مثالی دیگر، یک LLM که بر روی تعداد زیادی از "مسائل کلمه" ریاضی آموزش دیده است، می تواند ظاهری شبیه به انجام استدلال ریاضی پیچیده را ارائه دهد. با این حال، آن LLM ها اساساً فقط یک اعلان مشکل کلمه را تکمیل می کنند.
مزایای LLM
LLM ها می توانند متنی واضح و قابل فهم برای طیف گسترده ای از مخاطبان هدف تولید کنند. LLM ها می توانند در مورد وظایفی که به صراحت در مورد آنها آموزش دیده اند پیش بینی کنند. برخی از محققان ادعا می کنند که LLM ها همچنین می توانند برای ورودی هایی که به صراحت در مورد آنها آموزش ندیده اند، پیش بینی کنند، اما سایر محققان این ادعا را رد کرده اند.
مشکلات با LLM
آموزش LLM مشکلات زیادی را به دنبال دارد، از جمله:
- جمع آوری یک مجموعه آموزشی عظیم
- مصرف چندین ماهه و منابع محاسباتی عظیم و برق.
- حل چالش های موازی سازی
استفاده از LLM برای استنباط پیش بینی ها باعث مشکلات زیر می شود:
- LLM ها توهم دارند ، به این معنی که پیش بینی های آنها اغلب حاوی اشتباه است.
- LLM ها مقادیر زیادی از منابع محاسباتی و برق مصرف می کنند. آموزش LLM ها در مجموعه داده های بزرگتر معمولاً مقدار منابع مورد نیاز برای استنتاج را کاهش می دهد، اگرچه مجموعه های آموزشی بزرگتر منابع آموزشی بیشتری را متحمل می شوند.
- مانند همه مدل های ML، LLM ها می توانند انواع سوگیری ها را نشان دهند.