콘텐츠로 이동

StableLM

개요

StableLM은 Stability AI에서 개발한 오픈소스 언어 모델 시리즈다. 다양한 크기(1.6B ~ 12B)로 제공되며, 다국어 및 코드 데이터셋으로 학습되었다. Stable LM 2 12B는 2조 토큰의 다국어 및 코드 데이터로 두 번의 에포크 학습되었다.

  • 개발사: Stability AI
  • 최신 버전: Stable LM 2 (2024년 2월)
  • 모델 유형: Decoder-only Transformer

사양

모델 패밀리

모델명 파라미터 컨텍스트 학습 데이터
StableLM-3B-4e1t 3B 4K 1T 토큰
StableLM 2 1.6B 1.6B 4K 2T 토큰
StableLM 2 12B 12.1B 4K 2T 토큰
StableLM-Zephyr-3B 3B 4K 대화 미세조정

Stable LM 2 12B 상세 사양

항목 내용
파라미터 수 12,143,605,760 (12.1B)
Hidden Size 5120
레이어 수 40
어텐션 헤드 32
KV 헤드 8 (GQA)
컨텍스트 길이 4,096 토큰
학습 데이터 2T 토큰
학습 에포크 2

아키텍처 특징

특징 설명
위치 인코딩 RoPE (처음 25% 헤드 차원에만 적용)
정규화 LayerNorm (bias 없음), per-head QK normalization
병렬 레이어 Parallel attention + FFN residual layers
Bias FFN과 GQA에서 bias 제거
토크나이저 Arcade100k (tiktoken.cl100k_base 확장)
어휘 크기 100,352

라이선스 및 가격

항목 내용
라이선스 Stability AI Community License
비상업적 사용 허용
상업적 사용 https://stability.ai/license 참조
멤버십 https://stability.ai/membership

주요 특징

1. 다국어 지원

학습 데이터에 CulturaX 및 OSCAR 코퍼스 포함: - 영어 중심 - 다국어 텍스트 포함

2. 학습 데이터 구성

  • Falcon RefinedWeb
  • RedPajama-Data (Books3 제외)
  • The Pile (Books3 제외)
  • StarCoder (코드)
  • CulturaX (다국어)
  • OSCAR (다국어)

3. 최적화된 아키텍처

  • RoPE를 헤드 차원의 25%에만 적용 (처리량 향상)
  • 병렬 어텐션/FFN 레이어
  • Grouped Query Attention (GQA)
  • Flash Attention 2 지원

4. 학습 인프라

  • 384 NVIDIA H100 GPU (AWS P5 인스턴스)
  • gpt-neox 포크 사용
  • 2D 병렬화 (Data + Tensor Parallel)
  • ZeRO-1 최적화

코드 예시

기본 추론

from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("stabilityai/stablelm-2-12b")
model = AutoModelForCausalLM.from_pretrained(
    "stabilityai/stablelm-2-12b",
    torch_dtype="auto",
)
model.cuda()

inputs = tokenizer("The weather is always wonderful", return_tensors="pt").to(model.device)
tokens = model.generate(
    **inputs,
    max_new_tokens=64,
    temperature=0.70,
    top_p=0.95,
    do_sample=True,
)
print(tokenizer.decode(tokens[0], skip_special_tokens=True))

Flash Attention 2 사용

model = AutoModelForCausalLM.from_pretrained(
    "stabilityai/stablelm-2-12b",
    torch_dtype="auto",
    attn_implementation="flash_attention_2",
)

장점

  1. 다양한 모델 크기 (1.6B ~ 12B)
  2. 다국어 및 코드 데이터 학습
  3. Flash Attention 2 지원
  4. 효율적인 GQA 아키텍처
  5. 비상업적 사용 자유
  6. 기술 보고서 공개

단점

  1. 상업적 사용 시 별도 라이선스 필요
  2. 4K 컨텍스트로 제한적
  3. 베이스 모델로 미세조정 필요
  4. 부적절한 콘텐츠 생성 가능성
  5. transformers 4.40.0 이상 필요

제한 사항

제한 사항 설명
베이스 모델 미세조정 없이 불안정한 동작 가능
콘텐츠 부적절하거나 공격적인 내용 생성 가능
안전성 데이터 필터링에도 불구하고 학습 데이터 영향
민감한 컨텍스트 추가 완화 조치 없이 사용 부적합

참고자료

  • Hugging Face: https://huggingface.co/stabilityai/stablelm-2-12b
  • 기술 보고서: https://arxiv.org/abs/2402.17834
  • GPT-NeoX: https://github.com/EleutherAI/gpt-neox
  • 설정 파일: https://github.com/Stability-AI/StableLM/blob/main/configs/stablelm-2-12b.yml
  • 상업적 라이선스: https://stability.ai/license
  • 문의: lm@stability.ai