π€ Π’ΠΎΠΊΠ΅Π½ΠΈΠ·Π°ΡΠΎΡΡ ΠΈ ΡΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΈ
Π€ΡΠ½Π΄Π°ΠΌΠ΅Π½Ρ ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ LLM
Π’ΠΎΠΊΠ΅Π½ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ, ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π½Π° Π½Π΅Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ β ΡΡΡΡΠΊΠΈΠΉ ΡΠ΅ΠΊΡΡ Π² GPT-4 ΡΡΠΎΠΈΡ Π² 2-3Γ Π΄ΠΎΡΠΎΠΆΠ΅ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΡΠΌΡΡΠ»Π΅.
π‘ 1. Π’ΠΎΠΊΠ΅Π½ΠΈΠ·Π°ΡΠΈΡ β ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ
LLM Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ Π½Π°ΠΏΡΡΠΌΡΡ. Π’Π΅ΠΊΡΡ β ΡΠΎΠΊΠ΅Π½Ρ β ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° β embeddings.
ΠΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠΎΠΊΠ΅Π½ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΡ:
- Π‘ΠΊΠΎΡΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ (ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΎΠΊΠ΅Π½ΠΎΠ² = Π±ΡΡΡΡΠ΅Π΅)
- Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ (ΠΎΠΏΠ»Π°ΡΠ° Π·Π° ΡΠΎΠΊΠ΅Π½Ρ, Π½Π΅ Π·Π° ΡΠΈΠΌΠ²ΠΎΠ»Ρ)
- ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ (ΠΏΠ»ΠΎΡ Π°Ρ ΡΠΎΠΊΠ΅Π½ΠΈΠ·Π°ΡΠΈΡ = ΠΏΠ»ΠΎΡ ΠΎ Π½Π° Π½Π΅-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ)
π€ 2. BPE (Byte Pair Encoding) β ΡΡΠ°Π½Π΄Π°ΡΡ
ΠΠ»Π³ΠΎΡΠΈΡΠΌ
1. ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ Ρ Π±ΡΠΊΠ² (ΠΈΠ»ΠΈ Π±Π°ΠΉΡΠΎΠ²) ΠΊΠ°ΠΊ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ
ΡΠΎΠΊΠ΅Π½ΠΎΠ²
2. ΠΠ°Ρ
ΠΎΠ΄ΠΈΠΌ ΡΠ°ΠΌΡΡ ΡΠ°ΡΡΡΡ ΠΏΠ°ΡΡ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ
ΡΠΎΠΊΠ΅Π½ΠΎΠ²
3. ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ Π² Π½ΠΎΠ²ΡΠΉ ΡΠΎΠΊΠ΅Π½
4. ΠΠΎΠ²ΡΠΎΡΡΠ΅ΠΌ V ΡΠ°Π· (V = ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ)
ΠΡΠΈΠΌΠ΅Ρ
ΠΠΎΡΠΏΡΡ: "low low low low lower lower newest newest newest newest"
Π¨Π°Π³ 1: l, o, w, e, r, n, s, t (Π±ΡΠΊΠ²Ρ)
Π¨Π°Π³ 2: lo (ΡΠ°ΡΡΠ°Ρ ΠΏΠ°ΡΠ°)
Π¨Π°Π³ 3: low (ΡΠ°ΡΡΠ°Ρ ΠΏΠ°ΡΠ° lo+w)
...
Π€ΠΈΠ½Π°Π»: "low" = 1 ΡΠΎΠΊΠ΅Π½, "er" = 1 ΡΠΎΠΊΠ΅Π½, "newest" = 1 ΡΠΎΠΊΠ΅Π½
Byte-level BPE (GPT-2/3/4, Llama)
- Π Π°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π±Π°ΠΉΡΠΎΠ², Π½Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
- ΠΡΠ±ΠΎΠΉ ΡΠ΅ΠΊΡΡ (Π»ΡΠ±ΠΎΠΉ ΡΠ·ΡΠΊ, ΡΠΌΠΎΠ΄Π·ΠΈ) ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠΊΠ΅Π½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½
- ΠΠ΅ Π±ΡΠ²Π°Π΅Ρ βunknown tokensβ
π§© 3. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΎΠΊΠ΅Π½ΠΈΠ·Π°ΡΠΎΡΡ
ΠΡΠ»ΡΡΠΈΡΠ·ΡΡΠ½ΠΎΡΡΡ
ΠΠ»Ρ ΡΡΡΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π° ΡΠΎΠΊΠ΅Π½ β ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Π΄ΠΎΡΠΎΠΆΠ΅ inference ΠΏΡΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΎΠ±ΡΡΠΌΠ΅ ΡΠΌΡΡΠ»Π°.
Tiktoken (OpenAI: GPT-4, GPT-5)
- Byte-level BPE
- ~100K ΡΠ»ΠΎΠ²Π°ΡΡ
- ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ: ~4 ΡΠΈΠΌΠ²ΠΎΠ»Π° = 1 ΡΠΎΠΊΠ΅Π½
- Π ΡΡΡΠΊΠΈΠΉ: ~1.5-2 ΡΠΈΠΌΠ²ΠΎΠ»Π° = 1 ΡΠΎΠΊΠ΅Π½ (Ρ ΡΠΆΠ΅!)
cl100k_base(GPT-4),o200k_base(GPT-5)
SentencePiece (Google: Llama, T5, GLM)
- BPE ΠΈΠ»ΠΈ Unigram
- ~32K-128K ΡΠ»ΠΎΠ²Π°ΡΡ
- ΠΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ
- Π―Π·ΡΠΊΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠΎΠΊΠ΅Π½ΠΈΠ·Π°ΡΠΎΡΠ°
| Π―Π·ΡΠΊ | Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π° ΡΠΎΠΊΠ΅Π½ (GPT-4) |
|---|---|
| English | 4.0 |
| French | 3.8 |
| Russian | 1.7 |
| Chinese | 0.6 |
| Japanese | 0.5 |
| Korean | 0.7 |
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°: ΡΡΡΡΠΊΠΈΠΉ/ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠΉ/ΡΠΏΠΎΠ½ΡΠΊΠΈΠΉ Π² 2-8Γ Π΄ΠΎΡΠΎΠΆΠ΅ Π·Π° ΡΠΎΡ ΠΆΠ΅ ΡΠ΅ΠΊΡΡ.
ΠΠ½ΠΎΠ³ΠΎΡΠ·ΡΡΠ½ΡΠ΅ ΡΠΎΠΊΠ΅Π½ΠΈΠ·Π°ΡΠΎΡΡ
- GPT-5 o200k: ΡΠ»ΡΡΡΠ΅Π½ Π΄Π»Ρ Π½Π΅-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ²
- Qwen tokenizer: ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠΉ
- GLM tokenizer: ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠΉ + Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ
- DeepSeek: ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠΉ
π·οΈ 4. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΠΊΠ΅Π½ΠΈΠ·Π°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ:
<BOS> β Beginning of Sequence (Π½Π°ΡΠ°Π»ΠΎ)
<EOS> β End of Sequence (ΠΊΠΎΠ½Π΅Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ)
<PAD> β Padding (Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ batching)
<UNK> β Unknown (Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½ β ΡΠ΅Π΄ΠΊΠΎ Π² byte-level)
<system> β Role marker (system role Π² ΡΠ°ΡΠ΅)
<user> β Role marker (user role)
<assistant> β Role marker (assistant role)
<tool> β Tool call marker
π 5. Embeddings β Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
Token Embeddings
token_id β Embedding Matrix [vocab_size Γ d_model] β d_model Π²Π΅ΠΊΡΠΎΡ
- ΠΠ±ΡΡΠ°Π΅ΠΌΠ°Ρ ΠΌΠ°ΡΡΠΈΡΠ° (ΠΊΠ°ΠΊ lookup table)
- ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΠΊΠ΅Π½ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ Π²Π΅ΠΊΡΠΎΡ
- Π Π°Π·ΠΌΠ΅Ρ: vocab_size Γ d_model Γ bytes (fp16)
- Llama-70B: 32000 Γ 8192 Γ 2 = ~524 MB
Positional Embeddings
- ΠΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΊ token embeddings
- Π‘ΠΌ. 01-transformer: RoPE, ALiBi, learned
ΠΡΠΎΠ³ΠΎΠ²ΡΠΉ Embedding
final = token_embedding + positional_embedding
ΠΠ»ΠΈ Π΄Π»Ρ RoPE: rotary ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ Q, K, Π½Π΅ ΠΊ embedding.
π 6. Embedding-ΠΌΠΎΠ΄Π΅Π»ΠΈ (Π΄Π»Ρ RAG)
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
Text β Tokenize β BERT-like encoder β Pooling β Dense projection β Embedding vector
Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Pooling
- CLS: Π²Π·ΡΡΡ Π²Π΅ΠΊΡΠΎΡ [CLS] ΡΠΎΠΊΠ΅Π½Π° (Π½Π°ΡΠ°Π»Π°)
- Mean: ΡΡΠ΅Π΄Π½Π΅Π΅ Π²ΡΠ΅Ρ ΡΠΎΠΊΠ΅Π½ΠΎΠ²
- Last hidden: ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»ΠΎΠΉ
Π’ΠΈΠΏΡ
- Symmetric: query ΠΈ doc ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ (similarity = cosine)
- Asymmetric: query ΠΈ doc ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ (bi-encoder, cross-encoder)
Asymmetric (Dual Encoder)
Query encoder: query β q_vec
Doc encoder: doc β d_vec
Score: q_vec Β· d_vec (dot product)
- ΠΡΡΡΡΡΠΉ ΠΏΠΎΠΈΡΠΊ: pre-compute doc embeddings
- ΠΠΈΠ½ΡΡ: query ΠΈ doc Π² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°Ρ
Cross-Encoder (Re-ranker)
[CLS] query [SEP] doc [SEP] β BERT β score
- Π’ΠΎΡΠ½ΠΎ (Π²ΠΈΠ΄ΠΈΡ query ΠΈ doc Π²ΠΌΠ΅ΡΡΠ΅)
- ΠΠ΅Π΄Π»Π΅Π½Π½ΠΎ (N forward passes Π΄Π»Ρ N Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²)
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ re-ranking top-K ΠΏΠΎΡΠ»Π΅ dense retrieval
π§ 7. ΠΠΎΠ½ΡΠ΅ΠΊΡΡΡΠ°Π»ΡΠ½ΡΠ΅ embeddings
Word2Vec / GloVe: ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ (ΠΎΠ΄Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ = ΠΎΠ΄ΠΈΠ½ Π²Π΅ΠΊΡΠΎΡ Π²ΡΠ΅Π³Π΄Π°) BERT / GPT: ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡΠ°Π»ΡΠ½ΡΠ΅ (ΠΎΠ΄Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ = ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅)
"bank" Π² "river bank" β Π²Π΅ΠΊΡΠΎΡ A
"bank" Π² "bank account" β Π²Π΅ΠΊΡΠΎΡ B (β A)
ΠΠ»Ρ RAG ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡΠ°Π»ΡΠ½ΡΠ΅ embeddings (BGE, E5, OpenAI).
β 8. ΠΡΠ°ΠΊΡΠΈΠΊΠ°: Π²ΡΠ±ΠΎΡ embedding-ΠΌΠΎΠ΄Π΅Π»ΠΈ
Π Π°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ vs ΡΠΊΠΎΡΠΎΡΡΡ
ΠΠΎΠ»ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ embedding β ΡΠΎΡΠ½Π΅Π΅ ΠΏΠΎΠΈΡΠΊ, Π½ΠΎ Π΄ΠΎΡΠΎΠΆΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ retrieval. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° RAG Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ 1024-1536.
Π§Π΅ΠΊΠ»ΠΈΡΡ
- Π―Π·ΡΠΊ: ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΡΡΠΊΠΈΠΉ/Π½ΡΠΆΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ?
- Π Π°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ: 384-3072 (Π±ΠΎΠ»ΡΡΠ΅ = ΡΠΎΡΠ½Π΅Π΅, Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ Π΄ΠΎΡΠΎΠΆΠ΅ storage)
- Max sequence: 512-8192 tokens
- MTEB score: ΠΏΡΠΎΠ²Π΅ΡΡ ΡΠ΅ΠΉΡΠΈΠ½Π³
- Hosting: API, self-hosted, local?
- Π‘ΠΊΠΎΡΠΎΡΡΡ: latency per embedding
Π’ΠΎΠΏΠΎΠ²ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ (2025)
| Use case | Model |
|---|---|
| Best quality, API | OpenAI text-embedding-3-large |
| Best quality, open | BGE-large-en-v1.5 / multilingual-e5-large |
| Fast, cheap | OpenAI text-embedding-3-small |
| Multilingual | multilingual-e5-large, Cohere embed-v3 |
| Self-hosted, efficient | BGE-small, all-MiniLM-L6-v2 |