آموزشهوش مصنوعی

ترنسفورمرها

معماری‌ای که مدل‌های زبانی امروز روی آن ساخته شده‌اند؛ از مکانیزم توجه تا بلوک کامل، با تصویر، عدد و کد.

از صفر۱۱ ایستگاه۶۲ درسدرس‌ها به‌زودی

شروع: ترنسفورمر چیست۴ درس، به‌زودی

پیش از جزئیات، باید بدانید این معماری چه می‌کند و چرا همه‌جا هست.

  1. ترنسفورمر در هوش مصنوعی چیست به‌زودی

    شبکه‌ی عصبی‌ای که دنباله را یک‌جا می‌خواند و برای فهم هر جزء، با «توجه» می‌سنجد کدام اجزای دیگر به آن مربوط‌اند.

  2. دنباله چیست و چرا سخت است به‌زودی

    متن، صدا و حتی تکه‌های عکس دنباله‌اند؛ معنی هر جزء به جزءهای دیگر، گاهی خیلی دور، بستگی دارد.

  3. مقاله‌ی «Attention Is All You Need» (۲۰۱۷) به‌زودی

    مقاله‌ای که ترنسفورمر را برای ترجمه‌ی ماشینی معرفی کرد و نشان داد بی شبکه‌ی بازگشتی، فقط با توجه، هم بهتر و هم سریع‌تر آموزش می‌بیند.

  4. ترنسفورمر امروز کجاست به‌زودی

    در مدل‌های زبانی، ترجمه، جستجو، تشخیص گفتار، مدل‌های تصویر و ساخت تصویر؛ یک معماری برای تقریبا همه‌چیز.

پیش از ترنسفورمر: شبکه‌های بازگشتی۶ درس، به‌زودی

تا ندانید پیش از آن چه بود و کجا گیر می‌کرد، معلوم نیست ترنسفورمر چه چیزی را حل کرد.

  1. شبکه‌ی عصبی بازگشتی (RNN) به‌زودی

    دنباله را جزء به جزء می‌خواند و یک حافظه‌ی کوچک (حالت پنهان) را از هر قدم به قدم بعد می‌برد.

  2. مشکل RNN: فراموشی و کندی به‌زودی

    گرادیان در دنباله‌ی بلند محو می‌شود و جزءهای دور فراموش می‌شوند؛ و چون قدم‌ها پشت سر هم‌اند، آموزش موازی نمی‌شود.

  3. LSTM و GRU: حافظه با دریچه به‌زودی

    دریچه‌هایی یاد می‌گیرند چه چیزی را نگه دارند، چه را فراموش کنند و چه را بیرون بدهند؛ LSTM در ۱۹۹۷ معرفی شد.

  4. رمزگذار و رمزگشا: دنباله به دنباله (seq2seq) به‌زودی

    یک شبکه جمله‌ی ورودی را به یک بردار فشرده می‌کند و شبکه‌ی دیگر از آن جمله‌ی خروجی را می‌سازد؛ مثلا ترجمه.

  5. گلوگاه یک بردار به‌زودی

    فشردن یک جمله‌ی بلند در یک بردار ثابت، جزئیات را از دست می‌دهد؛ ترجمه‌ی جمله‌های بلند بد می‌شد.

  6. تولد توجه (۲۰۱۴) به‌زودی

    رمزگشا اجازه یافت در هر قدم به همه‌ی جزءهای ورودی نگاه کند و خودش وزن بدهد کدام مهم‌ترند؛ هنوز کنار RNN.

توجه، از صفر۱۰ درس، به‌زودی

قلب ترنسفورمر؛ همه‌ی بقیه دور این ساخته شده است. اول با تصویر، بعد با عدد واقعی، بعد با کد.

  1. مکانیزم توجه چیست به‌زودی

    برای هر جزء، میانگین وزن‌دار بقیه‌ی جزءها را می‌سازد، با وزن بیشتر برای آن‌هایی که مربوط‌ترند.

  2. پرسش، کلید و مقدار (Query، Key، Value) به‌زودی

    هر جزء سه بردار می‌سازد: پرسش (دنبال چه می‌گردم)، کلید (چه دارم) و مقدار (چه می‌دهم)؛ مثل جستجو در کتابخانه.

  3. ضرب داخلی دو برداردر مسیر یادگیری ماشین
  4. امتیاز توجه: ضرب پرسش در کلید به‌زودی

    ضرب داخلی پرسش هر جزء در کلید همه‌ی جزءها؛ هر چه هم‌جهت‌تر، امتیاز بیشتر.

  5. سافت‌مکسدر مسیر یادگیری ماشین
  6. فرمول کامل: توجه ضرب داخلی مقیاس‌شده به‌زودی

    softmax(QKᵀ/√d)·V؛ تقسیم بر ریشه‌ی بعد بردار، امتیازها را از بزرگ شدن و سافت‌مکس را از اشباع شدن نگه می‌دارد.

  7. توجه با دست: سه کلمه، عددهای واقعی به‌زودی

    یک بار کامل روی کاغذ: ساختن Q و K و V، امتیاز، سافت‌مکس و میانگین وزن‌دار؛ با ماتریس‌های ۳ در ۴.

  8. خودتوجهی (Self-attention) به‌زودی

    پرسش، کلید و مقدار همه از همان یک دنباله می‌آیند؛ هر جزء به همه‌ی جزءهای همان جمله نگاه می‌کند.

  9. توجه چندسری (Multi-head) به‌زودی

    چند توجه موازی با Q و K و V جدا، هر کدام یک نوع رابطه را می‌گیرد (مثلا دستوری یا معنایی)، و خروجی‌ها کنار هم چیده می‌شوند.

  10. ماسک: نگاه نکردن به آینده به‌زودی

    در مدلی که کلمه‌ی بعد را می‌سازد، هر جزء فقط به خودش و جزءهای پیش از خودش نگاه می‌کند؛ امتیاز آینده منفی بی‌نهایت می‌شود.

ورودی ترنسفورمر: از متن به بردار با جا۵ درس، به‌زودی

توجه ترتیب را نمی‌بیند؛ «سگ گربه را دید» و «گربه سگ را دید» برایش یکی است، مگر جای هر کلمه را به آن بگوییم.

  1. توکن‌سازیدر مسیر مدل‌های زبانی بزرگ (LLM)
  2. امبدینگدر مسیر مدل‌های زبانی بزرگ (LLM)
  3. رمزگذاری موقعیتی به‌زودی

    به بردار هر جزء، برداری افزوده می‌شود که جای آن در دنباله را نشان می‌دهد، چون توجه خودش ترتیب را نمی‌فهمد.

  4. رمزگذاری سینوسی مقاله‌ی ۲۰۱۷ به‌زودی

    جای هر جزء با سینوس و کسینوس در بسامدهای مختلف ساخته می‌شود؛ مثل عقربه‌های ساعت با سرعت‌های مختلف.

  5. رمزگذاری چرخشی (RoPE) به‌زودی

    بردار پرسش و کلید به اندازه‌ی جای خود چرخانده می‌شوند تا امتیاز توجه به فاصله‌ی دو جزء بستگی داشته باشد؛ در بیشتر مدل‌های زبانی امروز.

ساختمان یک بلوک۷ درس، به‌زودی

ترنسفورمر چند ده بلوک یکسان روی هم است؛ یک بلوک را که بفهمید، کل را فهمیده‌اید.

  1. بلوک ترنسفورمر در یک تصویر به‌زودی

    توجه چندسری، سپس شبکه‌ی پیش‌خور، هر کدام با اتصال باقی‌مانده و نرمال‌سازی؛ همین، چند ده بار روی هم.

  2. شبکه‌ی پیش‌خور (Feed-forward) به‌زودی

    دو لایه‌ی تمام‌متصل با یک تابع فعال‌سازی میانشان، روی هر جزء جدا؛ پهنای لایه‌ی میانی معمولا چهار برابر است.

  3. اتصال باقی‌مانده (Residual) به‌زودی

    ورودی هر بخش به خروجی‌اش افزوده می‌شود (x + f(x))؛ گرادیان راه میان‌بر دارد و شبکه‌ی خیلی عمیق آموزش می‌بیند.

  4. نرمال‌سازی لایه (Layer norm) به‌زودی

    بردار هر جزء را به میانگین صفر و واریانس یک می‌برد و با دو عدد یادگرفته مقیاس می‌دهد؛ آموزش را پایدار می‌کند.

  5. نرمال‌سازی پیش یا پس از هر بخش به‌زودی

    مقاله‌ی اصلی پس از هر بخش نرمال می‌کرد؛ بیشتر مدل‌های امروز پیش از آن، چون شبکه‌ی عمیق پایدارتر آموزش می‌بیند.

  6. عمق و پهنا: چند لایه، چند سر به‌زودی

    مدل پایه‌ی مقاله‌ی ۲۰۱۷: ۶ بلوک رمزگذار و ۶ رمزگشا، بردار ۵۱۲ تایی و ۸ سر؛ مدل‌های امروز ده‌ها بلوک و بردارهای چند هزارتایی دارند.

  7. پارامترهای ترنسفورمر را بشماریم به‌زودی

    بیشتر پارامترها در ماتریس‌های Q و K و V و خروجی، شبکه‌ی پیش‌خور و جدول امبدینگ‌اند؛ با یک حساب ساده عدد کل را می‌سازیم.

سه خانواده۶ درس، به‌زودی

«ترنسفورمر» یک چیز نیست؛ سه شکل اصلی دارد و هر کدام برای کاری.

  1. رمزگذار و رمزگشا: ترنسفورمر اصلی به‌زودی

    رمزگذار ورودی را با خودتوجهی می‌فهمد و رمزگشا با ماسک و توجه متقابل خروجی را جزء به جزء می‌سازد؛ برای ترجمه و خلاصه.

  2. توجه متقابل (Cross-attention) به‌زودی

    پرسش از رمزگشا و کلید و مقدار از خروجی رمزگذار؛ پلی که خروجی را به ورودی وصل می‌کند.

  3. فقط رمزگذار: خانواده‌ی BERT به‌زودی

    دنباله را از دو طرف می‌خواند و برای فهم متن (دسته‌بندی، جستجو) است؛ BERT (۲۰۱۸) با پیش‌بینی کلمه‌های پوشانده آموزش دید.

  4. فقط رمزگشا: خانواده‌ی GPT به‌زودی

    با ماسک فقط به گذشته نگاه می‌کند و کلمه‌ی بعد را پیش‌بینی می‌کند؛ شکل بیشتر مدل‌های زبانی امروز.

  5. کدام خانواده برای کدام کار به‌زودی

    فهم و دسته‌بندی متن: رمزگذار؛ ساختن متن و گفتگو: رمزگشا؛ تبدیل یک دنباله به دنباله‌ی دیگر: هر دو، یا رمزگشای بزرگ.

  6. یک ترجمه از اول تا آخر در ترنسفورمر اصلی به‌زودی

    جمله‌ی فارسی وارد رمزگذار می‌شود و رمزگشا ترجمه را کلمه به کلمه می‌سازد؛ هر قدم با تصویر بلوک‌ها.

آموزش ترنسفورمر۶ درس، به‌زودی

ساختمان بی آموزش فقط عدد تصادفی است؛ این‌جا می‌بینیم ترنسفورمر از چه چیزی و چطور یاد می‌گیرد.

  1. هدف آموزش: کلمه‌ی بعد یا کلمه‌ی پوشیده به‌زودی

    خانواده‌ی GPT کلمه‌ی بعد را پیش‌بینی می‌کند، خانواده‌ی BERT کلمه‌های پوشانده‌شده (حدود ۱۵٪) را؛ هر دو بی برچسب انسانی.

  2. آموزش موازی: برتری بزرگ بر RNN به‌زودی

    با ماسک، پیش‌بینی همه‌ی جاهای یک دنباله هم‌زمان حساب می‌شود؛ GPU تمام توانش را می‌گذارد.

  3. دادن جواب درست قبلی هنگام آموزش به‌زودی

    در آموزش، رمزگشا جزء درست قبلی را می‌گیرد نه حدس خودش را؛ هنگام استفاده، حدس خودش را.

  4. گرم کردن نرخ یادگیری به‌زودی

    نرخ یادگیری از نزدیک صفر کم‌کم بالا می‌رود و بعد پایین می‌آید؛ بی آن، آموزش ترنسفورمر در قدم‌های اول ناپایدار است.

  5. پس‌انتشار خطادر مسیر یادگیری ماشین
  6. پیش‌آموزش مدل زبانیدر مسیر مدل‌های زبانی بزرگ (LLM)
هزینه و سرعت۷ درس، به‌زودی

توجه گران است؛ همین هزینه طول متن، قیمت و سرعت هر مدل امروز را تعیین می‌کند.

  1. چرا توجه با طول متن گران می‌شود به‌زودی

    هر جزء به همه‌ی جزءها نگاه می‌کند، پس متن دو برابر یعنی چهار برابر امتیاز توجه.

  2. KV کش: حساب نکردن دوباره‌ی گذشته به‌زودی

    هنگام ساختن متن، کلید و مقدار جزءهای قبلی نگه داشته می‌شود تا هر کلمه‌ی تازه فقط حساب خودش را بخواهد.

  3. سرهای پرسش با کلید و مقدار مشترک به‌زودی

    چند سر پرسش یک کلید و مقدار مشترک دارند؛ KV کش چند برابر کوچک‌تر و ساختن متن سریع‌تر می‌شود.

  4. توجه سریع با حساب تکه‌تکه به‌زودی

    همان توجه دقیق، ولی تکه‌تکه در حافظه‌ی سریع GPU حساب می‌شود، بی نوشتن کل جدول امتیازها در حافظه‌ی اصلی.

  5. متن خیلی بلند به‌زودی

    ترفندهای جا (مثل کش دادن RoPE)، توجه پنجره‌ای و حافظه‌ی کمتر؛ و اینکه چرا مدل وسط متن بلند را گاهی کمتر می‌بیند.

  6. توجه پراکنده و پنجره‌ای به‌زودی

    هر جزء فقط به همسایه‌ها و چند جزء منتخب نگاه می‌کند؛ هزینه نزدیک به خطی، با کمی از دست دادن.

  7. ترکیب متخصص‌ها (Mixture of Experts) به‌زودی

    به‌جای یک شبکه‌ی پیش‌خور، چند «متخصص» و یک مسیریاب که هر جزء را به یکی دو تا می‌فرستد؛ پارامتر زیاد، حساب کم برای هر جزء.

فراتر از متن۵ درس، به‌زودی

همان معماری، با تکه‌های عکس و صدا به‌جای کلمه، کار می‌کند.

  1. ترنسفورمر بینایی (ViT) به‌زودی

    عکس به تکه‌های کوچک (مثلا ۱۶ در ۱۶ پیکسل) بریده می‌شود و هر تکه مثل یک کلمه وارد ترنسفورمر می‌شود؛ معرفی در ۲۰۲۰.

  2. ترنسفورمر برای صدا و گفتار به‌زودی

    صدا به تکه‌های زمانی یا نمایش بسامدی تبدیل می‌شود و ترنسفورمر آن را به متن یا صدای دیگر می‌برد.

  3. ترنسفورمر در ساخت تصویر به‌زودی

    در بسیاری از مدل‌های ساخت تصویر، شبکه‌ای که نویز را کم‌کم پاک می‌کند خودش یک ترنسفورمر است.

  4. پیوند متن و تصویر (CLIP)در مسیر بینایی ماشین
  5. مدل‌های چندحالتهدر مسیر مدل‌های زبانی بزرگ (LLM)
درون جعبه و ساختن۴ درس، به‌زودی

تا یک ترنسفورمر کوچک را خودتان دنبال نکنید، هنوز کمی جادوست.

  1. دیدن توجه: نقشه‌ی گرمایی به‌زودی

    وزن‌های توجه هر سر را روی جمله نشان می‌دهیم؛ بعضی سرها رابطه‌ی دستوری می‌گیرند، بعضی فقط کلمه‌ی قبلی را.

  2. ساختن یک ترنسفورمر کوچک، خط به خط به‌زودی

    یک ترنسفورمر فقط‌رمزگشای کوچک در حدود دویست خط پایتون که حرف بعدی یک متن کوتاه را یاد می‌گیرد.

  3. درون ترنسفورمر چه می‌گذرد به‌زودی

    پژوهش‌هایی که نشان می‌دهند لایه‌ها و نورون‌ها چه مفهوم‌هایی را نگه می‌دارند؛ و اینکه هنوز چقدرش نامعلوم است.

  4. مقاله‌ی ۲۰۱۷ را خودتان بخوانید به‌زودی

    راهنمای بند به بند مقاله با پیوند هر بخش به درس همین مسیر؛ حالا هر شکل و فرمولش آشناست.

مرزها و پایان راه۲ درس، به‌زودی

هیچ معماری آخرین معماری نیست.

  1. محدودیت‌ها و جایگزین‌ها به‌زودی

    هزینه‌ی مربعی توجه، معماری‌هایی با هزینه‌ی خطی را دوباره مطرح کرده (مدل‌های فضای حالت و بازگشتی‌های تازه)، و مدل‌های ترکیبی هر دو را دارند.

  2. حالا ترنسفورمر را می‌شناسید به‌زودی

    کل ساختمان در یک تصویر، از توکن تا خروجی؛ آزمون پایانی؛ و دکمه به مسیر مدل‌های زبانی بزرگ.