Transformers documentation
カーネル
カーネル
このページでは、カーネル設定ユーティリティについて説明します。
kernelize
kernelize が検出して置き換えられるように、一時的に隠しカーネルのラッパーを登録します。
KernelConfig
class transformers.KernelConfig
< source >( kernel_mapping = Noneuse_local_kernel = Falseinherit_mapping = True )
カーネル設定クラス。このクラスは、モデルのカーネルマッピングを設定するために使用されます。
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 内の各デバイスキーは、“cuda”、“rocm”、“xpu”、“npu”、“neuron”、“tpu”、“mps” のいずれかです。
- 各 trust_remote_code キーは bool 型である必要があります。
- 明示的に渡された場合、各リビジョンまたはバージョンキーは互いに排他的に存在する必要があります。
- 各 repo_name は、‘org/repo:layer_name’ 形式(つまり、スラッシュとコロンを両方含む文字列)の、有効なリポジトリ名およびレイヤー名です。
- ローカルパスが検出された場合、その形式は‘/abs/path:layer_name’である必要があります。ここで、絶対パスはカーネルリポジトリを指します。例: “/home/user/layer_norm”。