Merge pull request #975 from statelesshz/npu-support

Add Ascend NPU support

Former-commit-id: ac8648b431878b2ecfd9f4425d1b303b2806e233
This commit is contained in:
hoshi-hiyouga 2023-09-20 14:56:50 +08:00 committed by GitHub
commit 2e493f8d2a

View File

@ -13,7 +13,7 @@ from transformers import (
PreTrainedModel, PreTrainedModel,
PreTrainedTokenizerBase PreTrainedTokenizerBase
) )
from transformers.utils import check_min_version from transformers.utils import check_min_version, is_torch_npu_available
from transformers.utils.versions import require_version from transformers.utils.versions import require_version
from trl import AutoModelForCausalLMWithValueHead from trl import AutoModelForCausalLMWithValueHead
@ -215,6 +215,9 @@ def load_model_and_tokenizer(
# Prepare model for inference # Prepare model for inference
if not is_trainable: if not is_trainable:
model.requires_grad_(False) # fix all model params model.requires_grad_(False) # fix all model params
if is_torch_npu_available():
infer_dtype = torch.float16
else:
infer_dtype = torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16 # detect cuda capability infer_dtype = torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16 # detect cuda capability
model = model.to(infer_dtype) if model_args.quantization_bit is None else model model = model.to(infer_dtype) if model_args.quantization_bit is None else model