Rescale ๋ฏธํŒ… ์˜ˆ์•ฝ

์ง€๊ธˆ๊นŒ์ง€ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ์˜คํ”ˆ ์†Œ์Šค LLM: Meta LLAMA 3.1-405B

์ธ๊ณต์ง€๋Šฅ

์ง€๊ธˆ๊นŒ์ง€ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ์˜คํ”ˆ ์†Œ์Šค LLM: Meta LLAMA 3.1-405B

mm
์ง€๊ธˆ๊นŒ์ง€ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ์˜คํ”ˆ ์†Œ์Šค LLM: Meta LLAMA 405B

๋ผ๋งˆ 3.1-405BMeta AI๊ฐ€ ๊ฐœ๋ฐœํ•œ ๋Š” ์˜คํ”ˆ ์†Œ์Šค ์–ธ์–ด ๋ชจ๋ธ์˜ ์ค‘์š”ํ•œ ๋„์•ฝ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 405์–ต ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ–์ถ˜ ์ด ์–ธ์–ด ๋ชจ๋ธ์€ ํ˜„์žฌ๊นŒ์ง€ ๊ณต๊ฐœ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ํฐ ์–ธ์–ด ๋ชจ๋ธ๋กœ, ๋‹ค์–‘ํ•œ ๋ฒค์น˜๋งˆํฌ์—์„œ ๊ฐ€์žฅ ๋ฐœ์ „๋œ ๋…์  ๋ชจ๋ธ ์ค‘ ์ผ๋ถ€์™€ ๊ฒฝ์Ÿํ•˜๊ฑฐ๋‚˜ ์‹ฌ์ง€์–ด ๋Šฅ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํŠน์ง•:

  • 405 ์–ต ๋งค๊ฐœ ๋ณ€์ˆ˜
  • 128K ํ† ํฐ ์ปจํ…์ŠคํŠธ ๊ธธ์ด
  • ๋‹ค๊ตญ์–ด ์ง€์›(8 ์–ธ์–ด)
  • ๊ต์œก์— ๋งž์ถฐ ์กฐ์ •๋จ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „
  • ์˜คํ”ˆ ์†Œ์Šค ํ—ˆ์šฉ ๋ผ์ด์„ผ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ

์˜คํ”ˆ ์†Œ์Šค ๋„๋ฉ”์ธ์—์„œ ์ด๋Ÿฌํ•œ ๊ฐ•๋ ฅํ•œ ๋ชจ๋ธ์˜ ์ถœ์‹œ๋Š” ์ตœ์ฒจ๋‹จ AI ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๋ฏผ์ฃผํ™”ํ•˜๊ณ  ์—…๊ณ„ ์ „๋ฐ˜์— ๊ฑธ์ณ ํ˜์‹ ์„ ์ด‰์ง„ํ•˜๋Š” ๊ฒŒ์ž„ ์ฒด์ธ์ €์ž…๋‹ˆ๋‹ค.

๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๊ต์œก

ํ”„๋กœ์„ธ์Šค๋Š” ์ž…๋ ฅ ํ…์ŠคํŠธ ํ† ํฐ์ด ํ† ํฐ ์ž„๋ฒ ๋”ฉ์œผ๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž„๋ฒ ๋”ฉ์€ ์—ฌ๋Ÿฌ ๊ณ„์ธต์˜ self-attention ๋ฐ ํ”ผ๋“œํฌ์›Œ๋“œ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ต๊ณผํ•˜๋ฏ€๋กœ ๋ชจ๋ธ์ด ํ…์ŠคํŠธ ๋‚ด์˜ ๋ณต์žกํ•œ ๊ด€๊ณ„์™€ ์ข…์†์„ฑ์„ ํฌ์ฐฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ž๋™ํšŒ๊ท€ ๋””์ฝ”๋”ฉ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ถœ๋ ฅ ํ…์ŠคํŠธ ํ† ํฐ์„ ์ƒ์„ฑํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

 

  1. ๊ทธ๋ฃนํ™”๋œ ์ฟผ๋ฆฌ ์ฃผ์˜(GQA)

๊ทธ๋ฃนํ™”๋œ ์ฟผ๋ฆฌ ๊ด€์‹ฌ

๊ทธ๋ฃนํ™”๋œ ์ฟผ๋ฆฌ ๊ด€์‹ฌ

Llama 3.1์€ ์ด์ „ ์‘๋‹ต์—์„œ ์ž์„ธํžˆ ๋‹ค๋ฃจ์ง€ ์•Š์€ ์ค‘์š”ํ•œ ์ตœ์ ํ™” ๊ธฐ์ˆ ์ธ ๊ทธ๋ฃนํ™”๋œ ์ฟผ๋ฆฌ ์–ดํ…์…˜(Grouped Query Attention)์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

GQA(Grouped Query Attention)๋Š” ์ถ”๋ก  ์ค‘, ํŠนํžˆ ๊ธด ์‹œํ€€์Šค์˜ ๊ฒฝ์šฐ ๊ณ„์‚ฐ ๋น„์šฉ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ๋‹ค์ค‘ ํ—ค๋“œ ์ฃผ์˜์˜ ๋ณ€ํ˜•์ž…๋‹ˆ๋‹ค. Llama 3.1 405B ๋ชจ๋ธ์—์„œ GQA๋Š” 8๊ฐœ์˜ ํ‚ค-๊ฐ’ ํ—ค๋“œ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

GQA์˜ ์ž‘๋™ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๊ฐ ์ฃผ์˜ ํ—ค๋“œ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ํ‚ค ๋ฐ ๊ฐ’ ์˜ˆ์ธก์„ ๊ฐ–๋Š” ๋Œ€์‹  GQA๋Š” ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ ํ—ค๋“œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๋™์ผํ•œ ํ‚ค ๋ฐ ๊ฐ’ ํ—ค๋“œ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ด ๊ทธ๋ฃนํ™”๋Š” ํ‚ค ๋ฐ ๊ฐ’ ์˜ˆ์ธก์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ˆ˜๋ฅผ ํฌ๊ฒŒ ์ค„์—ฌ ๋ชจ๋ธ ํฌ๊ธฐ๊ฐ€ ๋” ์ž‘์•„์ง€๊ณ  ์ถ”๋ก ์ด ๋” ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.
  3. ์ฃผ์˜ ๊ณ„์‚ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Attention(Q, K, V) = softmax(QK^T / sqrt(d_k))V

์—ฌ๊ธฐ์„œ Q๋Š” g ๊ทธ๋ฃน์œผ๋กœ ๊ทธ๋ฃนํ™”๋˜๊ณ  K์™€ V๋Š” Q๋ณด๋‹ค ๋จธ๋ฆฌ ์ˆ˜๊ฐ€ ์ ์Šต๋‹ˆ๋‹ค.

Llama 3.1 405B์—์„œ GQA์˜ ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ ํ’‹ ํ”„๋ฆฐํŠธ ๊ฐ์†Œ: ํ‚ค ๋ฐ ๊ฐ’ ์˜ˆ์ธก์ด ์ ๋‹ค๋Š” ๊ฒƒ์€ ๋ชจ๋ธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ๋” ๋น ๋ฅธ ์ถ”๋ก : ํ‚ค ๋ฐ ๊ฐ’ ์˜ˆ์ธก์— ํ•„์š”ํ•œ ๊ณ„์‚ฐ์ด ์ค„์–ด๋“ค์–ด ์ถ”๋ก  ์†๋„๊ฐ€ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ ์œ ์ง€: ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ์†Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  GQA๋Š” ๋งŽ์€ ์ž‘์—…์—์„œ ํ‘œ์ค€ ๋‹ค์ค‘ ํ—ค๋“œ ์ฃผ์˜์™€ ๋น„์Šทํ•œ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.
  1. ํ™•์žฅ๋œ ์ƒํ™ฉ์„ ์œ„ํ•œ 2๋‹จ๊ณ„ ์‚ฌ์ „ ํ›ˆ๋ จ

์ด ๋ฌธ์„œ์—์„œ๋Š” 128K ํ† ํฐ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ 3.1๋‹จ๊ณ„ ์‚ฌ์ „ ํ•™์Šต ํ”„๋กœ์„ธ์Šค๋ฅผ ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Llama 405 XNUMXB ๊ธฐ๋Šฅ์˜ ํ•ต์‹ฌ์ ์ธ ์ธก๋ฉด์ž…๋‹ˆ๋‹ค.

1๋‹จ๊ณ„: 8K ํ† ํฐ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์‚ฌ์ „ ํ›ˆ๋ จ

  • ๋ชจ๋ธ์€ ๋จผ์ € ์ตœ๋Œ€ 8๊ฐœ์˜ ํ† ํฐ ์‹œํ€€์Šค์— ๋Œ€ํ•ด ํ•™์Šต๋ฉ๋‹ˆ๋‹ค.
  • ์ด ๋‹จ๊ณ„์—์„œ๋Š” ๋ชจ๋ธ์ด ์ผ๋ฐ˜์ ์ธ ์–ธ์–ด ์ดํ•ด ๋ฐ ์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2๋‹จ๊ณ„: ๋งฅ๋ฝ ํ™•์žฅ์„ ์œ„ํ•œ ์ง€์†์ ์ธ ์‚ฌ์ „ ํ›ˆ๋ จ

  • ์ดˆ๊ธฐ ํ•™์Šต ํ›„ ๋ชจ๋ธ์€ ์ปจํ…์ŠคํŠธ ๊ธธ์ด๋ฅผ 128K ํ† ํฐ์œผ๋กœ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•ด ์ง€์†์ ์ธ ์‚ฌ์ „ ํ•™์Šต์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.
  • ์ด ๋‹จ๊ณ„์—๋Š” ๋ชจ๋ธ์ด ๋” ์งง์€ ์ปจํ…์ŠคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋Šฅ๋ ฅ์„ ์žƒ์ง€ ์•Š๊ณ  ๋” ๊ธด ์‹œํ€€์Šค๋กœ ์ผ๋ฐ˜ํ™”๋  ์ˆ˜ ์žˆ๋„๋ก ์‹ ์ค‘ํ•˜๊ฒŒ ์„ค๊ณ„๋œ ํ›ˆ๋ จ ๋ฐฉ์‹์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  1. ๋‹ค์ค‘ ๋ชจ๋“œ ๊ธฐ๋Šฅ

์ด์ „ ์‘๋‹ต์—์„œ๋Š” ๋‹ค์ค‘ ๋ชจ๋“œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์—ˆ์ง€๋งŒ Llama 3.1 405B๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์  ์ ‘๊ทผ:

  • Llama 3.1 405B๋Š” ๋‹ค์–‘ํ•œ ์–‘์‹(์˜ˆ: ์ด๋ฏธ์ง€, ์Œ์„ฑ)์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ์ธ์ฝ”๋”๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ์ธ์ฝ”๋”๋Š” ๋‹ค์–‘ํ•œ ์–‘์‹์˜ ์ž…๋ ฅ์„ ์–ธ์–ด ๋ชจ๋ธ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์œ  ์ž„๋ฒ ๋”ฉ ๊ณต๊ฐ„์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์–ธ์–ด ๋ชจ๋ธ๊ณผ์˜ ํ†ตํ•ฉ:

  • ์ด๋Ÿฌํ•œ ํŠน์ˆ˜ ์ธ์ฝ”๋”์˜ ์ถœ๋ ฅ์€ ๊ธฐ๋ณธ ์–ธ์–ด ๋ชจ๋ธ์— ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ํ†ตํ•ด Llama 3.1 405B๋Š” ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๊ณ  ์ดํ•ดํ•˜์—ฌ ์—ฌ๋Ÿฌ ์–‘์‹๊ณผ ๊ด€๋ จ๋œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ต์ฐจ ์ฃผ์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜:

  • ๋‹ค์–‘ํ•œ ์–‘์‹์˜ ํ†ตํ•ฉ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Llama 3.1 405B๋Š” ๊ต์ฐจ ์ฃผ์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๋ชจ๋ธ์€ ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋‹ค์–‘ํ•œ ์–‘์‹์˜ ๊ด€๋ จ ์ •๋ณด์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Llama 3.1 405B์˜ ๋‹ค์ค‘ ๋ชจ๋“œ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด‘๋ฒ”์œ„ํ•œ ์‘์šฉ ๋ถ„์•ผ๋ฅผ ์—ด์–ด์ค๋‹ˆ๋‹ค.

  • ์ด๋ฏธ์ง€ ์บก์…˜ ๋ฐ ์‹œ๊ฐ์  ์งˆ๋ฌธ ๋‹ต๋ณ€
  • ๋ฌธ๋งฅ ์ดํ•ด๋ฅผ ํ†ตํ•œ ์Œ์„ฑ-ํ…์ŠคํŠธ ์ „์‚ฌ
  • ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€ ๋ฐ ์ž ์žฌ์ ์œผ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ๊ฒฐํ•ฉํ•˜๋Š” ๋‹ค์ค‘ ๋ชจ๋“œ ์ถ”๋ก  ์ž‘์—…

๊ต์œก ์„ธ๋ถ€์ •๋ณด

  • ์ด์ƒ์œผ๋กœ ํ›ˆ๋ จ๋จ 15 ์กฐ ํ† ํฐ
  • ๋‹ค์Œ์„ ๊ฐ–์ถ˜ ๋งž์ถคํ˜• GPU ํด๋Ÿฌ์Šคํ„ฐ 39.3๋งŒ GPU ์‹œ๊ฐ„ 405B ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ
  • ๋‹ค๊ตญ์–ด ๊ธฐ๋Šฅ์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์„ธํŠธ ํ๋ ˆ์ด์…˜

๊ต์œก ์กฐ์ • ๋ฒ„์ „์€ ์ถ”๊ฐ€ ๊ต์œก์„ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ๋ฒค์น˜ ๋งˆํฌ

์ด ํ‘œ๋Š” Llama 3.1 405B, Nemotron 4 340B Instruct, GPT-4 (0125), GPT-4 Omni, ๊ทธ๋ฆฌ๊ณ  Claude 3.5 Sonnet์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ๋ฒค์น˜๋งˆํฌ์—๋Š” MMLU ๋ฐ IFEval๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜ ์ž‘์—…, HumanEval ๋ฐ GSM8K์™€ ๊ฐ™์€ ์ฝ”๋”ฉ ์ž‘์—…, ๊ทธ๋ฆฌ๊ณ  ARC Challenge์™€ ๊ฐ™์€ ์ถ”๋ก  ์ž‘์—…์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฒค์น˜๋งˆํฌ ์ ์ˆ˜๋Š” ์ธ๊ฐ„๊ณผ ์œ ์‚ฌํ•œ ํ…์ŠคํŠธ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ƒ์„ฑํ•˜๊ณ , ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋ธ์˜ ์—ญ๋Ÿ‰์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํŠนํžˆ Llama 3.1 405B์™€ Claude 3.5 Sonnet์€ ์—ฌ๋Ÿฌ ๋ฒค์น˜๋งˆํฌ์—์„œ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ณด์ด๋ฉฐ, ์ผ๋ฐ˜ ์ž‘์—…๊ณผ ๋„๋ฉ”์ธ๋ณ„ ์ž‘์—… ๋ชจ๋‘์—์„œ ๋›ฐ์–ด๋‚œ ์—ญ๋Ÿ‰์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Llama 3.1-405B์˜ ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ

Llama 3.1-405B๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ƒ๋‹นํ•œ ๋ฉ”๋ชจ๋ฆฌ์™€ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • GPU ๋ฉ”๋ชจ๋ฆฌ: 405B ๋ชจ๋ธ์€ ํšจ์œจ์ ์ธ ์ถ”๋ก ์„ ์œ„ํ•ด A80 GPU๋‹น ์ตœ๋Œ€ 100GB์˜ GPU ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Tensor Parallelism์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ GPU์— ๋กœ๋“œ๋ฅผ ๋ถ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋žจ: ๋ชจ๋ธ์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์›ํ™œํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ตœ์†Œ 512GB์˜ ์‹œ์Šคํ…œ RAM์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์Šคํ† ๋ฆฌ์ง€: ๋ชจ๋ธ ๊ฐ€์ค‘์น˜ ๋ฐ ๊ด€๋ จ ๋ฐ์ดํ„ฐ์„ธํŠธ๋ฅผ ์œ„ํ•œ ๋ช‡ ํ…Œ๋ผ๋ฐ”์ดํŠธ์˜ SSD ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ํ›ˆ๋ จ ๋ฐ ์ถ”๋ก  ์ค‘ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๋ฐ๋Š” ๊ณ ์† SSD๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.โ€‹ (๋ผ๋งˆ AI ๋ชจ๋ธ)โ€‹โ€‹ (๊ทธ๋กœํฌ).

Llama 3.1-405B์— ๋Œ€ํ•œ ์ถ”๋ก  ์ตœ์ ํ™” ๊ธฐ์ˆ 

Llama 405๊ณผ ๊ฐ™์€ 3.1B ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชจ๋ธ์„ ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ์ตœ์ ํ™” ๊ธฐ์ˆ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํšจ๊ณผ์ ์ธ ์ถ”๋ก ์„ ๋ณด์žฅํ•˜๋Š” ์ฃผ์š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

a) ์–‘์žํ™”: ์–‘์žํ™”๋Š” ๋ชจ๋ธ ๊ฐ€์ค‘์น˜์˜ ์ •๋ฐ€๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ณ  ์ •ํ™•๋„๋ฅผ ํฌ๊ฒŒ ์ €ํ•˜์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ ์ถ”๋ก  ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. Llama 3.1์€ GPU ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด QLoRA(Quantized Low-Rank Adaptation)์™€ ๊ฐ™์€ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ FP8 ์ดํ•˜์˜ ์ •๋ฐ€๋„๋กœ ์–‘์žํ™”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ฝ”๋“œ :

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

model_name = "meta-llama/Meta-Llama-3.1-405B"
bnb_config = BitsAndBytesConfig(
load_in_8bit=True, # Change to load_in_4bit for 4-bit precision
bnb_8bit_quant_type="fp8",
bnb_8bit_compute_dtype=torch.float16,
)
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=bnb_config,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

b) ํ…์„œ ๋ณ‘๋ ฌ์„ฑ: ํ…์„œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋Š” ๋ชจ๋ธ์˜ ๊ณ„์ธต์„ ์—ฌ๋Ÿฌ GPU๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๊ณ„์‚ฐ์„ ๋ณ‘๋ ฌํ™”ํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Llama 3.1๊ณผ ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ ๋ชจ๋ธ์— ํŠนํžˆ ์œ ์šฉํ•˜๋ฉฐ, ๋ฆฌ์†Œ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ฝ”๋“œ :

from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline

model_name = "meta-llama/Meta-Llama-3.1-405B"
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
torch_dtype=torch.float16
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
nlp = pipeline("text-generation", model=model, tokenizer=tokenizer, device=0)

c) KV-์บ์‹œ ์ตœ์ ํ™”: ๊ธด ์ปจํ…์ŠคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด KV(ํ‚ค-๊ฐ’) ์บ์‹œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. Llama 3.1์€ ์ตœ์ ํ™”๋œ KV ์บ์‹œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ๋œ ์ปจํ…์ŠคํŠธ ๊ธธ์ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ œ ์ฝ”๋“œ :

# Ensure you have sufficient GPU memory to handle extended context lengths
output = model.generate(
input_ids, 
max_length=4096, # Increase based on your context length requirement
use_cache=True
)

๋ฐฐํฌ ์ „๋žต

Llama 3.1-405B๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋ฉด ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค๋ฅผ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋ช‡ ๊ฐ€์ง€ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

a) ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ๋ฐฐํฌ: AWS(P4d ์ธ์Šคํ„ด์Šค) ๋˜๋Š” Google Cloud(TPU v4)์™€ ๊ฐ™์€ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์—…์ฒด์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”๋ชจ๋ฆฌ GPU ์ธ์Šคํ„ด์Šค๋ฅผ ํ™œ์šฉํ•˜์„ธ์š”.

์˜ˆ์ œ ์ฝ”๋“œ :

# Example setup for AWS
import boto3
ec2 = boto3.resource('ec2')
instance = ec2.create_instances(
ImageId='ami-0c55b159cbfafe1f0', # Deep Learning AMI
InstanceType='p4d.24xlarge',
MinCount=1,
MaxCount=1
)

b) ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฐฐํฌ: ๊ณ ์„ฑ๋Šฅ ์ปดํ“จํŒ… ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์กฐ์ง์˜ ๊ฒฝ์šฐ Llama 3.1์„ ์˜จํ”„๋ ˆ๋ฏธ์Šค์— ๋ฐฐํฌํ•˜๋ฉด ๋” ๋งŽ์€ ์ œ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์ž ์žฌ์ ์œผ๋กœ ์žฅ๊ธฐ์  ๋น„์šฉ์„ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ ์„ค์ •:

# Example setup for on-premises deployment
# Ensure you have multiple high-performance GPUs, like NVIDIA A100 or H100
pip install transformers
pip install torch # Ensure CUDA is enabled

c) ๋ถ„์‚ฐ ์ถ”๋ก : ๋Œ€๊ทœ๋ชจ ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์— ๋ชจ๋ธ์„ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ฝ”๋“œ :

# Using Hugging Face's accelerate library
from accelerate import Accelerator

accelerator = Accelerator()
model, tokenizer = accelerator.prepare(model, tokenizer)

์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

Llama 3.1-405B์˜ ์„ฑ๋Šฅ๊ณผ ์œ ์—ฐ์„ฑ์€ ์ˆ˜๋งŽ์€ ๊ฐ€๋Šฅ์„ฑ์„ ์—ด์–ด์ค๋‹ˆ๋‹ค.

a) ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ: ์†Œ๊ทœ๋ชจ ๋ชจ๋ธ ํ•™์Šต์„ ์œ„ํ•œ ๊ณ ํ’ˆ์งˆ์˜ ๋„๋ฉ”์ธ๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์‚ฌ๋ก€ ์˜ˆ์‹œ:

from transformers import pipeline

generator = pipeline("text-generation", model=model, tokenizer=tokenizer)
synthetic_data = generator("Generate financial reports for Q1 2023", max_length=200)

b) ์ง€์‹ ์ฆ๋ฅ˜: 405B ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ง€์‹์„ ๋” ์ž‘๊ณ  ๋ฐฐ์น˜ํ•˜๊ธฐ ์‰ฌ์šด ๋ชจ๋ธ๋กœ ์ด์ „ํ•˜์‹ญ์‹œ์˜ค.

์˜ˆ์ œ ์ฝ”๋“œ :

# Use distillation techniques from Hugging Face
from transformers import DistillationTrainer, DistillationTrainingArguments

training_args = DistillationTrainingArguments(
    output_dir="./distilled_model",
    per_device_train_batch_size=2,
    num_train_epochs=3,
    logging_dir="./logs",
)
trainer = DistillationTrainer(
    teacher_model=model,
    student_model=smaller_model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
)
trainer.train()

c) ๋„๋ฉ”์ธ๋ณ„ ๋ฏธ์„ธ ์กฐ์ •: ์ „๋ฌธ์ ์ธ ์ž‘์—…์ด๋‚˜ ์‚ฐ์—…์— ๋งž๊ฒŒ ๋ชจ๋ธ์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ฝ”๋“œ :

from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(
    output_dir="./domain_specific_model",
    per_device_train_batch_size=1,
    num_train_epochs=3,
)
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
)
trainer.train()

์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ๊ณผ ์ „๋žต์€ Llama 3.1-405B์˜ ์ž ์žฌ๋ ฅ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜์—ฌ ํšจ์œจ์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ „๋ฌธํ™”๋œ AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

ํ–ฅํ›„ ๋ฐฉํ–ฅ

Llama 3.1-405B์˜ ์ถœ์‹œ๋Š” ์—ฌ๋Ÿฌ ๋ถ„์•ผ์—์„œ ํ˜์‹ ์„ ๊ฐ€์†ํ™”ํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

  • ์ „๋ฌธ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ๋ฏธ์„ธ ์กฐ์ • ๊ธฐ์ˆ  ๊ฐœ์„ 
  • ๋ณด๋‹ค ํšจ์œจ์ ์ธ ์ถ”๋ก  ๋ฐฉ๋ฒ• ๊ฐœ๋ฐœ
  • ๋ชจ๋ธ ์••์ถ• ๋ฐ ์ฆ๋ฅ˜์˜ ๋ฐœ์ „

๊ฒฐ๋ก 

Llama 3.1-405B๋Š” ์˜คํ”ˆ ์†Œ์Šค AI์˜ ์ค‘์š”ํ•œ ์ด์ •ํ‘œ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ์ด์ „์—๋Š” ํ์‡„ ์†Œ์Šค ๋ชจ๋ธ์—๋งŒ ์ œ๊ณต๋˜์—ˆ๋˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋ธ์˜ ์ž ์žฌ๋ ฅ์„ ๊ณ„์†ํ•ด์„œ ํƒ๊ตฌํ•ด ๋‚˜๊ฐ€๋Š” ๊ณผ์ •์—์„œ, ์ฑ…์ž„๊ฐ๊ณผ ์œค๋ฆฌ์  ๊ณ ๋ ค๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ด ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋„๊ตฌ์™€ ์•ˆ์ „ ์žฅ์น˜๋Š” ์ฑ…์ž„๊ฐ ์žˆ๋Š” ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ํ‹€์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ์ด ๊ฐ•๋ ฅํ•œ ๊ธฐ์ˆ ์ด ์‚ฌํšŒ์˜ ์ด์ต์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋„๋ก ํ•˜๋ ค๋ฉด ์ง€์†์ ์ธ ๊ฒฝ๊ณ„์™€ ์ง€์—ญ ์‚ฌํšŒ์˜ ํ˜‘๋ ฅ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ์ง€๋‚œ 50๋…„ ๋™์•ˆ ๊ธฐ๊ณ„ ํ•™์Šต๊ณผ ๋”ฅ ๋Ÿฌ๋‹์˜ ๋งคํ˜น์ ์ธ ์„ธ๊ณ„์— ๋ชฐ๋‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €์˜ ์—ด์ •๊ณผ ์ „๋ฌธ โ€‹โ€‹์ง€์‹์€ ํŠนํžˆ AI/ML์— ์ค‘์ ์„ ๋‘” XNUMX๊ฐœ ์ด์ƒ์˜ ๋‹ค์–‘ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๋„๋ก ์ด๋Œ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์˜ ๊ณ„์†๋˜๋Š” ํ˜ธ๊ธฐ์‹ฌ์€ ๋˜ํ•œ ๋‚ด๊ฐ€ ๋” ํƒ๊ตฌํ•˜๊ณ  ์‹ถ์€ ๋ถ„์•ผ์ธ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ๋กœ ๋‚˜๋ฅผ ์ด๋Œ์—ˆ์Šต๋‹ˆ๋‹ค.