single
Challenge: Structурування Блоків Енкодера Та Декодера
Свайпніть щоб показати меню
Розуміння структури блоків енкодера та декодера є ключовим для опанування того, як трансформери обробляють і генерують текст. Кожен блок енкодера у трансформері призначений для перетворення вхідних послідовностей у контекстно-насичені представлення, тоді як кожен блок декодера генерує вихідні послідовності, звертаючись як до попередніх виходів, так і до представлень енкодера. У задачах обробки послідовностей, таких як переклад або узагальнення, енкодер приймає вхідний текст і кодує його у серію прихованих станів. Декодер потім використовує ці приховані стани разом із власною самоувагою для покрокового створення цільової послідовності. Така взаємодія між блоками енкодера і декодера дозволяє моделі захоплювати складні залежності у тексті, що робить трансформери надзвичайно ефективними для широкого спектра завдань обробки природної мови.
У наступній таблиці підсумовано послідовність операцій у блоці енкодера трансформера та підкреслено їхню важливість для текстових даних:
| |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Each operation ensures that the encoder builds increasingly abstract and context-aware representations of the input text, which are essential for downstream sequence-to-sequence tasks. |
Проведіть, щоб почати кодувати
Ваше завдання — заповнити відсутні частини класу TransformerEncoderBlock, правильно ініціалізувавши його ключові компоненти та забезпечивши їх використання у прямому проході (forward computation).
Клас TransformerEncoderBlock моделює один блок енкодера в архітектурі Transformer. Необхідно коректно ініціалізувати два основних компоненти у конструкторі класу (__init__ метод):
- Шар самоуваги (self-attention layer) за допомогою
MultiHeadAttention(hidden_dim). Цей шар дозволяє кожному токену у вхідних даних звертати увагу на всі інші токени, захоплюючи контекстуальні зв'язки; - Мережа прямого поширення (feed-forward network) за допомогою
FeedForward(hidden_dim). Цей шар застосовує нелінійні перетворення до кожного представлення токена окремо, додатково обробляючи вихід із шару самоуваги; - У методі
forwardці два шари слід застосовувати послідовно:- спочатку передати вхідний
xчерез шар самоуваги; - потім передати вихід із шару самоуваги через мережу прямого поширення;
- повернути фінальний результат.
- спочатку передати вхідний
Переконайтеся, що обидва компоненти — MultiHeadAttention та FeedForward — створюються з параметром hidden_dim, який передається до класу. Ці компоненти є основою структури блоку енкодера і повинні застосовуватися у правильному порядку для коректної роботи блоку.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат