Generovanie prirodzeného jazyka

s podporou vyhľadávania (RAG)

Retrieval Augmented Generation

Ako pracuje generatívny model?


Tokeny
   │
   ▼
Embedding
   │
   ▼
+---------------------------+
|  Self-Attention           |
|  Feed Forward             |
+---------------------------+   × N vrstiev
   │
   ▼
Embedding
   │
   ▼
Výstupný token

Čo model vlastne robí?

👉 Model nevie nič iné, len predpovedať ďalší token.

Príklad:


"Bratislava je hlavné mesto ______"


Slovenska

Ako funguje dekódovanie?

Model hľadá najpravdepodobnejšiu postupnosť slov.


P(veta) = P(w1) * P(w2|w1) * P(w3|w1,w2) * ...

Používané stratégie:

  • Greedy decoding
  • Beam search
  • Sampling (temperature, top-k, top-p)

Generovanie na základe kontextu


+----------------+
| System prompt  |
+----------------+
| História       |
+----------------+
| User prompt    |
+----------------+
      │
      ▼
    MODEL
      │
      ▼
   Response

⚠ Kontext má obmedzenú veľkosť.

Obmedzenia jazykových modelov

Hlavné problémy

  • Halucinácie
  • Bias
  • Závislosť od tréningových dát
  • Ťažká vysvetliteľnosť
  • Ťažká aktualizácia
  • Ťažké prispôsobenie

Ako upraviť jazykový model?

SFT – Supervised Fine-Tuning

Ukážeme modelu správne odpovede a upravíme váhy.


Otázka → Správna odpoveď
Otázka → Správna odpoveď
Otázka → Správna odpoveď
     ↓
Úprava váh

Tu sa používa PEFT pre zníženie náročnostiQ

Alignment

Modelu ukážeme:

  • čo je vhodné správanie
  • čo je nevhodné správanie

Cieľ: zosúladenie s ľudskými hodnotami.

Few-Shot Learning

Pridáme príklady priamo do promptu:


Prelož do angličtiny:

pes → dog
mačka → cat
kôň → ?

Ako prekonať obmedzenia?

Retrieval Augmented Generation (RAG)

👉 Do promptu pridáme relevantné dokumenty.

Výhody:

  • aktuálne dáta
  • doménové znalosti
  • menej halucinácií
  • možnosť citácií

Ako funguje RAG?

      Otázka
        │
        ▼
+-------------------+
| Vyhľadávací       |
| systém            |
+-------------------+
        │
        ▼
Relevantné dokumenty
        │
        ▼
+-------------------+
| Jazykový model    |
+-------------------+
        │
        ▼
     Odpoveď

Neurónové vyhľadávanie

1. Dokumenty sa zmenia na vektory


"Dnes je pekné počasie"
          ↓
[0.12, -0.44, 0.91, ...]

2. Vektory sa vložia do databázy

Vektorový priestor


  • Dokument A
           • Dokument B
• Dokument C

3. Otázka sa zmení na vektor


"Aké je dnes počasie?"
         ↓
[0.10, -0.40, 0.89, ...]

4. Vyhľadanie najbližších vektorov

Vektorový priestor vo vektorvej databáze


  • Dokument A
           • Dokument B
      * Otázka
• Dokument C

Celý RAG pipeline

        +-------------------+
        |   Dokumenty       |
        +-------------------+
                  │
                  ▼
            Embedding model
                  │
                  ▼
          +----------------+
          | Vektorová DB   |
          +----------------+
                  ▲
                  │
Otázka → Embedding → Vyhľadanie
    │
    ▼
 Relevantné texty
    │
    ▼
+----------------+
| LLM            |
+----------------+
  │
  ▼
Odpoveď

Oblasti nasadenia

  • Firemné knowledge base
  • Chatboti
  • Interné dokumenty
  • Právo
  • Medicína
  • Technická podpora

Nástroje

  • LangChain
  • LlamaIndex
  • Haystack
  • Pinecone
  • Weaviate
  • Chroma

Bakalárska práca

doc. Daniel Hládek PhD.

BN32 - L610

Reload?