GUIDE.md: laajennettu tokenisaatio-osio suomi/englanti-vertailulla
Lisätty konkreettiset esimerkit Qwen2.5-Coder -tokenisaattorilla: - Koodi-esimerkki: print vs. tulosta - Kolme lauseparia taulukossa (The cat sat / Kissa istui jne.) - Merkkejä/token -sarake näyttää tehokkuuseron - Selitys miksi englanti on 30-50% tehokkaampaa - Miksi tämä merkitsee: nopeus, konteksti, ymmärrys Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -32,24 +32,52 @@ hitaus — GPU-palvelimella sama 0.5B-malli tuottaa ~100 tok/s.
|
||||
## Tokenit — kielimallin "sanat"
|
||||
|
||||
Malli ei näe tekstiä kirjaimina vaan **tokeneina**. Tokeni on yleensä
|
||||
sanan osa, kokonainen sana tai välilyönti:
|
||||
sanan osa, kokonainen sana tai välilyönti. Tokenisaatio tehdään
|
||||
BPE-algoritmilla (Byte Pair Encoding) joka oppii yleisimmät
|
||||
merkkijonot harjoitusdatasta.
|
||||
|
||||
### Esimerkki: koodi
|
||||
|
||||
```
|
||||
"print('Hello')" → ["print", "('", "Hello", "')"] = 4 tokenia
|
||||
"tulosta('Hei')" → ["tul", "osta", "('", "He", "i", "')"] = 6 tokenia
|
||||
"print('Hello')" → [print] [(' ] [Hello] [')] = 4 tokenia
|
||||
"tulosta('Hei')" → [tul] [osta] [(' ] [He] [i] [')] = 6 tokenia
|
||||
```
|
||||
|
||||
**Miksi tällä on väliä?**
|
||||
Koodi tokenisoidaan tehokkaasti koska `print`, `def`, `return` yms.
|
||||
ovat kokonaisia tokeneita. Suomenkielinen `tulosta` joudutaan pilkkomaan
|
||||
osiin koska se ei esiinny harjoitusdatassa kokonaisena.
|
||||
|
||||
1. **Kustannus:** Jokainen tokeni vaatii laskentaa. 100 tokenin vastaus
|
||||
kestää 0.5B-mallilla ~15-30 sekuntia selaimessa.
|
||||
### Esimerkki: suomi vs. englanti
|
||||
|
||||
2. **Konteksti-ikkuna:** Malli näkee kerrallaan rajallisen määrän tokeneita.
|
||||
Qwen2.5:ssa ikkuna on 32 768 tokenia. Tähän mahtuu prompti + vastaus.
|
||||
Sama lause kahdella kielellä Qwen2.5-Coder -tokenisaattorilla:
|
||||
|
||||
3. **Kielen tehokkuus:** Englanti tokenisoidaan tehokkaammin kuin suomi.
|
||||
Sama lause vaatii suomeksi ~30-70% enemmän tokeneita. Siksi promptit
|
||||
ovat englanniksi — malli saa enemmän informaatiota samassa token-budjetissa.
|
||||
| | Teksti | Tokenit | Määrä | Merkkejä/token |
|
||||
|---|---|---|---|---|
|
||||
| EN | The cat sat on the mat | [The] [ cat] [ sat] [ on] [ the] [ mat] | **6** | 3.7 |
|
||||
| FI | Kissa istui matolla | [K] [issa] [ ist] [ui] [ mat] [olla] | **6** | 3.2 |
|
||||
| EN | Distributed computing in the browser | [Dist] [ributed] [ computing] [ in] [ the] [ browser] | **6** | 6.0 |
|
||||
| FI | Hajautettu laskenta selaimessa | [H] [aj] [au] [tettu] [ las] [kenta] [ sel] [aim] [essa] | **9** | 3.3 |
|
||||
| EN | Write a function that sorts a list | [Write] [ a] [ function] [ that] [ sorts] [ a] [ list] | **7** | 5.0 |
|
||||
| FI | Kirjoita funktio joka lajittelee listan | [K] [irj] [oita] [ funkt] [io] [ joka] [ laj] [ittel] [ee] [ listan] | **10** | 4.0 |
|
||||
|
||||
**Huomaa miten:**
|
||||
- Englannin yleiset sanat (`the`, `in`, `a`, `function`) ovat kokonaisia tokeneita
|
||||
- Suomen sanat pilkotaan pienempiin osiin (`Hajautettu` → 4 tokenia, `Distributed` → 2)
|
||||
- Suomi vaatii **30-50% enemmän tokeneita** saman merkityksen välittämiseen
|
||||
- Koodiavainsanat (`function`, `list`, `sort`) ovat tehokkaita molemmilla kielillä
|
||||
|
||||
### Miksi tämä merkitsee?
|
||||
|
||||
**Jokainen tokeni = yksi laskentakierros.** Jos suomi vaatii 50% enemmän tokeneita:
|
||||
|
||||
1. **Hitaampi vastaus:** 100 tokenin englanninkielinen vastaus ≈ 150 tokenia suomeksi
|
||||
→ 50% pidempi odotusaika
|
||||
2. **Pienempi konteksti:** Sama merkityssisältö vie enemmän tilaa konteksti-ikkunasta
|
||||
3. **Huonompi ymmärrys:** Pitkät sanat pilkotaan osiin jotka malli ei välttämättä
|
||||
tunnista → hallusinaatiot lisääntyvät
|
||||
|
||||
**Siksi tekniset promptit ovat englanniksi** — malli saa enemmän informaatiota
|
||||
samassa token-budjetissa ja ymmärtää ohjeet paremmin.
|
||||
|
||||
**Token-budjetti tässä järjestelmässä:**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user