使用 Run:ai Model Streamer 載入模型¶
Run:ai Model Streamer 是一個用於併發讀取張量並將其流式傳輸到 GPU 記憶體的庫。更多資訊可在Run:ai Model Streamer 文件中找到。
vLLM 支援使用 Run:ai Model Streamer 載入 Safetensors 格式的權重。您首先需要安裝 vLLM RunAI 可選依賴項。
要將其作為相容 OpenAI 的伺服器執行,請新增 --load-format runai_streamer
標誌。
要從 AWS S3 物件儲存執行模型,請執行
要從相容 S3 的物件儲存執行模型,請執行
RUNAI_STREAMER_S3_USE_VIRTUAL_ADDRESSING=0 \
AWS_EC2_METADATA_DISABLED=true \
AWS_ENDPOINT_URL=https://storage.googleapis.com \
vllm serve s3://core-llm/Llama-3-8b \
--load-format runai_streamer
可調引數¶
您可以使用 --model-loader-extra-config
來調整引數。
您可以調整 concurrency
引數,它控制從檔案讀取張量到 CPU 緩衝區的併發級別和 OS 執行緒數量。對於從 S3 讀取,它將是主機開啟到 S3 伺服器的客戶端例項數量。
vllm serve /home/meta-llama/Llama-3.2-3B-Instruct \
--load-format runai_streamer \
--model-loader-extra-config '{"concurrency":16}'
您可以控制從檔案讀取張量到 CPU 記憶體緩衝區的大小,並限制此大小。您可以在此處閱讀更多關於 CPU 緩衝區記憶體限制的資訊。
vllm serve /home/meta-llama/Llama-3.2-3B-Instruct \
--load-format runai_streamer \
--model-loader-extra-config '{"memory_limit":5368709120}'
注意
有關可調引數和透過環境變數配置的其他引數的進一步說明,請閱讀環境變數文件。
分片模型載入¶
vLLM 還支援使用 Run:ai Model Streamer 載入分片模型。這對於跨多個檔案拆分的大型模型特別有用。要使用此功能,請使用 --load-format runai_streamer_sharded
標誌。
分片載入器期望模型檔案遵循與常規分片狀態載入器相同的命名模式:model-rank-{rank}-part-{part}.safetensors
。您可以使用 --model-loader-extra-config
中的 pattern
引數自定義此模式。
vllm serve /path/to/sharded/model \
--load-format runai_streamer_sharded \
--model-loader-extra-config '{"pattern":"custom-model-rank-{rank}-part-{part}.safetensors"}'
要建立分片模型檔案,您可以使用 examples/offline_inference/save_sharded_state.py中提供的指令碼。此指令碼演示瞭如何以分片格式儲存模型,該格式與 Run:ai Model Streamer 分片載入器相容。
分片載入器支援與常規 Run:ai Model Streamer 相同的所有可調引數,包括 concurrency
和 memory_limit
。這些引數可以用相同的方式配置。
vllm serve /path/to/sharded/model \
--load-format runai_streamer_sharded \
--model-loader-extra-config '{"concurrency":16, "memory_limit":5368709120}'
注意
分片載入器對於張量並行或流水線並行模型特別高效,因為每個工作器只需讀取自己的分片,而無需讀取整個檢查點。