Requisiti: In precedenza ho implementato il modello deepseek-r1:32b con Ollama, molto comodo e veloce, adatto a un dispiegamento rapido personale. Se si tratta di un ambiente di produzione aziendale, come dovrebbe essere implementato? Generalmente, vllm e sglang sono usati per il deployment, e questo articolo utilizza vLLM per distribuire il modello DeepSeek-R1.
Ollama vs. vLLM
Le differenze sono le seguenti:
| Dimensioni di contrasto | Ollama | vLLM | | Posizionamento del nucleo | Strumenti di localizzazione leggeri per sviluppatori individuali e esperimenti su piccola scala | Framework di inferenza a livello di produzione, focalizzato su scenari a livello aziendale con alta concorrenza e bassa latenza | | Requisiti hardware | Supporta CPU e GPU, basso footprint di memoria (usa il modello di quantizzazione di default) | Bisogna affidarsi alle GPU NVIDIA, che hanno un alto consumo di memoria | | Supporto ai modelli | Libreria di modelli pre-addestrati integrata (supporta 1700+ modelli), download automatico delle versioni quantitative (principalmente int4) | Il download manuale del file originale del modello (ad esempio formato HuggingFace) supporta una gamma più ampia di modelli | | Difficoltà di dispiegamento | Installazione con un solo pulsante e uso pronto all'uso, senza bisogno di una base di programmazione | Sono richiesti un ambiente Python e un driver CUDA, e è richiesta esperienza tecnica | | Caratteristiche di prestazione | La velocità di inferenza singola è elevata, ma la capacità di elaborazione della concorrenza è debole | Alto throughput, supporto per l'elaborazione batch dinamica e migliaia di richieste contemporanee | | gestione delle risorse | Regola l'uso delle risorse in modo flessibile e rilascia automaticamente la memoria video quando è inattiva | L'occupazione della memoria video è fissa e le risorse devono essere riservate per gestire i carichi di picco |
Una breve introduzione ai vLLM
vLLM è una libreria veloce e facile da usare di inferenza e servizi LLM.
vLLM con nuovi algoritmi ridefinisce il livello tecnologico più recente dei servizi LLM: . Rispetto agli HuggingFace Transformers, offre una capacità fino a 24 volte superiore senza alcuna modifica all'architettura del modello. Dimezzando l'hashrate e aumentando la velocità di produzione di dieci volte, lo studio ha confrontato la velocità di vLLM con la libreria LLM più popolare, HuggingFace Transformers (HF), e la precedente HuggingFace Text Generation Inference (TGI) con la produttività SOTA. Inoltre, lo studio ha diviso l'impianto sperimentale in due tipi: LLaMA-7B con GPU NVIDIA A10G come hardware; L'altro è LLaMA-13B, con GPU NVIDIA A100 (40GB) su hardware. Hanno campionato le lunghezze di input/output dal dataset ShareGPT. I risultati hanno mostrato che la produttività di vLLM era 24 volte superiore a HF e 3,5 volte superiore a TGI.
Documentazione vLLM:Il login del link ipertestuale è visibile. Indirizzo del codice sorgente:Il login del link ipertestuale è visibile. Test delle prestazioni:Il login del link ipertestuale è visibile.
Non devi capire il quadro, la mucca è finita!
Preparazione ambientale
Ho acquistato i servizi applicativi ad alte prestazioni di Tencent Cloud e li ho configurati come segue:
Ubuntu 20.04 Configurazione dell'ambiente: Ubuntu 20.04, Driver 525.105.17, Python 3.8, CUDA 12.0, cuDNN 8 Tipo di potenza di calcolo: GPU a due schede tipo base - 2*16GB+ | 16+TFlops SP | CPU - 16 core | RAM - 64GB
Installa Conda
Crea un ambiente python con conda, incolla direttamente lo script:
Distribuisci DeepSeek-R1 usando un vLLM
Crea un ambiente python con conda con il seguente comando:
Installa vllm e modelscope con i seguenti comandi:
Scarica il modello DeepSeek-R1 usando modelscope con il seguente comando:
Riferimento:Il login del link ipertestuale è visibile.
Avvia il modello deepseek usando il vllm con il seguente comando:
Se incontri "Bfloat16 è supportato solo su GPU con capacità di calcolo almeno 8.0. La tua GPU Tesla T4 ha capacità di calcolo 7.5. Puoi usare float16 invece impostando esplicitamente il flag 'dtype' nella CLI, ad esempio: --dtype=half." Attenzione, basta aggiungere parametri in base all'avviso.
Osservazione:
- --impostazioni di dimensione parallela tensor-e conteggio GPU
- --gpu-memory-utilization controlla la percentuale di memoria utilizzata
- --nome-modello-servito Il nome del modello usato nell'API
- --disable-log-requests disabilita le richieste di logging
Documentazione di installazione GPU vLLM Linux:Il login del link ipertestuale è visibile. Parametri del motore:Il login del link ipertestuale è visibile.
Consulta lo stato della GPU come mostrato qui sotto:
Usa i test Postman
Apertura del browser:http://ip:8000/ Documentazione dell'interfaccia:http://ip:8000/docs
Chiamata del postino, come mostrato nell'immagine seguente:
Benchmarking
Scarica il codice di test con il seguente comando:
Il comando viene eseguito come segue:
Risultato: Throughput: 2,45 richieste/s, 1569,60 token totali/s, 1255,68 token di output/s
(Fine) |