HF Rotary Embeddings 유틸 — 구현과 rope_type
HF Rotary Embeddings 유틸 — 구현과 rope_type
Hugging Face Transformers 의 로터리 임베딩 유틸 문서는 RoPE가 내부에서 어떻게 구현되고, rope_type 과 확장 파라미터로 어떻게 변형을 고르는지를 설명해요.
핵심 내용
- 쿼리·키 벡터를 복소 평면에서 회전시켜 상대 위치를 반영해요.
rope_type으로 변형 선택:default,linear,dynamic,yarn,longrope,llama3.rope_theta(기본 10000.0),factor,original_max_position_embeddings등으로 확장을 조절해요.
from transformers import Gemma3Config
config.rope_parameters = {
"full_attention": {"rope_type": "dynamic", "rope_theta": 1000000.0, "factor": 8.0},
}
사용 팁
- 짧은 컨텍스트 모델을 긴 컨텍스트로 확장할 때
yarn/dynamic/longrope같은 변형을 써요. partial_rotary_factor로 RoPE를 적용할 차원 비율을 조절할 수 있어요.