跳转至

第三章:模型加载

基础加载

从 HuggingFace 加载

from vllm import LLM

# 加载模型
llm = LLM(model="Qwen/Qwen2-7B-Instruct")

# 生成文本
outputs = llm.generate("你好,请介绍一下自己")
print(outputs[0].outputs[0].text)

从本地加载

# 下载模型到本地
# huggingface-cli download Qwen/Qwen2-7B-Instruct --local-dir ./models/qwen2-7b

llm = LLM(model="./models/qwen2-7b")

加载参数

llm = LLM(
    model="Qwen/Qwen2-7B-Instruct",

    # 并行配置
    tensor_parallel_size=2,      # 张量并行(多GPU)
    pipeline_parallel_size=1,    # 流水线并行

    # 显存配置
    gpu_memory_utilization=0.9,  # GPU 显存利用率
    max_model_len=4096,          # 最大序列长度

    # 量化配置
    quantization="awq",          # 量化方式
    load_format="awq",

    # 其他配置
    trust_remote_code=True,      # 信任远程代码
    dtype="float16",             # 数据类型
)

量化模型

AWQ 量化

llm = LLM(
    model="TheBloke/Llama-2-7B-AWQ",
    quantization="awq",
    dtype="float16",
)

GPTQ 量化

llm = LLM(
    model="TheBloke/Llama-2-7B-GPTQ",
    quantization="gptq",
    dtype="float16",
)

FP8 量化

llm = LLM(
    model="Qwen/Qwen2-7B-Instruct",
    quantization="fp8",
)

多 GPU 加载

# 2 GPU 张量并行
llm = LLM(
    model="Qwen/Qwen2-72B-Instruct",
    tensor_parallel_size=2,
)

# 4 GPU 张量并行
llm = LLM(
    model="Qwen/Qwen2-72B-Instruct",
    tensor_parallel_size=4,
)

模型配置

from vllm import SamplingParams

sampling_params = SamplingParams(
    temperature=0.7,
    top_p=0.9,
    max_tokens=512,
    stop=["</s>", "###"],
)

outputs = llm.generate(["你好", "介绍一下Python"], sampling_params)

小结

本章学习了模型加载的各种方式。下一章学习 API 服务。