Post

Deep Dive into Self-Attention by Hand

Original Article : πŸ‘‰ https://towardsdatascience.com/deep-dive-into-self-attention-by-hand-%EF%B8%8E-f02876e49857


ChatGPT4o

μ…€ν”„ μ–΄ν…μ…˜ λ©”μ»€λ‹ˆμ¦˜ μš”μ•½

μ…€ν”„ μ–΄ν…μ…˜(Self-Attention)은 μž…λ ₯ μ‹œν€€μŠ€μ˜ 각 단어가 λ‹€λ₯Έ λͺ¨λ“  λ‹¨μ–΄λ“€κ³Όμ˜ 관계λ₯Ό ν‰κ°€ν•˜μ—¬ κ°€μ€‘μΉ˜λ₯Ό λΆ€μ—¬ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. 이λ₯Ό 톡해 λ¬Έλ§₯을 더 잘 μ΄ν•΄ν•˜κ³  κΈ΄ 쒅속성을 포착할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ£Όμš” 단계

쿼리(Q), ν‚€(K), κ°’(V) 생성: μž…λ ₯ 행렬을 μ„ ν˜• λ³€ν™˜ν•˜μ—¬ Q, K, V 행렬을 λ§Œλ“­λ‹ˆλ‹€.

  • μ–΄ν…μ…˜ μŠ€μ½”μ–΄ 계산: Q와 K의 ν–‰λ ¬ 곱을 톡해 각 λ‹¨μ–΄μ˜ μœ μ‚¬λ„λ₯Ό κ΅¬ν•˜κ³ , μ†Œν”„νŠΈλ§₯슀 ν•¨μˆ˜λ‘œ μ •κ·œν™”ν•©λ‹ˆλ‹€.
  • μ–΄ν…μ…˜ 좜λ ₯ 계산: μ •κ·œν™”λœ μŠ€μ½”μ–΄μ— Vλ₯Ό κ³±ν•˜μ—¬ μ΅œμ’… 좜λ ₯ 값을 μ–»μŠ΅λ‹ˆλ‹€.

μž₯점

  • 병렬 처리 κ°€λŠ₯
  • κΈ΄ 쒅속성 ν•™μŠ΅μ— 효과적

Lilys AI : πŸ‘‰ https://lilys.ai/digest/660003

Below Summary Note

Deep Dive into Self-Attention by Hand✍︎by Srijanie Dey, PhDApr, 2024Towards Data Science

1.트랜슀포머λ₯Ό κ°€μ†ν•˜λŠ” 주의 μ§‘μ€‘μ˜ 본격적 탐ꡬ

  • 트랜슀포머λ₯Ό μ΄‰μ§„ν•˜λŠ” 주의 λ©”μ»€λ‹ˆμ¦˜μ„ μƒμ„Ένžˆ μ‚΄νŽ΄λ³Έλ‹€.
  • 머리글: β€˜μ£Όμ˜β€™ κ°œλ…μ— λŒ€ν•œ λ³΅μž‘μ„±μ„ μ•Œμ•„λ³΄μž.
  • β€˜λ‘œλΉ—λ¨ΈμŠ€ ν”„λΌμž„β€™ 같은 것이 μ•„λ‹ˆλΌ 신경망을 κ΅¬μ„±ν•˜λŠ” 트랜슀포머의 νž˜μ€ β€˜μ£Όμ˜β€™ κ°œλ… λ•Œλ¬Έμ΄λ‹€.
  • κ·Έλ ‡λ‹€λ©΄, 트랜슀포머의 λ§₯λ½μ—μ„œ μ£Όμ˜λž€ μ •ν™•νžˆ 무엇을 μ˜λ―Έν•˜λŠ” κ²ƒμΌκΉŒ? μ—¬κΈ°μ„œ λͺ‡ 가지 닡을 찾아보렀고 ν•œλ‹€.

2.νŠΈλžœμŠ€ν¬λ¨Έμ™€ μ„ΈλΆ€ λ©”μ»€λ‹ˆμ¦˜ μΆ”λ‘ 

  • νŠΈλžœμŠ€ν¬λ¨ΈλŠ” λ°μ΄ν„°λ‘œλΆ€ν„° λ§₯락을 ν•™μŠ΅ν•˜λŠ” μ‹ κ²½λ§μœΌλ‘œ, β€˜μ£Όμ˜μ™€ λ§₯λ½β€™μ˜ 의미λ₯Ό μ°ΎλŠ” μš°λ¦¬μ™€ μœ μ‚¬ν•˜λ‹€.
  • νŠΈλžœμŠ€ν¬λ¨Έκ°€ λ°μ΄ν„°λ‘œλΆ€ν„° λ§₯락을 μ–΄λ–»κ²Œ ν•™μŠ΅ν•˜λŠ”κ°€? : 주의 λ©”μ»€λ‹ˆμ¦˜μ„ μ‚¬μš©ν•¨.
  • 주의 λ©”μ»€λ‹ˆμ¦˜μ€ λͺ¨λΈμ΄ 각 λ‹¨κ³„μ—μ„œ μ‹œν€€μŠ€μ˜ λͺ¨λ“  뢀뢄을 μ‘°μ‚¬ν•˜κ³  쀑점을 두어야 ν•  μš”μ†Œλ₯Ό κ²°μ •ν•˜λŠ” 데 도움이 λœλ‹€.
  • μ…€ν”„-μ£Όμ˜λŠ” RNN의 μ„±λŠ₯을 ν–₯μƒμ‹œν‚€λŠ” 데 κΈ°μ—¬ν•˜λ©°, 2017년에 μ†Œκ°œλœ 트랜슀포머 μ•„ν‚€ν…μ²˜λŠ” RNN 및 CNN의 ν•„μš”μ„±μ„ μ†Œλ©Έμ‹œμΌ°λ‹€.
  • 트랜슀포머 μ•„ν‚€ν…μ²˜μ—λŠ” μŠ€μΌ€μΌλ“œ λ‹·-ν”„λ‘œλ•νŠΈ λ©”μ»€λ‹ˆμ¦˜μ΄ 있으며, μ…€ν”„-μ£Όμ˜λŠ” 외뢀같은 μ…Έκ³Ό 내뢀같은 μ…Έμ˜ κ²°ν•©μœΌλ‘œ λ³Ό 수 μžˆλ‹€.

3.️Self-Attention λ©”μ»€λ‹ˆμ¦˜κ³Ό μ–΄ν…μ…˜ μ›¨μ΄νŒ… 이해

  • μ–΄ν…μ…˜ μ›¨μ΄νŠΈ 맀트릭슀 AλŠ” μž…λ ₯ νŠΉμ§•μ„ Query-Key(QK) λͺ¨λ“ˆμ— ν”Όλ“œν•˜μ—¬ μ–»κ²Œ λœλ‹€.
  • μ…€ν”„ μ–΄ν…μ…˜μ€ QK-λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ—¬ μ–΄ν…μ…˜ μ›¨μ΄νŠΈ 맀트릭슀 Aλ₯Ό λ§Œλ“€ λ•Œ μˆ˜ν–‰λœλ‹€.
  • 쿼리(Q), ν‚€(K), λ°Έλ₯˜(V) λ“± μ—¬λŸ¬ κ΅¬μ„±μš”μ†Œλ₯Ό μ‚΄νŽ΄λ³΄λ©° μ„€λͺ…μ μœΌλ‘œ ν•œκ΅­μ˜ 상상을 μ΄μš©ν•˜μ—¬ Self-Attention의 원리λ₯Ό μ΄ν•΄ν•œλ‹€.
  • ν–‰λ ¬ κ³±μ…ˆμ˜ κ³Όμ •κ³Ό μŠ€μΌ€μΌλ§ 과정에 λŒ€ν•œ μ‹€μ œ μ—°μ‚°κ³Ό 벑터 κ°„ 코사인 μœ μ‚¬λ„ 및 μ°¨μ›κ³Όμ˜ 관계λ₯Ό μ΄ν•΄ν•œλ‹€.

4.️ 트랜슀포머 μ„Ήμ…˜μ—μ„œ QK-λͺ¨λ“ˆμ„ ν†΅κ³Όν•œ ν›„ 얻은 μ–΄ν…μ…˜ κ°€μ€‘μΉ˜ ν–‰λ ¬.

  • β€˜μŠ€μΌ€μΌλ§β€™λœ λ‹·-ν”„λ‘œλ•νŠΈ μ–΄ν…μ…˜μ˜ β€˜μŠ€μΌ€μΌλ§β€™ λΆ€λΆ„ μ„€λͺ….
  • μ†Œν”„νŠΈλ§₯슀 λ‹¨κ³„μ˜ μ„Έ 가지 λΆ€λΆ„: 1. 각 μ…€μ˜ μˆ«μžμ— e의 κ±°λ“­μ œκ³±μ„ 취함, 2. 각 열을 따라 이 μƒˆλ‘œμš΄ 값듀을 합함, 3. 각 μ—΄λ§ˆλ‹€, ν•΄λ‹Ή ν•©μœΌλ‘œ λ‚˜λˆ μ€Œ.
  • 각 열을 μ •κ·œν™”ν•˜μ—¬ μˆ«μžλ“€μ΄ 1둜 합쳐지도둝 함. 결과적으둜 각 열은 μ–΄ν…μ…˜μ˜ ν™•λ₯  λΆ„ν¬λ‘œ 되며, μ–΄ν…μ…˜ κ°€μ€‘μΉ˜ ν–‰λ ¬ (A)을 제곡.
  • μ–΄ν…μ…˜ κ°€μ€‘μΉ˜ 행렬은 트랜슀포머 μ„Ήμ…˜μ—μ„œμ˜ 단계 2(QK-λͺ¨λ“ˆμ„ ν†΅κ³Όν•œ ν›„)μ—μ„œ 얻은 것.
  • μ†Œν”„νŠΈλ§₯슀 λ‹¨κ³„λŠ” 이전 λ‹¨κ³„μ—μ„œ 얻은 μ μˆ˜μ— ν™•λ₯ μ„ ν• λ‹Ήν•˜μ—¬ λͺ¨λΈμ΄ ν˜„μž¬ 쿼리에 λŒ€ν•΄ 각 단어에 μ–Όλ§ˆλ‚˜ μ€‘μš”ν•˜λ‹€κ³  κ²°μ •ν•˜λŠ” 데 도움을 쀌.

5.μ†Œν”„νŠΈλ§₯슀 μŠ€ν…μ˜ μ€‘μš”μ„±κ³Ό 각 λ‹¨μ–΄μ˜ μ€‘μš”λ„ νŒλ‹¨

  • μ†Œν”„νŠΈλ§₯슀 μŠ€ν…μ€ 이전 λ‹¨κ³„μ—μ„œ 얻은 μ μˆ˜μ— ν™•λ₯ μ„ ν• λ‹Ήν•˜μ—¬, λͺ¨λΈμ΄ ν˜„μž¬ 쿼리에 λŒ€ν•΄ 각 단어에 μ–Όλ§ˆλ‚˜ μ€‘μš”λ„λ₯Ό λΆ€μ—¬ν•΄μ•Ό ν•˜λŠ”μ§€ κ²°μ •ν•˜λŠ” 데 μ€‘μš”ν•˜λ‹€.
  • 높은 주의 κ°€μ€‘μΉ˜κ°€ 더 높은 관련성을 λ‚˜νƒ€λ‚΄λ©°, λͺ¨λΈμ΄ μ˜μ‘΄μ„±μ„ 더 μ •ν™•ν•˜κ²Œ νŒŒμ•…ν•˜λ„λ‘ λ•λŠ”λ‹€.
  • 이전 λ‹¨κ³„μ—μ„œμ˜ μŠ€μΌ€μΌλ§μ΄ μ—¬κΈ°μ„œ μ€‘μš”ν•΄μ§€λŠ”λ°, μŠ€μΌ€μΌλ§ 없이 κ²°κ³Ό ν–‰λ ¬μ˜ 값이 μ†Œν”„νŠΈλ§₯슀 ν•¨μˆ˜μ—μ„œ 잘 μ²˜λ¦¬λ˜μ§€ λͺ»ν•˜λŠ” μ˜μ—­μœΌλ‘œ λ°€λ € λ‚˜μ„œ, μ‚¬λΌμ§€λŠ” 기울기둜 μ΄μ–΄μ§ˆ 수 μžˆλ‹€.
  • λ§ˆμ§€λ§‰μœΌλ‘œ ν–‰λ ¬ κ³±μ…ˆμ„ 톡해 κ°’ 벑터(Vs)λ₯Ό *주의 κ°€μ€‘μΉ˜ ν–‰λ ¬(A)κ³Ό κ³±ν•œλ‹€. 이 κ°’ λ²‘ν„°λŠ” 각 단어에 μ—°κ΄€λœ 정보λ₯Ό ν¬ν•¨ν•˜λ―€λ‘œ μ€‘μš”ν•˜λ‹€.

6.μžκ°€μ£Όμ˜ λ©”μ»€λ‹ˆμ¦˜μ˜ μ΅œμ’… ν•΄κ²°μ±…: 주의 집쀑 νŠΉμ§• Zs

  • 이 λ‹¨κ³„μ˜ μ΅œμ’… κ³±μ…ˆ κ²°κ³ΌλŠ” 주의 집쀑 가쀑 νŠΉμ§• Z둜, μžκ°€ 주의 λ©”μ»€λ‹ˆμ¦˜μ˜ ꢁ극적인 해결책이닀.
  • μ΄λŸ¬ν•œ 주의 집쀑 가쀑 νŠΉμ§•μ€ 본질적으둜 νŠΉμ§•μ˜ 가쀑 ν‘œν˜„μ„ λ‹΄κ³  있으며, μ£Όλ³€ λ§₯락에 따라 μ€‘μš”λ„κ°€ 높은 νŠΉμ§•μ— λŒ€ν•΄ 높은 κ°€μ€‘μΉ˜λ₯Ό ν• λ‹Ήν•œλ‹€.

7.트랜슀포머 μ•„ν‚€ν…μ²˜μ˜ ν”Όλ“œ ν¬μ›Œλ“œ λ ˆμ΄μ–΄μ™€ μžκ°€ 주의 κΈ°λ²•μ˜ 끝

  • 이 정보λ₯Ό 기반으둜
    1
    
    트랜슀포머 μ•„ν‚€ν…μ²˜
    
    의 λ‹€μŒ λ‹¨κ³„λ‘œ λ„˜μ–΄κ°€κ²Œ λ˜λŠ”λ°, μ—¬κΈ°μ„œλŠ”
    1
    
    ν”Όλ“œ ν¬μ›Œλ“œ λ ˆμ΄μ–΄
    
    κ°€ 이 정보λ₯Ό 더 μ²˜λ¦¬ν•œλ‹€.
  • 이둜써
    1
    
    μžκ°€ 주의 기법
    
    의 λ›°μ–΄λ‚œ κΈ°λ²•μ˜ 끝을 ν™•μΈν•˜κ²Œ λ©λ‹ˆλ‹€!
This post is licensed under CC BY 4.0 by the author.