mirror of
https://github.com/huggingface/transformers.git
synced 2025-07-03 12:50:06 +06:00
enable misc test cases on XPU (#38852)
Some checks are pending
Self-hosted runner (benchmark) / Benchmark (aws-g5-4xlarge-cache) (push) Waiting to run
Build documentation / build (push) Waiting to run
Slow tests on important models (on Push - A10) / Get all modified files (push) Waiting to run
Slow tests on important models (on Push - A10) / Slow & FA2 tests (push) Blocked by required conditions
Self-hosted runner (push-caller) / Check if setup was changed (push) Waiting to run
Self-hosted runner (push-caller) / build-docker-containers (push) Blocked by required conditions
Self-hosted runner (push-caller) / Trigger Push CI (push) Blocked by required conditions
Secret Leaks / trufflehog (push) Waiting to run
Update Transformers metadata / build_and_package (push) Waiting to run
Some checks are pending
Self-hosted runner (benchmark) / Benchmark (aws-g5-4xlarge-cache) (push) Waiting to run
Build documentation / build (push) Waiting to run
Slow tests on important models (on Push - A10) / Get all modified files (push) Waiting to run
Slow tests on important models (on Push - A10) / Slow & FA2 tests (push) Blocked by required conditions
Self-hosted runner (push-caller) / Check if setup was changed (push) Waiting to run
Self-hosted runner (push-caller) / build-docker-containers (push) Blocked by required conditions
Self-hosted runner (push-caller) / Trigger Push CI (push) Blocked by required conditions
Secret Leaks / trufflehog (push) Waiting to run
Update Transformers metadata / build_and_package (push) Waiting to run
* enable misc test cases on XPU Signed-off-by: YAO Matrix <matrix.yao@intel.com> * fix style Signed-off-by: YAO Matrix <matrix.yao@intel.com> * tweak bamba ground truth on XPU Signed-off-by: YAO Matrix <matrix.yao@intel.com> * remove print Signed-off-by: YAO Matrix <matrix.yao@intel.com> * one more Signed-off-by: YAO Matrix <matrix.yao@intel.com> * fix style Signed-off-by: YAO Matrix <matrix.yao@intel.com> --------- Signed-off-by: YAO Matrix <matrix.yao@intel.com>
This commit is contained in:
parent
d058f81e5b
commit
3526e25d3d
@ -391,7 +391,7 @@ class TrainingArguments:
|
|||||||
installation](https://github.com/intel/intel-extension-for-pytorch).
|
installation](https://github.com/intel/intel-extension-for-pytorch).
|
||||||
bf16 (`bool`, *optional*, defaults to `False`):
|
bf16 (`bool`, *optional*, defaults to `False`):
|
||||||
Whether to use bf16 16-bit (mixed) precision training instead of 32-bit training. Requires Ampere or higher
|
Whether to use bf16 16-bit (mixed) precision training instead of 32-bit training. Requires Ampere or higher
|
||||||
NVIDIA architecture or using CPU (use_cpu) or Ascend NPU. This is an experimental API and it may change.
|
NVIDIA architecture or Intel XPU or using CPU (use_cpu) or Ascend NPU. This is an experimental API and it may change.
|
||||||
fp16 (`bool`, *optional*, defaults to `False`):
|
fp16 (`bool`, *optional*, defaults to `False`):
|
||||||
Whether to use fp16 16-bit (mixed) precision training instead of 32-bit training.
|
Whether to use fp16 16-bit (mixed) precision training instead of 32-bit training.
|
||||||
fp16_opt_level (`str`, *optional*, defaults to 'O1'):
|
fp16_opt_level (`str`, *optional*, defaults to 'O1'):
|
||||||
|
@ -4892,7 +4892,7 @@ class GenerationIntegrationTests(unittest.TestCase):
|
|||||||
# If the generate doesn't infer the DECODER device map correctly, this will fail
|
# If the generate doesn't infer the DECODER device map correctly, this will fail
|
||||||
_ = model.generate(**inputs, max_new_tokens=2, do_sample=False)
|
_ = model.generate(**inputs, max_new_tokens=2, do_sample=False)
|
||||||
|
|
||||||
@require_torch_gpu
|
@require_torch_accelerator
|
||||||
def test_cpu_offload_doesnt_compile(self):
|
def test_cpu_offload_doesnt_compile(self):
|
||||||
"""Test that CPU offload doesn't trigger compilation"""
|
"""Test that CPU offload doesn't trigger compilation"""
|
||||||
tokenizer = AutoTokenizer.from_pretrained("hf-internal-testing/tiny-random-MistralForCausalLM")
|
tokenizer = AutoTokenizer.from_pretrained("hf-internal-testing/tiny-random-MistralForCausalLM")
|
||||||
|
@ -610,22 +610,15 @@ class BambaModelIntegrationTest(unittest.TestCase):
|
|||||||
cls.device_properties = get_device_properties()
|
cls.device_properties = get_device_properties()
|
||||||
|
|
||||||
def test_simple_generate(self):
|
def test_simple_generate(self):
|
||||||
|
# fmt: off
|
||||||
expectations = Expectations(
|
expectations = Expectations(
|
||||||
{
|
{
|
||||||
(
|
("cuda", 8): "<|begin_of_text|>Hey how are you doing on this lovely evening? I hope you are all having a good time.",
|
||||||
"cuda",
|
("rocm", 9): "<|begin_of_text|>Hey how are you doing on this lovely evening? I hope you are doing well. I am here",
|
||||||
8,
|
("xpu", 3): "<|begin_of_text|>Hey how are you doing on this lovely evening? I hope you are all doing well. I am",
|
||||||
): "<|begin_of_text|>Hey how are you doing on this lovely evening? I hope you are all having a good time.",
|
|
||||||
(
|
|
||||||
"rocm",
|
|
||||||
9,
|
|
||||||
): "<|begin_of_text|>Hey how are you doing on this lovely evening? I hope you are doing well. I am here",
|
|
||||||
(
|
|
||||||
"xpu",
|
|
||||||
3,
|
|
||||||
): "<|begin_of_text|>Hey how are you doing on this lovely evening? I hope you are all doing well. Today I",
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
# fmt: on
|
||||||
|
|
||||||
self.model.to(torch_device)
|
self.model.to(torch_device)
|
||||||
|
|
||||||
@ -659,6 +652,7 @@ class BambaModelIntegrationTest(unittest.TestCase):
|
|||||||
#
|
#
|
||||||
# Note: Key 9 is currently set for MI300, but may need potential future adjustments for H100s,
|
# Note: Key 9 is currently set for MI300, but may need potential future adjustments for H100s,
|
||||||
# considering differences in hardware processing and potential deviations in generated text.
|
# considering differences in hardware processing and potential deviations in generated text.
|
||||||
|
# fmt: off
|
||||||
EXPECTED_TEXTS = Expectations(
|
EXPECTED_TEXTS = Expectations(
|
||||||
{
|
{
|
||||||
("cuda", 7): [],
|
("cuda", 7): [],
|
||||||
@ -671,11 +665,12 @@ class BambaModelIntegrationTest(unittest.TestCase):
|
|||||||
"!!!<|begin_of_text|>I am late! I need to be at the airport in 20 minutes! I",
|
"!!!<|begin_of_text|>I am late! I need to be at the airport in 20 minutes! I",
|
||||||
],
|
],
|
||||||
("xpu", 3): [
|
("xpu", 3): [
|
||||||
"<|begin_of_text|>Hey how are you doing on this lovely evening? I hope you are all doing well. Today I",
|
"<|begin_of_text|>Hey how are you doing on this lovely evening? I hope you are all doing well. I am",
|
||||||
"!!!<|begin_of_text|>I am late! I need to get to work! I have to get to the",
|
"!!!<|begin_of_text|>I am late! I need to get to work! I have to get to the",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
# fmt: on
|
||||||
EXPECTED_TEXT = EXPECTED_TEXTS.get_expectation()
|
EXPECTED_TEXT = EXPECTED_TEXTS.get_expectation()
|
||||||
|
|
||||||
self.model.to(torch_device)
|
self.model.to(torch_device)
|
||||||
|
@ -27,7 +27,13 @@ from transformers import (
|
|||||||
is_torch_available,
|
is_torch_available,
|
||||||
is_vision_available,
|
is_vision_available,
|
||||||
)
|
)
|
||||||
from transformers.testing_utils import require_torch, require_torch_gpu, require_vision, slow, torch_device
|
from transformers.testing_utils import (
|
||||||
|
require_torch,
|
||||||
|
require_torch_accelerator,
|
||||||
|
require_vision,
|
||||||
|
slow,
|
||||||
|
torch_device,
|
||||||
|
)
|
||||||
from transformers.utils import cached_property
|
from transformers.utils import cached_property
|
||||||
|
|
||||||
|
|
||||||
@ -680,7 +686,7 @@ class DFineModelTest(ModelTesterMixin, PipelineTesterMixin, unittest.TestCase):
|
|||||||
self.assertTrue(not failed_cases, message)
|
self.assertTrue(not failed_cases, message)
|
||||||
|
|
||||||
@parameterized.expand(["float32", "float16", "bfloat16"])
|
@parameterized.expand(["float32", "float16", "bfloat16"])
|
||||||
@require_torch_gpu
|
@require_torch_accelerator
|
||||||
@slow
|
@slow
|
||||||
def test_inference_with_different_dtypes(self, torch_dtype_str):
|
def test_inference_with_different_dtypes(self, torch_dtype_str):
|
||||||
torch_dtype = {
|
torch_dtype = {
|
||||||
@ -702,7 +708,7 @@ class DFineModelTest(ModelTesterMixin, PipelineTesterMixin, unittest.TestCase):
|
|||||||
_ = model(**self._prepare_for_class(inputs_dict, model_class))
|
_ = model(**self._prepare_for_class(inputs_dict, model_class))
|
||||||
|
|
||||||
@parameterized.expand(["float32", "float16", "bfloat16"])
|
@parameterized.expand(["float32", "float16", "bfloat16"])
|
||||||
@require_torch_gpu
|
@require_torch_accelerator
|
||||||
@slow
|
@slow
|
||||||
def test_inference_equivalence_for_static_and_dynamic_anchors(self, torch_dtype_str):
|
def test_inference_equivalence_for_static_and_dynamic_anchors(self, torch_dtype_str):
|
||||||
torch_dtype = {
|
torch_dtype = {
|
||||||
|
@ -119,7 +119,7 @@ class Glm4IntegrationTest(unittest.TestCase):
|
|||||||
{
|
{
|
||||||
("xpu", 3): [
|
("xpu", 3): [
|
||||||
"Hello I am doing a project on the history of the internet and I need to know what the first website was and what",
|
"Hello I am doing a project on the history of the internet and I need to know what the first website was and what",
|
||||||
"Hi today I am going to tell you about the most common disease in the world. This disease is called diabetes",
|
"Hi today I am going to tell you about the most common mistakes that people make when they are learning English.",
|
||||||
],
|
],
|
||||||
("cuda", 7): [],
|
("cuda", 7): [],
|
||||||
("cuda", 8): [
|
("cuda", 8): [
|
||||||
@ -177,7 +177,7 @@ class Glm4IntegrationTest(unittest.TestCase):
|
|||||||
{
|
{
|
||||||
("xpu", 3): [
|
("xpu", 3): [
|
||||||
"Hello I am doing a project on the history of the internet and I need to know what the first website was and what",
|
"Hello I am doing a project on the history of the internet and I need to know what the first website was and what",
|
||||||
"Hi today I am going to tell you about the most common disease in the world. This disease is called diabetes",
|
"Hi today I am going to tell you about the most common mistakes that people make when they are learning English.",
|
||||||
],
|
],
|
||||||
("cuda", 7): [],
|
("cuda", 7): [],
|
||||||
("cuda", 8): [
|
("cuda", 8): [
|
||||||
|
@ -1035,7 +1035,7 @@ class MusicgenTest(ModelTesterMixin, GenerationTesterMixin, PipelineTesterMixin,
|
|||||||
self.skipTest(reason="Musicgen doesn't use the MusicgenFlashAttention2 class method.")
|
self.skipTest(reason="Musicgen doesn't use the MusicgenFlashAttention2 class method.")
|
||||||
|
|
||||||
@require_torch_sdpa
|
@require_torch_sdpa
|
||||||
@require_torch_gpu
|
@require_torch_accelerator
|
||||||
@slow
|
@slow
|
||||||
def test_sdpa_can_dispatch_on_flash(self):
|
def test_sdpa_can_dispatch_on_flash(self):
|
||||||
if not self.has_attentions:
|
if not self.has_attentions:
|
||||||
@ -1046,8 +1046,8 @@ class MusicgenTest(ModelTesterMixin, GenerationTesterMixin, PipelineTesterMixin,
|
|||||||
self.skipTest(reason="This test requires an NVIDIA GPU with compute capability >= 8.0")
|
self.skipTest(reason="This test requires an NVIDIA GPU with compute capability >= 8.0")
|
||||||
elif device_type == "rocm" and major < 9:
|
elif device_type == "rocm" and major < 9:
|
||||||
self.skipTest(reason="This test requires an AMD GPU with compute capability >= 9.0")
|
self.skipTest(reason="This test requires an AMD GPU with compute capability >= 9.0")
|
||||||
else:
|
elif device_type not in ["cuda", "rocm", "xpu"]:
|
||||||
self.skipTest(reason="This test requires a Nvidia or AMD GPU")
|
self.skipTest(reason="This test requires a Nvidia or AMD GPU or an Intel XPU")
|
||||||
|
|
||||||
torch.compiler.reset()
|
torch.compiler.reset()
|
||||||
|
|
||||||
|
@ -1035,7 +1035,7 @@ class MusicgenMelodyTest(ModelTesterMixin, GenerationTesterMixin, PipelineTester
|
|||||||
self.skipTest(reason="MusicgenMelody doesn't use the MusicgenMelodyFlashAttention2 class method.")
|
self.skipTest(reason="MusicgenMelody doesn't use the MusicgenMelodyFlashAttention2 class method.")
|
||||||
|
|
||||||
@require_torch_sdpa
|
@require_torch_sdpa
|
||||||
@require_torch_gpu
|
@require_torch_accelerator
|
||||||
@slow
|
@slow
|
||||||
def test_sdpa_can_dispatch_on_flash(self):
|
def test_sdpa_can_dispatch_on_flash(self):
|
||||||
if not self.has_attentions:
|
if not self.has_attentions:
|
||||||
@ -1046,8 +1046,8 @@ class MusicgenMelodyTest(ModelTesterMixin, GenerationTesterMixin, PipelineTester
|
|||||||
self.skipTest(reason="This test requires an NVIDIA GPU with compute capability >= 8.0")
|
self.skipTest(reason="This test requires an NVIDIA GPU with compute capability >= 8.0")
|
||||||
elif device_type == "rocm" and major < 9:
|
elif device_type == "rocm" and major < 9:
|
||||||
self.skipTest(reason="This test requires an AMD GPU with compute capability >= 9.0")
|
self.skipTest(reason="This test requires an AMD GPU with compute capability >= 9.0")
|
||||||
else:
|
elif device_type not in ["cuda", "rocm", "xpu"]:
|
||||||
self.skipTest(reason="This test requires a Nvidia or AMD GPU")
|
self.skipTest(reason="This test requires a Nvidia or AMD GPU or an Intel XPU")
|
||||||
|
|
||||||
torch.compiler.reset()
|
torch.compiler.reset()
|
||||||
|
|
||||||
|
@ -21,7 +21,14 @@ import numpy as np
|
|||||||
import requests
|
import requests
|
||||||
from packaging import version
|
from packaging import version
|
||||||
|
|
||||||
from transformers.testing_utils import is_flaky, require_torch, require_torch_gpu, require_vision, slow, torch_device
|
from transformers.testing_utils import (
|
||||||
|
is_flaky,
|
||||||
|
require_torch,
|
||||||
|
require_torch_accelerator,
|
||||||
|
require_vision,
|
||||||
|
slow,
|
||||||
|
torch_device,
|
||||||
|
)
|
||||||
from transformers.utils import is_torch_available, is_torchvision_available, is_vision_available
|
from transformers.utils import is_torch_available, is_torchvision_available, is_vision_available
|
||||||
|
|
||||||
from ...test_image_processing_common import ImageProcessingTestMixin, prepare_image_inputs
|
from ...test_image_processing_common import ImageProcessingTestMixin, prepare_image_inputs
|
||||||
@ -337,7 +344,7 @@ class VitMatteImageProcessingTest(ImageProcessingTestMixin, unittest.TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
@slow
|
@slow
|
||||||
@require_torch_gpu
|
@require_torch_accelerator
|
||||||
@require_vision
|
@require_vision
|
||||||
def test_can_compile_fast_image_processor(self):
|
def test_can_compile_fast_image_processor(self):
|
||||||
# override as trimaps are needed for the image processor
|
# override as trimaps are needed for the image processor
|
||||||
|
@ -1623,9 +1623,10 @@ class TrainerIntegrationTest(TestCasePlus, TrainerIntegrationCommon):
|
|||||||
self.assertFalse(is_any_loss_nan_or_inf(log_history_filter))
|
self.assertFalse(is_any_loss_nan_or_inf(log_history_filter))
|
||||||
|
|
||||||
def test_train_and_eval_dataloaders(self):
|
def test_train_and_eval_dataloaders(self):
|
||||||
if torch_device in ["cuda", "xpu"]:
|
if torch_device in ["cuda"]:
|
||||||
n_gpu = max(1, backend_device_count(torch_device))
|
n_gpu = max(1, backend_device_count(torch_device))
|
||||||
else:
|
else:
|
||||||
|
# DP is decprecated by PyTorch, accelerators like XPU doesn't support DP
|
||||||
n_gpu = 1
|
n_gpu = 1
|
||||||
|
|
||||||
tmp_dir = self.get_auto_remove_tmp_dir()
|
tmp_dir = self.get_auto_remove_tmp_dir()
|
||||||
@ -3940,7 +3941,7 @@ class TrainerIntegrationTest(TestCasePlus, TrainerIntegrationCommon):
|
|||||||
from torch import _dynamo as torchdynamo
|
from torch import _dynamo as torchdynamo
|
||||||
|
|
||||||
class CustomTrainer(Trainer):
|
class CustomTrainer(Trainer):
|
||||||
def compute_loss(self, model, inputs, return_outputs=False):
|
def compute_loss(self, model, inputs, num_items_in_batch=None, return_outputs=False):
|
||||||
x = inputs["x"]
|
x = inputs["x"]
|
||||||
output = model(x)
|
output = model(x)
|
||||||
if self.args.n_gpu == 1:
|
if self.args.n_gpu == 1:
|
||||||
|
@ -556,7 +556,7 @@ class CacheHardIntegrationTest(unittest.TestCase):
|
|||||||
_ = model(**inputs)
|
_ = model(**inputs)
|
||||||
_ = model.generate(**inputs, max_new_tokens=2, cache_implementation="hybrid")
|
_ = model.generate(**inputs, max_new_tokens=2, cache_implementation="hybrid")
|
||||||
|
|
||||||
@require_torch_gpu
|
@require_torch_accelerator
|
||||||
@parameterized.expand(TEST_CACHE_IMPLEMENTATIONS)
|
@parameterized.expand(TEST_CACHE_IMPLEMENTATIONS)
|
||||||
def test_cache_gptj_model(self, cache_implementation):
|
def test_cache_gptj_model(self, cache_implementation):
|
||||||
"""Tests caches with GPT-J model. Regression test for https://github.com/huggingface/transformers/pull/34799"""
|
"""Tests caches with GPT-J model. Regression test for https://github.com/huggingface/transformers/pull/34799"""
|
||||||
|
Loading…
Reference in New Issue
Block a user