Transformers documentation
커널
커널
이 페이지는 커널 구성 유틸리티를 문서화합니다.
kernelize
kernelize가 hidden kernel wrappers를 발견하고 교체할 수 있도록 임시로 등록합니다.
KernelConfig
클래스 transformers.KernelConfig
< source >( kernel_mapping = Noneuse_local_kernel = Falseinherit_mapping = True )
Kernel configuration class. 이 클래스는 모델의 커널 매핑을 구성하는 데 사용됩니다.
다음 형태의 간단한 kernel_mapping을 변환합니다: { “RMSNorm”: (“kernels-community/layer_norm:LlamaRMSNorm”, {“version”: 1, “trust_remote_code”: True}), … },
또는 로컬 경로:
{ “RMSNorm”: “/home/user/liger_kernels:LigerRMSNorm”, … },
중첩 매핑으로
{ “RMSNorm”: { “cuda”: { Mode.INFERENCE: LayerRepository( repo_id=“kernels-community/layer_norm”, layer_name=“LlamaRMSNorm”, version=1, trust_remote_code=True, ) } } }
또는 로컬 경로:
{ “RMSNorm”: { “cuda”: { Mode.INFERENCE: LocalLayerRepository( repo_path=Path(“/home/user/liger_kernels”), layer_name=“LigerRMSNorm”, ) } } }
kernels 라이브러리와 호환됩니다.
제공되지 않은 경우, 디바이스는 모델의 파라미터에서 추론됩니다. Mode는 모델의 학습 상태에서 추론됩니다.
sanitize_kernel_mapping
< source >( model )
kernel_mapping이 다음을 보장하도록 검증합니다:
- 매핑의 각 layer_name은 모델에 등록되어 있습니다(즉, 모델에는 해당 kernel_layer_name을 가진 모듈이 포함되어 있습니다).
- 각 커널 값은
- ‘org/repo:layer_name’ 형태의 문자열 또는 동일한 문자열과 {“revision”/“version/trust_remote_code”: …} 딕셔너리를 가진 튜플
- 또는 위의 값과 같이 지원되는 장치 유형을 해당 값으로 매핑하는 dict입니다.
- dict의 각 device 키는 “cuda”, “rocm”, “xpu”, “npu”, “neuron”, “tpu”, “mps” 중 하나입니다.
- 각 trust remote code 키는 bool이어야 합니다.
- 명시적으로 전달된 경우, 각 revision 또는 version 키는 상호 배타적으로 존재해야 합니다.
- 각 repo_name은 ‘org/repo:layer_name’ 형식의 유효한 저장소 및 레이어 이름입니다(즉, 슬래시와 콜론을 모두 포함하는 문자열).
- 로컬 경로가 감지되면, 절대 경로가 커널 저장소를 가리키는 ‘/abs/path:layer_name’ 형식이어야 합니다. 예를 들어 “/home/user/layer_norm”과 같습니다.