離線推理¶
離線推理可以在您自己的程式碼中實現,使用 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 文件。