def METHOD_NAME(
    method_name: str,
    partial_kwargs: dict[str, t.Any] | None = None,
) -> t.Callable[..., torch.Tensor]:
    if partial_kwargs is None:
        partial_kwargs = {}
    def _run(
        self: PytorchModelRunnable,
        *args: ext.PdDataFrame | ext.NpNDArray | torch.Tensor,
        **kwargs: ext.PdDataFrame | ext.NpNDArray | torch.Tensor,
    ) -> torch.Tensor:
        params = Params(*args, **kwargs)
        def _mapping(item: T) -> torch.Tensor | T:
            if LazyType["ext.NpNDArray"]("numpy.ndarray").isinstance(item):
                return torch.Tensor(item, device=self.device_id)
            if LazyType["ext.PdDataFrame"]("pandas.DataFrame").isinstance(item):
                return torch.Tensor(item.to_numpy(), device=self.device_id)
            if LazyType["torch.Tensor"]("torch.Tensor").isinstance(item):
                return item.to(self.device_id)
            else:
                return item
        with inference_mode_ctx():
            params = params.map(_mapping)
            return getattr(self.model, method_name)(
                *params.args,
                **dict(partial_kwargs, **params.kwargs),
            )
    return _run