test_torchao.py 2.09 KB
Newer Older
Driss Guessous's avatar
Driss Guessous committed
1
# SPDX-License-Identifier: Apache-2.0
2
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
Driss Guessous's avatar
Driss Guessous committed
3
4
5
6
import importlib.metadata
import importlib.util

import pytest
7
import torch
Driss Guessous's avatar
Driss Guessous committed
8
9
10
11
12
13
14
15

DTYPE = ["bfloat16"]

TORCHAO_AVAILABLE = importlib.util.find_spec("torchao") is not None


@pytest.mark.skipif(not TORCHAO_AVAILABLE, reason="torchao is not available")
def test_pre_quantized_model(vllm_runner):
16
    with vllm_runner("drisspg/fp8-opt-125m",
Driss Guessous's avatar
Driss Guessous committed
17
18
19
20
21
22
23
24
25
                     quantization="torchao",
                     dtype="bfloat16",
                     enforce_eager=True) as llm:
        output = llm.generate_greedy(["The capital of France is"],
                                     max_tokens=32)
    assert output
    print(output)


26
27
28
29
30
31
32
@pytest.mark.skipif(not TORCHAO_AVAILABLE, reason="torchao is not available")
@pytest.mark.parametrize(
    "pt_load_map_location",
    [
        "cuda:0",
        # {"": "cuda"},
    ])
33
def test_opt_125m_int8wo_model_loading_with_params(vllm_runner,
34
35
                                                   pt_load_map_location):
    torch._dynamo.reset()
36
    model_name = "jerryzh168/opt-125m-int8wo-partial-quant"
37
38
39
40
41
42
43
44
45
46
47
    with vllm_runner(model_name=model_name,
                     quantization="torchao",
                     dtype="bfloat16",
                     pt_load_map_location=pt_load_map_location) as llm:
        output = llm.generate_greedy(["The capital of France is"],
                                     max_tokens=32)

        assert output
        print(output)


48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
@pytest.mark.skipif(not TORCHAO_AVAILABLE, reason="torchao is not available")
def test_opt_125m_int4wo_model_per_module_quant(vllm_runner):
    torch._dynamo.reset()
    model_name = "jerryzh168/opt-125m-int4wo-per-module"
    with vllm_runner(model_name=model_name,
                     quantization="torchao",
                     dtype="bfloat16",
                     pt_load_map_location="cuda:0") as llm:
        output = llm.generate_greedy(["The capital of France is"],
                                     max_tokens=32)

        assert output
        print(output)


Driss Guessous's avatar
Driss Guessous committed
63
64
if __name__ == "__main__":
    pytest.main([__file__])