Installazione#
Xinference può essere installato su Linux, Windows e MacOS tramite pip. Se è necessario utilizzare Xinference per l’inferenza del modello, è possibile specificare diversi motori in base al modello.
Se desideri poter ragionare su tutti i modelli supportati, puoi installare tutte le dipendenze necessarie con il seguente comando:
pip install "xinference[all]"
Cambiato nella versione v1.8.1: Poiché vllm e sglang non possono coesistere a causa di conflitti di dipendenze dei pacchetti, abbiamo rimosso sglang da «all». Per utilizzare sglang, eseguire pip install 'xinference[sglang]'.
Alcuni scenari di utilizzo richiedono particolare attenzione.
Formato GGUF utilizzato con il motore llama.cpp
In questo caso, si consiglia di installare manualmente le dipendenze in base alle specifiche hardware per abilitare l’accelerazione. Per maggiori dettagli, consultare la sezione Motore Llama.cpp.
Formato AWQ o GPTQ in combinazione con il motore transformers.
Questa sezione è stata aggiunta nella v1.6.0.
Questo perché in questa fase le dipendenze richiedono opzioni speciali e sono difficili da installare. Esegui in anticipo il seguente comando:
pip install "xinference[transformers_quantization]" --no-build-isolation
Alcune dipendenze, come transformers, potrebbero essere declassate, è possibile eseguire successivamente pip install "xinference[all]".
Se desideri installare solo le dipendenze necessarie, ecco i passaggi dettagliati su come procedere.
Motore Transformers#
Il motore PyTorch (transformers) supporta quasi tutti i modelli più recenti, ed è il motore predefinito utilizzato dai modelli PyTorch.
pip install "xinference[transformers]"
Nota:
Il motore Transformers supporta i formati
pytorch/gptq/awq/bnb/fp4.La libreria transformers con supporto per FPQuantConfig è necessaria per il formato FP4. In caso di errori di importazione, aggiornare transformers alla versione più recente.
Motore vLLM#
vLLM è un motore di inferenza per grandi modelli ad alte prestazioni che supporta un’alta concorrenza. Quando vengono soddisfatte le seguenti condizioni, Xinference seleziona automaticamente vllm come motore per ottenere una maggiore produttività:
Il formato del modello è
pytorch,gptq,awq,fp4,fp8obnb.Quando il formato del modello è
pytorch, l’opzione di quantizzazione deve esserenone.Quando il formato del modello è
awq, l’opzione di quantizzazione deve essereInt4.Quando il formato del modello è
gptq, l’opzione di quantizzazione deve essereInt3,Int4oInt8.Il sistema operativo è Linux e dispone almeno di un dispositivo supportato da CUDA.
Il campo
model_familydei modelli personalizzati e il campomodel_namedei modelli integrati si trovano nell’elenco dei supporti di vLLM.
Attualmente, i modelli supportati includono:
code-llama,code-llama-instruct,code-llama-python,deepseek,deepseek-chat,deepseek-coder,deepseek-coder-instruct,deepseek-r1-distill-llama,gorilla-openfunctions-v2,HuatuoGPT-o1-LLaMA-3.1,llama-2,llama-2-chat,llama-3,llama-3-instruct,llama-3.1,llama-3.1-instruct,llama-3.3-instruct,minicpm5-1b,tiny-llama,wizardcoder-python-v1.0,wizardmath-v1.0,Yi,Yi-1.5,Yi-1.5-chat,Yi-1.5-chat-16k,Yi-200k,Yi-chatcodestral-v0.1,mistral-instruct-v0.1,mistral-instruct-v0.2,mistral-instruct-v0.3,mistral-large-instruct,mistral-nemo-instruct,mistral-v0.1,openhermes-2.5,seallm_v2Baichuan-M2,codeqwen1.5,codeqwen1.5-chat,deepseek-r1-distill-qwen,DianJin-R1,fin-r1,HuatuoGPT-o1-Qwen2.5,KAT-V1,marco-o1,qwen1.5-chat,qwen2-instruct,qwen2.5,qwen2.5-coder,qwen2.5-coder-instruct,qwen2.5-instruct,qwen2.5-instruct-1m,qwenLong-l1,QwQ-32B,QwQ-32B-Preview,seallms-v3,skywork-or1,skywork-or1-preview,XiYanSQL-QwenCoder-2504llama-3.2-vision,llama-3.2-vision-instructbaichuan-2,baichuan-2-chatInternLM2ForCausalLMqwen-chatmixtral-8x22B-instruct-v0.1,mixtral-instruct-v0.1,mixtral-v0.1cogagentglm-edge-chat,glm4-chat,glm4-chat-1mcodegeex4,glm-4vseallm_v2.5orion-chatqwen1.5-moe-chat,qwen2-moe-instructCohereForCausalLMdeepseek-v2-chat,deepseek-v2-chat-0628,deepseek-v2.5,deepseek-vl2deepseek-prover-v2,deepseek-r1,deepseek-r1-0528,deepseek-v3,deepseek-v3-0324,Deepseek-V3.1,moonlight-16b-a3b-instructdeepseek-r1-0528-qwen3,qwen3minicpm3-4binternlm3-instructgemma-3-1b-itglm4-0414minicpm-2b-dpo-bf16,minicpm-2b-dpo-fp16,minicpm-2b-dpo-fp32,minicpm-2b-sft-bf16,minicpm-2b-sft-fp32,minicpm4Ernie4.5Qwen3-Coder,Qwen3-Instruct,Qwen3-Thinkingglm-4.5,GLM-4.6,GLM-4.7gpt-ossseed-ossQwen3-Next-Instruct,Qwen3-Next-ThinkingDeepSeek-V3.2,DeepSeek-V3.2-ExpMiniMax-M2,MiniMax-M2.5,MiniMax-M2.7GLM-4.7-Flashglm-5,glm-5.1DeepSeek-V4-Flash,DeepSeek-V4-Pro
Installazione di xinference e vLLM:
pip install "xinference[vllm]"
# FlashInfer is optional but required for specific functionalities such as sliding window attention with Gemma 2.
# For CUDA 12.4 & torch 2.4 to support sliding window attention for gemma 2 and llama 3.1 style rope
pip install flashinfer -i https://flashinfer.ai/whl/cu124/torch2.4
# For other CUDA & torch versions, please check https://docs.flashinfer.ai/installation.html
Motore Llama.cpp#
Xinference supporta i modelli in formato gguf tramite xllamacpp. xllamacpp è stato sviluppato dal team di Xinference ed è diventato l’unico backend di llama.cpp a partire dalla v1.6.0.
Avvertimento
A partire da Xinference v1.5.0, llama-cpp-python è stato deprecato; a partire da Xinference v1.6.0, questo backend è stato rimosso.
Passaggi iniziali:
pip install "xinference[llama_cpp]"
Per ulteriori istruzioni di installazione di xllamacpp per abilitare l’accelerazione GPU, consultare: xorbitsai/xllamacpp
Motore SGLang#
SGLang dispone di un runtime di inferenza ad alte prestazioni basato su RadixAttention. Accelerando significativamente l’esecuzione di programmi LLM complessi tramite il riutilizzo automatico della cache KV tra più chiamate. Supporta inoltre altre tecniche di inferenza comuni, come il batch continuo e l’elaborazione parallela dei tensori.
Passaggi iniziali:
pip install "xinference[sglang]"
Motore MLX#
MLX-lm è utilizzato per fornire un’inferenza efficiente dei LLM sui chip Apple Silicon.
Passaggi iniziali:
pip install "xinference[mlx]"