Cerințe: Am implementat anterior modelul deepseek-r1:32b cu Ollama, care este foarte convenabil și rapid, potrivit pentru o implementare rapidă personală. Dacă este un mediu de producție enterprise, cum ar trebui implementat? În general, vllm și sglang sunt folosite pentru implementare, iar acest articol folosește vLLM pentru a implementa modelul DeepSeek-R1.
Ollama vs. vLLM
Diferențele sunt următoarele:
| Dimensiuni de contrast | Ollama | vLLM | | Poziționarea nucleului | Instrumente ușoare de localizare pentru dezvoltatori individuali și experimente la scară mică | Cadru de inferență la nivel de producție, axat pe scenarii la nivel de întreprindere cu concurență mare și latență redusă | | Cerințe hardware | Suportă CPU și GPU, amprentă de memorie redusă (folosește modelul de cuantizare implicit) | Trebuie să te bazezi pe plăcile video NVIDIA, care au un consum mare de memorie | | Suport pentru modele | Bibliotecă de modele pre-antrenate încorporate (suportă 1700+ modele), descărcare automată a versiunilor cantitative (în principal int4) | Descărcarea manuală a fișierului original al modelului (de exemplu, formatul HuggingFace) suportă o gamă mai largă de modele | | Dificultatea desfășurării | Instalare cu un singur buton și utilizare gata de utilizare, fără a fi necesară o bază de programare | Mediul Python și driverul CUDA sunt necesare, iar experiența tehnică este necesară | | Caracteristici de performanță | Viteza unică de inferență este rapidă, dar capacitatea de procesare a concurenței este slabă | Debit ridicat, suport pentru procesare dinamică în loturi și mii de cereri concurente | | Managementul resurselor | Ajustează flexibil utilizarea resurselor și eliberează automat memoria video când este inactiv | Ocuparea memoriei video este fixă, iar resursele trebuie rezervate pentru a face față sarcinilor maxime |
O scurtă introducere în vLLM-uri
vLLM este o bibliotecă rapidă și ușor de folosit de inferență și servicii LLM.
vLLM cu noi algoritmi redefinește cel mai recent nivel tehnologic al serviciilor LLM: . Comparativ cu HuggingFace Transformers, oferă un debit de până la 24 de ori mai mare fără modificări ale arhitecturii modelului. Reducând la jumătate hashrate-ul și crescând de zece ori debitul, studiul a comparat debitul vLLM cu cea mai populară bibliotecă LLM, HuggingFace Transformers (HF), și cu precedentul HuggingFace Text Generation Inference (TGI) cu throughput SOTA. În plus, studiul a împărțit configurația experimentală în două tipuri: LLaMA-7B cu GPU NVIDIA A10G ca hardware; Celălalt este LLaMA-13B, cu GPU NVIDIA A100 (40GB) pe hardware. Au preluat lungimi de intrare/ieșire din setul de date ShareGPT. Rezultatele au arătat că debitul vLLM a fost de 24 de ori mai mare decât HF și de 3,5 ori mai mare decât TGI.
Documentația vLLM:Autentificarea cu hyperlink este vizibilă. Adresa codului sursă:Autentificarea cu hyperlink este vizibilă. Testarea performanței:Autentificarea cu hyperlink este vizibilă.
Nu trebuie să înțelegi imaginea, vaca e terminată!
Pregătirea mediului
Am achiziționat servicii de aplicații de înaltă performanță Tencent Cloud și le-am configurat astfel:
Ubuntu 20.04 Configurarea mediului: Ubuntu 20.04, Driver 525.105.17, Python 3.8, CUDA 12.0, cuDNN 8 Tip de putere de calcul: GPU cu două plăci tip de bază - 2*16GB+ | 16+TFlops SP | CPU - 16 nuclee | RAM - 64GB
Instalează Conda
Creează un mediu python cu conda, lipește scriptul direct:
Implementează DeepSeek-R1 folosind un vLLM
Creează un mediu python cu conda folosind următoarea comandă:
Instalează vllm și modelscope cu următoarele comenzi:
Descarcă modelul DeepSeek-R1 folosind modelscope cu următoarea comandă:
Referință:Autentificarea cu hyperlink este vizibilă.
Începe modelul deepseek folosind vllm cu următoarea comandă:
Dacă întâlnești "Bfloat16 este suportat doar pe GPU-uri cu capacitate de calcul de cel puțin 8.0. GPU-ul tău Tesla T4 are capacitate de calcul 7.5. Poți folosi float16 în schimb setând explicit flag-ul 'dtype' în CLI, de exemplu: --dtype=jumătate." Atenție, adaugă parametri în funcție de avertisment.
Remarca:
- --setări pentru dimensiunea paralelă a tensorului și numărul GPU-ului
- --gpu-utilizarea memoriei controlează procentul de memorie folosită
- --serverd-model-name Numele modelului folosit în API
- --disable-log-requests dezactivează cererile de logare
Documentația instalării GPU-ului vLLM Linux:Autentificarea cu hyperlink este vizibilă. Parametrii motorului:Autentificarea cu hyperlink este vizibilă.
Verificați starea GPU-ului așa cum este prezentat mai jos:
Folosește testele Postman
Deschiderea browserului:http://ip:8000/ Documentația interfeței:http://ip:8000/docs
Chemarea poștașului, așa cum se vede în imaginea următoare:
Benchmarking
Descarcă codul de test cu următoarea comandă:
Comanda se execută astfel:
Rezultat: Debit: 2,45 solicitări/s, 1569,60 token-uri totale/s, 1255,68 token-uri output/s
(Sfârșit) |