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.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Kernels

Halaman ini mendokumentasikan utilitas konfigurasi kernel.

kernelize

transformers.kernelize

< >

( model: PreTrainedModelmode: Mode | None = None )

Daftarkan sementara wrapper kernel tersembunyi agar kernelize dapat menemukan dan menggantinya.

KernelConfig

kelas transformers.KernelConfig

< >

( kernel_mapping = Noneuse_local_kernel = Falseinherit_mapping = True )

Kelas konfigurasi kernel. Kelas ini digunakan untuk memetakan kernel untuk sebuah model.

create_compatible_mapping

< >

( modelcompile = False )

Mentransformasi kernel_mapping sederhana dengan bentuk: { “RMSNorm”: (“kernels-community/layer_norm:LlamaRMSNorm”, {“version”: 1, “trust_remote_code”: True}), … },

atau untuk jalur lokal:

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

menjadi pemetaan bersarang:

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

atau untuk jalur lokal:

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

yang kompatibel dengan pustaka kernels.

Perangkat disimpulkan dari parameter model jika tidak disediakan. Mode disimpulkan dari status pelatihan model.

sanitize_kernel_mapping

< >

( model )

Parameter

  • model — Instans model yang modulnya diperiksa untuk atribut kernel_layer_name yang terdaftar.

Membuang

ValueError

  • ValueError — Jika layer_name tidak terdaftar dalam model, jika device tidak didukung, atau jika repo_name bukan string ‘org/repo:layer_name’ yang valid.

Memvalidasi kernel_mapping untuk memastikan bahwa:

  1. Setiap layer_name dalam pemetaan didaftarkan di model (yaitu, model berisi modul dengan kernel_layer_name yang cocok).
  2. Setiap nilai kernel adalah
    • baik berupa string dengan format ‘org/repo:layer_name’ atau berupa tuple yang berisi string yang sama dan dict {“revision”/“version/trust_remote_code”: …},
    • atau dict yang memetakan tipe perangkat yang didukung ke nilai-nilai seperti di atas.
  3. Setiap kunci perangkat dalam dict adalah salah satu dari “cuda”, “rocm”, “xpu”, “npu”, “neuron”, “tpu”, atau “mps”.
  4. Setiap kunci trust remote code harus berupa bool.
  5. Setiap kunci revisi atau versi harus ada secara eksklusif satu sama lain jika telah diteruskan secara eksplisit.
  6. Setiap repo_name adalah nama repositori dan layer yang valid dalam format ‘org/repo:layer_name’ (yaitu, string yang mengandung baik slash maupun titik dua).
  7. Jika jalur lokal terdeteksi, formatnya harus ‘/abs/path:layer_name’, di mana jalur absolut menunjuk ke repositori kernel, seperti “/home/user/layer_norm”.
Update on GitHub