Transformers documentation

커널

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

커널

이 페이지는 커널 구성 유틸리티를 문서화합니다.

kernelize

transformers.kernelize

< >

( model: PreTrainedModelmode: Mode | None = None )

kernelize가 hidden kernel wrappers를 발견하고 교체할 수 있도록 임시로 등록합니다.

KernelConfig

클래스 transformers.KernelConfig

< >

( kernel_mapping = Noneuse_local_kernel = Falseinherit_mapping = True )

Kernel configuration class. 이 클래스는 모델의 커널 매핑을 구성하는 데 사용됩니다.

create_compatible_mapping

< >

( modelcompile = False )

다음 형태의 간단한 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

< >

( model )

매개변수

  • model — 등록된 kernel_layer_name 속성을 검사할 모듈을 가진 모델 인스턴스.

예외

ValueError

  • ValueError — layer_name이 모델에 등록되지 않았거나, device가 지원되지 않거나, repo_name이 유효한 ‘org/repo:layer_name’ 문자열이 아닌 경우.

kernel_mapping이 다음을 보장하도록 검증합니다:

  1. 매핑의 각 layer_name은 모델에 등록되어 있습니다(즉, 모델에는 해당 kernel_layer_name을 가진 모듈이 포함되어 있습니다).
  2. 각 커널 값은
    • ‘org/repo:layer_name’ 형태의 문자열 또는 동일한 문자열과 {“revision”/“version/trust_remote_code”: …} 딕셔너리를 가진 튜플
    • 또는 위의 값과 같이 지원되는 장치 유형을 해당 값으로 매핑하는 dict입니다.
  3. dict의 각 device 키는 “cuda”, “rocm”, “xpu”, “npu”, “neuron”, “tpu”, “mps” 중 하나입니다.
  4. 각 trust remote code 키는 bool이어야 합니다.
  5. 명시적으로 전달된 경우, 각 revision 또는 version 키는 상호 배타적으로 존재해야 합니다.
  6. 각 repo_name은 ‘org/repo:layer_name’ 형식의 유효한 저장소 및 레이어 이름입니다(즉, 슬래시와 콜론을 모두 포함하는 문자열).
  7. 로컬 경로가 감지되면, 절대 경로가 커널 저장소를 가리키는 ‘/abs/path:layer_name’ 형식이어야 합니다. 예를 들어 “/home/user/layer_norm”과 같습니다.
Update on GitHub