ahassoun's picture
Upload 3018 files
ee6e328

μ„±λŠ₯ 및 ν™•μž₯μ„± [[performance-and-scalability]]

점점 더 큰 규λͺ¨μ˜ 트랜슀포머 λͺ¨λΈμ„ ν›ˆλ ¨ν•˜κ³  ν”„λ‘œλ•μ…˜μ— λ°°ν¬ν•˜λŠ” λ°μ—λŠ” λ‹€μ–‘ν•œ 어렀움이 λ”°λ¦…λ‹ˆλ‹€. ν›ˆλ ¨ μ€‘μ—λŠ” λͺ¨λΈμ΄ μ‚¬μš© κ°€λŠ₯ν•œ GPU λ©”λͺ¨λ¦¬λ³΄λ‹€ 더 λ§Žμ€ λ©”λͺ¨λ¦¬λ₯Ό ν•„μš”λ‘œ ν•˜κ±°λ‚˜ ν›ˆλ ¨ 속도가 맀우 느릴 수 있으며, 좔둠을 μœ„ν•΄ 배포할 λ•ŒλŠ” μ œν’ˆ ν™˜κ²½μ—μ„œ μš”κ΅¬λ˜λŠ” μ²˜λ¦¬λŸ‰μœΌλ‘œ 인해 κ³ΌλΆ€ν•˜κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 λ¬Έμ„œλŠ” μ΄λŸ¬ν•œ 문제λ₯Ό κ·Ήλ³΅ν•˜κ³  μ‚¬μš© 사둀에 κ°€μž₯ μ ν•©ν•œ 섀정을 찾도둝 도움을 μ£ΌκΈ° μœ„ν•΄ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν›ˆλ ¨κ³Ό μΆ”λ‘ μœΌλ‘œ κ°€μ΄λ“œλ₯Ό λΆ„ν• ν–ˆλŠ”λ°, μ΄λŠ” 각각 λ‹€λ₯Έ λ¬Έμ œμ™€ ν•΄κ²° 방법이 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. 그리고 각 κ°€μ΄λ“œμ—λŠ” λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ ν•˜λ“œμ›¨μ–΄ 섀정에 λŒ€ν•œ λ³„λ„μ˜ κ°€μ΄λ“œκ°€ μžˆμŠ΅λ‹ˆλ‹€(예: ν›ˆλ ¨μ„ μœ„ν•œ 단일 GPU vs 닀쀑 GPU λ˜λŠ” 좔둠을 μœ„ν•œ CPU vs GPU).

perf_overview

이 λ¬Έμ„œλŠ” μ‚¬μš©μžμ˜ 상황에 μœ μš©ν•  수 μžˆλŠ” 방법듀에 λŒ€ν•œ κ°œμš” 및 μ‹œμž‘μ  역할을 ν•©λ‹ˆλ‹€.

ν›ˆλ ¨ [[training]]

효율적인 트랜슀포머 λͺ¨λΈ ν›ˆλ ¨μ—λŠ” GPUλ‚˜ TPU와 같은 가속기가 ν•„μš”ν•©λ‹ˆλ‹€. κ°€μž₯ 일반적인 κ²½μš°λŠ” 단일 GPU만 μ‚¬μš©ν•˜λŠ” κ²½μš°μ§€λ§Œ, 닀쀑 GPU 및 CPU ν›ˆλ ¨μ— λŒ€ν•œ μ„Ήμ…˜λ„ μžˆμŠ΅λ‹ˆλ‹€(곧 더 λ§Žμ€ λ‚΄μš©μ΄ 좔가될 μ˜ˆμ •).

μ°Έκ³ : 단일 GPU μ„Ήμ…˜μ—μ„œ μ†Œκ°œλœ λŒ€λΆ€λΆ„μ˜ μ „λž΅(예: ν˜Όν•© 정밀도 ν›ˆλ ¨ λ˜λŠ” κ·ΈλΌλ””μ–ΈνŠΈ λˆ„μ )은 일반적인 λͺ¨λΈ ν›ˆλ ¨μ—λ„ μ μš©λ˜λ―€λ‘œ, 닀쀑 GPUλ‚˜ CPU ν›ˆλ ¨κ³Ό 같은 μ„Ήμ…˜μ„ μ‚΄νŽ΄λ³΄κΈ° 전에 κΌ­ μ°Έκ³ ν•˜μ‹œκΈΈ λ°”λžλ‹ˆλ‹€.

단일 GPU [[single-gpu]]

단일 GPUμ—μ„œ λŒ€κ·œλͺ¨ λͺ¨λΈμ„ ν›ˆλ ¨ν•˜λŠ” 것은 μ–΄λ €μšΈ 수 μžˆμ§€λ§Œ, 이λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” μ—¬λŸ¬ 가지 도ꡬ와 방법이 μžˆμŠ΅λ‹ˆλ‹€. 이 μ„Ήμ…˜μ—μ„œλŠ” ν˜Όν•© 정밀도 ν›ˆλ ¨, κ·ΈλΌλ””μ–ΈνŠΈ λˆ„μ  및 μ²΄ν¬ν¬μΈνŒ…, 효율적인 μ˜΅ν‹°λ§ˆμ΄μ €, 졜적의 배치 크기λ₯Ό κ²°μ •ν•˜κΈ° μœ„ν•œ μ „λž΅ 등에 λŒ€ν•΄ λ…Όμ˜ν•©λ‹ˆλ‹€.

단일 GPU ν›ˆλ ¨ μ„Ήμ…˜μœΌλ‘œ 이동

닀쀑 GPU [[multigpu]]

단일 GPUμ—μ„œ ν›ˆλ ¨ν•˜λŠ” 것이 λ„ˆλ¬΄ λŠλ¦¬κ±°λ‚˜ λŒ€κ·œλͺ¨ λͺ¨λΈμ— μ ν•©ν•˜μ§€ μ•Šμ€ κ²½μš°λ„ μžˆμŠ΅λ‹ˆλ‹€. 닀쀑 GPU μ„€μ •μœΌλ‘œ μ „ν™˜ν•˜λŠ” 것은 논리적인 λ‹¨κ³„μ΄μ§€λ§Œ, μ—¬λŸ¬ GPUμ—μ„œ ν•œ λ²ˆμ— ν›ˆλ ¨ν•˜λ €λ©΄ 각 GPUλ§ˆλ‹€ λͺ¨λΈμ˜ 전체 사본을 λ‘˜μ§€, ν˜Ήμ€ λͺ¨λΈ μžμ²΄λ„ μ—¬λŸ¬ GPU에 λΆ„μ‚°ν•˜μ—¬ λ‘˜μ§€ λ“± μƒˆλ‘œμš΄ 결정을 λ‚΄λ €μ•Ό ν•©λ‹ˆλ‹€. 이 μ„Ήμ…˜μ—μ„œλŠ” 데이터, ν…μ„œ 및 νŒŒμ΄ν”„λΌμΈ 병렬화에 λŒ€ν•΄ μ‚΄νŽ΄λ΄…λ‹ˆλ‹€.

닀쀑 GPU ν›ˆλ ¨ μ„Ήμ…˜μœΌλ‘œ 이동

CPU [[cpu]]

CPU ν›ˆλ ¨ μ„Ήμ…˜μœΌλ‘œ 이동

TPU [[tpu]]

곧 제곡될 μ˜ˆμ •

νŠΉμˆ˜ν•œ ν•˜λ“œμ›¨μ–΄ [[specialized-hardware]]

곧 제곡될 μ˜ˆμ •

μΆ”λ‘  [[inference]]

μ œν’ˆ 및 μ„œλΉ„μŠ€ ν™˜κ²½μ—μ„œ λŒ€κ·œλͺ¨ λͺ¨λΈμ„ 효율적으둜 μΆ”λ‘ ν•˜λŠ” 것은 λͺ¨λΈμ„ ν›ˆλ ¨ν•˜λŠ” κ²ƒλ§ŒνΌ μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄μ–΄μ§€λŠ” μ„Ήμ…˜μ—μ„œλŠ” CPU 및 단일/닀쀑 GPU μ„€μ •μ—μ„œ 좔둠을 μ§„ν–‰ν•˜λŠ” 단계λ₯Ό μ‚΄νŽ΄λ΄…λ‹ˆλ‹€.

CPU [[cpu]]

CPU μΆ”λ‘  μ„Ήμ…˜μœΌλ‘œ 이동

단일 GPU [[single-gpu]]

단일 GPU μΆ”λ‘  μ„Ήμ…˜μœΌλ‘œ 이동

닀쀑 GPU [[multigpu]]

닀쀑 GPU μΆ”λ‘  μ„Ήμ…˜μœΌλ‘œ 이동

νŠΉμˆ˜ν•œ ν•˜λ“œμ›¨μ–΄ [[specialized-hardware]]

곧 제곡될 μ˜ˆμ •

ν•˜λ“œμ›¨μ–΄ [[hardware]]

ν•˜λ“œμ›¨μ–΄ μ„Ήμ…˜μ—μ„œλŠ” μžμ‹ λ§Œμ˜ λ”₯λŸ¬λ‹ μž₯λΉ„λ₯Ό ꡬ좕할 λ•Œ μœ μš©ν•œ 팁과 μš”λ Ήμ„ μ‚΄νŽ΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

ν•˜λ“œμ›¨μ–΄ μ„Ήμ…˜μœΌλ‘œ 이동

κΈ°μ—¬ν•˜κΈ° [[contribute]]

이 λ¬Έμ„œλŠ” μ™„μ„±λ˜μ§€ μ•Šμ€ μƒνƒœμ΄λ©°, μΆ”κ°€ν•΄μ•Ό ν•  λ‚΄μš©μ΄λ‚˜ μˆ˜μ • 사항이 많이 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μΆ”κ°€ν•˜κ±°λ‚˜ μˆ˜μ •ν•  λ‚΄μš©μ΄ 있으면 μ£Όμ €ν•˜μ§€ 말고 PR을 μ—΄μ–΄ μ£Όμ‹œκ±°λ‚˜, μžμ„Έν•œ λ‚΄μš©μ„ λ…Όμ˜ν•˜κΈ° μœ„ν•΄ Issueλ₯Ό μ‹œμž‘ν•΄ μ£Όμ‹œκΈ° λ°”λžλ‹ˆλ‹€.

Aκ°€ B보닀 μ’‹λ‹€κ³  ν•˜λŠ” κΈ°μ—¬λ₯Ό ν•  λ•ŒλŠ”, μž¬ν˜„ κ°€λŠ₯ν•œ λ²€μΉ˜λ§ˆν¬μ™€/λ˜λŠ” ν•΄λ‹Ή μ •λ³΄μ˜ 좜처 링크λ₯Ό ν¬ν•¨ν•΄μ£Όμ„Έμš”(λ‹Ήμ‹ μœΌλ‘œλΆ€ν„°μ˜ 직접적인 정보가 μ•„λ‹Œ 경우).