대규모 언어 모델 (LLM)의 'L'은 대규모라는 것을 나타내지만 실제로는 더 미묘한 차이가 있습니다. 일부 LLM은 수조 개의 매개변수를 포함하며, 다른 LLM은 훨씬 적은 수로 효과적으로 작동합니다
몇 가지 실제 예시와 다양한 모델 크기가 갖는 실질적인 의미를 살펴보세요.
LLM 크기 및 크기 클래스
웹 개발자는 리소스의 크기를 다운로드 크기로 생각하는 경향이 있습니다. 모델의 문서화된 크기는 매개변수의 수를 대신 나타냅니다. 예를 들어 Gemma 2B는 매개변수가 20억 개 있는 Gemma를 의미합니다.
LLM은 수십만, 수백만, 수십억, 심지어 수조 개의 매개변수가 있을 수 있습니다.
LLM이 큰 LLM은 작은 LLM보다 매개변수가 많아 더 복잡한 언어 관계를 캡처하고 미묘한 프롬프트를 처리할 수 있습니다. 또한 더 큰 데이터 세트로 학습하기도 합니다.
20억 또는 70억과 같은 특정 모델 크기는 흔히 사용됩니다. 예: Gemma 2B, Gemma 7B 또는 Mistral 7B 모델 크기 클래스는 근사치 그룹화입니다. 예를 들어 Gemma 2B에는 약 20억 개의 매개변수가 있지만 정확히는 아닙니다.
모델 크기 클래스는 LLM 성능을 측정하는 실용적인 방법을 제공합니다. 권투의 웨이트 클래스로 생각해 보세요. 동일한 크기 클래스 내의 모델은 더 비교가 용이합니다. 두 개의 2B 모델이 비슷한 성능을 제공할 것입니다.
즉, 특정 작업에 대한 대형 모델과 작은 모델이 동일한 성능을 발휘할 수 있습니다.
GPT-4, Gemini Pro 또는 Ultra와 같은 최신 최첨단 LLM의 모델 크기는 항상 공개되지는 않지만, 수천억 또는 수조 개의 매개변수로 추정됩니다.
모든 모델이 이름에 매개변수 수를 나타내는 것은 아닙니다. 일부 모델은 버전 번호가 접미사로 붙습니다. 예를 들어 Gemini 1.5 Pro는 모델 1.5 버전 (버전 1 뒤)을 나타냅니다.
LLM은 어떻게 될까요?
모델이 LLM으로 사용하기에는 너무 작은 경우는 언제일까요? LLM은 AI 및 ML 커뮤니티에서 다소 유동적으로 정의할 수 있습니다
매개변수가 수십억 개 있는 가장 큰 모델만 실제 LLM으로 간주하는 반면, DistilBERT와 같은 소형 모델은 단순한 NLP 모델로 간주됩니다. DistilBERT와 같이 LLM의 정의에 사용되는 더 작지만 강력한 모델도 있습니다.
기기 내 사용 사례를 위한 더 작은 LLM
대규모 LLM은 추론을 위해 많은 저장 공간과 많은 컴퓨팅 성능이 필요합니다. 특정 하드웨어(예: TPU)를 갖춘 강력한 전용 서버에서 실행해야 합니다.
웹 개발자는 모델이 사용자의 기기에 다운로드하여 실행할 수 있을 만큼 작은지 여부에 관심이 있습니다.
하지만 답변하기 어려운 질문이네요. 현재 다음과 같은 이유로 '이 모델은 대부분의 중급 기기에서 실행할 수 있습니다'를 쉽게 알 수 있는 방법은 없습니다.
- 기기 기능은 메모리, GPU/CPU 사양 등에 따라 매우 다양합니다. 저사양 Android 휴대전화와 NVIDIA® RTX 노트북은 완전히 다릅니다. 사용자의 기기에 관한 데이터 포인트가 있을 수 있습니다. 웹에 액세스하는 데 사용되는 기준 기기의 정의는 아직 없습니다.
- 모델 또는 모델이 실행되는 프레임워크는 특정 하드웨어에서 실행되도록 최적화될 수 있습니다.
- 특정 LLM을 다운로드하여 특정 기기에서 실행할 수 있는지 확인할 수 있는 프로그래매틱 방식은 없습니다. 기기의 다운로드 기능은 여러 요인 중에서도 GPU에 있는 VRAM의 크기에 따라 달라집니다.
하지만 몇 가지 경험적 지식이 있습니다. 오늘날에는 수백만 개에서 수십억 개의 매개변수가 있는 일부 모델은 브라우저, 소비자급 기기에서 실행할 수 있습니다.
예를 들면 다음과 같습니다.
- MediaPipe LLM Inference API가 포함된 Gemma 2B (CPU 전용 기기에도 적합함) 사용해 보기.
- Transformers.js를 사용한 DistilBERT
이것은 초기 필드입니다. 다음과 같이 환경이 변화할 것으로 예상됩니다.
- WebAssembly 및 WebGPU 혁신 기술을 통해 WebGPU는 더 많은 라이브러리, 새로운 라이브러리 및 최적화를 지원하므로 사용자 기기에서 다양한 크기의 LLM을 효율적으로 실행할 수 있을 것으로 예상됩니다.
- 새로운 축소 기법을 통해 더 작고 성능이 우수한 LLM이 점점 더 보편화될 것으로 예상됩니다.
더 작은 LLM을 위한 고려사항
더 작은 LLM으로 작업할 때는 항상 성능과 다운로드 크기를 고려해야 합니다.
성능
모든 모델의 기능은 사용 사례에 따라 크게 달라집니다. 사용 사례에 맞게 미세 조정된 작은 LLM이 대규모 일반 LLM보다 성능이 뛰어날 수 있습니다.
그러나 동일한 모델 계열 내에서 작은 LLM은 큰 LLM보다 성능이 부족합니다. 동일한 사용 사례의 경우 일반적으로 더 작은 LLM을 사용할 때는 프롬프트 엔지니어링 작업을 더 많이 수행해야 합니다.
다운로드 크기
매개변수가 많을수록 다운로드 크기가 커집니다. 이는 작은 것으로 간주되는 모델을 기기 내 사용 사례에서 합리적으로 다운로드할 수 있는지 여부에도 영향을 줍니다.
매개변수 수를 기반으로 모델의 다운로드 크기를 계산하는 기법이 있지만 이 방법은 복잡할 수 있습니다.
2024년 초에는 모델 다운로드 크기가 거의 문서화되지 않습니다. 따라서 기기 내 및 브라우저 내 사용 사례의 경우 Chrome DevTools의 네트워크 패널이나 다른 브라우저 개발자 도구를 사용하여 다운로드 크기를 경험적으로 확인하는 것이 좋습니다.
Gemma는 MediaPipe LLM Inference API와 함께 사용됩니다. DistilBERT는 Transformers.js와 함께 사용됩니다.
모델 축소 기법
모델의 메모리 요구사항을 크게 줄이기 위한 여러 가지 기법이 존재합니다.
- LoRA (Low-Rank Adaptation): 선행 학습된 가중치를 동결하는 미세 조정 기법입니다. LoRA에 관해 자세히 알아보기
- 프루닝: 모델 크기를 줄이기 위해 모델에서 덜 중요한 가중치를 삭제합니다.
- 양자화: 부동 소수점 수 (예: 32비트)에서 낮은 비트 표현 (예: 8비트)으로 가중치 정밀도를 줄입니다.
- 지식 정제: 선행 학습된 더 큰 모델의 동작을 모방하도록 소규모 모델을 학습시킵니다.
- 매개변수 공유: 모델의 여러 부분에 동일한 가중치를 사용하여 고유한 매개변수의 총 수를 줄입니다.