최근 언어 모델의 발전은 두 가지 경향으로 나뉩니다. 첫 번째는 대규모 언어 모델(LLM, Large Language Model)로, 수백만 개의 GPU를 사용하여 대규모 데이터센터에서 운영됩니다. 이 모델들은 고급 언어 작업을 처리하며, 인공지능을 이용해 과학 등 복잡한 문제를 해결하는 것을 목표로 하고 있습니다. 그러나 이러한 LLM은 높은 비용과 엄청난 계산 자원이 요구되며, 개인 장치에 배포하기에는 비현실적입니다. 반면, 소규모 언어 모델(SLM, Small Language Model)은 리소스 제약이 있는 장치, 예를 들어 스마트폰, 태블릿, 웨어러블 기기 등에 배포할 수 있도록 설계되었습니다. 소형 언어 모델의 목표는 비용 효율적이고 실용적인 인공지능을 제공함으로써 AI를 누구나 쉽게 접근할 수 있도록 하는 것입니다. 이 논문은 SLM에 대한 첫 번째 종합적인 조사로, 최근 몇 년간 공개된 소형 언어 모델들을 기술적 혁신, 성능, 그리고 장치에서의 실행 비용 측면에서 분석하고 있습니다. SLM은 대규모 파라미터를 가지는 언어 모델보다는 크기가 작지만, 상식 추론, 수학적 문제 해결, 문맥 내 학습 등의 다양한 작업에서 성능을 입증했습니다. 이를 통해 기기에서 직접 실행 가능한 인공지능의 가능성을 보여줍니다. 이번 연구에서는 2023년 말부터 급증하고 있는 SLM들을 살펴보고, 다음 기준에 따라 59개의 SLM을 선정하여 성능과 비용 등을 살펴보았습니다: SLM의 모델 크기는 100M ~ 5B 사이의 모델로 정의하였으며, 평가가 가능한 가중치 공개 모델들만을 대상으로 합니다. 우수한 성능과 실제 배포를 위해 디코더 전용 트랜스포머 아키텍처를 갖춘 모델만 대상으로 합니다. 즉, RWKV 및 Mamba와 같은 아키텍처 모델들은 포함하지 않았습니다. 본 조사는 사전 학습 과정에서 얻은 기본 지식에 초점을 맞추기 때문에 지시-미세조정(Instruct Fine-tuned)된 버전만 제공되는 모델(Microsoft Phi 및 StabilityAI StableLM)을 제외한 기본 모델(Base Model)만을 대상으로 합니다. 그 외, 사전 학습된 모델을 미세 조정(fine-tuning)한 파생 모델들도 제외합니다. 위 기준에 따라 선정된 모델 목록은 다음과 같습니다: SLM의 모델 구조는 트랜스포머(Transformer)를 기반으로 다양한 변형을 가지고 있습니다. 트랜스포머 아키텍처의 핵심은 다중-헤드 어텐션(Multi-Head Attention, MHA)과 피드-포워드 신경망(Feed-Forward Neural Network, FFN)입니다. MHA는 입력 데이터의 서로 다른 부분에 집중할 수 있게 하여 병렬 처리의 효율성을 높입니다. 최근 모델들에서 어텐션 메커니즘과 FFN, 활성 함수에서 다음과 같은 다양한 시도들을 하고 있습니다: 어텐션 메커니즘(Attention Mechanisms): 피드-포워드 신경망(Feed-Forward Network, FFN): 피드-포워드 신경망의 차원 확장 비율(The intermediate ratio of the FFN): 입력 차원의 크기 대비 은닉층(hidden layer)의 크기를 비율로 표시한 수치로, 흔히 차원 확장 비율을 나타냅니다. 이 비율이 클수록 FFN은 더 복잡한 패턴을 학습할 수 있지만 연산 비용이 더 커집니다. 표준 FFN에서는 일반적으로 4 정도를, 게이트 FFN에서는 2에서 8 사이의 비율을 갖습니다. 활성 함수(Activation Functions): SLM에서는 ReLU(정류 선형 유닛, Rectified Linear Unit), GELU(가우시안 오류 선형 유닛, Gaussian Error Linear Uni), $GELU_{tanh}$, SiLU(시그모이드 선형 유닛, Sigmoid Linear Unit)가 주로 사용됩니다. 2022년에는 ReLU가, 2023년에는 GELU와 그 변형이, 그리고 2024년에 들어는 SiLU가 활성화 함수로 가장 널리 사용되고 있습니다. 레이어 정규화(Layer Normalization): 레이어 정규화에는 LayerNorm과 RMSNorm을 사용합니다. RMSNorm이 점점 더 많이 사용되고 있으며, 이는 모델의 학습 안정성을 높이는 데 기여합니다. 어휘집의 크기(Vocabulary Size): 어휘집의 크기는 SLM이 인식할 수 있는 고유한 토큰(unique token)의 수를 뜻합니다. 최근 SLM들은 주로 5만개 이상의 어휘 크기를 가지며, 어휘 크기가 클수록 성능이 향상됨을 확인하였습니다. 앞서 선정한 59개의 모델들에 대해, 위의 6가지 변형들의 분포가 시간에 따라 어떻게 변화하는지를 정리하면 다음과 같습니다: 이러한 모델 구조들을 살펴보며 모델 구조에서의 혁신(Model Architecture Innovations)을 살펴볼 수 있었습니다: 매개변수 공유(Parameter Sharing) 레이어별 매개변수 스케일링(Layer-wise Parameter Scaling) 비선형성 보상(Nonlinearity Compensation) SLM의 성능은 학습에 사용한 데이터셋에 크게 의존합니다. 이 연구에서는 SLM 모델이 사용하는 12개의 공개 데이터셋을 살펴보았습니다: |이름|토큰 수|주요 도메인|설명 및 용도| 연구 대상인 SLM들이 2022년부터 2024년까지 사전 학습 데이터셋을 사용한 경향을 살펴보면 다음과 같습니다: 2022년과 2023년에 가장 널리 사용된 사전 학습 데이터셋은 The Pile이었지만, 최근에는 더 많은 데이터셋들이 제안되어 선택의 폭이 다양해지고 있음을 알 수 있습니다. 2024년에 들어서는 SLM의 사전 학습 시 The Pile 데이터셋은 더 이상 사용되지 않고 있으며, RefinedWeb이나 RedPajama 등의 데이터셋들이 점차 널리 사용되고 있습니다. 이는 더 나은 품질의 사전 학습 데이터셋을 구축하기 위한 연구와 엔지니어링 노력이 활발히 진행되고 있음을 보여줍니다. 다음으로, 사용한 사전 학습 데이터셋에 따른 SLM의 성능을 살펴보았습니다. 최근 3년 간 출시된 SLM들을 매개변수 크기에 따라 4개의 그룹(<1B / 1B-1.4B / 1.5-2B / 2.5B-3B)으로 분류하고, 각 그룹 내에서 평균 정확도(상식 추론/이해와 문제 해결 두 가지 유형의 정확도의 평균)를 기준으로 정렬한 결과를 살펴보면 아래와 같습니다: 이러한 결과를 통해, 최근 출시된 두 개의 데이터셋인 DCLM(DataComp-LM)과 FineWeb-Edu가 다른 데이터셋들에 비해 우수한 성능을 보인다는 것을 알 수 있습니다. 이 두가지 데이터셋의 공통적인 특징은 모델 기반 데이터 필터링을 채택했다는 점입니다. 또한, 코딩 능력은 디바이스에 배포하는 SLM의 주요 작업이 아님에도 불구하고 StarCoder와 같은 사전 학습 데이터셋에 코딩 데이터가 포함되는 경우가 많습니다. 이는 코딩 데이터가 모델 추론 능력을 향상시키는 데 도움이 될 수 있다는 일반적인 믿음 때문일 수도 있습니다. 다음으로는 사전 학습에 사용한 토큰의 수와 모델 크기와 사전 학습에 사용한 토큰의 수와 평균 정확도를 살펴보았습니다. 먼저, 모델의 크기와 학습에 사용하는 데이터의 양(토큰 수) 간의 관계를 연구한 친칠라 법칙(Chinchilla Law)에 따르면, 모델의 파라매터 크기와 학습 토큰 수 사이의 최적 비율은 약 20이 되어야 한다고 제안하고 있습니다. 예를 들어, 1B 모델의 경우에는 20B 토큰 규모를 갖는 학습 데이터셋이 필요하다고 합니다. 2022년부터 2024년까지 출시된 SLM들의 크기와 학습 토큰 수를 통계적으로 분석한 결과(아래 그림 좌측 (a)), 일반적으로 모델이 클수록 트레이닝에 사용되는 토큰의 수가 많으며, 최신 모델일수록 학습 토큰의 수가 많아지는 경향이 있습니다. 주목할 만한 점은 SLM이 모델 크기에 관계없이 친칠라 법칙에서 제안하는 것보다 훨씬 많은 수의 토큰(일반적으로 1.5T 이상)으로 학습하고 있다는 것입니다. SLM이 사전 학습에 사용한 토큰 수와 평균 정확도를 분석한 결과(아래 그림 우측(b))를 살펴보면, 일반적으로 이 두가지 지표는 양의 상관관계(positive correlation)가 있으며, 이는 학습 토큰 수가 700B 미만인 경우에 두드러지게 나타납니다. 하지만 학습 토큰이 1T를 초과하는 경우에는 학습 데이터의 품질이 학습 토큰의 양보다 더 중요하기 때문에 상관관계는 약하게 나타납니다. SLM 학습을 위한 다양한 알고리즘들이 존재합니다. 주요한 학습 알고리즘으로는 Maximal Update Parameterization(μP), 지식 증류(Knowledge Distillation), 두 단계 사전학습(Two Stage Pre-training) 전략이 있습니다. Maximal Update Parameterization(μP): 모델 초기화(initialization) 및 레이어별 학습률(layer-wise learning rate), 활성화 크기(activation magnitude) 등을 제어하여 모델 레이어의 너비(model's layer width)와 상관없이 안정적인 학습을 보장합니다. 이 방법은 학습 안정성을 향상시킬뿐만 아니라, 소규모 모델에서 대규모 모델로 학습 하이퍼파라미터의 전이가능성(transferability)를 개선하여 학습률(learning rate) 등을 동일하게 사용할 수 있습니다. Cerebras-GPT가 이 기법을 사용하여 모델을 학습합니다. 지식 증류(Knowledge Distillation): 대규모 언어 모델(LLM)에서 주요하게 사용되는 개념으로, 대규모의 복잡한 교사 모델로부터 가치있는 지식을 추출하여 더 작고 효율적인 학생 모델에 학습시키는 것입니다. 이러한 지식 증류(KD) 기법은 두 모델의 출력의 차이를 최소화하는 방식으로 동작하여 학생 모델이 교사 모델의 행동과 예측을 대략적으로 학습하도록 하는 것이 핵심입니다. LaMini-GPT와 Gemma-2이 이 기법을 사용하였습니다. 두 단계 사전학습(Two Stage Pre-training): 이름 그대로 서로 다른 2단계를 거치며 모델을 학습하는 학습 전략입니다. 먼저 사전 학습 단계(Pretraining Phase)에서는 대규모의 저품질 데이터를 사용하여 학습하게 됩니다. 이 과정에는 더 많은 연산 자원을 필요로 합니다. 이후 강화 단계(Annealing Phase)에서는 고품질의, 특정 작업 중심의 SFT(Supervised Fine-Tuning) 데이터를 사전 학습 데이터에 혼합하여 사용합니다. MiniCPM이 이 기법을 사용하고 있습니다. 이 연구에서는 SLM의 성능을 평가하기 위한 12개의 데이터셋을 상식 추론(Commonsense Reasoning), 문제 해결(Problem-Solving), 수학적 추론(Mathematics)의 3가지 분류로 정리했습니다: |이름|유형|설명 및 용도| 평가 시에는 전체 평가 데이터셋의 수 대비 정확한 예측의 수를 비율로 계산한 정확도(Accuracy)를 주요 지표로 사용합니다. 상식 추론, 문제 해결 및 수학 작업의 분야에서는 정답을 선택했는지나 얼마나 정확한 솔루션을 제공하는지를 평가합니다. 상식 추론, 문제 해결, 수학의 세 가지 과제에 대해 선별된 SLM들을 대상으로 실험을 실시하여 진행 상황을 아래 그림과 같이 분석했습니다. 전체적으로 상당한 성능 향상이 있음을 확인할 수 있으며, 구체적으로 각 과제별로 10.4%, 13.5%, 13.5% 향상되었습니다. 이에 비해 오픈소스 대규모 언어 모델인 LLaMA 모델은 같은 기간 동안 평균 7.5%의 개선에 그쳤습니다: 특히, 비공개 데이터셋으로 학습한 Microsoft의 Phi 제품군은 7B 규모의 최신 LLaMA 3.1과 비슷한 수준의 성능(상식적 추론에서 67.6%, 문제 해결에서 72.4%)를 달성하여 다른 모든 모델보다 뛰어난 성능을 보였습니다. 아직 수학 분야에서 일부 차이가 나긴 하지만, 일반적인 추론 분야에서는 SLM과 LLM의 격차가 빠르게 좁혀지고 있습니다. Qwen2와 같은 예외가 존재하지만, 일반적으로는 모델의 크기가 클수록 성능이 향상되는 경향성을 보입니다. 일부 선구적인 SLM은 비공개 데이터셋을 사용하여 학습하고 있지만, 상식 추론 작업에서의 오픈소스 모델과 비공개 모델 간의 격차는 점차 좁혀지고 있습니다. 일례로 SmolLM과 DCLM-1B는 DCLM과 FineWeb-Edu와 같은 고품질 데이터셋 덕분에 상식 추론 분야에서 매우 뛰어난 성능을 발휘합니다(각각 64.2%와 63.8% 달성). 그러나 복잡한 추론이나 논리가 필요한 작업, 특히 수학에서는 고품질 데이터셋이 부족하기 때문에 여전히 상당한 격차를 보이고 있습니다. 문맥 내 학습(In-Context Learning, ICL)은 SLM의 중요한 능력으로, 주어진 입력 문맥을 바탕으로 새로운 작업을 수행하는 능력입니다. 상식 추론과 문제 해결을 포함한 8가지 작업에서 다양한 모델들과 각 모델의 2B 크기의 변형을 사용하여 문맥 내 학습(ICL) 능력에 대한 실험을 수행했습니다. 일반적으로 SLM은 모든 과제에서 상당한 이점을 얻을 수 있었습니다. 하지만, HellaSwag 및 PIQA 같이 단순한 데이터셋들에서는 예외적으로 ICL 학습 예시 수(ICL Shots)과 관계없이 비슷한 성능을 보였습니다. 그 외에는 평균적으로 5개의 예시(5-shots)를 사용한 문맥 내 학습은 모든 작업에서 제로샷 성능을 2.1% 향상시킵니다. 대표적으로 Gemma2 모델은 4.8%의 정확도가 증가하여 가장 큰 개선을 보였습니다. 예외적으로 LaMini 모델은 2% 이상의 성능 저하가 나타났습니다. 이는 LaMini가 학습 데이터셋에 과적합(overfitting)하고 있어 추가적인 예시를 제시했을 때 노이즈가 발생할 수 있다는 가설을 세웠습니다. 일반적으로 SLM의 모델 크기가 커질수록 SLM의 문맥 내 학습 성능(ICL Capability)이 향상되는 것을 확인할 수 있었습니다. SLM의 실행 비용(Runtime Cost) 은 모델을 실제 기기에서 실행할 때 발생하는 지연 시간(latency)과 메모리 사용량(memory footprint)을 포함합니다. 이 연구에서는 SLM의 런타임 성능을 평가하고, 다양한 하드웨어에서의 실험 결과를 분석합니다. 또한 모델 구조(architecture)와 양자화(quantization)가 성능에 미치는 영향을 설명하며, 이를 통해 SLM이 실시간 환경에서 어떻게 최적화될 수 있는지 다룹니다. 실행 비용을 측정할 때는 다음 2종류의 엣지 단말(Edge Device)을 사용했습니다. 드론이나 소형 로봇과 같은 엣지 단말에서 주로 사용하는 Jetson Orin와, 일상 생활에서 사람들이 주로 사용하는 스마트폰이며, 각각은 다음과 같습니다: | 기기명 | 하드웨어 종류 | 사양(Specification) | 또한, 각 모델별 공식 매개변수의 수를 측정하는 방법이 다르기 때문에, 저자들은 llama.cpp에서 얻은 매개변수 값을 사용하였습니다. 추론 시점의 프리필(prefill) 단계와 디코드(decode) 단계로 나누어 측정하였으며, 별도로 명시하지 않은 한 프롬프트 길이는 50, 토큰 생성 길이는 50으로 설정하였습니다. 또한, 발열로 인한 성능 저하(thermal throttling)를 피하기 위해 10초 간격으로 테스트를 수행하였으며, 더 큰 모델을 측정하기 위해서는 4-bit 양자화(quantization)를 적용하였습니다. 이 연구에서 다루는 SLM들의 추론 지연 시간(Inference Latency)과 메모리 사용량(Memory Footprint) 개요는 다음과 같습니다: Inference Latency (추론 지연 시간): SLM의 추론 지연 시간은 모델의 크기에 따라 세 구간으로 나뉩니다: 0.1-1B, 1-2B, 2-3B. 이 구간 내에서 각 모델은 유사한 지연 시간을 보입니다. 구체적으로, 모델의 아키텍처가 지연 시간에 미치는 영향도 상당합니다. 예를 들어, Qwen2-0.5B는 같은 크기의 다른 모델보다 1.46배 긴 첫 번째 토큰 시간을 보이며, Qwen1.5-0.5B는 오히려 더 작은 모델인 OpenELM-1.1B와 유사한 성능을 보입니다. Memory Footprint (메모리 사용량): SLM의 메모리 사용량은 모델 크기와 문맥 길이(context length)에 따라 달라집니다. 특히 Bloom-560M과 Gemma-2B와 같은 모델은 매우 큰 어휘 크기(256,000개)를 가지므로 더 많은 메모리를 사용합니다. 반면, OpenELM 시리즈는 GQA(Group-Query Attention)를 사용하여 KV 캐시의 크기를 줄임으로써 메모리 사용량을 절약합니다. 먼저, 다섯 가지 양자화 방법(Q8_0, Q6_K, Q5_K, Q4_K_M, Q3_K)과 양자화 전(FP16)의 Phi-1.5 모델의 지연 시간을 측정하여 양자화(Quantization)가 SLM의 실행 비용에 미치는 영향을 알아보았습니다: 모바일 장치에서는 int8 연산 지원이 부족할 수 있지만, 여전히 메모리 접근 오버헤드는 효과적으로 줄일 수 있습니다. 이는 낮은 정밀도로 인해 데이터 압축이 발생하며, 결과적으로 캐시 활용도가 향상되기 때문입니다. 각 방법은 n-bit로 양자화하는 방식으로 이루어지며, Qn_K, Qn_K_M은 k-quant 방법을 사용해 중간 정도의 매개변수를 가진 모델을 n 비트로 양자화한 것이고, Qn_0는 대칭 양자화를 의미합니다. Prefill 단계에서의 양자화 효과는 프롬프트 길이가 짧을 때, 양자화는 지연 시간을 최소 25% 감소시킵니다. 그러나 프롬프트 길이가 길어질수록 이 효과는 감소하며, 프롬프트 길이가 50에 가까워지면 Q6_K와 Q3_K 양자화 방법은 양자화되지 않은 FP16 모델과 비슷하거나 오히려 더 긴 지연 시간을 보이기도 합니다. Q8_0, Q4_K_M, Q5_K 방법은 안정적인 성능 개선을 제공하며, 특히 Q4_K_M이 가장 좋은 성능을 보이며, 평균적으로 50%의 지연 시간 감소를 이끌어 냅니다. Decode 단계에서의 양자화 효과는 더 일관된 성능 개선이 이루어지며, 지연 시간이 최대 75% 감소하고, 최소 17%의 감소 효과가 나타납니다. 또한, Prefill 단계와 마찬가지로 Q4_K_M 방법이 가장 효과적이며, Q6_K가 가장 비효율적입니다. 다음으로, Bloom-1B1 모델을 Jetson Orin NX 16GB(GPU 사용)와 Meizu 18 Pro(CPU 사용)에서 테스트하여 하드웨어(Hardware)가 SLM의 실행 비용에 미치는 영향을 측정해보았습니다: Prefill 단계에서는 프롬프트 길이가 짧을 때 Jetson Orin이 Meizu 18 Pro보다 10배에서 20배 더 빠른 성능을 보입니다. 또한, 프롬프트 길이가 길어질수록 Jetson의 성능 우위가 더 분명해집니다. 프롬프트가 길어질수록 두 장치 모두 첫 번째 토큰을 생성하는 데 걸리는 시간이 선형적으로 증가하지만, Jetson은 더 긴 프롬프트에서도 안정적인 성능을 유지합니다. Decode 단계에서는 생성 토큰 수가 증가함에 따라 Meizu 18 Pro의 토큰당 지연 시간이 급격히 증가합니다. 특히 첫번째 토큰부터 10번째 토큰 사이에서 지연 시간이 급격히 상승하고, 이후로는 지연 시간이 일정해집니다. 이러한 Meizu 18 Pro의 급격한 지연 시간 상승은 온도 증가로 인한 것으로, DVFS(Dynamic Voltage and Frequency Scaling) 또는 열 스로틀링(Thermal Throttling)이 전력 소모와 주파수를 조정하면서 계산 효율성이 떨어지기 때문입니다. 반면, Jetson은 더 효율적인 냉각 시스템 덕분에 30개 토큰이 생성될 때까지 지연 시간 변동이 적고, 이후에서야 지연 시간 증가가 관찰됩니다. 지연 시간을 더 세분화하여, Qwen1.5-0.5B와 Qwen2-0.5B 모델에 대해서 각 계층(layer)과 연산(operation)이 전체 지연 시간에서 차지하는 비율을 분석해보았습니다: Qwen1.5-0.5B와 Qwen2-0.5B 모델은 크기가 비슷하지만, 지연 시간(latency)에서 차이를 보이며, 각 모델의 지연 시간에 대한 세부 분석을 통해 각 계층(Embedding, Attention, FFN, LM_Head)이 차지하는 시간 분포를 측정하였습니다. 프리필(Prefill) 단계에서는 Qwen1.5 모델에서 어텐션 계층이 FFN 계층보다 더 큰 비율을 차지하고 있습니다. 이는 KV 캐시의 크기 증가로 인해 어텐션 계층의 연산이 더 많이 요구되기 때문입니다. 반면, Qwen2 모델은 FFN 계층이 어텐션 계층보다 더 큰 비율을 차지합니다. 이는 Qwen2 모델이 FFN 계층이 더 넓기 때문에 발생하는 현상입니다. 디코드(Decode) 단계에서는 Qwen1.5 모델의 어텐션 연산 비율이 더욱 커집니다. 이는 생성된 토큰이 이전에 생성된 토큰들과 상호작용하면서 더 많은 연산이 필요하기 때문이며, KV 캐시의 크기가 증가할수록 이러한 경향은 더욱 뚜렷해집니다. Qwen2 모델은 여전히 FFN 계층이 가장 많은 시간을 차지하고 있는데, 이는 FFN의 연산 폭이 넓어지면서 시간이 더 오래 걸리기 때문입니다. 연산자(operator)를 분석해보면, 두 모델 모두에서 공통적으로 행렬-벡터 곱셈 연산(matrix-vector multiplication, mul_mat_vec_q)이 전체 연산 시간의 80% 이상을 차지합니다. 특히 Qwen2-0.5B 모델에서는 FFN 계층이 넓기 때문에 mul_mat_vec_q 연산이 더 많은 비중을 차지하게 됩니다. 또한, 메모리(Memory) 사용량을 분석해보면 다음과 같습니다: 분석 결과, 모델 크기뿐만 아니라 어휘집의 크기(vocabulary size) 또한 메모리 사용량에 큰 영향을 미친다는 점이 강조됩니다. 모델이 사용하는 어휘집의 크기가 클수록, 출력층에서 사용하는 연산 버퍼(Compute Buffer) 의 크기가 커집니다. 예를 들어, Bloom-560M 모델의 어휘집 크기는 250,880으로, 이로 인해 해당 모델의 연산 버퍼 크기가 492MB에 이르며, 이는 어휘집 크기가 32,000인 OpenELM-1.1B에 비해 3.5배 더 많은 메모리를 사용합니다. 또한, GQA(Group-Query Attention)를 사용하는 모델은 MHA(Multi-Head Attention)를 사용하는 모델보다 KV Cache가 작습니다. 예를 들어, OpenELM-3B 모델의 KV 캐시 크기는 164MB인데, 이는 StableLM-zephyr-3B 모델보다 약 3.9배 더 작습니다. 맥락 길이(context length) 가 길어지면, 연산 버퍼(Compute Buffer) 및 KV Cache가 모델 메모리 사용량의 주요 결정 요인이 됩니다. Qwen2 모델 시리즈에서 맥락 길이가 131,072에 도달하면, Compute Buffer와 KV Cache는 전체 메모리 사용량의 83%에서 87%를 차지합니다. 이에 반해 Qwen1.5 모델의 경우 최대 맥락 길이 32,768에서는 두 요소가 전체 메모리의 85%에서 90%를 차지합니다. 이러한 분석을 통해 어휘집의 크기(Vocabulary Size)와 문맥 길이(Context Length)가 SLM의 메모리 사용에 미치는 영향을 명확히 알 수 있으며, 어휘집의 크기가 크고 문맥의 길이가 길수록 메모리 사용량이 급격히 증가하게 됩니다. 지금까지 100M부터 5B까지의 크기를 갖는 소규모 언어 모델(SLM)에 대한 종합적인 연구 및 성능 측정을 수행하고, 모델의 성능과 실행 비용 등을 평가했습니다. 이를 통해 SLM의 현재 성과와 한계를 분석하고, 향후 연구가 필요한 다양한 연구 주제들을 제시하고자 합니다: SLM 아키텍처와 프로세서의 협력적 설계 및 최적화(Co-design and co-optimizations of SLM architecture and device processors.): SLM의 성능은 주어진 모델 크기 내에서도 아키텍처 구성에 따라 크게 달라질 수 있습니다. 예를 들어, 트랜스포머의 깊이-너비 비율, 어텐션 유형, 활성화 함수 등이 실행 속도에 미치는 영향은 매우 큽니다. 특히, NPU(Neural Processing Unit)와 같은 정수 연산 최적화 프로세서에서 효율적으로 실행될 수 있도록 SLM을 양자화하는 방법이 중요합니다. 최적의 정확도와 속도 간의 교환비(trade-offs)를 달성하기 위해, 특정 하드웨어에 맞춘 아키텍처 설계와 최적화가 필수적이며, 사전 학습 전에 속도에 최적화된 아키텍처를 찾는 것이 한 가지 방향이 될 수 있습니다. 고품질 합성 데이터셋 구축(Constructing high-quality synthetic dataset): 최근에 발표된 DCLM과 FineWeb-Edu와 같은 사전 학습 데이터셋은 SLM의 성능을 크게 향상시켰습니다. 이러한 데이터셋의 핵심 혁신은 대규모 말뭉치(corpus)에서 고품질 데이터를 필터링하는데 사전 학습된 모델을 사용하는 것입니다. 아직 합성 데이터에 대한 연구는 초기 단계로, 많은 가능성을 가지고 있습니다. 데이터 중복 제거, 필터링, 혼합 및 평가와 같은 표준화된 합성 데이터 관리 프로세스의 구축이 시급합니다. 디바이스 환경을 고려한 Chinchilla 법칙 확장(A deployment-aware Chinchilla law for model scaling): Chinchilla 법칙에 따르면, 모델 성능을 최적화하기 위해 모델 크기와 학습 데이터의 크기(토큰 수)의 균형(약 1:20)이 필요하지만, SLM은 제한된 디바이스 메모리와 연산 능력에 맞춰야 하기 때문에 학습 데이터 양을 훨씬 더 많이 사용하는 경향이 있습니다. 이러한 접근 방식은 어느 정도까지는 효과적이지만, 학습 데이터 양을 무한히 확장할 수는 없으므로, 최적의 데이터 확장 방법을 찾는 것은 여전히 해결해야 하는 문제입니다. 또한, 데이터 규모, 훈련 및 추론 비용뿐만 아니라 SLM의 라이프사이클과 경제적 이익도 고려해야 하며, MoE(Mixture-of-Experts, 전문가 혼합 모델)와 같은 희소성(sparsity)을 적용하면 이 문제는 더욱 복잡해집니다. 개인화를 위한 지속적인 온-디바이스 학습(Continual on-device learning for personalization): SLM이 장치에 배포되면 장치 내 데이터(On-Device Data)를 활용하여 데이터 유출에 대한 걱정없이 더 나은 성능 또는 개인화를 수행할 수 있습니다. 이를 위한 첫 번째 접근법은 RAG(Retrieval-Augmented Generation) 기법을 사용하여 프롬프트에 개인 데이터를 주입하는 방법입니다. 이 방법은 텍스트 임베딩 생성과 프롬프트 처리 시간이 증가하며, 개인화를 위한 데이터를 장치에 오래 저장해야 하는 문제가 발생합니다. 두 번째 접근법은 SLM을 미세조정(fine-tuning)하는 방식으로, 개인화에 필요한 지식을 모델 가중치에 임베딩하고 데이터를 미세조정 후에 삭제할 수 있습니다. 그러나 온-디바이스의 미세 조정은 메모리 및 에너지 소모가 크기 때문에 심각한 자원 문제가 발생할 수 있습니다. 제로차수 최적화(zeroth-order optimization)를 적용하여 메모리 내 활성화 값을 저장하지 않고, 추론 단계에서 하드웨어 가속기를 활용할 수 있는 방법에 대한 연구 등이 있을 수 있습니다. 장치와 클라우드에서의 SLM과 LLM의 협업(Device-cloud SLM-LLM collaboration): SLM의 기능이 빠르게 발전하고 있지만, 클라우드에서 실행되는 대형 언어 모델(LLM)과의 격차는 여전히 존재합니다. 이를 해결하기 위해 장치와 클라우드의 협업이 중요한 연구 주제가 될 것입니다. 직관적으로, SLM은 장치에서 쉽게 해결할 수 있는 작업을 처리하고, 클라우드 LLM은 복잡한 작업을 처리하는 필터 역할을 할 수 있습니다. 하지만 SLM이 처리할 수 있는 작업과 그렇지 않은 작업을 어떻게 구분할 것인가에 대한 의사 결정 모듈이 필요하며, 장치와 클라우드 간의 적절한 협업 방식을 찾는 것에 대해서는 추가적인 연구가 필요합니다. SLM 성능 평가의 공정성 문제(Benchmarking SLMs fairly): SLM은 특히 GSM8k와 같은 널리 사용되는 벤치마크에서 과적합 문제를 가지고 있습니다. 또한, 많은 SLM은 비공개 데이터셋을 사용하여 학습하기 때문에 그 성능을 공정하게 비교하는 데 어려움이 있습니다. SLM은 주로 장치 내(On-Device)에서 실행되므로, 클라우드 환경에서와는 다른 작업을 수행하게 됩니다. 스마트폰에 배포된 SLM은 사용자 데이터에 민감한 작업을 처리하는 경향이 있으며, 이러한 특화 작업(ad-hoc task)은 기존 벤치마크에는 포함되지 않기 때문에 중요한 평가 항목에서 제외되는 문제가 있을 수 있습니다. 희소성(Sparsity)을 적용한 SLM(Sparse SLMs): 현재 SLM에서 희소성(Sparsity)을 적용한 연구는 거의 없습니다. 이는 LLM과 비교할 때 SLM이 상대적으로 낮은 희소성 수준을 가질 것으로 예상되며, 희소성을 활용한 속도 향상이나 메모리 절약의 이점이 제한적일 수 있기 때문입니다. 또한, MoE(Mixture-of-Experts, 전문가 혼합 모델)와 같은 희소성 기반 아키텍처는 메모리 사용량을 줄이는 대신 연산 복잡도가 증가할 수 있기 때문에 메모리 제약이 있는 장치에는 적합하지 않을 수 있습니다. 스마트폰의 외부 저장소(예: 플래시 메모리)를 활용하여 고정된 가중치(Cold Weights)를 저장해두고, 필요할 때 불러오는 방식으로 SLM을 더 확장할 수 있지만, 이러한 방법은 I/O 지연 시간에 대한 문제를 비롯하여 이종간(heterogeneous) 하드웨어 가속기와의 호환성을 유지하는 등의 문제에 대해 더 많은 연구가 필요합니다. https://arxiv.org/abs/2409.15790 https://ubiquitouslearning.github.io/TinyLLMLeaderBoard/#/slm https://github.com/UbiquitousLearning/SLM_Survey 이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. 🤗 ⚠️광고⚠️: 🔥파이토치 한국 사용자 모임🇰🇷이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일💌로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)소규모 언어 모델(SLM)에 대한 종합적인 연구 (Small Language Models: Survey, Measurements, and Insights)
논문 소개
소규모 언어 모델(SLM)의 구조와 데이터셋, 학습
소규모 언어 모델(SLM, Small Language Model) 개요
SLM의 모델 구조(Model Architecture)
주요 인사이트: SLM의 모델 구조에서는 2가지 주요한 관찰점이 있습니다:
학습 데이터셋(Training Dataset)
|---|---|---|---|
|The Pile|825B|과학, 학술 논문, 웹 텍스트, 법률 문서|다양한 소형 데이터셋을 결합한 데이터셋으로, 여러 도메인의 텍스트를 포함하여 모델의 전반적인 이해 능력을 향상시키는 데 사용됩니다.|
|FineWeb-Edu|1.3T/5.4T|교육 텍스트, 교과서, 교육 자료|FineWeb에서 필터링된 교육 관련 텍스트로 구성된 대규모 데이터셋으로, 학습 및 교육 도메인 관련 작업에서 모델 성능을 향상시키기 위한 목적으로 사용됩니다.|
|StarCoder|35B|파이썬 코드|파이썬 프로그래밍 언어로 이루어진 코드를 포함하는 데이터셋으로, 코드 생성 및 프로그래밍 관련 작업에서 모델을 훈련하는 데 사용됩니다.|
|Cosmopedia|25B|합성 텍스트, 교육 자료|합성 텍스트로 구성된 데이터셋으로, 교과서, 블로그 게시물, 스토리, WikiHow 기사 등을 포함하여 모델이 다양한 글쓰기 스타일과 컨텍스트를 학습할 수 있게 돕습니다.|
|RefinedWeb|5T|웹 문서, 뉴스 기사, 블로그, 기술 문서|CommonCrawl에서 추출한 고품질의 웹 데이터를 엄격하게 필터링한 데이터셋으로, 자연어 처리 작업에서 폭넓은 도메인 지식을 학습하는 데 사용됩니다.|
|RedPajama|1.2T|웹 데이터, 뉴스, 소셜 미디어|CommonCrawl의 스냅샷에서 추출한 방대한 텍스트 데이터를 포함하며, 웹 텍스트 기반 모델 학습에 사용됩니다.|
|Dolma|-|중복 제거된 영어 텍스트|MinHash 알고리즘을 사용하여 중복을 제거한 영어 말뭉치로, 중복된 텍스트를 제거해 정제된 데이터를 통해 모델 성능을 최적화하는 데 사용됩니다.|
|WuDaoCorpora|4T|중국어 텍스트|중국어 데이터를 기반으로 한 대규모 말뭉치로, 3T 토큰의 훈련 데이터와 1.08T의 중국어 문자를 포함하여 중국어 언어 모델 훈련에 사용됩니다.|
|RoBERTa CCNewsV2|-|뉴스 기사|CommonCrawl의 뉴스 데이터셋의 업데이트된 버전으로, 최신 뉴스 데이터 기반의 자연어 처리 작업에 사용됩니다.|
|PushShift Reddit|-|소셜 미디어 데이터 (Reddit 게시물)|Reddit 데이터를 수집, 분석, 저장하는 플랫폼에서 수집된 데이터로, 소셜 미디어 상호작용 및 대화형 언어 모델 훈련에 사용됩니다.|
|DCLM-baseline|1.35T|웹 텍스트|Common Crawl에서 추출한 표준화된 말뭉치로, 사전 훈련된 언어 모델을 위한 데이터셋으로 사용되며, 다양한 평가 작업에 적합합니다.|
|CulturaX|6.3T|다국어 텍스트|167개 언어로 구성된 방대한 다국어 텍스트 데이터셋으로, 다국어 모델 학습을 위한 대규모 텍스트 자료로 사용됩니다.|주요 인사이트: SLM 의 학습 데이터셋에서는 2가지 주요 관찰점이 있습니다:
학습 알고리즘 (Training Algorithm)
SLM의 성능(Capabilities)
SLM 평가 데이터셋과 지표(Evaluation Datasets and Metrics)
|---|---|---|
|HellaSwag|상식 추론|서술 이해를 테스트하며, 가능한 문장의 완성을 평가합니다.|
|TruthfulQA|상식 추론|모델이 거짓 정보를 제공하지 않도록 평가하는 데이터셋입니다.|
|Winogrande|상식 추론|대명사 모호성 해결을 통해 상식 추론 능력을 평가하는 데이터셋입니다.|
|CommonsenseQA|상식 추론|일상 지식을 요구하는 다중 선택형 질문으로 구성된 상식 추론 문제를 제공합니다.|
|PIQA|상식 추론|물리적 상식 추론과 객체 상호작용을 평가하는 데이터셋입니다.|
|OpenBookQA|상식 추론|과학적 지식과 상식을 결합하여 풀어야 하는 개방형 과학 문제들을 포함합니다.|
|BoolQ|상식 추론|예/아니오 질문을 통해 상식 및 사실적 추론 능력을 평가합니다.|
|ARC Easy|문제 해결|일반 지식과 추론을 테스트하는 간단한 과학 문제를 포함한 데이터셋입니다.|
|ARC Challenge|문제 해결|지식 통합이 필요한 복잡한 과학 시험 문제를 제공합니다.|
|MMLU|문제 해결|다양한 학문 분야에서 문제 해결 능력을 평가하는 데이터셋입니다.|
|GSM8K|수학적 추론|초등학교 수준의 수학적 추론 능력을 평가하는 데이터셋입니다.|
|Minerva Math|수학적 추론|다양한 주제에서 고급 수학적 추론 능력을 평가합니다.|SLM의 전반적인 성능(Overall Capabilities)
주요 인사이트: SLM의 발전에서 4가지 주요 관찰점이 있습니다:
문맥 내 학습 능력(In-Context Learning Capabilities)
주요 인사이트: SLM의 문맥 내 학습 능력에서는 2가지 주요 관찰점이 있습니다:
SLM의 실행 비용(Runtime Cost)
| --- | --- | --- |
|Jetson Orin NX 16GB|GPU|1024-core NVIDIA Ampere architecture GPU with 32 tensor cores, 16G DRAM|
|MEIZU 18Pro|CPU|Snapdragon 888, 8G RAM|
실행 비용 개요(Overview)
주요 인사이트: SLM의 실행 비용에서는 3가지 주요 관찰점이 있습니다:
양자화 및 하드웨어가 미치는 영향(Impact of Quantization and Hardware)
주요 인사이트: SLM의 양자화가 실행 비용에 미치는 영향에 대해서는 2가지 주요 관찰점이 있습니다:
주요 인사이트: 하드웨어가 SLM의 실행 비용에 미치는 영향에 대해서는 2가지 주요 관찰점이 있습니다:
지연시간 및 메모리 분석(Latency and Memory Breakdown)
결론 및 향후 연구 방향
소규모 언어 모델에 대한 종합적인 연구 논문: Small Language Models: Survey, Measurements, and Insights
프로젝트 홈페이지
GitHub 저장소