Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π·ΠΈΠ½ΡƒΠŸΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒ
Найти Π² Π”Π·Π΅Π½Π΅

πŸ“ LLMs-from-scratch: ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ GPT-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ LLM Π½Π° чистом PyTorch с ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ

LLMs-from-scratch β€” Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΊ ΠΊΠ½ΠΈΠ³Π΅ Π‘Π΅Π±Π°ΡΡ‚ΡŒΡΠ½Π° Рашки, Π³Π΄Π΅ GPT-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ LLM ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ шаг Π·Π° шагом Π½Π° чистом PyTorch, Π±Π΅Π· β€œΡΠΊΠΎΠΏΠΈΡ€ΡƒΠΉ ΠΈ запусти”. Π’Π΅ΡΡŒ ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ повСдСния ассистСнта: сначала токСнизация ΠΈ Dataset/Dataloader с ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΎΠΊΠ½Π°ΠΌΠΈ, ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Multi-Head Attention (softmax, causal masking ΠΈ сборка Π³ΠΎΠ»ΠΎΠ²), Π·Π°Ρ‚Π΅ΠΌ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ GPT-Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈΠ· embedding’ов, трансформСр-Π±Π»ΠΎΠΊΠΎΠ² ΠΈ head’а. Π‘Π°ΠΌΠΎΠ΅ Ρ€Π΅Π΄ΠΊΠΎΠ΅ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… курсах β€” Ρ‡Ρ‚ΠΎ attention ΠΈ маскированиС ΠΏΠΈΡˆΡƒΡ‚ Ρ€ΡƒΠΊΠ°ΠΌΠΈ: Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚ΡƒΡ‚ останавливаСтся Π½Π° высокоуровнСвых ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Ρ€ΠΎΠ΄Π΅ nn.MultiheadAttention ΠΈΠ»ΠΈ ограничиваСтся ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΠΌΠΈ слайдами. Π•ΡΡ‚ΡŒ ΠΈ β€œΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉβ€ Π±Π»ΠΎΠΊ: Π² прилоТСниях ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ вСрсии Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Llama 3 с контСкстом Π΄ΠΎ 131,072 Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ отличиями Π²Ρ€ΠΎΠ΄Π΅ SwiGLU ΠΈ RMSNorm; для Qwen 3 ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ qk_norm ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ контСкстныС/Ρ€Π°Π·ΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ (0.6B–32B). ПолСзно ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° собствСнных Π·Π°Π΄Π°Ρ‡Π°Ρ…: Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΅ΡΡ‚ΡŒ LoRA (Low-Rank Adaptation) для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎ-экономичного дообучСния ΠΈ

πŸ“ LLMs-from-scratch: ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ GPT-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ LLM Π½Π° чистом PyTorch с ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ

LLMs-from-scratch β€” Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΊ ΠΊΠ½ΠΈΠ³Π΅ Π‘Π΅Π±Π°ΡΡ‚ΡŒΡΠ½Π° Рашки, Π³Π΄Π΅ GPT-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ LLM ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ шаг Π·Π° шагом Π½Π° чистом PyTorch, Π±Π΅Π· β€œΡΠΊΠΎΠΏΠΈΡ€ΡƒΠΉ ΠΈ запусти”.

Π’Π΅ΡΡŒ ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ повСдСния ассистСнта: сначала токСнизация ΠΈ Dataset/Dataloader с ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΎΠΊΠ½Π°ΠΌΠΈ, ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Multi-Head Attention (softmax, causal masking ΠΈ сборка Π³ΠΎΠ»ΠΎΠ²), Π·Π°Ρ‚Π΅ΠΌ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ GPT-Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈΠ· embedding’ов, трансформСр-Π±Π»ΠΎΠΊΠΎΠ² ΠΈ head’а.

Π‘Π°ΠΌΠΎΠ΅ Ρ€Π΅Π΄ΠΊΠΎΠ΅ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… курсах β€” Ρ‡Ρ‚ΠΎ attention ΠΈ маскированиС ΠΏΠΈΡˆΡƒΡ‚ Ρ€ΡƒΠΊΠ°ΠΌΠΈ: Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚ΡƒΡ‚ останавливаСтся Π½Π° высокоуровнСвых ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Ρ€ΠΎΠ΄Π΅ nn.MultiheadAttention ΠΈΠ»ΠΈ ограничиваСтся ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΠΌΠΈ слайдами.

Π•ΡΡ‚ΡŒ ΠΈ β€œΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉβ€ Π±Π»ΠΎΠΊ: Π² прилоТСниях ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ вСрсии Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Llama 3 с контСкстом Π΄ΠΎ 131,072 Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ отличиями Π²Ρ€ΠΎΠ΄Π΅ SwiGLU ΠΈ RMSNorm; для Qwen 3 ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ qk_norm ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ контСкстныС/Ρ€Π°Π·ΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ (0.6B–32B).

ПолСзно ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° собствСнных Π·Π°Π΄Π°Ρ‡Π°Ρ…: Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΅ΡΡ‚ΡŒ LoRA (Low-Rank Adaptation) для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎ-экономичного дообучСния ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ training loop (warmup, cosine decay, gradient clipping). НачнитС с Π³Π»Π°Π²Ρ‹ 2 (токСнизация ΠΈ Dataset): Ρ‚Π°ΠΌ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ участок ΠΊΠΎΠ΄Π°, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ появляСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½. 95k Π·Π²Ρ‘Π·Π΄ β€” для ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° это Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒ, явно ставят Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ студСнты.

#tool #PyTorch #LoRA #nlp #GitHub #transformers #Llama3 #Qwen3

πŸ”— rasbt/LLMs-from-scratch