Встречается на собеседованиях • сегодня

Как устроена архитектура энкодера на примере BERT

BERT использует трансформерную архитектуру, основанную на механизме self-attention. Основные компоненты:

  1. Входные эмбеддинги — комбинация токенных, позиционных и сегментных эмбеддингов.
  2. Слои трансформера (обычно 12 или 24):
    • Multi-Head Attention: несколько параллельных механизмов внимания.
    • Layer Normalization и остаточные связи.
    • Полносвязный слой с активацией GELU.

Пример минимальной реализации слоя:

python
class TransformerLayer(nn.Module):
    def __init__(self, d_model, n_heads):
        super().__init__()
        self.attention = nn.MultiheadAttention(d_model, n_heads)
        self.linear = nn.Sequential(
            nn.Linear(d_model, 4*d_model),
            nn.GELU(),
            nn.Linear(4*d_model, d_model)
        )
        self.norm1 = nn.LayerNorm(d_model)
        self.norm2 = nn.LayerNorm(d_model)
    
    def forward(self, x):
        attn_out, _ = self.attention(x, x, x)
        x = self.norm1(x + attn_out)
        ff_out = self.linear(x)
        return self.norm2(x + ff_out)

Ключевые особенности: двунаправленность (masked attention заменен на полный контекст), общие веса для энкодера и декодера отсутствуют.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы