連續批次處理#
連續批次處理是諸如 VLLM 這樣的推理引擎中提升吞吐量的重要技術。Xinference 旨在透過這項技術提升 transformers 推理引擎的吞吐量。
使用方式#
大語言模型#
目前,此功能在滿足以下條件時啟用:
首先,啟動 Xinference 時需要將環境變數
XINFERENCE_TRANSFORMERS_ENABLE_BATCHING設為1。
XINFERENCE_TRANSFORMERS_ENABLE_BATCHING=1 xinference-local --log-level debug
備註
從 v0.16.0 開始,此功能預設開啟,不再需要設定 XINFERENCE_TRANSFORMERS_ENABLE_BATCHING 環境變數,且該環境變數已被移除。
然後,啟動 LLM 模型時選擇
transformers推理引擎。例如:
xinference launch -e <endpoint> --model-engine transformers -n qwen1.5-chat -s 4 -f pytorch -q none
curl -X 'POST' \
'http://127.0.0.1:9997/v1/models' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"model_engine": "transformers",
"model_name": "qwen1.5-chat",
"model_format": "pytorch",
"size_in_billions": 4,
"quantization": "none"
}'
from xinference.client import Client
client = Client("http://127.0.0.1:9997")
model_uid = client.launch_model(
model_engine="transformers",
model_name="qwen1.5-chat",
model_format="pytorch",
model_size_in_billions=4,
quantization="none"
)
print('Model uid: ' + model_uid)
一旦此功能開啟,LLM 模型的所有接口將被此功能接管。所有接口的使用方式沒有任何變化。
圖像模型#
目前只有 FLUX.1 系列模型的 text_to_image (文生圖)介面支援此功能。
啟用此功能前,需在啟動 xinference 時指定 XINFERENCE_TEXT_TO_IMAGE_BATCHING_SIZE 環境變數,該變數代表生成的圖片尺寸。
例如,像這樣啟動 xinference:
XINFERENCE_TEXT_TO_IMAGE_BATCHING_SIZE=1024*1024 xinference-local --log-level debug
接下來正常使用 text_to_image 介面即可,其他什麼都不需要改變。
中止請求#
在此功能中,你可以優雅地中止正在推理中的請求。
首先,在推理請求的
generate_config中指定request_id選項。例如:
from xinference.client import Client
client = Client("http://127.0.0.1:9997")
model = client.get_model("<model_uid>")
model.chat([{"role": "user", "content": "<prompt>"}], generate_config={"request_id": "<your_unique_request_id>"})
接著,帶著你指定的
request_id去中止該請求。例如:
from xinference.client import Client
client = Client("http://127.0.0.1:9997")
client.abort_request("<model_uid>", "<your_unique_request_id>")
注意,如果你的請求已經結束,那麼此操作將什麼都不做。
注意事項#
當前,此功能僅支援 LLM 模型的
generate,chat,tool call(工具呼叫)和vision(多模態)功能。目前,對於圖像模型,僅支援 FLUX.1` 系列模型的
text_to_image(文生圖)功能。對於多模態任務,當前支援
qwen2-vl-instruct,qwen2.5-vl-instruct,QvQ-72B-Preview,glm-4v和MiniCPM-V-2.6。未來將加入更多模型,敬請期待。如果使用 GPU 推理,此功能對顯存要求較高。因此請謹慎提高對同一個模型的並發請求量。
launch_model介面提供可選參數max_num_seqs用於調整並發度,預設值為16。