ЁЯО▓ рдзрдбрд╛ 05 тАФ Next-token prediction: рд╡рд╛рдХреНрдп рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЦреЗрд│
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 12 рдкреИрдХреА рдзрдбрд╛ 05 ┬╖ рдорд╛рдЧреЗ: lesson-04-embeddings ┬╖ рдкреБрдвреЗ: lesson-06-attention
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
рдзрдбреЗ 01тАУ04, рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ LLM рдЪреНрдпрд╛ рдХреЗрдВрджреНрд░рд╛рддреАрд▓ рдзрдХреНрдХрд╛рджрд╛рдпрдХ рд╕рддреНрдп: рд╕рдВрдкреВрд░реНрдг рдХрд╛рдо рдореНрд╣рдгрдЬреЗ рдкреБрдврдЪрд╛ puzzle рддреБрдХрдбрд╛ рдУрд│рдЦрдгреЗ тАФ рдкреБрдиреНрд╣рд╛ рдкреБрдиреНрд╣рд╛. рдЦрд░реА file: demo/bigram_model.py тАФ рдЖрдЬ temperature dial рд╣рд╛ рдореБрдЦреНрдп рдирд╛рдпрдХ рдЖрд╣реЗ.
ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ
рд╢рд┐рдХреНрд╖рд┐рдХрд╛ рдПрдХ рдЦреЗрд│ рдЦреЗрд│рддреЗ: "The dog chased the ___". рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓ рдУрд░рдбреВрди рдЕрдВрджрд╛рдЬ рд╕рд╛рдВрдЧрддреЗ тАФ cat! ball! mailman! LLM рдиреЗрдордХрд╛ рд╣рд╛рдЪ рдЦреЗрд│ рдЦреЗрд│рддреЛ, рдЖрдгрд┐ рджреБрд╕рд░реЗ рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА. рдПрдХ рдлреЗрд░реА рдЕрд╢реА рдЪрд╛рд▓рддреЗ:
- рдЖрддрд╛рдкрд░реНрдпрдВрддрдЪреЗ рд╕рдЧрд│реЗ рддреБрдХрдбреЗ рд╡рд╛рдЪрд╛ (prompt + рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рд╕рдЧрд│реЗ).
- vocabulary рдордзреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рддреБрдХрдбреНрдпрд╛рд╕рд╛рдареА рдЧреБрдг рдХрд╛рдврд╛ тАФ рд╕рдЧрд│реЗ ~100,000 тАФ
"рдкреНрд░рддреНрдпреЗрдХ рдкреБрдвреЗ рдпреЗрдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдХрд┐рддреА?":
cat 24%, ball 17%, car 9%, тАж stapler 0.0001%. - рдПрдХ рдирд┐рд╡рдбрд╛ тАФ рдЖрдгрд┐ рд╣рд╛ рдЖрд╣реЗ рд╕реНрд╡рднрд╛рд╡рд╛рдЪрд╛ dial ЁЯОЫя╕П:
- Temperature тЙИ 0: рдиреЗрд╣рдореА рд╕рд░реНрд╡рд╛рдд рд╡рд░рдЪрд╛ рдЕрдВрджрд╛рдЬ рдШреНрдпрд╛. рд╕реБрд░рдХреНрд╖рд┐рдд, рд╕рд╛рддрддреНрдпрдкреВрд░реНрдг, рдереЛрдбрд╛ рдХрдВрдЯрд╛рд│рд╡рд╛рдгрд╛. (code рдЖрдгрд┐ facts рд╕рд╛рдареА рд╣реЗрдЪ рд╣рд╡реЗ.)
- Temperature тЙИ 1: рд╢рдХреНрдпрддрд╛рдВрдиреБрд╕рд╛рд░ sample рдХрд░рд╛ тАФ рдмрд╣реБрддреЗрдХ рд╡реЗрд│рд╛ рд╢рдХреНрдп рддреЗ, рдордзреВрдирдЪ рдЖрд╢реНрдЪрд░реНрдп. (рдиреИрд╕рд░реНрдЧрд┐рдХ рдЧрджреНрдп.)
- Temperature тЖС 2: рдХрдореА рд╢рдХреНрдпрддреЗрдЪреЗ рддреБрдХрдбреЗ рд╡рд╛рд░рдВрд╡рд╛рд░ рдЬрд┐рдВрдХрддрд╛рдд. рд╕рд░реНрдЬрдирд╢реАрд▓ тЖТ рдмреЗрддрд╛рд▓.
- рдирд┐рд╡рдбрд▓реЗрд▓рд╛ рддреБрдХрдбрд╛ рдЬреЛрдбрд╛, step 1 рд╡рд░ рдЬрд╛. рдкреНрд░рддреНрдпреЗрдХ рдлреЗрд░реАрдд рдПрдХ рддреБрдХрдбрд╛ тАФ рдореНрд╣рдгреВрдирдЪ рдЙрддреНрддрд░реЗ рд╢рдмреНрджрд╛рдорд╛рдЧреВрди рд╢рдмреНрдж stream рд╣реЛрддрд╛рдд; рддреБрдореНрд╣реА рдЕрдХреНрд╖рд░рд╢рдГ loop рдлрд┐рд░рддрд╛рдирд╛ рдкрд╛рд╣рдд рдЕрд╕рддрд╛.
"рдкрдг рддреЗ рдлрдХреНрдд text рдЪрд╛ рдЕрдВрджрд╛рдЬ рдХрд░рддреЗ!" тАФ рд╣реЛ, AND: physics рдЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдирдВрддрд░ "...therefore the answer is" рдЪрд╛ рдкреБрдврдЪрд╛ рддреБрдХрдбрд╛ рдУрд│рдЦрдгреНрдпрд╛рд╕рд╛рдареА, рдпрдВрддреНрд░рдгреЗрдд рднрд░рдкреВрд░ physics рд╕рд╛рдард╡рд╛рд╡реА рд▓рд╛рдЧрддреЗ. рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░рдЪреНрдпрд╛ рдЕрдВрджрд╛рдЬрд╛рдиреЗ рд╢рд╛рдВрддрдкрдгреЗ рд╕рдордЬреБрддреАрд╕рд╛рд░рдЦреНрдпрд╛ рдХреНрд╖рдорддрд╛ рд╡рд┐рдХрдд рдШреЗрддрд▓реНрдпрд╛. рд╣реЗрдЪ рдЖрдзреБрдирд┐рдХ AI рдЪреЗ рдореЛрдареЗ рдЖрд╢реНрдЪрд░реНрдп. ЁЯдп
ЁЯЧ║я╕П рдЖрдХреГрддреА
flowchart LR
ctx["ЁЯУЭ pieces so far<br/>'The dog chased the'"]
m["ЁЯза model"]
probs["ЁЯУК scores for ALL pieces<br/>cat 24% ┬╖ ball 17% ┬╖<br/>car 9% ┬╖ тАж stapler ~0%"]
dial["ЁЯОЫя╕П temperature<br/>0: top pick, more deterministic<br/>1: sample the odds, balanced<br/>2: more random"]
pick["ЁЯзй picked: 'cat'"]
ctx --> m -->|"1 one full scoreboard"| probs -->|"2 sample"| dial --> pick
pick -->|"3 glue on, repeat -<br/>this is why answers STREAM"| ctx
тЭУ рдХрд╛рдп
- output layer рдЦрд░реЛрдЦрд░рдЪ рдкреНрд░рддреНрдпреЗрдХ step рд▓рд╛ рд╕рдВрдкреВрд░реНрдг vocabulary рд╡рд░рдЪреА probability рдЕрд╕рддреЛ; training рдЪрд╛ loss (рдзрдбрд╛ 02) = "рдЦрд▒реНрдпрд╛ next token рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд┐рддреА рдЖрд╢реНрдЪрд░реНрдп рд╡рд╛рдЯрд▓реЗ?" тАФ рд▓рд╛рд▓ рдкреЗрди рдЖрдгрд┐ рд╣рд╛ рдЦреЗрд│ рдПрдХрдЪ рдЧреЛрд╖реНрдЯ рдЖрд╣реЗрдд.
- Sampling knobs: temperature (рд╢рдХреНрдпрддрд╛ рдзрд╛рд░рджрд╛рд░/рд╕рдкрд╛рдЯ рдХрд░рдгреЗ), top-p / top-k (рдлрдХреНрдд рд╢рдХреНрдп рд╡рд╛рдЯрдгрд╛рд▒реНрдпрд╛ рдЫреЛрдЯреНрдпрд╛ рдпрд╛рджреАрддреВрди sample рдХрд░рдгреЗ). Determinism тЙИ temperature 0 (рддрд░реАрд╣реА рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдкреВрд░реНрдг рдЦрд╛рддреНрд░реА рдирд╛рд╣реА).
- рд╕рдЧрд│реЗ generation рдЖрд╣реЗ: рдЙрддреНрддрд░ рджреЗрдгреЗ, рднрд╛рд╖рд╛рдВрддрд░, "reasoning", рдирдХрд╛рд░ рджреЗрдгреЗ тАФ рд╕рдЧрд│реЗ рдлрдХреНрдд рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ context рдордзрд▓рд╛ рд╕рдВрднрд╛рд╡реНрдп-рдкреБрдврдЪрд╛-рддреБрдХрдбрд╛. Chat models рд╣реЗ base models рдкреЗрдХреНрд╖рд╛ рдлрдХреНрдд рдПрд╡рдвреНрдпрд╛рдЪ рдмрд╛рдмрддреАрдд рд╡реЗрдЧрд│реЗ рдЕрд╕рддрд╛рдд рдХреА рддреНрдпрд╛рдВрдирд╛ рдХреЛрдгрддрд╛ text рд╕рдВрднрд╛рд╡реНрдп рд╡рд╛рдЯрд╛рд╡рд╛ рдЕрд╕реЗ рдШрдбрд╡рд▓реЗ рдЖрд╣реЗ (рдзрдбрд╛ 07).
- рдЦрд░реНрдЪ/рд╡реЗрдЧ рдереЗрдЯ рдпрд╛рддреВрдирдЪ рдпреЗрддрд╛рдд: N output tokens = N рдкреВрд░реНрдг scoreboard рдЧрдгрдирд╛ тАФ рдореНрд╣рдгреВрдирдЪ рд▓рд╛рдВрдм рдЙрддреНрддрд░реЗ рдорд╣рд╛рдЧ рдкрдбрддрд╛рдд рдЖрдгрд┐ рд╣рд│реВ stream рд╣реЛрддрд╛рдд.
ЁЯдФ рдХрд╛
рд╣рд╛рдЪ рд╕рд░реНрд╡рд╛рдд рдореЛрдард╛ рдЧреВрдв-рдЙрдХрд▓рдгрд╛рд░рд╛ рдзрдбрд╛ рдЖрд╣реЗ. "рддреЗ рдХрдзреАрдХрдзреА рд╡реЗрдЧрд╡реЗрдЧрд│реА рдЙрддреНрддрд░реЗ рдХрд╛ рджреЗрддреЗ?" (sampling). "рддреЗ рдЬреЛрд░рд╛рдд рд╕реБрд░реВ рд╣реЛрдКрди рдордЧ рднрд░рдХрдЯрддреЗ рдХрд╛?" (рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд╡рдб рдкреБрдврдЪреНрдпрд╛ рдирд┐рд╡рдбреАрд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рддреЗ). "рдЪреБрдХреАрдЪреЗ facts рдЗрддрдХреЗ рд╕рдлрд╛рдИрджрд╛рд░ рдХрд╛ рд╡рд╛рдЯрддрд╛рдд?" (рд╕рдлрд╛рдИ рд╣реАрдЪ likelihood рдЖрд╣реЗ тАФ рд╕рддреНрдп loss рдордзреНрдпреЗ рдирд╕рддреЗ; рдзрдбрд╛ 09 рддреЛ рдзрд╛рдЧрд╛ рдУрдврддреЛ). рдкреНрд░рддреНрдпреЗрдХ AI playground рдордзреАрд▓ рдкреНрд░рддреНрдпреЗрдХ knob рдЖрддрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреВрд░реНрдг рд╕рдордЬрд▓реЗрд▓реНрдпрд╛ рдЦреЗрд│рд╛рд╡рд░рдЪрд╛ knob рдЖрд╣реЗ.
ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛
python3 demo/bigram_model.py
рд╣реЗ рддреАрди рд╡реЗрд│рд╛ рдЪрд╛рд▓рд╡рд╛. Temperature 0.01 рд╕реНрд╡рддрдГрд▓рд╛ рд╢рдмреНрджрд╢рдГ рдкреБрдиреНрд╣рд╛ рд╕рд╛рдВрдЧрддреЗ; 1.0 рд╕рдордЬреВрддрджрд╛рд░рдкрдгреЗ рдмрджрд▓рддреЗ; 2.0 рд╡рд┐рдЪрд┐рддреНрд░ рд╣реЛрддреЗ. рддреЛрдЪ "рдореЗрдВрджреВ", рд╡реЗрдЧрд│рд╛ dial тАФ рдЖрддрд╛ рддреБрдордЪреНрдпрд╛ рдЖрд╡рдбрддреНрдпрд╛ chatbot рдордзреНрдпреЗ temperature setting рдХрд╛ рдЕрд╕рддреЗ рдЖрдгрд┐ рддреА рдЖрддреВрди рдХрд╛рдп рдХрд░рддреЗ, рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣реАрдд рдЖрд╣реЗ.
тПня╕П рдкреБрдвреЗ
рдПрдХ рдкреЛрдХрд│реА: "the dog that chased the cat which climbed theтАж" рдпрд╛рд▓рд╛ model рд╡рдЬрди рдХрд╕реЗ рджреЗрддреЛ? рдпрд╛ рдЕрдВрджрд╛рдЬрд╛рд╕рд╛рдареА рдЖрдзреАрдЪреЗ рдХреЛрдгрддреЗ рддреБрдХрдбреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ? Attention тАФ рдЗрдХрдбреЗ-рддрд┐рдХрдбреЗ рдкрд╛рд╣рдгреНрдпрд╛рдЪреА рддреА рдпреБрдХреНрддреА рдЬрд┐рдиреЗ рд╕рдЧрд│реЗ рдмрджрд▓рд▓реЗ.
git checkout lesson-06-attention