Gereksinimler: Daha önce Ollama ile birlikte çok kullanışlı ve hızlı olan deepseek-r1:32b modelini kullandım; bu model, kişisel hızlı dağıtım için uygun. Eğer bu kurumsal üretim ortamıysa, nasıl dağıtılmalı? Genellikle, dağıtım için vllm ve sglang kullanılır ve bu makale DeepSeek-R1 modelini dağıtmak için vLLM kullanır.
Ollama vs. vLLM
Farklar şunlardır:
| Kontrast boyutları | Ollama | vLLM | | Çekirdek konumlandırma | Bireysel geliştiriciler ve küçük ölçekli deneyler için hafif yerelleştirme araçları | Yüksek eşdeğerlilik ve düşük gecikmeli kurumsal düzey senaryolara odaklanan üretim düzeyinde çıkarım çerçevesi | | Donanım gereksinimleri | CPU ve GPU'yu destekler, düşük bellek alanı (varsayılan olarak kuantizasyon modeli kullanır) | Yüksek bellek kullanımına sahip NVIDIA GPU'larına güvenmek zorundayım | | Model desteği | Yerleşik önceden eğitilmiş model kütüphanesi (1700+ modeli destekliyor), nicel versiyonların otomatik indirilmesi (çoğunlukla int4) | Orijinal model dosyasının manuel olarak indirilmesi (örneğin HuggingFace formatı) daha geniş model yelpazesini destekler | | Konuşlandırma zorluğu | Tek düğme ile kurulum ve programlama temeli olmadan kutudan çıkmış kullanım | Python ortamı ve CUDA sürücüsü gereklidir, teknik deneyim gereklidir | | Performans özellikleri | Tek çıkarım hızı hızlıdır, ancak eşzamanlı işlem yeteneği zayıftır | Yüksek verimlilik, dinamik toplu işleme desteği ve binlerce eşzamanlı talep | | Kaynak yönetimi | Kaynak kullanımını esnek ayarlayın ve boşta kaldığınızda video belleği otomatik olarak serbest bırakın | Video belleği doluluğu sabit ve kaynakların zirve yüklerle başa çıkmak için ayrılması gerekiyor |
vLLM'lere kısa bir giriş
vLLM, LLM çıkarımı ve hizmetlerinden oluşan hızlı ve kullanımı kolay bir kütüphanedir.
vLLM, yeni algoritmalarla LLM hizmetlerinin en son teknoloji seviyesini yeniden tanımlıyor: . HuggingFace Transformers ile karşılaştırıldığında, model mimarisi değişikliği olmadan 24 katına kadar daha yüksek veri verimliliği sunuyor. Çalışma hashrate'i yarıya indirip veri verimini on kat artırarak, vLLM'nin veri kapasitesini en popüler LLM kütüphanesi HuggingFace Transformers (HF) ile ve önceki HuggingFace Metin Üretim Çıkarımı (TGI) ile SOTA geçirimliliği ile karşılaştırdı. Ayrıca, çalışma deneysel kurulumu iki tipe ayırdı: donanım olarak NVIDIA A10G GPU olan LLaMA-7B; Diğeri ise donanımda NVIDIA A100 GPU (40GB) bulunan LLaMA-13B. ShareGPT veri setinden giriş/çıkış uzunluklarını örneklediler. Sonuçlar, vLLM'in veri verimliliğinin HF'den 24 kat, TGI'den 3,5 kat daha yüksek olduğunu gösterdi.
vLLM dokümantasyonu:Bağlantı girişi görünür. Kaynak kodu adresi:Bağlantı girişi görünür. Performans Testi:Bağlantı girişi görünür.
Resmi anlamana gerek yok, bitti!
Çevresel hazırlık
Tencent Cloud yüksek performanslı uygulama hizmetlerini satın aldım ve bunları aşağıdaki şekilde yapılandırdım:
Ubuntu 20.04 Ortam yapılandırması: Ubuntu 20.04, Sürücü 525.105.17, Python 3.8, CUDA 12.0, cuDNN 8 Hesaplama gücü türü: İki kartlı GPU temel tipi - 2*16GB+ | 16+TFlops SP | CPU - 16 çekirdek | RAM - 64GB
Conda Kurulum
Conda ile bir python ortamı oluşturun, doğrudan betikleri yapıştırın:
DeepSeek-R1'i vLLM kullanarak dağıtın
Aşağıdaki komutla conda ile bir python ortamı oluşturun:
Aşağıdaki komutlarla vllm ve modelscope'u kurun:
DeepSeek-R1 modelini modelscope kullanarak aşağıdaki komutla indirin:
Referans:Bağlantı girişi görünür.
Deepseek modelini vllm kullanarak aşağıdaki komutla başlatın:
Eğer "Bfloat16 sadece en az 8.0 hesaplama kapasitesine sahip GPU'larda destekleniyor. Tesla T4 GPU'nuzun hesaplama kapasitesi 7.5. Bunun yerine float16'yı CLI'da 'dtype' bayrağını açıkça ayarlayarak kullanabilirsiniz, örneğin: --dtype=half." Uyarı, sadece uyarıya göre parametreler ekleyin.
Açıklama:
- --tensor-parallel-boyut ve GPU sayısı ayarları
- --gpu-memory-utilization, kullanılan bellek yüzdesini kontrol eder
- --served-model-name API'de kullanılan model adı
- --disable-log-requests kayıt isteklerini devre dışı bırakıyor
vLLM Linux GPU Kurulum Dokümantı:Bağlantı girişi görünür. Motor Parametreleri:Bağlantı girişi görünür.
GPU durumunu aşağıda gösterildiği gibi kontrol edin:
Postman testlerini kullanın
Tarayıcı açık:http://ip:8000/ Arayüz Dokümantı:http://ip:8000/docs
Postacı çağrısı, aşağıdaki görselde gösterildiği gibi:
Kıyaslama
Test kodunu aşağıdaki komutla indirin:
Komut şu şekilde yürütülür:
Sonuç: Verimlilik: 2.45 istek/s, toplam 1569.60 token/s, 1255.68 çıkış token/s
(Son) |