【vLLM 学习】Load Sharded State

vLLM 是一款专为大语言模型推理加速而设计的框架,实现了 KV 缓存内存几乎零浪费,解决了内存管理瓶颈问题。

更多 vLLM 中文文档及教程可访问 →https://vllm.hyper.ai/

*在线运行 vLLM 入门教程:零基础分步指南

源码 examples/offline_inference/load_sharded_state.py.

复制代码
# SPDX-License-Identifier: Apache-2.0
"""
Validates the loading of a model saved with the sharded_state format.
This script demonstrates how to load a model that was previously saved
using save_sharded_state.py and validates it by running inference.
Example usage:
(First need to save a sharded_state mode)

python save_sharded_state.py \
    --model /path/to/load \
    --quantization deepspeedfp \
    --tensor-parallel-size 8 \
    --output /path/to/save/sharded/modele

python load_sharded_state.py \
    --model /path/to/saved/sharded/model \
    --load-format sharded_state \
    --quantization deepspeedfp \
    --tensor-parallel-size 8 \
    --prompt "Hello, my name is" \
    --max-tokens 50
"""

import dataclasses

from vllm import LLM, EngineArgs, SamplingParams
from vllm.utils import FlexibleArgumentParser


def parse_args():
    parser = FlexibleArgumentParser()
    # Add engine arguments
    EngineArgs.add_cli_args(parser)

    # Override default load_format for clarity
    parser.set_defaults(load_format="sharded_state")

    # Add validation arguments
    parser.add_argument("--prompt",
                        type=str,
                        default="Hello, world!",
                        help="Prompt for validation")
    parser.add_argument("--max-tokens",
                        type=int,
                        default=100,
                        help="Maximum number of tokens to generate")
    parser.add_argument("--temperature",
                        type=float,
                        default=0.7,
                        help="Sampling temperature")
    parser.add_argument("--top-p",
                        type=float,
                        default=1.0,
                        help="Top-p sampling parameter")

    return parser.parse_args()


def main():
    args = parse_args()
    engine_args = EngineArgs.from_cli_args(args)

    print(f"Loading model from {engine_args.model} "
          f"using format {engine_args.load_format}")
    print(f"Tensor parallel size: {engine_args.tensor_parallel_size}")

    # Load the model using engine args
    llm = LLM(**dataclasses.asdict(engine_args))

    # Prepare sampling parameters
    sampling_params = SamplingParams(
        temperature=args.temperature,
        top_p=args.top_p,
        max_tokens=args.max_tokens,
    )

    print("\nRunning inference:")
    print(f"Prompt: {args.prompt}")

    # Generate completion
    outputs = llm.generate(args.prompt, sampling_params)

    # Display generated text
    print("\nGenerated outputs:")
    for output in outputs:
        generated_text = output.outputs[0].text
        print("-" * 50)
        print(f"Full output: {args.prompt}{generated_text}")
        print("-" * 50)


if __name__ == "__main__":
    main()
相关推荐
怪我冷i12 小时前
多租户管理系统,用户表,IsSuperAdmin,IsTenantAdmin,IsCompanyAdmin,IsDeptAdmin需要吗?
golang·llm·多租户·skill
测试员周周13 小时前
【AI测试系统】第2篇:拒绝盲目 AI:规则引擎 10ms 自动生成 36 条测试用例实战(附源码)
llm·ai编程·测试
冬奇Lab13 小时前
RAG 系列(三):调对这 4 个参数,让你的 RAG 从「能用」变「好用」
人工智能·llm
数据智能老司机13 小时前
人人都能学会的提示词工程——人人都能学会的提示词工程
llm
数据智能老司机13 小时前
人人都能学会的提示词工程——提示素养:从习惯到精通
llm
Lw老王要学习14 小时前
本地部署OpenClaw + WSL Ubuntu + 千问云+QQ+微信+飞书
ubuntu·llm·agent·openclaw·龙虾
Irissgwe14 小时前
LangChain之核心组件(消息与提示词模板)
人工智能·ai·langchain·llm·langgraph
小锋学长生活大爆炸15 小时前
【开源软件】打造 macOS 纯本地 LLM 工作台 | Sidekick
macos·llm
mounter62516 小时前
Linux Kernel Design Patterns (Part 2):从经典链表到现代 XArray,拆解内核复杂数据结构的设计哲学
linux·数据结构·链表·设计模式·内存管理·kernel
Flying pigs~~18 小时前
大模型训练框架 ➕ 推理部署框架
模型训练·deepspeed·vllm·模型推理·zero·pageattention