안녕하세요! 오늘은 애플의 새로운 오픈소스 소형 언어 모델 OpenELM에 대해서 알아보겠습니다. OpenELM은 최신 개방형 언어 모델로, 레이어별 스케일링 전략을 통해 파라미터를 효율적으로 할당하여 높은 정확도를 제공하며, 공개 데이터셋을 사용하여 모델 훈련 및 평가 프레임워크를 모두 공개하였습니다. 이 블로그에서는 OpenELM의 개요, 핵심기술, 벤치마크 결과에 대해서 알아보겠습니다.
https://www.aitimes.com/news/articleView.html?idxno=159124
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
논문 개요
논문에서 제시한 OpenELM은 오픈 소스와 효율적인 언어 모델을 지향하는 Open Efficient Language Model의 약자로, 이 논문에서 공개된 모델의 종류는 270M(2억 7천만), 450M(4억 5천만), 1.08B(10억 8천만), 3.04B(30억 4천만) 크기의 매개변수를 가집니다.
구분 | 모델명 | 용도 |
기본 모델 | OpenELM-270M, OpenELM-450M, OpenELM-1_1B, OpenELM-3B | 일반적인 자연어 이해 및 생성 작업에 사용 |
Instruct 모델 | OpenELM-270M-Instruct, OpenELM-450M-Instruct, OpenELM-1_1B-Instruct, OpenELM-3B-Instruct | 특정한 지시 사항을 따르거나 특정 도메인에서의 작업을 수행하는 데 특화 |
- 논문제목: An Efficient Language Model Family with Open-source Training and Inference Framework
- 논문저자: Apple
- 논문게재 사이트: https://arxiv.org/abs/2404.14619
- 논문게재일: 2024년 4월
논문의 연구내용 및 결과
이 논문의 목적은 새로운 디코더 전용 트랜스포머 기반 오픈소스 언어 모델인 OpenELM을 제안하고, 레이어별 스케일링 방법을 도입하여 효율적인 매개변수 할당을 실현함으로써, 다양한 자연어 이해 및 생성 작업에서 높은 정확도를 달성하고, 이를 통해 더 나은 자연어 처리 모델의 개발을 위한 기초 제공 및 오픈 연구 커뮤니티를 강화하는 것입니다.
OpenELM 아키텍처
OpenELM의 아키텍처는 디코더 전용 트랜스포머 기반이며, 기존의 트랜스포머 모델과는 다르게 디코더에만 집중하여 설계되었으며, 이러한 아키텍처는 효율적인 계산 비용, 훈련 효율성, 메모리 사용량 절감, 그리고 특정 작업에 대한 최적화된 구조를 제공하여 더 나은 성능을 이끌어냅니다.
- 적은 계산 비용: 디코더 전용 트랜스포머는 인코더와 달리 입력 시퀀스의 각 위치에 대한 정보를 동시에 처리할 필요가 없기 때문에 계산 비용이 낮습니다. 이는 대규모 언어 모델을 효율적으로 학습하고 사용하기 위해 중요합니다.
- 효율적인 훈련: 디코더 전용 트랜스포머는 기계 번역 및 자연어 이해와 같은 특정 작업에 대해 최적화된 구조를 제공합니다. 이는 모델이 목표 작업에 더 빠르게 수렴하고 더 높은 성능을 달성할 수 있도록 도와줍니다.
- 메모리 사용량 감소: 디코더 전용 트랜스포머는 인코더와 비교하여 적은 메모리를 필요로 합니다. 이는 대규모 모델을 학습하고 배포하는 데 필요한 하드웨어 및 인프라 비용을 절감하는 데 도움이 됩니다.
- 목적에 특화된 모델: 디코더 전용 트랜스포머는 특정 작업에 대해 최적화된 구조를 제공하여 해당 작업에 대한 더 나은 성능을 달성할 수 있습니다. 따라서 특정 작업에 대한 모델을 개발할 때 디코더 전용 트랜스포머를 선택하는 것이 바람직합니다.
또한 OpenELM은 다음과 같은 주요 특징을 포함합니다:
- 학습 가능 편향 매개변수 미사용: 완전히 연결된 (Fully Connected) 레이어에서는 각 뉴런이나 층에 추가되는 학습 가능한 편향 매개변수를 사용하지 않으로 모델이 더 간단해지고 연산량이 줄어들며 더 나은 일반화와 파라미터 절약이 가능합니다. 따라서 모델의 효율성과 성능이 향상됩니다.
- 사전 정규화 적용 (Pre-normalization) : RMSNorm(Root Mean Square Normalization, 제곱 평균 제곱근 정규화)을 사용하여 사전 정규화를 적용하며, 회전 포지셔널 임베딩(ROPE, Rotatory Positional Embedding)을 사용하여 각 토큰의 상대적 위치 정보를 인코딩합니다.
- 그룹화된 쿼리 어텐션 (Grouped Query Attention) : 다중 헤드 어텐션(MHA) 대신에 그룹화된 쿼리 어텐션(GQA)을 사용합니다. GQA는 입력 텍스트의 다양한 부분을 동시에 고려하여 모델이 더 넓은 문맥을 이해하고 다양한 종류의 추론 작업을 수행할 수 있게 함으로써, 모델의 성능 향상에 기여합니다.
특징 | 다중 헤드 어텐션 (MHA) | 그룹화된 쿼리 어텐션 (GQA) |
구성 요소 | 여러 개의 어텐션 헤드로 나뉨 | 쿼리를 그룹으로 나누어 처리 |
어텐션 계산 방법 | 모든 쿼리에 대해 모든 키와 값을 고려 | 각 쿼리 그룹에 대해 해당하는 키와 값만 고려 |
계산 병렬화 | 가능 | 가능 |
모델 복잡성 | 상대적으로 높음 | 상대적으로 낮음 |
메모리 요구사항 | 더 많은 메모리 필요 | 상대적으로 적은 메모리 요구 |
성능 | 더 높은 병렬화를 통해 대규모 모델에서 효율적 | 적은 메모리 요구와 더 나은 학습 능력 |
- SwiGLU FFN 적용: 순방향 신경망(Feed-Forward Network, FFN)은 딥러닝 모델의 한 종류로, 입력층에서 출력층으로 신호가 한 방향으로만 흐르는 구조를 가지고 있으며, 주로 인공 신경망의 각 층에 있는 연결된 뉴런들로 이루어진 구조를 말합니다. SwiGLU FFN은 FFN의 한 종류로, Swish 함수와 GLU(Gated Linear Unit) 함수의 결합으로 이루어져 있습니다. Swish 함수는 입력값에 대한 비선형 활성화를 제공하고, GLU 함수는 입력값의 일부를 선택적으로 전달하거나 차단하는 게이팅 메커니즘을 제공합니다. 따라서 SwiGLU는 입력값의 특징을 효과적으로 추출하면서도 정보를 적절하게 필터링하여 전달합니다. 이를 통해 모델의 표현력을 향상시키고, 학습 능력을 개선하는 데 도움이 됩니다. SwiGLU FFN은 이러한 특성을 활용하여 Transformer 모델의 성능을 향상시키는 데 사용됩니다.
기능 | FFN | SwiGLU FFN |
활성화 함수 | ReLU, GELU 등 | SwiGLU |
구성 요소 | 단순한 비선형 활성화 함수 | Swish와 GLU의 결합 |
특징 | 단순하고 효과적 | 입력값의 특징 추출 및 필터링 |
성능 | 일반적으로 좋음 | 일부 상황에서 성능 향상 |
- Flash Attention: 이 기술은 어텐션 메커니즘을 사용하여 입력 시퀀스의 각 요소 간의 상대적인 중요도를 계산합니다. "Flash Attention"은 닷 프로덕트(Dot product, 두 벡터의 내적) 어텐션을 통해 입력 시퀀스의 상대적인 중요성을 계산하고, 모델의 성능을 향상시킵니다. 내적은 두 벡터를 요소별로 곱하고 그 결과를 모두 더하여 스칼라 값을 생성하는 연산으로, 두 벡터가 얼마나 유사한지를 나타내는 데 사용될 수 있습니다.
- Tokenizer: LLama와 동일한 토크나이저를 사용하며, 기존의 LLM은 모델의 각 트랜스포머 레이어에 대해 동일한 구성을 사용하여 각 레이어 간의 매개변수를 균일하게 할당하는 반면, OpenELM은 각 트랜스포머 레이어에 대해 다른 구성(예: 헤드 수 및 피드 포워드 네트워크 차원)을 가지고 있으므로 각 레이어의 매개변수를 다르게 할당할 수 있습니다. 이는 더 높은 정확도를 달성하기 위해 사용 가능한 매개변수 예산을 더 효과적으로 활용할 수 있도록 합니다.
레이어별 스케일링
OpenELM의 주요 기술로는 레이어별 스케일링 방법을 사용한 효율적인 매개변수 할당이 있습니다. 이는 각 레이어에서 매개변수를 적절히 조절하여 모델의 정확도를 향상시키는 방법입니다. 기존의 트랜스포머 모델에서는 모든 레이어에 동일한 매개변수가 할당되는 반면, OpenELM은 각 레이어마다 매개변수를 다르게 할당하여 최적의 성능을 달성합니다.
기능 | 레이어별 스케일링 (OpenELM) | 전통적인 트랜스포머 모델 |
층 구성 | 각 트랜스포머 층은 독특한 구성을 가지고 있음 (어텐션 헤드의 수 및 피드-포워드 네트워크 차원) | 모든 트랜스포머 층이 균일한 구성을 가지고 있음 |
파라미터 할당 | 층별 파라미터의 균일하지 않은 할당으로, 가능한 파라미터 예산의 효율적인 활용 가능 | 층별 파라미터의 균일한 할당 |
모델 크기 | 작은 모델 크기로 높은 정확도 달성 가능 | 유사한 정확도를 달성하기 위해 일반적으로 큰 모델 크기 필요 |
확장성 | 더 확장 가능하고 효율적인 파라미터 사용 | 덜 확장 가능하고 효율적인 파라미터 사용 |
아키텍처 | 디코더 전용 트랜스포머 기반 아키텍처 (예: RMSNorm, ROPE, GQA, SwiGLU FFN, 플래시 어텐션) | 균일한 층 구성을 가진 전통적인 트랜스포머 아키텍처 |
이러한 레이어별 스케일링 방법은 모델의 학습과 추론 과정에서 중요한 역할을 합니다. 특히 디코더에 초점을 맞춘 것은 자연어 이해와 생성 작업에 있어서 더욱 효율적인 모델을 구축하기 위한 것입니다. OpenELM은 기존 모델들과 비교하여 더 뛰어난 정확도를 보여주며, 레이어별 스케일링 방법이 모델의 성능을 향상시키는 데 효과적임을 보여줍니다.
OpenELM의 핵심 기술인 레이어별 스케일링의 동작원리는 다음과 같습니다.
- 매개변수 할당: OpenELM은 각 레이어에서 매개변수를 할당하는 과정에서 기존의 트랜스포머 모델과는 다른 방식을 채택합니다. 기존의 트랜스포머 모델에서는 모든 레이어에 동일한 수의 매개변수를 할당합니다. 하지만 OpenELM은 각 레이어마다 다른 수의 매개변수를 할당함으로써 레이어 간의 비대칭성을 도입합니다. 이를 통해 중요한 정보가 보다 효과적으로 전파되도록 합니다.
- 레이어별 가중치 조정: 각 레이어의 매개변수가 할당된 후, 이들은 학습 과정에서 각 레이어에 따라 다르게 업데이트됩니다. 이는 각 레이어가 입력 데이터의 특성을 보다 잘 파악하고 적절한 가중치를 학습할 수 있도록 돕습니다. 또한 이러한 가중치 조정은 레이어 간의 상호 작용을 최적화하여 전체 모델의 성능을 향상시킵니다.
- 출력 생성 및 반복: OpenELM은 디코더만을 포함하고 있으므로, 입력 시퀀스가 디코더에 주어집니다. 입력 시퀀스는 각 레이어를 통과하면서 매개변수가 할당된 각 레이어에서 정보가 처리됩니다. 이후 출력이 생성되고, 다시 반복되는 과정을 통해 출력이 점진적으로 완성됩니다.
벤치마크 결과
논문에서 제시한 벤치마크 결과를 살펴보면 OpenELM은 비슷한 매개변수 모델에 비해서 더 높은 정확도를 보여줍니다. 다양한 대규모 언어 모델(LLM)의 성능을 평가한 결과는 다음과 같습니다.
평가 모델은 Cerebras-GPT, OPT, OpenELM, Pythia, MobiLlama, OLMo이며, 평가 지표에 대한 설명은 다음과 같습니다.
- ARC-c: 상식 추론을 측정하는 데이터 세트입니다.
- HellaSwag: 문장 완성 작업으로, 문맥적 이해와 추론 능력을 평가합니다.
- MMLU: 수학, 과학, 역사 등 57개 과목에 대한 다중 선택 질문 데이터 세트로, 모델의 지식을 테스트합니다.
- TruthfulQA-mc2: 사실적 일관성을 평가하는 데이터 세트입니다.
- Winogrande: 대명사 해결 능력을 측정하는 데이터 세트입니다.
벤치마크 결과에서 OpenELM은 대부분의 작업에서 뛰어난 성능을 보이며, 특히 Winogrande와 HellaSwag에서 높은 점수를 기록하며 언어 이해와 추론 능력이 뛰어남을 시사합니다. 이 벤치마크 결과는 OpenELM이 다양한 작업에서 강력한 성능을 보이는 우수한 LLM임을 보여줍니다.
위 결과의 모든 모델 크기에서 Instruction Tuning을 적용한 모델(녹색 체크 표시)이 적용하지 않은 모델(빨간색 엑스 표시)보다 성능이 우수합니다. 이는 Instruction Tuning이 모델의 성능을 향상시키는 데 효과적인 기술임을 시사합니다. 또한 일반적으로 모델 크기가 클수록 성능이 향상되는 경향이 있습니다. 이는 대규모 모델이 더 복잡한 패턴을 학습하고 작업을 더 잘 수행할 수 있기 때문입니다. 일부 작업은 다른 작업보다 Instruction Tuning의 영향을 더 많이 받습니다. 예를 들어, HellaSwag 및 Winograd와 같은 작업은 상당한 개선을 보이는 반면, MMLU와 같은 작업은 개선 정도가 적습니다.
논문의 결론 및 전망
이 연구는 새로운 오픈소스 소형 언어 모델인 OpenELM을 제안하고 그 성능을 평가하였습니다. OpenELM은 공개 데이터셋을 활용하여 사전 훈련된 디코더 전용 트랜스포머 기반 언어 모델로, 레이어별 스케일링 방법을 도입하여 매개변수를 효율적으로 할당했으며, 프레임워크 전체를 공개함으로써 오픈 리서치 커뮤니티에 접근성을 제공합니다.
향후에는 추론 성능 개선, 다양한 응용분야와 작업에 적용, 편향성 및 안전성 연구 등을 통해 OpenELM은 오픈 리서치 분야에서 주목받는 언어 모델로서 발전할 것으로 기대됩니다.
오늘 블로그 내용은 여기까지입니다. 저는 다음에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다.
2024.03.21 - [AI 논문 분석] - MM1: 애플의 새로운 멀티모달 언어 모델
'AI 언어 모델' 카테고리의 다른 글
GPT-4o: 자연스러운 음성 대화와 뛰어난 코딩 성능을 갖춘 멀티모달 언어 모델 (0) | 2024.05.17 |
---|---|
DeepSeek-V2: 오픈소스 최고 성능과 가성비를 자랑하는 혁신 MoE 언어 모델 (0) | 2024.05.11 |
Phi-3: 마이크로소프트의 작지만 강한 소형 언어 모델, 고난도 스네이크 게임 성공!! (4) | 2024.04.25 |
[Llama 3 70B] Groq을 활용한 함수 호출 및 API 통합! NBA 게임 및 주식 정보 실시간 조회 (4) | 2024.04.21 |
Llama 3: 추론 테스트 및 스네이크 게임 코딩, 에러 없이 한번에 성공! (3) | 2024.04.19 |