Sobes.tech
Middle — Senior

Transformerdə FFN qatlamı nədir və diqqət blokları arasında qeyri-xətti niyə lazımdır?

sobes.tech Süni İntellekt

AI-dan cavab

Transformerdəki FFN (İrəli Yönəldilmiş Şəbəkə) qat, iki qatlı tam əlaqəli neyron şəbəkəsidir və diqqət (attention) qatından sonra hər bir ardıcıllıq elementinə ayrıca tətbiq olunur. Onun vəzifəsi əlavə qeyri-xətti emal əlavə etmək və modelin ifadə qabiliyyətini artırmaqdır.

Diqqət blokları arasındakı qeyri-xətti, modelin mürəkkəb funksiyaları və asılılıqları təxmin edə bilməsi üçün vacibdir. Diqqət, müxtəlif mövqelərdəki məlumatların çəkili cəmidir və qeyri-xətti aktivasiya (məsələn, ReLU və ya GELU) ilə FFN, transformerin sadə xətti kombinasiyalarından daha mürəkkəb naxışları modelləşdirməsinə kömək edir.

FFN qatının strukturu nümunəsi:

import torch
import torch.nn as nn

class FFN(nn.Module):
    def __init__(self, d_model, d_ff):
        super().__init__()
        self.linear1 = nn.Linear(d_model, d_ff)
        self.activation = nn.GELU()
        self.linear2 = nn.Linear(d_ff, d_model)

    def forward(self, x):
        return self.linear2(self.activation(self.linear1(x)))

Burada, d_model giriş və çıxış vektorlarının ölçüsüdür, d_ff isə daxili qatın ölçüsüdür və adətən d_model-dən böyükdür.

Beləliklə, qeyri-xətti ilə FFN qatı xüsusiyyətlərin dərin qeyri-xətti transformasiyasını təmin edir və bu, təlim və modelin keyfiyyətini yaxşılaşdırır.