Transformers documentation

커널

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