SGLang의 Transformers 폴백
SGLang의 Transformers 폴백 (Transformers Fallback in SGLang)
이 페이지는 sglang이 transformers에서 사용 가능한 모델로 폴백하는 기능을 설명해요. 대부분의 디코더 스타일 언어 모델에서 동작하며, 비전-언어 모델 지원은 곧 제공될 예정이에요.
출처: 문서
본문
sglang은 transformers에서 사용 가능한 모델로 폴백할 수 있어요. 이는 대부분의 디코더 스타일 언어 모델에서 동작하며 비전-언어 모델 지원은 곧 제공될 예정이에요!
예시 실행 명령 (Example launch Command)
기본적으로 사용 가능하면 sglang 구현을 사용해요. 그렇지 않으면 transformers 구현으로 폴백해요. 하지만 --model-impl을 transformers로 설정해 구현을 전환할 수 있어요.
python3 -m sglang.launch_server \
--model-path meta-llama/Llama-3.2-1B-Instruct \
--host 0.0.0.0 \
--port 30000 \
--model-impl transformers
지원 기능 (Supported features)
양자화 (Quantization)
Transformers 폴백은 SGLang에서 사용 가능한 대부분의 양자화를 지원해요(GGUF 제외). SGLang에서 지원되는 양자화에 대한 자세한 내용은 Quantization page를 참고해 주세요.
원격 코드 (Remote code)
이 폴백은 또한 허브에서 transformers로 trust_remote_code=True와 함께 사용할 수 있고 어텐션을 올바르게 구현한 모든 모델을 프로덕션에서 사용할 수 있게 해줘요!
모델은 다음 두 가지만 있으면 돼요:
from transformers import PreTrainedModel
from torch import nn
class MyAttention(nn.Module):
def forward(self, hidden_states, **kwargs): # <- kwargs are required
...
attention_interface = ALL_ATTENTION_FUNCTIONS[self.config._attn_implementation]
attn_output, attn_weights = attention_interface(
self,
query_states,
key_states,
value_states,
**kwargs,
)
...
class MyModel(PreTrainedModel):
_supports_attention_backend = True
백그라운드에서 일어나는 일은 다음과 같아요:
- 구성(config)이 로드돼요
auto_map에서MyModelPython 클래스가 로드되고, 모델_supports_attention_backend를 확인해요.TransformersModel백엔드가 사용돼요./srt/models/transformers를 참고하세요.self.config._attn_implementation = "sglang"을 활용하므로ALL_ATTENTION_FUNCTIONS사용이 필요해요.
그게 전부예요!