Sokk-Terápiás Tanítás • 80 Réteg SGU • Zero Fine-Tuning

A Szemantika Új Dimenziója

A HuBrain Encoder egy 3072 dimenziós látens térbe képezi le a magyar nyelvet. Semmiféle finetuningot vagy felcímkézett nyelvtani adatot nem kapott! Tisztán nyers szövegből, felügyelet nélküli tanulással, karakter-szinten hozza létre az elvont jelentést.

HuBrainLayer Architektúra

A Multi-Head Attention leváltása: Gated Linear Mixer (SGU) 80 rétegben.

graph BT classDef blueBox fill:#1e3a8a,stroke:#3b82f6,stroke-width:2px,color:#fff,rx:5px,ry:5px classDef grayBox fill:#1f2937,stroke:#9ca3af,stroke-width:2px,color:#fff,rx:5px,ry:5px classDef ioBox fill:transparent,stroke:#fff,stroke-width:1px,color:#fff Inputs[Nyers Szoveg] --> Emb[Karakter Embedding] Emb --> Add0((+)) Pos[Pozicionalis Kodolas] --> Add0 Add0 --> BlockStart subgraph HuBrainLayer [80x HuBrain Layer] direction BT BlockStart[Input] --> Norm1[Add & Norm] Norm1 --> SGU[Spatial Gated Unit
Token Mixing] SGU --> Add1((+)) Norm1 -.-> |Residual| Add1 Add1 --> Norm2[Add & Norm] Norm2 --> MLP[Channel MLP
Feature Mixing] MLP --> Add2((+)) Norm2 -.-> |Residual| Add2 end Add2 --> Output[3072D Szemantikai Vektor] class SGU,MLP blueBox; class Norm1,Norm2,Add1,Add2 grayBox; class Inputs,Output,Pos,Emb ioBox;

Gated Linear Mixer a Multi-Head Attention helyett

A diagram felépítése a klasszikus Transformer papírt követi, de a Multi-Head Attention blokkot kicseréltük a saját Spatial Gated Unit-unkra. Itt nincsenek bonyolult query-key szorzások (O(N²)), hanem a teljes szekvencia lineárisan keveredik össze, amit a sokk-terápiás betanítás kényszerít ki. Ez adja a modell brutális hatékonyságát.

Élő Tréning Metrikák

Részlet az encoder_training.log fájlból (115,000+ lépés). A modell 100%-os vakság mellett 83.4%-os másolási és 37.1%-os MLM pontosságot ért el!

bash - tail -n 9 encoder_training.log
[115250] L: 94.384 | LR: 3.8e-05 | Grad: 14.680 | W_real: 83.2% | W_Perf: 79.8% | W_MLM: 23.0% | P_real: 90.1% | BitDist: 1.742 [115300] L: 92.326 | LR: 3.7e-05 | Grad: 13.959 | W_real: 83.7% | W_Perf: 80.7% | W_MLM: 24.0% | P_real: 91.7% | BitDist: 1.739 [115350] L: 89.506 | LR: 3.7e-05 | Grad: 14.818 | W_real: 84.2% | W_Perf: 80.7% | W_MLM: 24.9% | P_real: 90.4% | BitDist: 1.744 [115400] L: 93.417 | LR: 3.7e-05 | Grad: 15.657 | W_real: 83.6% | W_Perf: 79.9% | W_MLM: 22.6% | P_real: 92.0% | BitDist: 1.787 [115450] L: 83.883 | LR: 3.7e-05 | Grad: 17.376 | W_real: 84.8% | W_Perf: 80.6% | W_MLM: 26.9% | P_real: 91.1% | BitDist: 1.782 [115500] L: 90.947 | LR: 3.7e-05 | Grad: 14.974 | W_real: 83.5% | W_Perf: 79.9% | W_MLM: 23.1% | P_real: 90.7% | BitDist: 1.767 [115550] L: 84.888 | LR: 3.7e-05 | Grad: 15.355 | W_real: 85.0% | W_Perf: 81.6% | W_MLM: 29.0% | P_real: 92.5% | BitDist: 1.807 [115600] L: 96.801 | LR: 3.7e-05 | Grad: 12.434 | W_real: 82.9% | W_Perf: 79.7% | W_MLM: 21.3% | P_real: 91.4% | BitDist: 1.758 [115650] L: 75.226 | LR: 3.7e-05 | Grad: 14.361 | W_real: 86.6% | W_Perf: 83.4% | W_MLM: 37.1% | P_real: 92.7% | BitDist: 1.826

Kétértelműség Feloldása (Zero-Shot)

Részlet a test_pos_encoder.py naplójából. Bár a modell semmilyen finetuningot nem kapott, tisztán a nyers szövegek olvasásából "magától" jött rá a nyelvtan szabályaira és a szófajokra!

bash - test_pos_encoder.py
PS C:\src\HuBrainLinearLayers> python .\test_pos_encoder.py
--- Mondat: 'A magas budai vár nagyon szép .' ---
Szó: vár             | POS: [/N]       (Főnév - Helyes!)

--- Mondat: 'Péter a buszmegállóban vár a barátjára .' ---
Szó: vár             | POS: [/V]       (Ige - Helyes!)

--- Mondat: 'Ma nagyon kék az ég .' ---
Szó: ég              | POS: [/N]       (Főnév - Helyes!)

--- Mondat: 'A száraz fa ropogva ég a tábortűzben .' ---
Szó: ég              | POS: [/V]       (Ige - Helyes!)

Autokorrekciós Erő:

Amikor a "vár" szót elírjuk "vát"-ra, a nyers karakterhasonlóság mindössze 90%. De az Encoder kontextusba helyezve felismeri a mondat célját, és 0.9884 (98.8%) pontossággal visszahúzza a megfelelő latens pozícióra a vektort.

Kutatási Adatok Letöltése

Töltsd le a nyers TSV fájlokat, Python teszt scripteket és a logokat, majd vizsgáld meg a TensorBoard Projectorban.

Hogyan vizsgáld meg a vektorokat?

  1. Nyisd meg a TensorFlow Embedding Projector weboldalt.
  2. Kattints a bal oldali menüben a Load gombra.
  3. Az első mezőbe töltsd fel a letöltött Vektor TSV fájlt (pl. vectors.tsv).
  4. A második mezőbe töltsd fel a hozzá tartozó Metaadat TSV fájlt (pl. metadata.tsv).
  5. Kattints bárhova a 3D térben, és a bal oldali keresővel (Search) keress rá egy szóra, hogy lásd a szomszédjait! (Érdemes bekapcsolni a "Color by: Category" opciót a bal sávban).

📜 Képzési Eredmények