Sobes.tech
Middle — Senior

Kuidas on muundur üles ehitatud ja millised on selle peamised plokid?

sobes.tech AI

Vastus AI-lt

Transformeri — see on närvivõrkude arhitektuur, mida laialdaselt kasutatakse järjestuste töötlemiseks, näiteks tekstis. Transformeri põhitees on kasutada tähelepanu (attention) mehhanismi, et hinnata erinevate sisendite osade olulisust ilma rekursiivsete või konvolutsiooniliste kihtideta.

Suured transformerite kihid:

  1. Sissejuhatusesitus (Embedding) — teisendab sisendtokenid vektoriteks.

  2. Positsiooniline kodeerimine (Positional Encoding) — lisab teavet tokenite positsiooni kohta järjestuses, kuna tähelepanu mehhanism ei arvesta järjekorda.

  3. Self-Attention mehhanism — arvutab iga tokeni kaalu teiste suhtes, võimaldades mudelil keskenduda olulistele osadele.

  4. Mitme-peaga tähelepanu (Multi-Head Attention) — samaaegne mitme tähelepanu mehhanismi kasutamine, et haarata erinevaid sõltuvusi.

  5. Normaliseerimine ja residuaalsed ühendused (Layer Normalization ja Residual Connections) — aitavad stabiliseerida õppimist ja parandada gradientide voogu.

  6. Täielikult ühendatud kihid (Feed-Forward Network) — rakendatakse iga elemendi jaoks eraldi, et teha mitte-lineaarseid teisendusi.

  7. Väljundkiht — genereerimis- või klassifikatsioonülesannete jaoks.

Näide lihtsustatud ühe kihi transformerist:

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

Seega koosneb transformer sellistest kihtidest, mis korduvad, võimaldades tõhusalt modelleerida sõltuvusi andmetes.