离线推理¶
可以在自己的代码中使用vLLM的LLM类进行离线推理。
例如,以下代码从HuggingFace下载facebook/opt-125m模型,并使用默认配置在vLLM中运行它。
初始化LLM实例后,使用可用API执行模型推理。可用API取决于模型类型:
- Generative models 输出对数概率,通过采样获得最终输出文本。
- Pooling models直接输出其隐藏状态。
信息
Ray Data LLM API¶
Ray Data LLM 是一个替代性的离线推理API,它使用vLLM作为底层引擎。该API添加了多项开箱即用的功能,可简化大规模、高效利用GPU的推理:
- 流式执行可处理超过集群总内存容量的数据集。
- 自动分片、负载均衡和自动扩缩容功能通过内置的容错机制将工作分发到Ray集群中。
- 连续批处理保持vLLM副本饱和并最大化GPU利用率。
- 透明支持张量和流水线并行,可实现高效的多GPU推理。
- 支持读写大多数主流文件格式及云对象存储。
- 无需修改代码即可扩展工作负载。
Code
import ray # Requires ray>=2.44.1
from ray.data.llm import vLLMEngineProcessorConfig, build_llm_processor
config = vLLMEngineProcessorConfig(model_source="unsloth/Llama-3.2-1B-Instruct")
processor = build_llm_processor(
config,
preprocess=lambda row: {
"messages": [
{"role": "system", "content": "You are a bot that completes unfinished haikus."},
{"role": "user", "content": row["item"]},
],
"sampling_params": {"temperature": 0.3, "max_tokens": 250},
},
postprocess=lambda row: {"answer": row["generated_text"]},
)
ds = ray.data.from_items(["An old silent pond..."])
ds = processor(ds)
ds.write_parquet("local:///tmp/data/")
有关Ray Data LLM API的更多信息,请参阅Ray Data LLM文档。