Sobes.tech
Middle — Senior

Transformator necə qurulub və onun əsas blokları hansılardır?

sobes.tech Süni İntellekt

AI-dan cavab

Transformator — bu neyron tarmog‘i arxitekturasi bo‘lib, ketma-ketliklarni, masalan, matnni, ishlash uchun keng qo‘llaniladi. Transformatorning asosiy g‘oyasi — diqqat (attention) mexanizmidan foydalanib, kirish ma’lumotlarining turli qismlarining ahamiyatini og‘irlik bilan baholash, takroriy yoki konvolyutsion qatlamlarsiz.

Transformatorning asosiy bloklari:

  1. Kirish taqdimoti (Embedding) — kirish tokenlarini vektorli taqdimotlarga aylantiradi.

  2. Pozitsion kodlash (Positional Encoding) — tokenlarning ketma-ketlikdagi o‘rnini ma’lumot bilan qo‘shadi, chunki diqqat mexanizmi tartibni hisobga olmaydi.

  3. Diqqat mexanizmi (Self-Attention) — har bir token uchun boshqa barcha tokenlarga nisbatan vazn koeffitsientlarini hisoblaydi, modelga kirishning muhim qismlariga e’tibor qaratishga imkon beradi.

  4. Ko‘p boshli diqqat (Multi-Head Attention) — bir nechta diqqat mexanizmlarini parallel ravishda qo‘llash, turli bog‘liqlik jihatlarini aniqlash uchun.

  5. Normallashtirish va qoldiq bog‘lanishlar (Layer Normalization va Residual Connections) — o‘qishni barqarorlashtirish va gradient oqimini yaxshilashga yordam beradi.

  6. To‘liq bog‘langan qatlamlar (Feed-Forward Network) — har bir ketma-ketlik elementiga alohida nolinchi transformatsiya uchun qo‘llanadi.

  7. Chiqish qatlami — generatsiya yoki tasniflash vazifalari uchun.

Oddiylashtirilgan transformator qatlamining misoli:

class TransformerLayer(nn.Module):
    def __init__(self, d_model, nhead):
        super().__init__()
        self.self_attn = nn.MultiheadAttention(d_model, nhead)
        self.linear1 = nn.Linear(d_model, d_model*4)
        self.linear2 = nn.Linear(d_model*4, d_model)
        self.norm1 = nn.LayerNorm(d_model)
        self.norm2 = nn.LayerNorm(d_model)

    def forward(self, x):
        attn_output, _ = self.self_attn(x, x, x)
        x = self.norm1(x + attn_output)
        ff_output = self.linear2(F.relu(self.linear1(x)))
        x = self.norm2(x + ff_output)
        return x

Shunday qilib, transformator takrorlanadigan qatlamlardan tashkil topgan bo‘lib, ma’lumotlardagi bog‘liqliklarni samarali model qilish imkonini beradi.