离线推理¶
您可以使用 vLLM 的 LLM 类在自己的代码中进行离线推理。
例如,以下代码将从 HuggingFace 下载 facebook/opt-125m 模型,并使用默认配置在 vLLM 中运行它。
初始化 LLM 实例后,使用可用的 API 执行模型推理。可用的 API 取决于模型类型
信息
Ray Data LLM API¶
Ray Data LLM 是一个替代的离线推理 API,它使用 vLLM 作为底层引擎。该 API 添加了几项“开箱即用”的功能,简化了大规模、GPU 高效的推理。
- 流式执行可处理超出聚合集群内存的数据集。
- 自动分片、负载均衡和自动伸缩将工作分布在 Ray 集群中,并内置容错能力。
- 连续批处理使 vLLM 副本饱和,并最大化 GPU 利用率。
- 对张量并行和流水线并行的透明支持,实现了高效的多 GPU 推理。
- 读写大多数流行的文件格式和云对象存储。
- 无需更改代码即可扩展工作负载。
代码
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 文档。