๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
1๏ธโƒฃ AI•DS/๐ŸŒ LLM

[์ฑ…์Šคํ„ฐ๋””] 8. sLLM ์„œ๋น™ํ•˜๊ธฐ

by isdawell 2025. 9. 6.
728x90
๐Ÿ“ ์„ฑ๋Šฅ์„ ๋–จ์–ด๋œจ๋ฆฌ์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋ธ์„ ํšจ์œจ์ ์œผ๋กœ ์ถ”๋ก ํ•˜๋Š” ๋ฐฉ์‹

1. ๋ฐฐ์น˜ ์ „๋žต 
- ์—ฐ์†๋ฐฐ์น˜ 

2. ์–ดํ…์…˜ ์—ฐ์‚ฐ ํšจ์œจํ™” : ํ”Œ๋ž˜์‹œ์–ดํ…์…˜, ํŽ˜์ด์ง€์–ดํ…์…˜
- ํ”Œ๋ž˜์‹œ์–ดํ…์…˜ : GPU ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ ์“ฐ๋Š” ์ž‘์—…(IO)์„ ์ค„์—ฌ ์–ดํ…์…˜ ์—ฐ์‚ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ณ  ์†๋„๋ฅผ ๋†’์ž„ 

3. ์ถ”๋ก  ์ „๋žต : ์ปค๋„ํ“จ์ „, ์ถ”์ธก์ธ์ฝ”๋”ฉ 

 

 

 

 

1.   ํšจ์œจ์ ์ธ ๋ฐฐ์น˜์ „๋žต 


 

โ  ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์—์„œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๋ก ํ•  ๋•Œ, ๊ฐ€๋Šฅํ•œ ํ•œ ๋ฒˆ์— ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋†’์ด๋Š” ๊ฒƒ์ด GPU๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• → BUT ์–ธ์–ด๋ชจ๋ธ์€ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ์˜ ํ† ํฐ์„ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ๋ฐฐ์น˜ ์ „๋žต์—์„œ ๊ณ ๋ คํ•  ์‚ฌํ•ญ์ด ๋งŽ์Œ

 

 

1.1   ์ผ๋ฐ˜๋ฐฐ์น˜

 

โ  ์ผ๋ฐ˜๋ฐฐ์น˜(์ •์ ๋ฐฐ์น˜)

 โ†ช๏ธŽ  ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์น˜์ฒ˜๋ฆฌํ•  ๋•Œ ํ•œ ๋ฒˆ์— N๊ฐœ์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ๋ชจ๋‘ ์ถ”๋ก ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฐฉ์‹

 

 

โ†ช๏ธŽ  ๊ฐ€๋ น ๋ฐฐ์น˜ํฌ๊ธฐ๊ฐ€ 4์ธ ์œ„์˜ ๊ฒฝ์šฐ์—์„œ, ์„ธ๋ฒˆ์งธ ์ž…๋ ฅ์ฒ˜๋Ÿผ ์ƒ์„ฑ์ด ์ผ์ฐ ์ข…๋ฃŒ๋˜๋Š” ๋ฌธ์žฅ์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ์˜ ์ถ”๋ก ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•ด์•ผ ํ•˜๋ฉฐ, ๋จผ์ € ์ข…๋ฃŒ๋˜๋Š” ๋ฌธ์žฅ๋“ค์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฐฐ์น˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง€๋Š” ํ˜•ํƒœ๊ฐ€ ๋˜์–ด (e.g. ์ฒ˜์Œ์—๋Š” 4๊ฐœ ๋ฌธ์žฅ์— ๋Œ€ํ•ด ์ถ”๋ก ์„ ์ˆ˜ํ–‰ํ–ˆ์œผ๋‚˜, ๋จผ์ € ์ข…๋ฃŒ๋˜๋Š” ๋ฌธ์žฅ๋“ค ๋•Œ๋ฌธ์— ๋งˆ์ง€๋ง‰์—๋Š” 1๊ฐœ ๋ฌธ์žฅ์— ๋Œ€ํ•ด์„œ๋งŒ ์ถ”๋ก ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ๋จ) GPU๋ฅผ ๋น„ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. 

 

 

1.2   ๋™์ ๋ฐฐ์น˜

 

โ  ๋™์ ๋ฐฐ์น˜

 โ†ช๏ธŽ  ๋น„์Šทํ•œ ์‹œ๊ฐ„๋Œ€์— ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ํ•˜๋‚˜์˜ ๋ฐฐ์น˜๋กœ ๋ฌถ์–ด ๋ฐฐ์น˜ ํฌ๊ธฐ๋ฅผ ํ‚ค์šฐ๋Š” ์ „๋žต 

 

 

โ†ช๏ธŽ  No Dynamic : ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค ์ถ”๋ก ์„ ์ˆ˜ํ–‰ํ•ด, ์ง€์—ฐ์‹œ๊ฐ„์€ ์งง์„ ์ˆ˜ ์žˆ๊ฒ ์œผ๋‚˜ GPU๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€๋Š” ๋ชปํ•จ

โ†ช๏ธŽ  Dynamic : ์˜จ๋ผ์ธ ์„œ๋น™์—์„œ ๋ฐฐ์น˜ํฌ๊ธฐ๋ฅผ ํ‚ค์›Œ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒ์„ฑํ•˜๋Š” ํ† ํฐ๊ธธ์ด ์ฐจ์ด๋กœ ์ธํ•ด ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฐ์น˜ํฌ๊ธฐ๊ฐ€ ์ ์ฐจ ์ค„์–ด GPU๋ฅผ ๋น„ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ๋‚จ์•„์žˆ๋‹ค. 

 

 

1.3  ์—ฐ์†๋ฐฐ์น˜

 

โ  ์—ฐ์†๋ฐฐ์น˜

 โ†ช๏ธŽ  ํ•˜๋‚˜์˜ ํ† ํฐ ์ƒ์„ฑ์ด ๋๋‚  ๋Œ€๋งˆ๋‹ค ์ƒ์„ฑ์ด ์ข…๋ฃŒ๋œ ๋ฌธ์žฅ์€ ์ œ๊ฑฐํ•˜๊ณ  ์ƒˆ๋กœ์šด ๋ฌธ์žฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹ 

 

 

 โ†ช๏ธŽ  ์ƒ์„ฑ์ด ์ข…๋ฃŒ๋œ ์ฒซ๋ฒˆ์งธ, ์„ธ๋ฒˆ์งธ, ๋„ค๋ฒˆ์งธ ๋ฌธ์žฅ์—์„œ ๋ฐ”๋กœ ๋‹ค์Œ์— ๋‹ค์„ฏ๋ฒˆ์งธ, ์—ฌ์„ฏ๋ฒˆ์งธ, ์ผ๊ณฑ๋ฒˆ์งธ (S5,S6,S7) ๋ฌธ์žฅ์„ ์ถ”๊ฐ€ํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌ๋ฉด ๋Œ€๊ธฐ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๋Š” ๋ฌธ์ œ + GPU๋น„ํšจ์œจ์‚ฌ์šฉ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. 

 โ†ช๏ธŽ  ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์น˜์— ์ถ”๊ฐ€ํ•  ๋•Œ, ์‚ฌ์ „์—ฐ์‚ฐ๊ณผ ๋””์ฝ”๋”ฉ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์„œ, ์ฒ˜๋ฆฌ์ค‘์ธ ๋ฌธ์žฅ๊ณผ ๋Œ€๊ธฐ์ค‘์ธ ๋ฌธ์žฅ ๋น„์œจ์„ ๋ณด๊ณ  ํŠน์ • ์กฐ๊ฑด์„ ๋‹ฌ์„ฑํ–ˆ์„ ๋•Œ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค (waiting_served_ratio) 

 

 

 

 

 

2.   ํšจ์œจ์ ์ธ ํŠธ๋žœ์Šคํฌ๋จธ ์—ฐ์‚ฐ


 

2.1   ํ”Œ๋ž˜์‹œ์–ดํ…์…˜

 

โ  ์…€ํ”„์–ดํ…์…˜

 โ†ช๏ธŽ  ํŠธ๋žœ์Šคํฌ๋จธ ์—ฐ์‚ฐ์€ ์ฟผ๋ฆฌ์™€ ํ‚ค ๋ฒกํ„ฐ๋ฅผ ๊ณฑํ•˜๋Š” ๊ณผ์ •์—์„œ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉ 

 

Attention๋ถ€ํ„ฐ Dropout๊นŒ์ง€ ํ–‰๋ ฌ ํฌ๊ธฐ๊ฐ€, ์ฟผ๋ฆฌQ/ํ‚คK/๊ฐ’V/์ถœ๋ ฅOํ–‰๋ ฌ์— ๋น„ํ•ด ํ›จ์”ฌ ํผ

 

 

 โ†ช๏ธŽ   Pytorch์˜ ์—ฐ์‚ฐ ์‹œ๊ฐ„์„ ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค ๊ณ„์‚ฐํ•ด๋ณด๋ฉด, ๋งŽ์€ ์—ฐ์‚ฐ๋Ÿ‰์ด ํ•„์š”ํ•œ Matrix ๊ณฑ์…ˆ ์—ฐ์‚ฐ์— ๋“œ๋Š” ์‹œ๊ฐ„๋ณด๋‹ค, ์ดํ›„์— Mask, Softmax, Dropout ์ฒ˜๋ฆฌ์‹œ๊ฐ„์ด ๋” ๋งŽ์ด ์†Œ์š”๋˜๋Š”๋ฐ, ์ด๋Š” ์–ดํ…์…˜ํ–‰๋ ฌ์„ ๋’ท๋‹จ๊ณ„์—์„œ ๊ณ„์† ๋ฌผ๊ณ  ์žˆ์œผ๋ฉฐ ๋ฐœ์ƒํ•˜๋Š” GPU์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

GPU์˜ ๊ตฌ์กฐ

 

 โ†ช๏ธŽ  GPU์˜ ๊ตฌ์กฐ 

       -  SRAM : ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ ์ž‘์ง€๋งŒ, ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ด๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ 

       -  HBM(๊ณ ๋Œ€์—ญํญ๋ฉ”๋ชจ๋ฆฌ) : ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋Š” ํฌ์ง€๋งŒ ๋ฐ์ดํ„ฐ ์ด๋™์†๋„๊ฐ€ ๋А๋ฆผ 

       -  ์–ดํ…์…˜ ํ–‰๋ ฌ์€ ํฌ๊ธฐ๊ฐ€ ํฌ๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ ํฐ HBM์—์„œ ์ด๋ฃจ์–ด์ง (๋”ฐ๋ผ์„œ ์—ฐ์‚ฐ ์‹œ๊ฐ„์€ ์˜ค๋ž˜ ๊ฑธ๋ฆผ)

 

 

 

โ  ํ”Œ๋ž˜์‹œ์–ดํ…์…˜

 โ†ช๏ธŽ  ํŠธ๋žœ์Šคํฌ๋จธ๊ฐ€ ๋” ๊ธด ์‹œํ€€์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋จ, Train ๊ณผ์ •์—์„œ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‹œํ€€์Šค ๊ธธ์ด์— ๋น„๋ก€ํ•˜๋„๋ก ๊ฐœ์„  (์›๋ž˜ ํŠธ๋žœ์Šคํฌ๋จธ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” Train์—๋Š” ๊ธธ์ด์˜ ์ œ๊ณฑ์— ๋น„๋ก€ํ•˜๊ณ  Inference์—์„œ๋Š” ๊ธธ์ด์— ๋น„๋ก€ํ•จ)

 

 

 โ†ช๏ธŽ  ํ”Œ๋ž˜์‹œ์–ดํ…์…˜์—์„œ๋Š” HBM์—์„œ ํฐ ์–ดํ…์…˜ ํ–‰๋ ฌ์„ ์“ฐ๊ณ  ์ฝ์œผ๋ฉฐ ๊ฑธ๋ฆฌ๋Š” ์—ฐ์‚ฐ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด "๋ธ”๋ก" ๋‹จ์œ„๋กœ ์–ดํ…์…˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ „์ฒด ์–ดํ…์…˜ ํ–‰๋ ฌ์„ ์“ฐ๊ฑฐ๋‚˜ ์ฝ์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ์–ดํ…์…˜ ์—ฐ์‚ฐ์˜ ์†๋„๋ฅผ ๋†’์ž„ 

 โ†ช๏ธŽ  ๋˜ํ•œ ์ž‘์€ ๋ธ”๋ก ๋‹จ์œ„๋กœ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ SRAM์— ์˜ฌ๋ ค ๋” ๋น ๋ฅด๊ฒŒ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 

 โ†ช๏ธŽ  ๋‹ค๋งŒ, NxNํฌ๊ธฐ์˜ ํ–‰๋ ฌ์ด ์•„๋‹ˆ๋ผ Nxd์˜ ํ–‰๋ ฌ์„ ์ €์žฅํ•˜๋ฉฐ ์–ดํ…์…˜ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ๋•Œ๋ฌธ์— ์—ญ์ „ํŒŒ ๊ณ„์‚ฐ ๊ณผ์ •์—์„œ๋Š” NxN ํ–‰๋ ฌ ๊ฐ’์ด ํ•„์š”ํ•ด, ์—ญ์ „ํŒŒ ๊ณผ์ •์—์„œ ๋‹ค์‹œ ์ˆœ์ „ํŒŒ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•œ๋‹ค. 

 

 

โ  ํ”Œ๋ž˜์‹œ์–ดํ…์…˜2

 โ†ช๏ธŽ  ์†๋„๋ฅผ ํ•œ๋‹จ๊ณ„ ๋” ๋†’์ธ ๋ฒ„์ „ : ํ–‰๋ ฌ ๊ณฑ์…ˆ์ด ์•„๋‹Œ ์—ฐ์‚ฐ์„ ์ค„์ด๊ธฐ, ์‹œํ€€์Šค ๊ธธ์ด ๋ฐฉํ–ฅ์˜ ๋ณ‘๋ ฌํ™”๋ฅผ ์ถ”๊ฐ€ 

 

 

 

2.2   ์ƒ๋Œ€์ ์œ„์น˜์ธ์ฝ”๋”ฉ

 

โ  ์ ˆ๋Œ€์ ์œ„์น˜์ธ์ฝ”๋”ฉ

 โ†ช๏ธŽ  ์…€ํ”„์–ดํ…์…˜ ์—ฐ์‚ฐ์—์„œ๋Š” ์ž…๋ ฅ ํ† ํฐ์˜ ์œ„์น˜์— ๊ด€๊ณ„์—†์ด ๋ชจ๋‘ ๋™๋“ฑํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์œ„์น˜์ •๋ณด๋ฅผ ๋ณ„๋„๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ํ–ˆ๋‹ค. ์ตœ์ดˆ์˜ ํŠธ๋žœ์Šคํฌ๋จธ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ํ† ํฐ์˜ ์œ„์น˜์— ๋”ฐ๋ผ ์‚ฌ์ธ๊ณผ ์ฝ”์‚ฌ์ธ ์ˆ˜์‹์œผ๋กœ ์ •ํ•ด์ง„ ๊ฐ’์„ ๋”ํ•ด์คฌ๋‹ค. 

 โ†ช๏ธŽ  ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ํ•™์Šต ๋ฐ์ดํ„ฐ๋ณด๋‹ค ๋” ๊ธด ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋ฉด ์–ธ์–ด๋ชจ๋ธ์˜ ์ƒ์„ฑ ํ’ˆ์งˆ์ด ๋น ๋ฅด๊ฒŒ ๋–จ์–ด์ง„๋‹ค๋Š” ํ•œ๊ณ„ ์กด์žฌ 

 

 

โ  ์ƒ๋Œ€์ ์œ„์น˜์ธ์ฝ”๋”ฉ

 โ†ช๏ธŽ  ํ† ํฐ์˜ ์ƒ๋Œ€์ ์ธ ์œ„์น˜ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹, ํ•™์Šต ๋ฐ์ดํ„ฐ๋ณด๋‹ค ๋” ๊ธด ์ž…๋ ฅ์ด ๋“ค์–ด์™”์„ ๋•Œ์˜ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ

 

 โ†ช๏ธŽ  1) RoPE : ๊ฐ ํ† ํฐ ์ž„๋ฒ ๋”ฉ์„ ํ† ํฐ ์œ„์น˜์— ๋”ฐ๋ผ ํšŒ์ „ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ํ† ํฐ ์‚ฌ์ด์˜ ์œ„์น˜์ •๋ณด๊ฐ€ ๋‘ ์ž„๋ฒ ๋”ฉ ์‚ฌ์ด์˜ ๊ฐ๋„๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ์— ๋ฐ˜์˜๋œ๋‹ค.  

 

 

 

 โ†ช๏ธŽ  2) ALiBi : ์ฟผ๋ฆฌ์™€ ํ‚ค ๋ฒกํ„ฐ๋ฅผ ๊ณฑํ•œ ์–ดํ…์…˜ ํ–‰๋ ฌ์— ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ์ž‘์€ ๊ฐ’์„ ๋”ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ํ˜„์žฌ ์ฟผ๋ฆฌ ์œ„์น˜๋ฅผ ์˜๋ฏธํ•˜๋Š” 0์„ ๊ธฐ์ค€์œผ๋กœ ์•ž์ชฝ์— ์žˆ์„์ˆ˜๋ก ๋” ์ž‘์€ ๊ฐ’์„ ๋”ํ•ด ์ƒ๋Œ€์  ์œ„์น˜๋ฅผ ๋ฐ˜์˜ 

 

 

 โ†ช๏ธŽ  RoPE๋Š” ํšŒ์ „ํ•˜๋Š” ์ฒ˜๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด, ALiBi๋ณด๋‹ค ํ•™์Šต ๋ฐ ์ถ”๋ก  ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค. ์ƒ๋Œ€์ ์œ„์น˜์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์€ ์ ˆ๋Œ€์ ์œ„์น˜์ธ์ฝ”๋”ฉ ๋ฐฉ์‹๋ณด๋‹ค, ๋” ๊ธด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์„ฑ๋Šฅ์„ ๊ฑฐ์˜ ์œ ์ง€ํ•œ๋‹ค. 

 

 

 

 

3.   ํšจ์œจ์ ์ธ ์ถ”๋ก ์ „๋žต 


 

3.1   ์ปค๋„ํ“จ์ „

 

โ  ์ปค๋„ํ“จ์ „

 โ†ช๏ธŽ  GPU์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฐ์‚ฐ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ๋” ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹ 

 โ†ช๏ธŽ  GPU์—์„œ ์—ฐ์‚ฐ์€ '์ปค๋„' ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋˜๋Š”๋ฐ, ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „ํ›„๋กœ ์˜ค๋ฒ„ํ—ค๋“œ(e.g. HBM์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๊ฑฐ๋‚˜ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ๋Š” ์ž‘์—… ๋“ฑ)๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ปค๋„์ด ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์ˆ˜ํ–‰๋˜๋ฉด ์•ž๋’ค๋กœ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๊ทธ๋งŒํผ ๋ฐœ์ƒํ•ด์„œ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๋Š”๋ฐ, ๋”ฐ๋ผ์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ์—ฐ์‚ฐ์— ๋Œ€ํ•ด์„œ๋Š” ์—ฐ์‚ฐ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๋Š” ์ปค๋„ํ“จ์ „ ๋ฐฉ์‹์ด ๋“ฑ์žฅํ–ˆ๋‹ค. 

 

 

 

 

3.2   ํŽ˜์ด์ง€์–ดํ…์…˜

 

โ  KV์บ์‹œ์—ฐ์‚ฐ

 โ†ช๏ธŽ [๋ณต์Šต] KV์บ์‹œ : ์–ดํ…์…˜ ์—ฐ์‚ฐ ๊ณผ์ •์—์„œ ํ‚ค์™€ ๊ฐ’ ๋ฒกํ„ฐ๋ฅผ ์ค‘๋ณตํ•ด ๊ณ„์‚ฐํ•˜๋ฏ€๋กœ, ์ด ๋‘ ๋ฒกํ„ฐ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ์‹ 

 

 

 โ†ช๏ธŽ  ์บ์‹œ์—ฐ์‚ฐ์€ ์ค‘๋ณต ์—ฐ์‚ฐ์„ ์ค„์—ฌ์„œ ์ „์ฒด์ ์ธ ์—ฐ์‚ฐ ์‹œ๊ฐ„์„ ์ค„์ด๋Š”๋ฐ๋Š” ๋„์›€์ด ๋˜์ง€๋งŒ, ๋งŽ์€ GPU๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ€๋ น ์œ„์—์„œ ๋…ธ๋ž€์ƒ‰์˜์—ญ์ด ์š”์ฒญA๋ผ๊ณ  ํ•  ๋•Œ, KV์บ์‹œ๋Š” ๋ช‡ ๊ฐœ์˜ ํ† ํฐ์„ ์ƒ์„ฑํ• ์ง€ ์•Œ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— <resv>์ฒ˜๋Ÿผ ์ตœ๋Œ€ ์ƒ์„ฑ ํ† ํฐ ์ˆ˜ (2048๊ฐœ) ๋งŒํผ ๋ฏธ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ˆ์•ฝํ•ด๋‘”๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฏธ ์ƒ์„ฑํ•  ํ† ํฐ + ์•ž์œผ๋กœ ์ƒ์„ฑํ•  ํ† ํฐ์„ ์ œ์™ธํ•œ 2038๊ฐœ์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ฒฐ๊ตญ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ์ž๋ฆฌ๋งŒ ์ฐจ์ง€ํ•˜๋Š” ๋น„ํšจ์œจ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. 

 โ†ช๏ธŽ  ์ฆ‰, ์—ฐ์†์ ์ธ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฏธ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ค€๋น„ํ•˜๋Š” ๋ฐ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

 

 

โ  ํŽ˜์ด์ง€์–ดํ…์…˜

 โ†ช๏ธŽ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด '๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ' ๊ฐ™์€ ๊ฐœ๋…์ด ๊ฐœ๋ฐœ๋˜์—ˆ๋Š”๋ฐ, ์ด๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹ค์ œ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ , ์šด์˜์ฒด์ œ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. 

 

 โ†ช๏ธŽ  ํŽ˜์ด์ง€์–ดํ…์…˜์—์„œ๋Š” ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ ๊ฐœ๋…์„ ๋นŒ๋ ค์™€, ๋…ผ๋ฆฌ์ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ฌผ๋ฆฌ์ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ธ”๋กํ…Œ์ด๋ธ”์„ ๊ด€๋ฆฌํ•ด, ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋…ผ๋ฆฌ์ ๋ฉ”๋ชจ๋ฆฌ์—์„œ๋Š” ์„œ๋กœ ์—ฐ์†์ ์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. 

 

ํ•œ ๋ฒˆ์— ํฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ˆ์•ฝํ•˜์ง€ ์•Š๊ณ  ๋ธ”๋กํฌ๊ธฐ๋งŒํผ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ฐฐ์ •์ด ๊ฐ€๋Šฅ

 

 

 

 

3.3  ์ถ”์ธก์ธ์ฝ”๋”ฉ

 

โ  ์ถ”์ธก์ธ์ฝ”๋”ฉ

 โ†ช๏ธŽ  ์‰ฌ์šด ๋‹จ์–ด๋Š” ๋” ์ž‘๊ณ  ํšจ์œจ์ ์ธ ๋ชจ๋ธ์ด ์˜ˆ์ธกํ•˜๊ณ , ์–ด๋ ค์šด ๋‹จ์–ด๋Š” ๋” ํฌ๊ณ  ์„ฑ๋Šฅ์ด ์ข‹์€ ๋ชจ๋ธ์ด ์˜ˆ์ธกํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹ 

 

 

 โ†ช๏ธŽ  ์–ด๋–ค ๋‹จ์–ด๊ฐ€ ์˜ˆ์ธกํ•˜๊ธฐ ์‰ฝ๊ณ  ์–ด๋–ค ๋‹จ์–ด๊ฐ€ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์šธ์ง€๋Š” ์–ด๋–ป๊ฒŒ ํŒ๋‹จํ•˜๋Š”๊ฐ€ โžฑ ๋“œ๋ž˜ํ”„ํŠธ๋ชจ๋ธ๊ณผ ํƒ€๊นƒ๋ชจ๋ธ์ด๋ผ๋Š” 2๊ฐœ์˜ ๋ชจ๋ธ์„ ํ™œ์šฉํ•ด ์ถ”๋ก ์„ ์ˆ˜ํ–‰ 

 โ†ช๏ธŽ  ์ž‘์€ Draft model์ด K๊ฐœ์˜ ํ† ํฐ์„ ๋น ๋ฅด๊ฒŒ ๋จผ์ € ์ƒ์„ฑํ•˜๋ฉด, Target model์ด, Draft model์ด ์ƒ์„ฑํ•œ ํ† ํฐ์ด Target model์ด ์ถ”๋ก ํ–ˆ๋‹ค๋ฉด ์ƒ์„ฑํ–ˆ์„ ๊ฒฐ๊ณผ์™€ ๋™์ผํ•œ์ง€ ๊ณ„์‚ฐํ•ด, ๋™์ผํ•˜๋‹ค๋ฉด ์Šน์ธ ์•„๋‹ˆ๋ฉด ๊ฑฐ์ ˆํ•˜๋Š” ๋ฐฉ์‹์„ ํ™œ์šฉํ•œ๋‹ค. 

 โ†ช๏ธŽ  ์ถ”์ธก์ธ์ฝ”๋”ฉ์€ ์›๋ณธ๋ชจ๋ธ์— ๋น„ํ•ด ํ›จ์”ฌ ์ž‘์€ ๋“œ๋ž˜ํ”„ํŠธ ๋ชจ๋ธ์˜ ์ถ”๊ฐ€๋งŒ์œผ๋กœ ์›๋ณธ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋ฉฐ, ์†๋„๋ฅผ 2๋ฐฐ์ด์ƒ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ์„œ๋น™ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ฑ„ํƒํ•จ 

 

 

 


4.   LLM์˜ Inference


 

 

โ  vLLM 

 โ†ช๏ธŽ  LLM์„ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์„œ๋น™ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํ—ˆ๊น…ํŽ˜์ด์Šค ์œ ๋ช… ๋ชจ๋ธ์„ ์ค‘์‹ฌ์œผ๋กœ ์ง€์› 

 

โ  ์˜คํ”„๋ผ์ธ์„œ๋น™

 โ†ช๏ธŽ  ๋Œ€์šฉ๋Ÿ‰์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ถ”๋ก ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ถฉ๋ถ„ํžˆ ํฐ ๋ฐฐ์น˜ํฌ๊ธฐ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๋ก 

import torch
from vllm import LLM, SamplingParams

model_id = "shangrilar/yi-ko-6b-text2sql"
llm = LLM(model=model_id, dtype=torch.float16, max_model_len=1024)

 

 

โ  ์˜จ๋ผ์ธ์„œ๋น™ 

 โ†ช๏ธŽ  ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋ชจ๋ธ์„ ์ถ”๋ก ํ•˜๋Š” ๋ฐฉ์‹

# ์˜จ๋ผ์ธ ์„œ๋น™์„ ์œ„ํ•œ vLLM API ์„œ๋ฒ„ ์‹คํ–‰

!python -m vllm.entrypoints.openai.api_server \
--model shangrilar/yi-ko-6b-text2sql --host 127.0.0.1 --port 8888 --max-model-len 1024



# OpenAI ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•œ API ์š”์ฒญ
from openai import OpenAI

openai_api_key = "EMPTY" # ๋กœ์ปฌ์—์„œ ์‹คํ–‰ ์ค‘์ธ vLLM ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— EMPTY
openai_api_base = "http://localhost:8888/v1"
client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)
completion = client.completions.create(model="shangrilar/yi-ko-6b-text2sql",
                                 prompt=dataset.loc[0, 'prompt'], max_tokens=128)
print("์ƒ์„ฑ ๊ฒฐ๊ณผ:", completion.choices[0].text)
728x90

๋Œ“๊ธ€