
최근 OpenAI에서 GPT-OSS 시리즈 모델을 공개했습니다. 이번 릴리스는 단순한 모델 공개가 아니라, 대규모 언어 모델(LLM)을 훨씬 더 효율적으로 활용할 수 있도록 Transformers 라이브러리에 다양한 핵심 기능이 추가된 것이 특징입니다.
이 글에서는 GPT-OSS 모델과 함께 제공된 커널 최적화, 양자화, 병렬화 기술, 캐시 최적화, 배치 처리 개선 등 최신 기능들을 정리하고, 이를 통해 어떻게 더 빠르고, 더 적은 자원으로, 더 큰 모델을 다룰 수 있는지 살펴보겠습니다.
GPT-OSS의 핵심 특징
- Zero-build 커널: 허브에서 커널을 바로 다운로드해 즉시 사용 가능
- MXFP4 양자화: 4비트 부동소수점 방식으로 대규모 모델을 단일 GPU에서도 실행 가능
- Tensor Parallelism & Expert Parallelism: 모델 파라미터와 MoE(혼합 전문가) 레이어를 GPU 여러 대에 분산 처리
- Dynamic Sliding Window & Cache: 긴 문맥에서도 메모리를 절반 수준으로 절약
- Continuous Batching & Paged Attention: 더 빠르고 효율적인 배치 기반 추론
- 모델 로딩 최적화: 대규모 모델을 GPU 메모리에 더 빠르게 적재
Zero-build 커널
대규모 언어 모델은 행렬 곱셈이나 어텐션 연산 같은 무거운 연산을 반복적으로 수행합니다. 이를 최적화하기 위해 Flash Attention, RMSNorm, MoE 전용 커널 등 다양한 커스텀 커널이 존재하지만, 기존에는 별도의 설치와 빌드 과정이 필요했습니다.
GPT-OSS에서는 허브에서 사전 빌드된 바이너리를 다운로드해 즉시 사용할 수 있게 했습니다. 모델을 로드할 때 use_kernels=True 옵션을 주면 자동으로 최적 커널이 선택됩니다.
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "openai/gpt-oss-20b"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
dtype="auto",
device_map="auto",
use_kernels=True,
)
MXFP4 양자화
LLM 실행에서 가장 큰 문제는 메모리 부족입니다. GPT-OSS는 새로운 MXFP4(4비트 부동소수점) 양자화를 도입해 VRAM 사용량을 크게 줄였습니다.
예를 들어 GPT-OSS 20B 모델은 약 16GB VRAM, GPT-OSS 120B 모델은 약 80GB VRAM으로 실행할 수 있습니다. 즉, 단일 GPU에서도 초대형 모델을 실행할 수 있게 된 것입니다.
from transformers import GptOssConfig
cfg = GptOssConfig.from_pretrained("openai/gpt-oss-120b")
print(cfg.quantization_config)
# 출력 예시: {'quant_method': 'mxfp4'}
GPU가 MXFP4를 지원하지 않으면 자동으로 bfloat16 등 더 높은 정밀도의 경로로 전환됩니다.
Tensor Parallelism과 Expert Parallelism
Tensor Parallelism (TP)
텐서를 여러 GPU에 나눠 계산하는 방식입니다. 긴 시퀀스나 큰 배치에서 처리 속도를 높이고 메모리 사용을 최적화할 수 있습니다.
from transformers import GptOssForCausalLM
model = GptOssForCausalLM.from_pretrained(
"openai/gpt-oss-120b",
tp_plan="auto",
dtype="auto",
).eval()
Expert Parallelism (EP)
MoE 모델에서 전문가 레이어를 여러 GPU에 분산시키는 방식입니다. 입력된 토큰에 따라 필요한 전문가만 실행되므로 자원을 더 효율적으로 사용할 수 있습니다.
from transformers.distributed import DistributedConfig
model = GptOssForCausalLM.from_pretrained(
"openai/gpt-oss-120b",
distributed_config=DistributedConfig(enable_expert_parallel=True),
dtype="auto",
).eval()
TP와 EP를 함께 사용하면 대규모 MoE 모델도 효율적으로 분산 학습과 추론이 가능합니다.
Dynamic Sliding Window와 Cache
GPT-OSS는 슬라이딩 윈도우 어텐션을 지원합니다. 이 방식은 긴 문맥을 다룰 때 캐시 메모리가 무한히 늘어나는 문제를 방지합니다.
예를 들어 윈도우 크기가 128이라면 캐시는 128 토큰까지만 유지하고 그 이전 토큰은 제거해 메모리 사용량을 절반 이상 줄일 수 있습니다.
from transformers import DynamicCache
cache = DynamicCache(config=model.config)
generated = model.generate(
**inputs,
max_new_tokens=500,
past_key_values=cache
)
Continuous Batching과 Paged Attention
기존 정적 배칭(Static Batching)에서는 배치 내 일부 시퀀스가 먼저 종료되면 GPU가 놀게 되었습니다. GPT-OSS는 연속 배칭(Continuous Batching)을 도입해 새로운 요청을 즉시 배치에 채워 넣어 GPU 활용도를 극대화합니다.
벤치마크 결과, 정적 배칭 대비 연속 배칭이 토큰 처리 속도에서 더 뛰어난 성능을 보였습니다.
모델 로딩 최적화
수십억 개 파라미터를 가진 모델을 GPU에 적재할 때, 레이어마다 메모리 할당을 반복하면 속도가 느려집니다. GPT-OSS는 이를 해결하기 위해 미리 큰 메모리 블록을 예약하고, 레이어를 빠르게 할당하는 방식을 도입했습니다.
그 결과 모델 로딩 시간이 단축되고, 멀티 GPU 환경에서도 더 효율적으로 작동합니다.
GPT-OSS는 단순한 모델 릴리스를 넘어, 대규모 언어 모델을 더 적은 자원으로 더 빠르게 실행할 수 있는 기반을 제공합니다.
연구자에게는 단일 GPU에서도 초대형 모델을 실험할 수 있는 기회를, 기업에게는 인프라 비용 절감과 더 빠른 응답 속도를, 오픈소스 커뮤니티에게는 범용적인 커널과 최적화 기술 공유라는 가치를 제공합니다.
앞으로 GPT-OSS와 Transformers의 발전은 대규모 AI 모델의 대중화와 실용화를 크게 앞당길 것으로 기대됩니다.
Tricks from OpenAI gpt-oss YOU 🫵 can use with transformers
huggingface.co

'인공지능' 카테고리의 다른 글
| Replit Agent 3 공개: 가장 자율적인 AI 에이전트의 탄생 (0) | 2025.09.14 |
|---|---|
| Warp Code: 현대 개발자를 위한 새로운 Emacs 시대의 서막 (0) | 2025.09.14 |
| 에이전트의 성능을 극대화하는 도구 설계법: MCP 기반 최적화 전략 (0) | 2025.09.14 |
| 구글 AI 엣지 갤러리: 오프라인에서 즐기는 생성형 AI의 새로운 가능성 (0) | 2025.09.13 |
| LiveMCP-101: 현실 환경에서 AI 에이전트를 테스트하는 새로운 벤치마크 (0) | 2025.09.13 |