https://arxiv.org/abs/2404.02258


Jamba 4λ‚˜ Qwen1.5-MoE 4, λ˜λŠ” DBRX 3 λ“±κ³Ό 같이 μ—¬λŸ¬ 'μ „λ¬Έκ°€' 블둝듀 쀑 ν•˜λ‚˜ 이상을 μ„ νƒν•˜μ—¬ μž…λ ₯ token의 처리λ₯Ό μ§„ν–‰ν•˜λŠ” MoE(Mixture-of-Experts) 방법이 μ΅œκ·Όλ“€μ–΄ 많이 μ‚¬μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ MoE 방식은 λ°©λŒ€ν•œ LLM 쀑 일뢀λ₯Ό λ™μ μœΌλ‘œ μ‘°μ ˆν•˜μ—¬ μ—°μ‚° μžμ›μ„ 효율적으둜 ν• λ‹Ήν•˜λ©΄μ„œ 더 λ‚˜μ€ μ„±λŠ₯을 보이고 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λ ‡κ²Œ MoEκ°€ μ—¬λŸ¬ μ „λ¬Έκ°€λ“€ 쀑 일뢀λ₯Ό μ„ νƒν•˜λŠ” λ°©μ‹μœΌλ‘œ 'λͺ¨λΈμ˜ 폭(width)'을 λ™μ μœΌλ‘œ μ‘°μ ˆν–ˆλ‹€λ©΄, μ΄λ²ˆμ— μ†Œκ°œν•˜λŠ” MoD(Mixture-of-Depth)λŠ” 'λͺ¨λΈμ˜ 깊이(depth)'λ₯Ό λ™μ μœΌλ‘œ μ‘°μ ˆν•˜λŠ” μ ‘κ·Ό 방식을 μ·¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 즉, νŠΉμ • 토큰에 λŒ€ν•΄μ„œ λͺ¨λΈμ˜ 전체 λ ˆμ΄μ–΄μ— λŒ€ν•΄μ„œ 연산을 ν•˜μ§€ μ•Šκ³ , 일뢀 λ ˆμ΄μ–΄λ“€μ„ κ±΄λ„ˆλ›°λŠ” λ°©μ‹μœΌλ‘œ λ™μ μœΌλ‘œ 연산을 ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.


MoD(Mixture-of-Depths): Transformer 기반 μ–Έμ–΄ λͺ¨λΈ μ—°μ‚° μ΅œμ ν™”λ₯Ό μœ„ν•œ 접근법

μ†Œκ°œ
μ „ν†΅μ μœΌλ‘œ, 트랜슀포머 λͺ¨λΈμ€ μž…λ ₯ μ‹œν€€μŠ€μ˜ λͺ¨λ“  뢀뢄에 λ™μΌν•œ 계산 μžμ›μ„ ν• λ‹Ήν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ΄λ²ˆμ— μ†Œκ°œν•˜λŠ” MoD(Mixture-of-Depth) Transformer 논문은 Trnasformer의 νŠΉμ • μ‹œν€€μŠ€ μœ„μΉ˜μ— μ»΄ν“¨νŠΈ μžμ›μ„ λ™μ μœΌλ‘œ ν• λ‹Ήν•˜κ³ , λ‹€λ₯Έ λ ˆμ΄μ–΄λ₯Ό 톡해 할당을 λ³€ν™”μ‹œν‚€λŠ” μ‹œλ„λ₯Ό ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ Mixture-of-Depths(MoD) μ „λž΅μ„ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ μ €μžλ“€μ€ μ–΄λ–€ 토큰을 μ²˜λ¦¬ν• μ§€ κ²°μ •ν•˜κΈ° μœ„ν•΄ top-k λΌμš°νŒ… λ©”μ»€λ‹ˆμ¦˜μ„ μ‚¬μš©ν•˜μ—¬ 전체 μ—°μ‚°λŸ‰μ„ κ΄€λ¦¬ν•©λ‹ˆλ‹€. 이 κΈ°μˆ μ€ κΈ°μ‘΄ λͺ¨λΈμ˜ μ„±λŠ₯에 ν•„μ ν•˜κ±°λ‚˜ λ›°μ–΄λ‚˜λ©΄μ„œλ„, 훨씬 적은 FLOPsλ₯Ό μš”κ΅¬ν•˜λ©°, ν•™μŠ΅ ν›„ μƒ˜ν”Œλ§ λ™μ•ˆ μ΅œλŒ€ 50%의 속도 ν–₯상을 μ œκ³΅ν•©λ‹ˆλ‹€.

74bf8271b7d76bfe68e686e21781223c6fb9014ebe6cac47a88b12bbb7bbbdcd5aa7512c323f8288a30463aee45f10dc52703be71c6993b5


Attention is All You Need 논문에 μ†Œκ°œλœ Transformer ꡬ쑰


졜근의 트랜슀포머 λͺ¨λΈκ³Ό LLM(Large Language Model)은 κ·Έ 규λͺ¨μ™€ λ³΅μž‘μ„±μ΄ μ§€μ†μ μœΌλ‘œ μ¦κ°€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ λͺ¨λΈλ“€μ€ 인간 μˆ˜μ€€μ˜ μ–Έμ–΄ 이해와 생성 λŠ₯λ ₯에 μ ‘κ·Όν•˜κΈ° μœ„ν•΄ μˆ˜μ‹­μ–΅ 개의 νŒŒλΌλ―Έν„°λ₯Ό ν™œμš©ν•˜λ©°, κ·Έ 결과둜 λ†€λΌμš΄ μ„±λŠ₯을 보여주고 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜, μ΄λŸ¬ν•œ λ°œμ „μ—λŠ” μƒλ‹Ήν•œ 계산 λΉ„μš©κ³Ό μ—λ„ˆμ§€ μ†ŒλΉ„κ°€ 수반되며, λͺ¨λΈ 규λͺ¨μ˜ μ¦κ°€λŠ” ν•™μŠ΅κ³Ό μΆ”λ‘  μ‹œκ°„μ„ κΈ‰κ²©νžˆ μ¦κ°€μ‹œν‚΅λ‹ˆλ‹€.


μ΄λŠ” Transformerκ°€ μž…λ ₯ μ‹œν€€μŠ€μ˜ λͺ¨λ“  토큰에 λŒ€ν•΄μ„œ λ™μΌν•œ μ–‘μ˜ 연산을 μˆ˜ν–‰ν•˜κ³  있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ, μ–΄λ–€ 토큰은 λ¬Έλ§₯ 이해에 μžˆμ–΄ 핡심적인 역할을 ν•˜μ§€λ§Œ μ–΄λ–€ 토큰은 μƒλŒ€μ μœΌλ‘œ 덜 μ€‘μš”ν•˜λŠ” λ“±, λͺ¨λ“  토큰듀이 λ™λ“±ν•œ μ–‘μ˜ 정보λ₯Ό μ œκ³΅ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€λŠ” μ•„μ΄λ””μ–΄μ—μ„œ μΆœλ°œμ„ ν•©λ‹ˆλ‹€.


MoD TransformerλŠ” 각 토큰에 λŒ€ν•΄ λ™μ μœΌλ‘œ 계산을 ν• λ‹Ήν•¨μœΌλ‘œμ¨, λͺ¨λΈμ΄ ν•„μš”ν•œ 곳에 μžμ›μ„ μ§‘μ€‘μ‹œν‚¬ 수 있게 ν•©λ‹ˆλ‹€. μ΄λŠ” λͺ¨λΈμ˜ 전체적인 μ—°μ‚° λΉ„μš©μ„ μ€„μ΄λŠ” λ™μ‹œμ—, μ€‘μš”ν•œ 토큰에 더 λ§Žμ€ 주의λ₯Ό κΈ°μšΈμž„μœΌλ‘œμ¨ 정보 처리의 νš¨μœ¨μ„±μ„ 높일 수 있게 λ©λ‹ˆλ‹€. 특히, LLMκ³Ό 같은 λŒ€κ·œλͺ¨ λͺ¨λΈμ—μ„œ MoD의 μ ‘κ·Ό 방식은 ν•™μŠ΅κ³Ό μΆ”λ‘  κ³Όμ •μ—μ„œμ˜ μ‹œκ°„κ³Ό μžμ›μ„ μ ˆμ•½ν•  수 μžˆλŠ” μ€‘μš”ν•œ 방법이 될 수 μžˆμŠ΅λ‹ˆλ‹€.


MoD(Mixture-of-Depths) 기법 μ†Œκ°œ
MoD 기법은 트랜슀포머 λ ˆμ΄μ–΄μ˜ κ°κ°μ—μ„œ μ–΄λ–€ 토큰을 μ²˜λ¦¬ν• μ§€ λ™μ μœΌλ‘œ μ„ νƒν•˜λŠ” top-k λΌμš°νŒ… λ©”μ»€λ‹ˆμ¦˜μ„ ν†΅ν•©ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ„ νƒλœ 일뢀 ν† ν°λ“€λ§Œ 전체 μ—°μ‚° 과정을 거치며, λ‹€λ₯Έ 토큰듀은 λ ˆμ΄μ–΄(λ“€)을 κ±΄λ„ˆλ›°κ²Œ λ©λ‹ˆλ‹€.

7bbed327e4d16ba33aed85e34084223c95d3a5c6601b682215016824c8a7e1031922a7463dd0d0f440336b28441e80d894e10a4e60d88a


κ·Έλ¦Ό1 / 쒌츑: MoD(Mixture-of-Depths) Transformer κ°œμš”: MoE(Mixture-of-Experts) ꡬ쑰와 μœ μ‚¬ν•˜κ²Œ λΌμš°ν„°λ₯Ό 톡해 μ—°μ‚° 경둜λ₯Ό μ„ νƒν•©λ‹ˆλ‹€. 이 λ•Œ, MoEμ™€λŠ” λ‹€λ₯΄κ²Œ ν‘œμ€€ λΈ”λŸ­(Self-Attention 및 MLP)을 μ—°μ‚°ν• μ§€ 말지λ₯Ό κ²°μ •ν•˜κ²Œ λ©λ‹ˆλ‹€. 이 λ•Œ μž…λ ₯ 토큰이 λΌμš°ν„°μ˜ 결정에 따라 전체 연산을 ν™œμ„±ν™”ν•˜μ§€ μ•ŠλŠ” 경우, ν•΄λ‹Ή λ ˆμ΄μ–΄μ˜ 연산을 κ±°μΉ˜μ§€ μ•Šκ²Œ λ©λ‹ˆλ‹€.
κ·Έλ¦Ό 1 / 우츑: 64개 ν† ν°μœΌλ‘œ μΆ•μ†Œλœ 짧은 μ‹œν€€μŠ€μ— λŒ€ν•œ λΌμš°νŒ… κ²°μ • κ²°κ³Όμž…λ‹ˆλ‹€. (XμΆ•: μ‹œν€€μŠ€, YμΆ•: λ ˆμ΄μ–΄) 보라색은 ν•΄λ‹Ή λ ˆμ΄μ–΄μ˜ 연산을 λͺ¨λ‘ μ§„ν–‰ν•˜μ˜€μœΌλ©°, 주황색은 ν•΄λ‹Ή λ ˆμ΄μ–΄μ˜ 연산을 κ±΄λ„ˆλ›΄ κ²ƒμž…λ‹ˆλ‹€.

μœ„ 그림의 μ„€λͺ…κ³Ό 같이, MoDλŠ” 트랜슀포머 μ•„ν‚€ν…μ²˜ 내에 예츑 λΌμš°ν„°λ₯Ό κ΅¬ν˜„ν•˜μ—¬ 각 ν† ν°λ§ˆλ‹€ λ ˆμ΄μ–΄ μ—°μ‚°μ˜ μ§„ν–‰ μ—¬λΆ€λ₯Ό κ²°μ •ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ—°μ‚° μžμ›μ„ μƒλŒ€μ μœΌλ‘œ "μ€‘μš”ν•œ" 토큰에 집쀑할 수 μžˆμŠ΅λ‹ˆλ‹€.

MoD Transformer의 ν•™μŠ΅
MoD 트랜슀포머의 ν•™μŠ΅ 과정은 기본적으둜 ν‘œμ€€ νŠΈλžœμŠ€ν¬λ¨Έμ™€ μœ μ‚¬ν•©λ‹ˆλ‹€. μž…λ ₯ μ‹œν€€μŠ€λŠ” λͺ¨λΈμ— κ³΅κΈ‰λ˜κ³ , 각 λ ˆμ΄μ–΄λ₯Ό 톡해 μ „λ‹¬λ˜λ©΄μ„œ ν•„μš”ν•œ 계산이 μˆ˜ν–‰λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ MoD νŠΈλžœμŠ€ν¬λ¨ΈλŠ” λΌμš°ν„°λ₯Ό 톡해 각 토큰이 μ–΄λ–€ 계산 경둜λ₯Ό λ”°λ₯Όμ§€ κ²°μ •ν•˜λŠ” 좔가적인 단계λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.

1. λΌμš°ν„° κ°€μ€‘μΉ˜ 계산: λΌμš°ν„°λŠ” λͺ¨λΈμ˜ 각 λ ˆμ΄μ–΄μ—μ„œ 각 토큰에 λŒ€ν•œ κ°€μ€‘μΉ˜λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. 이 κ°€μ€‘μΉ˜λŠ” ν•΄λ‹Ή 토큰이 λ°›μ•„μ•Ό ν•  κ³„μ‚°μ˜ 양을 λ‚˜νƒ€λ‚΄λ©°, ν† ν°μ˜ μ€‘μš”μ„±μ— κΈ°λ°˜ν•©λ‹ˆλ‹€.

2. μƒμœ„ ? 토큰 선택: λΌμš°ν„°λŠ” κ³„μ‚°λœ κ°€μ€‘μΉ˜λ₯Ό 기반으둜, 각 λ ˆμ΄μ–΄μ— λŒ€ν•΄ μƒμœ„ ?개의 토큰을 μ„ νƒν•©λ‹ˆλ‹€. 이 토큰듀은 전체 계산을 μˆ˜ν–‰ν•˜λŠ” 경둜둜 μ•ˆλ‚΄λ©λ‹ˆλ‹€.

3. μ—°μ‚° 경둜 ν• λ‹Ή: μ„ νƒλœ 토큰은 ν‘œμ€€ 계산(Self-Attention 및 MLP)을 μˆ˜ν–‰ν•˜λŠ” 경둜둜 ν• λ‹Ήλ©λ‹ˆλ‹€. λ‚˜λ¨Έμ§€ 토큰은 μž”μ—¬ 연결을 톡해 μ „λ‹¬λ˜μ–΄, μΆ”κ°€ 계산 없이 λ‹€μŒ λ ˆμ΄μ–΄λ‘œ λ„˜μ–΄κ°‘λ‹ˆλ‹€.

4. 손싀 계산 및 μ—­μ „νŒŒ: λͺ¨λΈμ˜ 좜λ ₯이 μ΅œμ’… 손싀 ν•¨μˆ˜λ₯Ό 톡해 ν‰κ°€λ˜κ³ , κ·Έλž˜λ””μ–ΈνŠΈκ°€ λͺ¨λΈμ„ 톡해 μ—­μ „νŒŒλ˜μ–΄ κ°€μ€‘μΉ˜λ₯Ό μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€. 이 κ³Όμ •μ—μ„œ λΌμš°ν„°λ„ ν•™μŠ΅λ˜μ–΄, μ‹œκ°„μ΄ 지남에 따라 더 효율적인 λΌμš°νŒ… 결정을 내릴 수 μžˆμŠ΅λ‹ˆλ‹€.

MoD Transformer의 λΌμš°νŒ… .방식 (Routing Schemes)


2fe98075b08b3ef268e984e243d72764701a943a0f9f0ca643372932f88587c8c6cacaf22936656e79e3d9fc6dcc27fac55af45271c852


λΌμš°νŒ… κ΅¬ν˜„μ€ MoD Transformer의 핡심적인 λΆ€λΆ„μž…λ‹ˆλ‹€. μ €μžλ“€μ€ 3κ°€μ§€ λΌμš°νŒ… .방식을 λΉ„κ΅ν•˜μ—¬ Expert-Choice MoD λ°©μ‹μ˜ 토큰 λΌμš°νŒ…μ΄ κ°€μž₯ λ‚˜μ€ μ„±λŠ₯을 λ³΄μ΄λŠ” 것을 ν™•μΈν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ†Œκ°œλœ λ‹€λ₯Έ λΌμš°νŒ… .λ°©μ‹λ“€κ³Όμ˜ 비ꡐλ₯Ό ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€:


토큰 선택(Token-choice) λΌμš°νŒ…

토큰 선택 λΌμš°νŒ…μ—μ„œλŠ” 각 토큰이 μžμ‹ μ΄ κ±°μΉ  경둜λ₯Ό 슀슀둜 μ„ νƒν•©λ‹ˆλ‹€. λͺ¨λΈμ€ 각 토큰에 λŒ€ν•΄ λ‹€μ–‘ν•œ 계산 경둜(예: λ‹€λ₯Έ λ ˆμ΄μ–΄ λ˜λŠ” 처리 블둝)에 λŒ€ν•œ ν™•λ₯  뢄포λ₯Ό μƒμ„±ν•˜κ³ , 이 뢄포에 따라 토큰을 ν•΄λ‹Ή 경둜둜 μ „λ‹¬ν•©λ‹ˆλ‹€.


토큰 선택 λΌμš°νŒ…μ€ 각 토큰이 κ°€μž₯ μ ν•©ν•œ 계산 경둜λ₯Ό 선택할 수 μžˆμ–΄, 맀우 μœ μ—°ν•œ λΌμš°νŒ…μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€. λ˜ν•œ, λͺ¨λΈμ΄ 각 ν† ν°μ˜ μ€‘μš”λ„λ‚˜ λ¬Έλ§₯을 더 μ •λ°€ν•˜κ²Œ κ³ λ €ν•  수 μžˆμ–΄, κ°œλ³„ 토큰에 μ΅œμ ν™”κ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€.


μ „λ¬Έκ°€ 선택(Expert-choice) λΌμš°νŒ…

μ „λ¬Έκ°€ 선택 λΌμš°νŒ…μ—μ„œλŠ” λͺ¨λΈμ΄ 각 경둜(λ˜λŠ” "μ „λ¬Έκ°€")κ°€ μ²˜λ¦¬ν•  토큰을 직접 μ„ νƒν•©λ‹ˆλ‹€. μ΄λŠ” 각 ν† ν°μ˜ λΌμš°ν„° κ°€μ€‘μΉ˜λ₯Ό 기반으둜 μƒμœ„ ?개의 토큰을 μ„ λ³„ν•˜λŠ” top-? λ©”μ»€λ‹ˆμ¦˜μ„ μ‚¬μš©ν•˜μ—¬ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.


μ΄λ ‡κ²Œ μ „λ¬Έκ°€ 선택 λΌμš°νŒ…μ„ ν•˜κ²Œ 되면 토큰이 각 κ²½λ‘œμ— κ· λ“±ν•˜κ²Œ 뢄배될 수 μžˆμ–΄, μ—°μ‚° λΆ€ν•˜κ°€ κ· ν˜•μžˆκ²Œ λΆ„μ‚°λ˜λ―€λ‘œ λͺ¨λΈμ˜ μ—°μ‚° μžμ›μ„ 보닀 효율적으둜 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μƒμœ„ ?개의 토큰이 λͺ…ν™•ν•˜κ²Œ κ²°μ •λ˜λ―€λ‘œ, λͺ¨λΈμ˜ 예츑 κ°€λŠ₯μ„±κ³Ό μ•ˆμ •μ„±μ΄ ν–₯μƒλ©λ‹ˆλ‹€.


μ „λ¬Έκ°€ 선택 MoD(Expert-choice MoD)

μ „λ¬Έκ°€ 선택 MoDλŠ” μ „λ¬Έκ°€ 선택 λΌμš°νŒ…μ˜ κ°œλ…μ„ MoD 트랜슀포머의 ꡬ쑰에 μ μš©ν•œ κ²ƒμž…λ‹ˆλ‹€. 이 λ°©μ‹μ—μ„œλŠ” λͺ¨λΈμ΄ 각 λ ˆμ΄μ–΄ λ˜λŠ” 처리 단계에 λŒ€ν•΄ μƒμœ„ ?개의 토큰을 μ„ νƒν•˜κ³ , μ„ νƒλœ ν† ν°λ§Œμ΄ 계산을 μˆ˜ν–‰ν•˜λŠ” 경둜λ₯Ό 따라 μ²˜λ¦¬λ©λ‹ˆλ‹€. λ‚˜λ¨Έμ§€ 토큰은 μž”μ—¬ 연결을 톡해 λΉ„μš©μ΄ 적게 λ“œλŠ” 경둜λ₯Ό λ”°λ¦…λ‹ˆλ‹€.


μ΄λŸ¬ν•œ 방식은 μ„ νƒλœ ν† ν°λ§Œμ΄ 계산을 μˆ˜ν–‰ν•˜λ―€λ‘œ, 전체 λͺ¨λΈμ˜ FLOP μ‚¬μš©λŸ‰μ΄ 크게 κ°μ†Œν•©λ‹ˆλ‹€. λ˜ν•œ, μ€‘μš”ν•œ 토큰에 λŒ€ν•΄μ„œλŠ” 전체 λ ˆμ΄μ–΄μ— λŒ€ν•œ 연산을 보μž₯ν•˜λ©΄μ„œλ„, λΆˆν•„μš”ν•œ 연산은 μ΅œμ†Œν™”ν•˜μ—¬ λͺ¨λΈμ˜ μ„±λŠ₯을 μœ μ§€ν•˜κ±°λ‚˜ ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ λΌμš°ν„°λ₯Ό ν†΅ν•œ 동적 λΌμš°νŒ…μ„ 톡해 λͺ¨λΈμ΄ μž…λ ₯ μ‹œν€€μŠ€μ˜ νŠΉμ„±μ— 따라 계산 μžμ›μ„ μœ λ™μ μœΌλ‘œ ν• λ‹Ήν•  수 μžˆλŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€.


λΌμš°νŒ… κ΅¬ν˜„ 방식

λΌμš°νŒ…μ˜ κ΅¬ν˜„μ€ λ‹€μŒ 3κ°€μ§€ μ£Όμš” λ‹¨κ²Œλ₯Ό 톡해 κ°€λŠ₯ν•©λ‹ˆλ‹€:


1. 토큰 μž„λ² λ”©κ³Ό λΌμš°ν„° κ°€μ€‘μΉ˜ κ²°μ •: λͺ¨λΈμ˜ 각 λ ˆμ΄μ–΄μ— λŒ€ν•΄, μ£Όμ–΄μ§„ μ‹œν€€μŠ€μ˜ 토큰 μž„λ² λ”© 집합이 μžˆμŠ΅λ‹ˆλ‹€. 각 토큰 μž„λ² λ”©μ— λŒ€ν•΄μ„œ, λΌμš°ν„°λŠ” μ„ ν˜• λ³€ν™˜μ„ 톡해 ν•΄λ‹Ή 토큰이 연산에 μ°Έμ—¬ν•  κ°€λŠ₯성을 λ‚˜νƒ€λ‚΄λŠ” 슀칼라 κ°€μ€‘μΉ˜λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€.


2. μƒμœ„ ? κ°€μ€‘μΉ˜ κ²°μ •: ν† ν°μ˜ λΌμš°ν„° κ°€μ€‘μΉ˜ μ§‘ν•© Rμ—μ„œ β번째 κ°€μ€‘μΉ˜μ˜ λ°±λΆ„μœ„ ν™•λ₯  Pβ을 μ°ΎμŠ΅λ‹ˆλ‹€. 이 λ•Œ Ξ²λŠ” λͺ¨λΈμ΄ 각 λ ˆμ΄μ–΄μ—μ„œ μ²˜λ¦¬ν•  ν† ν°μ˜ λΉ„μœ¨μ„ κ²°μ •ν•©λ‹ˆλ‹€. λ”°λΌμ„œ λΌμš°ν„° κ°€μ€‘μΉ˜κ°€ Pβ보닀 큰 토큰이 연산에 μ°Έμ—¬ν•˜κ²Œ λ©λ‹ˆλ‹€.


3. μ—°μ‚° 경둜 선택: 각 토큰은 λΌμš°ν„° κ°€μ€‘μΉ˜ rκ³Ό λΉ„κ΅ν•˜μ—¬ Pβ보닀 ν¬κ±°λ‚˜ κ°™μœΌλ©΄ ν•΄λ‹Ή λ ˆμ΄μ–΄μ˜ 연산을 μ²˜λ¦¬ν•˜λ©°, μž‘μœΌλ©΄ λ‹€μŒ λ ˆμ΄μ–΄λ‘œ 직접 μ „λ‹¬λ©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ„ νƒλœ 토큰에 λŒ€ν•΄μ„œλ§Œ 계산을 μˆ˜ν–‰ν•˜κ³ , λ‚˜λ¨Έμ§€ 토큰은 계산 λΉ„μš©μ„ λ°œμƒμ‹œν‚€μ§€ μ•ŠλŠ” 경둜λ₯Ό 따라 μ²˜λ¦¬ν•  수 있게 λ©λ‹ˆλ‹€.


μ΄λŸ¬ν•œ λΌμš°νŒ… κ΅¬ν˜„ μ‹œ λ‹€μŒκ³Ό 같은 λ‚΄μš©μ„ ν•΅μ‹¬μ μœΌλ‘œ κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€:


+ κ°€μ€‘μΉ˜μ— κΈ°λ°˜ν•œ 동적 κ²°μ •: λΌμš°νŒ… 과정은 각 ν† ν°μ˜ κ°€μ€‘μΉ˜λ₯Ό 기반으둜 λ™μ μœΌλ‘œ κ²°μ •λ˜λ©°, μ΄λŠ” ν† ν°μ˜ μ€‘μš”λ„λ₯Ό λ°˜μ˜ν•©λ‹ˆλ‹€. μ€‘μš”ν•œ 토큰은 더 λ§Žμ€ 계산을 λ°›μ•„ λͺ¨λΈμ˜ μ„±λŠ₯을 μ΅œμ ν™”ν•˜λŠ” 반면, 덜 μ€‘μš”ν•œ 토큰은 μž”μ—¬ 경둜λ₯Ό 톡해 λΉ„μš©μ„ μ ˆκ°ν•©λ‹ˆλ‹€.


+ 계산 νš¨μœ¨μ„±κ³Ό μ„±λŠ₯ μ΅œμ ν™”: μ΄λŸ¬ν•œ λΌμš°νŒ… λ©”μ»€λ‹ˆμ¦˜μ„ 톡해 MoD νŠΈλžœμŠ€ν¬λ¨ΈλŠ” 계산 μžμ›μ„ 효율적으둜 μ‚¬μš©ν•˜λ©΄μ„œλ„, λͺ¨λΈμ˜ μ„±λŠ₯을 μœ μ§€ν•˜κ±°λ‚˜ ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. 특히, 계산 λΉ„μš©μ΄ 높은 λ ˆμ΄μ–΄μ—μ„œ μ€‘μš”ν•œ ν† ν°λ§Œμ„ μ²˜λ¦¬ν•¨μœΌλ‘œμ¨ 전체적인 FLOP μ‚¬μš©λŸ‰μ„ 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€.


+ κ΅¬ν˜„μ˜ λ‹¨μˆœμ„±κ³Ό νš¨μœ¨μ„±: λΌμš°νŒ…μ€ μ„ ν˜• λ³€ν™˜κ³Ό λ°±λΆ„μœ„μˆ˜ 계산을 톡해 κ΅¬ν˜„λ˜λ―€λ‘œ, μƒλŒ€μ μœΌλ‘œ λ‹¨μˆœν•˜λ©° νš¨μœ¨μ μž…λ‹ˆλ‹€. μ΄λŠ” λͺ¨λΈ ν•™μŠ΅κ³Ό μΆ”λ‘  κ³Όμ •μ—μ„œ 계산 뢀담을 μΆ”κ°€ν•˜μ§€ μ•ŠμœΌλ©΄μ„œλ„, 계산 μžμ›μ˜ 동적 할당을 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.


MoD Transformer의 λ™μž‘ μ˜ˆμ‹œ

μ§€κΈˆκΉŒμ§€ μ‚΄νŽ΄λ³Έ λ‚΄μš©μ— 따라 MoD Transformer의 λ™μž‘μ„ μ˜ˆμ‹œλ₯Ό 톡해 μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.


예λ₯Ό λ“€μ–΄, μž…λ ₯ μ‹œν€€μŠ€μ— 100개의 토큰이 있고, λΌμš°ν„°κ°€ ?λ₯Ό 10으둜 μ„€μ •ν–ˆλ‹€κ³  κ°€μ •ν•΄ λ΄…μ‹œλ‹€. 이 경우, 각 λ ˆμ΄μ–΄μ—μ„œ λΌμš°ν„°λŠ” κ°€μž₯ μ€‘μš”ν•œ 10개의 토큰을 μ„ νƒν•˜κ³ , 이 ν† ν°λ“€λ§Œμ΄ ν‘œμ€€ 계산 경둜λ₯Ό 따라 μ²˜λ¦¬λ©λ‹ˆλ‹€.


λ‚˜λ¨Έμ§€ 90개의 토큰은 계산을 κ±΄λ„ˆλ›°κ³ , μž”μ—¬ 연결을 톡해 λ‹€μŒ λ ˆμ΄μ–΄λ‘œ 직접 μ „λ‹¬λ©λ‹ˆλ‹€. 이 과정을 톡해, MoD νŠΈλžœμŠ€ν¬λ¨ΈλŠ” 전체 FLOP μ‚¬μš©λŸ‰μ„ μ€„μ΄λ©΄μ„œλ„ μ€‘μš”ν•œ 토큰에 λŒ€ν•΄ ν•„μš”ν•œ 계산을 보μž₯ν•©λ‹ˆλ‹€.


MoD Transformer의 μ„±λŠ₯ 비ꡐ


ν•™μŠ΅ μ„±λŠ₯


79e4d27fbcd13ca038efd5e44e8227380c29bdf9c34c3a61b36479d2146f69de7c0b9978c75ab5dfa9f0bbc6352e43a07bcd3c3a79fb07d4


ν•˜μ΄νΌνŒŒλΌλ―Έν„° μ΅œμ ν™”: 12.5% μš©λŸ‰ λΌμš°νŒ… 블둝을 전체 주의(attention) 블둝과 κ΅μ°¨ν•˜μ—¬ λ°°μΉ˜ν•œ MoD 트랜슀포머 λ³€ν˜•μ„ ν•™μŠ΅μ‹œν‚€λŠ” μ‹€ν—˜μ„ 톡해, 졜적의 ν•˜μ΄νΌνŒŒλΌλ―Έν„° 섀정을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. 이 섀정은 isoFLOP λΆ„μ„μ—μ„œ 졜적 기쀀선보닀 더 λ‚˜μ€ μ„±λŠ₯을 μ œκ³΅ν–ˆμŠ΅λ‹ˆλ‹€.


7de98420b3803dfe3fbdd2e14280273b42056008a6a120caaf965bd2de5609396040d478d23b69eb7cba056fbc25d87a69644df9c81f3833


계산 νš¨μœ¨μ„±: νŠΉμ • MoD λ³€ν˜•μ€ κΈ°μ‘΄ λͺ¨λΈ λŒ€λΉ„ 더 적은 FLOP으둜 λ™μΌν•œ μ„±λŠ₯을 λ‹¬μ„±ν•˜λ©΄μ„œ, 66% 더 λΉ λ₯Έ 처리 속도λ₯Ό λ³΄μ˜€μŠ΅λ‹ˆλ‹€.


λΌμš°νŒ… 뢄석


7de98774e3806fa439ef86e04784226b745efb48c54e74e3eff6dceddcf70c5b4ba2a23b2185935dc46a075573489f943608d3194b30e4


λΌμš°νŒ… κ²°μ •μ˜ ν¬μ†Œμ„±: 12.5% μš©λŸ‰(capacity) λΌμš°νŒ…μ„ μ‚¬μš©ν•¨μœΌλ‘œμ¨, λŒ€λΆ€λΆ„μ˜ 토큰은 블둝을 μš°νšŒν•˜κ³  μ†Œμˆ˜μ˜ μ€‘μš”ν•œ ν† ν°λ§Œμ΄ 블둝을 ν†΅κ³Όν–ˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λΌμš°ν„° κ°€μ€‘μΉ˜ λΆ„ν¬μ—μ„œλ„ 확인할 수 있으며, λ„€νŠΈμ›Œν¬λŠ” κΉŠμ΄μ— 따라 νŠΉμ • 토큰을 μ„ ν˜Έν•˜μ—¬ λΌμš°νŒ…ν•˜κΈ°λ„ ν–ˆμŠ΅λ‹ˆλ‹€.


μΆ”λ‘  μ„±λŠ₯


7ab88223b7873ba36bec85b115842764e17e044f83ac5a11d02bfcf7366f911581370b9604e3ecf5a476c0996f2f74205f576133b81efd81


μžλ™ νšŒκ·€ μΆ”λ‘ : ν•™μŠ΅ μ‹œ 비인과적(non-causal) top-? λΌμš°νŒ… μŠ€ν‚΄μ—μ„œ μΆ”λ‘  μ‹œ 인과적(causal) 예츑 기반 μ ‘κ·Όλ²•μœΌλ‘œ μ „ν™˜ν•˜μ˜€μ„ λ•Œ, μ„±λŠ₯ μ €ν•˜κ°€ 거의 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” ν•΄λ‹Ή 예츑 문제의 ν•™μŠ΅μ΄ 쉽고, ν•™μŠ΅ μ΄ˆκΈ°λΆ€ν„° 97% μ΄μƒμ˜ 정확도λ₯Ό λ‹¬μ„±ν–ˆκΈ° λ•Œλ¬ΈμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€.


Mixture-of-Depths-and-Experts(MoDE) = MoD + MoE


29ed8970b58a61a53ebcd2ec138927397a3f7702814de7bf715514730b1bea885e02d42913377f90a37c58d3a1a38cf21aeed1ae4ba5f796


MoDE(Mixture-of-Depths-and-Experts)λŠ” MoD(Mixture-of-Depths) 기법과 MoE(Mixture of Experts) κΈ°λ²•μ˜ 톡합을 μ˜λ―Έν•©λ‹ˆλ‹€. 이 방식은 두 κ°€μ§€ μ ‘κ·Ό λ°©μ‹μ˜ μž₯점을 κ²°ν•©ν•˜μ—¬, 트랜슀포머 λͺ¨λΈμ˜ 계산 νš¨μœ¨μ„±κ³Ό μ„±λŠ₯을 λ™μ‹œμ— μ΅œμ ν™”ν•˜λŠ” 데 λͺ©μ μ΄ μžˆμŠ΅λ‹ˆλ‹€. MoD 방식이 각 토큰에 λŒ€ν•΄ 더 깊이 λ˜λŠ” 덜 깊이 계산을 μˆ˜ν–‰ν•˜λ„λ‘ μ„ νƒν•˜λŠ” 반면, MoE 방식은 λ‹€μ–‘ν•œ "μ „λ¬Έκ°€" μ€‘μ—μ„œ κ°€μž₯ μ ν•©ν•œ μ „λ¬Έκ°€λ₯Ό 톡해 토큰을 μ²˜λ¦¬ν•©λ‹ˆλ‹€. MoDEλŠ” 이 두 κ°€μ§€ μ ‘κ·Ό 방식을 ν†΅ν•©ν•˜μ—¬, 토큰이 νŠΉμ • 블둝을 κ±΄λ„ˆλ›°κ±°λ‚˜ μ„ νƒμ μœΌλ‘œ 더 κΉŠμ€ 계산을 μˆ˜ν–‰ν•  수 있게 함과 λ™μ‹œμ—, λ‹€μ–‘ν•œ μ „λ¬Έκ°€ μ€‘μ—μ„œ 졜적의 처리 방식을 선택할 수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.


MoDE의 κ΅¬ν˜„ 방식

MoDEλŠ” 두 κ°€μ§€ μ£Όμš” κ΅¬ν˜„ 방식을 κ°€μ§‘λ‹ˆλ‹€: 단계적(Staged) MoDE와 ν†΅ν•©λœ(Integrated) MoDE.


1. Staged MoDE(단계적 MoDE): 단계적 MoDEλŠ” λ¨Όμ € MoD 기법을 μ μš©ν•˜μ—¬ 각 ν† ν°μ˜ 계산 경둜λ₯Ό κ²°μ •ν•˜κ³ , κ·Έ λ‹€μŒμ— MoE 기법을 μ μš©ν•˜μ—¬ μ„ νƒλœ κ²½λ‘œμ—μ„œ 처리될 토큰을 각각의 μ „λ¬Έκ°€ λΈ”λ‘μœΌλ‘œ λΌμš°νŒ…ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄, λͺ¨λΈμ€ λ¨Όμ € κ³„μ‚°μ˜ 깊이λ₯Ό μ‘°μ ˆν•œ ν›„, 각 λ‹¨κ³„μ—μ„œ 졜적의 μ „λ¬Έκ°€λ₯Ό 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.


2. Integrated MoDE(ν†΅ν•©λœ MoDE): ν†΅ν•©λœ MoDEλŠ” MoD와 MoE 기법을 ν•˜λ‚˜μ˜ λΌμš°νŒ… λ‹¨κ³„μ—μ„œ ν†΅ν•©ν•˜μ—¬ κ΅¬ν˜„ν•©λ‹ˆλ‹€. 즉, 토큰을 λΌμš°νŒ…ν•  λ•Œ ν•œ 번의 κ²°μ •μœΌλ‘œ 계산 경둜의 κΉŠμ΄μ™€ μ²˜λ¦¬ν•  μ „λ¬Έκ°€λ₯Ό λ™μ‹œμ— μ„ νƒν•©λ‹ˆλ‹€. 이 방식은 κ΅¬ν˜„μ΄ 더 λ‹¨μˆœν•˜κ³  효율적일 수 있으며, ν† ν°λ§ˆλ‹€ κ°€μž₯ μ ν•©ν•œ 계산 κ²½λ‘œμ™€ μ „λ¬Έκ°€λ₯Ό λ™μ‹œμ— κ²°μ •ν•  수 μžˆλŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€.


MoDE의 μž₯점


+ 계산 νš¨μœ¨μ„±: MoDEλŠ” ν† ν°λ§ˆλ‹€ ν•„μš”ν•œ κ³„μ‚°μ˜ μ–‘κ³Ό μ²˜λ¦¬ν•  μ „λ¬Έκ°€λ₯Ό λ™μ μœΌλ‘œ κ²°μ •ν•¨μœΌλ‘œμ¨, λͺ¨λΈμ˜ 전체적인 계산 λΉ„μš©μ„ 효과적으둜 κ΄€λ¦¬ν•©λ‹ˆλ‹€.


+ μ„±λŠ₯ μ΅œμ ν™”: 각 토큰을 κ°€μž₯ μ ν•©ν•œ 계산 κ²½λ‘œμ™€ 전문가에 ν• λ‹Ήν•¨μœΌλ‘œμ¨, MoDEλŠ” λͺ¨λΈμ˜ μ„±λŠ₯을 μ΅œλŒ€ν™”ν•©λ‹ˆλ‹€. μ΄λŠ” 특히 λ³΅μž‘ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κ±°λ‚˜ λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ 데이터λ₯Ό μ²˜λ¦¬ν•  λ•Œ μœ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


+ μœ μ—°μ„±κ³Ό ν™•μž₯μ„±: MoDEλŠ” λ‹€μ–‘ν•œ λͺ¨λΈ ꡬ쑰와 νƒœμŠ€ν¬μ— 적용될 수 μžˆλŠ” μœ μ—°μ„±μ„ μ œκ³΅ν•˜λ©°, λͺ¨λΈμ˜ 계산 νš¨μœ¨μ„±κ³Ό μ„±λŠ₯을 λ™μ‹œμ— ν–₯μƒμ‹œν‚¬ 수 μžˆλŠ” ν™•μž₯ κ°€λŠ₯ν•œ ν”„λ ˆμž„μ›Œν¬λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.


MoDEλŠ” 트랜슀포머 λͺ¨λΈμ˜ 미래 λ°œμ „ λ°©ν–₯을 μ œμ‹œν•˜λ©°, 계산 λΉ„μš©μ„ μ΅œμ†Œν™”ν•˜λ©΄μ„œλ„ λͺ¨λΈμ˜ μ„±λŠ₯을 κ·ΉλŒ€ν™”ν•˜λŠ” 방법을 νƒμƒ‰ν•˜λŠ” 연ꡬ에 μ€‘μš”ν•œ κΈ°μ—¬λ₯Ό ν•©λ‹ˆλ‹€.