ЁЯЧ║я╕П рдзрдбрд╛ 04 тАФ Embeddings: рдЕрд░реНрдерд╛рдВрдЪрд╛ рдмреИрдардХ-рддрдХреНрддрд╛
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 12 рдкреИрдХреА рдзрдбрд╛ 04 ┬╖ рдорд╛рдЧреЗ: lesson-03-tokens ┬╖ рдкреБрдвреЗ: lesson-05-next-token
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
рдзрдбреЗ 01тАУ03, рдЖрдгрд┐ рддреА рдХрд▓реНрдкрдирд╛ рдЬрд┐рдЪреНрдпрд╛рдореБрд│реЗ semantic search, RAG рдЖрдгрд┐ "model рд▓рд╛ рдореА рдХрд╛рдп рдореНрд╣рдгрддреЛ рддреЗ рдХрд│рддреЗ" рд╢рдХреНрдп рд╣реЛрддреЗ: embeddings тАФ рдЕрд░реНрде рдореНрд╣рдгрдЬреЗ coordinates. рдЦрд░реА file: demo/attention_toy.py тАФ рддреНрдпрд╛рддрд▓реЗ рд╣рд╛рддрд╛рдиреЗ рдмрдирд╡рд▓реЗрд▓реЗ 4-рдЖрдХрдбреА vectors рд╣реЗрдЪ рдЫреЛрдЯреЗ embeddings рдЖрд╣реЗрдд.
ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ
рдЗрддрдХреЗ рдореЛрдареЗ рд╢рд╛рд│реЗрдЪреЗ рд╕рднрд╛рдЧреГрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рддреНрдпрд╛рдд рднрд╛рд╖реЗрддреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдмрд╕реВ рд╢рдХреЗрд▓ тАФ рдЖрдгрд┐ рдПрдХрдЪ рдирд┐рдпрдо: рд╕рд╛рд░рдЦрд╛ рдЕрд░реНрде рдЕрд╕рд▓реЗрд▓реА рдореБрд▓реЗ рдПрдХрдореЗрдХрд╛рдВрдЬрд╡рд│ рдмрд╕рддрд╛рдд. ЁЯЧ║я╕П
catрд╣рд╛kittenрдЪреНрдпрд╛ рд╢реЗрдЬрд╛рд░реА,dogрдЬрд╡рд│, рдкреНрд░рд╛рдгреНрдпрд╛рдВрдЪреНрдпрд╛ рдХреЛрдкрд▒реНрдпрд╛рдд рдмрд╕рддреЛ.kingрдЖрдгрд┐queenрд░рд╛рдЬрдШрд░рд╛рдгреНрдпрд╛рдЪреНрдпрд╛ рд░рд╛рдВрдЧреЗрдд рдПрдХрд╛рдЪ рдмрд╛рдХрд╛рд╡рд░ рдмрд╕рддрд╛рдд.bank(рдкреИрд╕реЗ) рдЖрдгрд┐bank(рдирджреАрдХрд╛рда)? context рдкреНрд░рдорд╛рдгреЗ, model рддреЛ token рд╣реЗ рд╡рд╛рдХреНрдп рдЬрд┐рдереЗ рдорд╛рдЧрддреЗ рддрд┐рдереЗ рдмрд╕рд╡рддреЛ.
рд╢рдмреНрджрд╛рдЪреЗ embedding рдореНрд╣рдгрдЬреЗ рдлрдХреНрдд рддреНрдпрд╛рдЪреЗ рдЬрд╛рдЧреЗрдЪреЗ coordinates тАФ рдЦрд▒реНрдпрд╛ рдирдХрд╛рд╢рд╛рд╕рд╛рд░рдЦреЗ 2 рдЖрдХрдбреЗ рдирд╡реНрд╣реЗ, рддрд░ рд╢реЗрдХрдбреЛ (~1,000+ dimensions), рдХрд╛рд░рдг рдЕрд░реНрдерд╛рд▓рд╛ рдЕрдиреЗрдХ рджрд┐рд╢рд╛ рдЕрд╕рддрд╛рдд: рд╕рдЬреАрд╡рдкрдгрд╛, рдЖрдХрд╛рд░, рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛, рднрд╛рд╡рдирд╛тАж
рд╣рд╛ рддрдХреНрддрд╛ рдпреЗрддреЛ рдХреБрдареВрди? рддреЛ рдХреЛрдгреАрд╣реА рдХрд╛рдврдд рдирд╛рд╣реА. training рджрд░рдореНрдпрд╛рди (рдзрдбрд╛ 02 рдЪрд╛ рд▓рд╛рд▓ рдкреЗрди), рдЬрд╛рдЧрд╛ рдмрд╛рдХреА рд╕рдЧрд│реНрдпрд╛рдВрд╕рд╛рд░рдЦреНрдпрд╛рдЪ dials рдЕрд╕рддрд╛рдд тАФ рдЖрдгрд┐ model рд▓рд╛ рдХрд│рддреЗ рдХреА рд╕рд╛рд░рдЦреЗ рд╢рдмреНрдж рдПрдХрддреНрд░ рдмрд╕рд╡рд▓реНрдпрд╛рдиреЗ рдкреБрдврдЪреНрдпрд╛ рд╢рдмреНрджрд╛рдЪрд╛ рдЕрдВрджрд╛рдЬ рд╕реЛрдкрд╛ рд╣реЛрддреЛ. рдЕрд░реНрде рднреВрдорд┐рддреА рдореНрд╣рдгреВрди рдЙрдЧрд╡рддреЛ.
рдЖрдгрд┐ рднреВрдорд┐рддреА рдореНрд╣рдгрдЬреЗ рдЕрд░реНрдерд╛рдВрд╡рд░ рдЧрдгрд┐рдд:
- рдЕрдВрддрд░ = рд╕рд╛рдореНрдп тАФ "рдпрд╛ рдкреНрд░рд╢реНрдирд╛рдЬрд╡рд│рдЪреА рд╡рд╛рдХреНрдпреЗ рд╢реЛрдзрд╛" рдореНрд╣рдгрдЬреЗ рдлрдХреНрддтАж рдореЛрдЬрдгреЗ. (рд╣реЗрдЪ RAG рдЪреЗ рд╕рдВрдкреВрд░реНрдг рдЗрдВрдЬрд┐рди, рдзрдбрд╛ 10!)
- рдкреНрд░рд╕рд┐рджреНрдз рдЬрд╛рджреВ:
king тИТ man + woman тЙИ queenЁЯСС тАФ рд╕рднрд╛рдЧреГрд╣рд╛рддреАрд▓ рджрд┐рд╢рд╛рдВрдирд╛ рдЕрд░реНрде рдЕрд╕рддреЛ ("рд░рд╛рдЬрдШрд░рд╛рдгреНрдпрд╛рдХрдбреЗ", "рдЕрдиреЗрдХрд╡рдЪрдирд╛рдХрдбреЗ").
ЁЯЧ║я╕П рдЖрдХреГрддреА
flowchart LR
w["ЁЯзй token 'cat'"]
e["ЁЯЧ║я╕П embedding<br/>seat coordinates:<br/>[0.31, -1.2, 0.88, тАж] ├Ч768"]
subgraph hall["the seating hall - meaning space"]
c["cat ЁЯР▒"] --- k["kitten"] --- d["dog ЁЯР╢"]
far["ЁЯУО stapler - far away"]
end
q["'small pet that purrs?'"]
w -->|"1 look up seat"| e -->|"2 place in hall"| hall
q -->|"3 nearest seats win<br/>= semantic search"| c
тЭУ рдХрд╛рдп
- Embedding = token рд╕рд╛рдареА рд╢рд┐рдХрд▓реЗрд▓рд╛ dense vector (рдЖрдгрд┐ pooling рдХрд░реВрди рд╡рд╛рдХреНрдпреЗ/documents/images рд╕рд╛рдареАрд╕реБрджреНрдзрд╛ тАФ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЧреЛрд╖реНрдЯреАрд▓рд╛ рдЬрд╛рдЧрд╛ рдорд┐рд│реВ рд╢рдХрддреЗ).
- Similarity = vectors рдордзреАрд▓ cosine/dot-product тАФ рд╕реНрд╡рд╕реНрдд рдЖрдгрд┐ parallel. "Semantic search" = query embed рдХрд░рд╛, documents embed рдХрд░рд╛, рд╕рд░реНрд╡рд╛рдд рдЬрд╡рд│рдЪреЗ рдкрд░рдд рджреНрдпрд╛.
- Vector databases (Pinecone, pgvectorтАж) = рд▓рд╛рдЦреЛ рдЬрд╛рдЧрд╛ рд╕рд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╢реЗрдЬрд╛рд░реА рдкрдЯрдХрди рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдЦрд╛рд╕ рдмрд╛рдВрдзрд▓реЗрд▓реА рд╕рднрд╛рдЧреГрд╣реЗ тАФ RAG рдЦрд╛рд▓рдЪреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди (рдзрдбрд╛ 10).
- LLM рдЪреНрдпрд╛ рдЖрдд: рдкрд╣рд┐рд▓рд╛ layer рдкреНрд░рддреНрдпреЗрдХ token ID рдЪреЗ embedding рдХрд░рддреЛ; рддреНрдпрд╛рдирдВрддрд░рдЪреЗ рд╕рдЧрд│реЗ (attention, рдзрдбрд╛ 06) рдореНрд╣рдгрдЬреЗ context рдЪреНрдпрд╛ рдЧрд░рдЬреЗрдиреБрд╕рд╛рд░ рддреНрдпрд╛ рдЬрд╛рдЧрд╛ рд╣рд▓рд╡рдгреЗ.
ЁЯдФ рдХрд╛
"calculator рдЕрд░реНрдерд╛рдВрдЪреА рддреБрд▓рдирд╛ рдХрд╕рд╛ рдХрд░реВ рд╢рдХрддреЛ?" рдпрд╛рдЪреЗ рдЙрддреНрддрд░ embeddings рдЖрд╣реЗрдд. рдПрдХрджрд╛ рдЕрд░реНрде рднреВрдорд┐рддреА рдмрдирд▓рд╛ рдХреА рдорд╛рдгрд╕рд╛рдВрдЪреЗ рдЕрд╕реНрдкрд╖реНрдЯ рдкреНрд░рд╢реНрди рдореЛрдЬрддрд╛ рдпреЗрддрд╛рдд: рдиреЗрдордХреЗ рд╢рдмреНрдж рджреБрд░реНрд▓рдХреНрд╖рд┐рдд рдХрд░рдгрд╛рд░рд╛ search, "рд╕рд╛рд░рдЦреЗ tickets рд╢реЛрдзрд╛", "рдХреЛрдгрддреЗ docs рдпрд╛рдЪреЗ рдЙрддреНрддрд░ рджреЗрддрд╛рдд?" тАФ рд╕рдЧрд│реЗ рдлрдХреНрдд рдЕрдВрддрд░. рдзрдбрд╛ 03 рдЬрд░ model рдЪреНрдпрд╛ рд╕рдВрд╡реЗрджрдирд╛ рд╣реЛрддреНрдпрд╛, рддрд░ рд╣реА рддреНрдпрд╛рдЪреА рд╡рд┐рдЪрд╛рд░рд╛рдВрдЪреА рдЬрд╛рдЧрд╛ рдЖрд╣реЗ.
ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛
python3 demo/attention_toy.py
рд╕реБрд░реБрд╡рд╛рддреАрдЪреЗ рд╣рд╛рддрд╛рдиреЗ рдмрдирд╡рд▓реЗрд▓реЗ vectors рдкрд╛рд╣рд╛: robot [0.9, 0.7, 0.1, 0.6]
рд╡рд┐рд░реБрджреНрдз it [0.8, 0.5, 0.0, 0.5] тАФ рдореБрджреНрджрд╛рдо рдЬрд╡рд│ рдмрд╕рд╡рд▓реЗрд▓реЗ (рд╕рд╛рд░рдЦрд╛
рдЕрд░реНрде-рдЖрдХрд╛рд░), рддрд░ because рджреВрд░ рдмрд╕рддреЛ. рдордЧ printout рд╕рд╛рдореНрдп рдЦрд░реЗ рдХрд╛рдо рдХрд░рддрд╛рдирд╛
рджрд╛рдЦрд╡рддреЗ. рдХрд╛рдЧрджрд╛рд╡рд░рдЪрд╛ lab: pizza, burger, homework рд╕рд╛рдареА 4-рдЖрдХрдбреА рдЬрд╛рдЧрд╛
рддрдпрд╛рд░ рдХрд░рд╛ тАФ рдХреЛрдгрддреЗ рджреЛрди рдПрдХрддреНрд░ рдмрд╕рддрд╛рдд, рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛ 4 рджрд┐рд╢рд╛рдВрдЪрд╛ рдЕрд░реНрде рдХрд╛рдп?
тПня╕П рдкреБрдвреЗ
рд╕рдВрд╡реЗрджрдирд╛ тЬУ, рд╡рд┐рдЪрд╛рд░рд╛рдВрдЪреА рдЬрд╛рдЧрд╛ тЬУ тАФ рдЖрддрд╛ рд╕рдВрдкреВрд░реНрдг рдпрдВрддреНрд░ рдЬреНрдпрд╛ рдЦрд▒реНрдпрд╛ рдХрд╛рдорд╛рд╕рд╛рдареА train рдЭрд╛рд▓реЗ рддреЗ: рдкреБрдврдЪрд╛ puzzle рддреБрдХрдбрд╛ рдУрд│рдЦрдгреЗ, рдЖрдгрд┐ рдХрд┐рддреА рдзрд╛рдбрд╕реА рд╡реНрд╣рд╛рдпрдЪреЗ рдпрд╛рд╕рд╛рдареА рдПрдХ dial.
git checkout lesson-05-next-token