Transformers documentation

Kernels

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

and get access to the augmented documentation experience

to get started

Kernels

Trang này tài liệu hóa các tiện ích cấu hình kernel.

kernelize

transformers.kernelize

< >

( model: PreTrainedModelmode: Mode | None = None )

Đăng ký tạm thời các wrapper kernel ẩn để kernelize có thể phát hiện và thay thế chúng.

KernelConfig

lớp transformers.KernelConfig

< >

( kernel_mapping = Noneuse_local_kernel = Falseinherit_mapping = True )

Lớp cấu hình kernel. Lớp này được sử dụng để cấu hình ánh xạ kernel cho một mô hình.

create_compatible_mapping

< >

( modelcompile = False )

Biến đổi một kernel_mapping đơn giản có dạng: { “RMSNorm”: (“kernels-community/layer_norm:LlamaRMSNorm”, {“version”: 1, “trust_remote_code”: True}), … },

hoặc cho đường dẫn cục bộ:

{ “RMSNorm”: “/home/user/liger_kernels:LigerRMSNorm”, … },

thành một ánh xạ lồng nhau:

{ “RMSNorm”: { “cuda”: { Mode.INFERENCE: LayerRepository( repo_id=“kernels-community/layer_norm”, layer_name=“LlamaRMSNorm”, version=1, trust_remote_code=True, ) } } }

hoặc cho đường dẫn cục bộ:

{ “RMSNorm”: { “cuda”: { Mode.INFERENCE: LocalLayerRepository( repo_path=Path(“/home/user/liger_kernels”), layer_name=“LigerRMSNorm”, ) } } }

tương thích với thư viện kernels.

Thiết bị được suy ra từ các tham số của mô hình nếu không được cung cấp. Chế độ được suy ra từ trạng thái huấn luyện của mô hình.

sanitize_kernel_mapping

< >

( model )

Tham số

  • model — Bản thể hiện mô hình mà các module của nó được kiểm tra xem có thuộc tính kernel_layer_name đã đăng ký hay không.

Gây ra

ValueError

  • ValueError — Nếu một layer_name không được đăng ký trong model, nếu một device không được hỗ trợ, hoặc nếu một repo_name không phải là chuỗi ‘org/repo:layer_name’ hợp lệ.

Kiểm tra tính hợp lệ của kernel_mapping để đảm bảo rằng:

  1. Mỗi layer_name trong mapping được đăng ký trong model (tức là model chứa một module có kernel_layer_name khớp).
  2. Mỗi giá trị kernel là
    • một chuỗi có dạng ‘org/repo:layer_name’ hoặc một tuple chứa cùng một chuỗi và một dict của {“revision”/“version/trust_remote_code”: …},
    • hoặc một dict ánh xạ các loại thiết bị được hỗ trợ đến các giá trị như trên.
  3. Mỗi khóa thiết bị trong một dict là một trong “cuda”, “rocm”, “xpu”, “npu”, “neuron”, “tpu”, hoặc “mps”.
  4. Mỗi khóa trust remote code phải là một giá trị bool.
  5. Mỗi khóa revision hoặc version phải tồn tại độc quyền với nhau nếu chúng được truyền vào một cách tường minh.
  6. Mỗi repo_name là một tên kho và tên lớp hợp lệ có định dạng ‘org/repo:layer_name’ (tức là một chuỗi chứa cả dấu gạch chéo và dấu hai chấm).
  7. Nếu phát hiện đường dẫn cục bộ, nó phải ở định dạng ‘/abs/path:layer_name’, trong đó đường dẫn tuyệt đối trỏ đến kho kernel, ví dụ “/home/user/layer_norm”.
Update on GitHub