Yapay zeka veya tam yığın geliştirme ile mücadele mi ediyorsunuz? Uzmanlarımız size rehberlik etmek için burada: özel tavsiyeler, teknik entegrasyon ve daha fazlası. Bize ulaşın [email protected].

GenAI Çıkarım Motorları: TensorRT-LLM vs vLLM vs Hugging Face TGI vs LMDeploy

Üretken yapay zekanın (GenAI) yükselişi, doğal dil işlemeden yaratıcı içerik üretimine kadar sektörleri dönüştürdü. Ancak, bu güçlü modellerin geniş ölçekte verimli bir şekilde kullanılması hala bir zorluktur.

TensorRT-LLM, vLLM, Hugging Face TGI ve LMDeploy

Çıkarım motorları performansı optimize etmede, gecikmeyi azaltmada ve kaynak kullanımını en üst düzeye çıkarmada kritik bir rol oynar. Bu makalede, önde gelen dört çözümü inceleyeceğiz: TensorRT-LLM, vLLM, Hugging Face TGI ve LMDeploy.

NVIDIA'nın donanım hızlandırmalı hassasiyeti, vLLM'nin yenilikçi bellek yönetimi, TGI'nın üretime hazır ekosistemi veya LMDeploy'un hız ve basitliğe odaklanması gibi her biri masaya benzersiz güçlü yönler getiriyor. GenAI iş yükleriniz için mükemmel uyumu bulmanıza yardımcı olmak üzere bu motorları karşılaştırırken bize katılın.

TensorRT-LLM: Optimize Edilmiş Çıkarım için NVIDIA'nın Güç Merkezi

TensorRT-LLM, NVIDIA'nın büyük dil modellerinin hızlı ve sorunsuz çalışmasını sağlamaya yönelik çözümüdür. TensorRT çerçevesi üzerine inşa edilen bu sistem, NVIDIA GPU'lardan her damla performansı almak için tasarlanmıştır. Bunu katman füzyonu, hassasiyet ayarlama (FP16, INT8, FP8...) ve modelin doğruluğunu bozmadan hesaplama süresini kısaltan çekirdek optimizasyonu gibi hilelerle yapar.

TensorRT-LLM

Mesele sadece hız değil. TensorRT-LLM, belleği akıllıca yöneterek büyük modelleri verimli bir şekilde işler, böylece çalışmanın ortasında çökmezsiniz. Ayrıca dinamik gruplamayı destekleyerek bellek tükenmeden aynı anda birden fazla isteği işlemenizi sağlar. Zaten NVIDIA donanımı kullanıyorsanız, CUDA ve cuDNN gibi ekosistemlerine sıkıca bağlı olduğundan ve hatta NVIDIA'nın Triton Çıkarım Sunucusu ve NVIDIA Dynamo ile entegre olduğundan, hiç akıllıca değil.

Bununla birlikte, herkes için mükemmel değil. NVIDIA'nın araçları konusunda rahat değilseniz kurulum zor olabilir ve NVIDIA olmayan bir donanım kullanıyorsanız daha az esnektir. Yine de, NVIDIA GPU'larda ham güç ve optimizasyon için yenilmesi zor.

vLLM: PagedAttention ile Yüksek Verimli Çıkarım

vLLM, yüksek hacimli çıkarım işlerini hızlı bir şekilde ele almada çok iyidir. Yavaşlamadan yüksek verime ihtiyaç duyduğunuzda parlayan açık kaynaklı bir projedir. Gizli sosu, belleği çoğundan çok daha iyi yöneten bir numara olan PagedAttention'dır. Her şeyi bir kerede yüklemek ve RAM'i tüketmek yerine, anahtar-değer önbelleklerini parçalara ayırır ve yalnızca gerekli olanı alır. Daha az atık, daha fazla hız.

vLLM

Çok da esnektir. LLaMA veya Mistral gibi popüler modellerle kutudan çıkar çıkmaz çalışır ve NVIDIA veya AMD GPU'lar dahil olmak üzere birçok donanımı destekler. Ayrıca, istekleri verimli bir şekilde gruplandırmak için dinamik gruplama elde edersiniz ve işlem hattının sorunsuz çalışmasını sağlarsınız. Python ve PyTorch'a alışkınsanız kurulumu oldukça basittir.

vLLM'nin birincil sınırlaması, pazardaki göreceli olgunlaşmamışlığıdır; bu, daha köklü çözümlerde bulunan kapsamlı özellik setini henüz sunamayabileceği anlamına gelir. Bununla birlikte, yüksek performanslı çıkarım sağlayan verimli bir çözüm arayan kuruluşlar için vLLM mükemmel bir seçimdir.

Hugging Face TGI: Metin Üretimi için Üretime Hazır Bir Çözüm

Hugging Face TGI (Text Generation Inference), modelleri baş ağrısı olmadan çalıştırmak isteyen kişiler için üretilmiştir. Hugging Face ekibi tarafından oluşturulmuş bir araçtır, bu nedenle BERT, GPT ve daha fazlasını düşünün, önceden eğitilmiş modellerden oluşan devasa kütüphaneleriyle iyi çalışır. Sohbet robotlarını veya metin oluşturmanın hızlı çalışması ve çökmemesi gereken uygulamaları güçlendirmek gibi gerçek dünyada kullanım için tasarlanmıştır.

Kucaklayan Yüz TGI

TGI, eskileri bittikçe yeni istekleri değiştirerek sistemi meşgul tutan sürekli gruplama gibi özelliklerle ağır işleri halleder. GPU hızlandırmayı destekler ve donanımınız varsa ölçeklenebilir. Ayrıca, üretim için kullanışlı olan kötü çıktıları filtreleme gibi yerleşik güvenliği vardır. Docker ile birkaç adımda dağıtabilirsiniz, bu nedenle kurulumu nispeten kolaydır.

Sorun ne? Hugging Face'in ekosistemine bağlıdır, bu nedenle zaten bu dünyada değilseniz, kısıtlayıcı hissedebilirsiniz. Yine de, kullanıma hazır bir tak ve çalıştır seçeneği için TGI harika bir seçim.

LMDeploy: Üstün Kod Çözme Hızı ile Verimli Dağıtım

LMDeploy, MMRazor ve MMDeploy ekiplerinin büyük dil modellerini zahmetsizce sıkıştırmak, dağıtmak ve çalıştırmak için geliştirdiği bir araç setidir. Onu öne çıkaran nedir? A100 GPU'da vLLM'den saniyede 1,8 kat daha fazla isteğe kadar mükemmel kod çözme hızına sahiptir. Bu, kalıcı gruplama, engellenmiş KV önbelleği ve GPU'yu meşgul eden kaygan CUDA çekirdekleri gibi hileler sayesinde.

LMDeploy

İki motoru vardır: Maksimum performans için TurboMind ve daha kolay kurcalama için PyTorch. TurboMind burada yıldızdır - 4 bit çıkarımı FP16'dan 2,4 kat daha hızlı gerçekleştirir ve Llama-2 70B gibi büyük modellerin üstesinden kolaylıkla gelir. Ayrıca doğruluğa zarar vermeden bellekten tasarruf etmek için ağırlıkları ve KV önbelleklerini niceleyebilirsiniz. Dağıtım da çocuk oyuncağı: İhtiyaç duyduğunuzda tek bir komutla birden fazla makinede sunucu kurabiliyorsunuz. Ayrıca, çok turlu görüşmelerde sohbet geçmişini hatırlar, böylece eski işleri yeniden yapmak için zaman kaybetmez.

Dezavantajı mı? TurboMind seçicidir - Mistral gibi kayan pencere dikkat modelleriyle henüz iyi oynamıyor. Ve eğer NVIDIA GPU kullanmıyorsanız, daha yavaş PyTorch motoruna mahkum kalıyorsunuz. Yine de doğru donanımda hız ve basitlik için LMDeploy harika bir seçim.

Performans Karşılaştırması: Gecikme Süresi, Verim ve Ölçeklenebilirlik

Bu motorların gecikme süresi (bir isteğin ne kadar hızlı bittiği), verim (kaç istek alabildikleri) ve ölçeklenebilirlik (daha büyük yüklerle veya daha fazla donanımla ne kadar iyi başa çıkabildikleri) konusunda nasıl bir performans sergilediklerini inceleyelim.

NVIDIA GPU'larınız varsa TensorRT-LLM gecikme süresinde parlar. NVIDIA donanımı için son derece optimize edilmiştir, bu nedenle tek istekler hızlı bir şekilde tamamlanır: A100'deki çoğu model için 50 ms'nin altında. Özellikle dinamik gruplama ile verim de mükemmel. BentoML tarafından yapılan kıyaslamalar, bu motorun A100 80GB GPU üzerinde Llama 3 70B Q4 için 100 eş zamanlı kullanıcıda saniyede 700 jetona ulaştığını göstermektedir. TensorRT-LLM, uzun girdilere ve yüksek talep oranlarına sahip senaryolarda güçlü bir performans sergileyerek iyi bir verim sunuyor. Birden fazla GPU'da ölçeklenebilirlik, mükemmel performansla kutudan çıkar çıkmaz desteklenir.

vLLM, özellikle kod çözme ağırlıklı iş yüklerinde, son güncellemelerden sonra yüksek verim ve düşük gecikme ile iyi bir verime sahiptir. BentoML tarafından yapılan kıyaslamalar, bu motorun A100 80GB GPU'da Llama 3 70B Q4 için 100 eşzamanlı kullanıcıda saniyede 600-650 token'a ulaştığını göstermektedir. Gecikme süresi iyi ancak TensorRT-LLM kadar iyi değil: solo çalışmalar için yaklaşık 60-80 ms. GPU'lar arasında iyi ölçekleniyor, hatta markaları karıştırıyor, ancak büyük kurulumlar için daha az gösterişli.

Hugging Face TGI, vLLM'ye benzer bir performans sergiliyor ve performans ile kullanım kolaylığı arasında bir denge sağlıyor. Gecikme süresi makul: iyi bir GPU'da 50-70 ms. BentoML tarafından yapılan kıyaslamalar, bu motorun A100 80GB GPU'da Llama 3 70B Q4 için 100 eşzamanlı kullanıcıda saniyede 600-650 token'a ulaştığını gösteriyor. Üretim için ölçeklendirilmek üzere üretilmiştir, bu nedenle özellikle Docker ile daha fazla kullanıcıyı veya makineyi sorunsuz bir şekilde idare eder.

LMDeploy kod çözme hızında kazanır. Özellikle küçük modeller için token oluşturma hızında üstündür ve nicelleştirilmiş büyük modeller için düşük İlk Token Zamanı (TTFT) vardır. Gecikme süresi düşüktür: 40-60 ms. Ve verim mükemmeldir. BentoML tarafından yapılan kıyaslamalar, bu motorun A100 80GB GPU üzerinde Llama 3 70B Q4 için 100 eş zamanlı kullanıcıda saniyede 700 jetona ulaştığını göstermektedir. Sunucu kurulumu ile ölçeklendirme kolaydır, ancak en iyi sonuçlar için NVIDIA GPU'larına çok güvenir; PyTorch modu geride kalır.

Sonuç olarak: TensorRT-LLM ve LMDeploy ham hız konusunda liderdir. Seçiminiz donanımınıza ve ne kadar istekle uğraştığınıza bağlıdır.

Kuantizasyon Yetenekleri

Niceleme, bellek kullanımını azaltmak ve çıkarımı hızlandırmak için model hassasiyetini azaltır, bu da kaynak kısıtlı ortamlar için önemlidir. İşte her bir motorun nasıl performans gösterdiği:

TensorRT-LLM; FP8, FP4, Aktivasyona Duyarlı Ağırlık Niceleme (AWQ) ile INT4 ve SmoothQuant ile INT8'i destekleyerek NVIDIA GPU performansını optimize etmek için güçlü seçenekler sunar.

vLLM, GPTQ, AWQ, INT4, INT8 ve FP8 ile esneklik sağlayarak çeşitli donanım ve hassasiyet ihtiyaçlarına uyum sağlar.

Hugging Face TGI, 8 bit ve 4 bit niceleme için bitsandbytes ve yalnızca ağırlık niceleme için GPT-Q'yu entegre eder ve üretim dağıtımları için uygundur.

LMDeploy, 4 bit AWQ, 8 bit niceleme ve çevrimiçi INT8/INT4 KV önbellek niceleme sunarak sınırlı donanımda büyük modeller için verimliliği artırır.

Donanım Uyumluluğu

Donanım desteği, bu motorları nereye konuşlandırabileceğinizi belirleyerek ölçeklenebilirliği ve performansı etkiler:

TensorRT-LLM, NVIDIA CUDA'ya özeldir ve yüksek performans için GPU hızlandırıcılarından yararlanır.

vLLM, NVIDIA CUDA, AMD ROCm, AWS Neuron ve CPU'yu destekleyerek farklı kurulumlar için geniş uyumluluk sunar.

Hugging Face TGI, NVIDIA CUDA, AMD ROCm, Intel Gaudi ve AWS Inferentia ile çalışarak çeşitli donanım ortamları için esneklik sağlar.

LMDeploy, NVIDIA CUDA için optimize edilmiştir ve NVIDIA GPU'larda en yüksek performansı sağlar, ancak diğer platformlar için sınırlı destek sunar.

Kullanım Kolaylığı

Kurulum ve entegrasyon süreci geliştirme zaman çizelgelerini etkileyebilir. İşte her bir motorun durumu:

TensorRT-LLM, kontrol noktalarının dönüştürülmesini, TensorRT motorunun oluşturulmasını ve parametrelerin yapılandırılmasını gerektirdiğinden mühendisler için zorlayıcı ve zaman alıcıdır.

vLLM kapsamlı dokümantasyonu, kolay kurulumu ve sorunsuz Python kütüphane entegrasyonu ile kullanıcı dostudur.

Hugging Face TGI, hızlı dağıtım için önceden oluşturulmuş Docker görüntüleri ve kapsamlı belgeler sunan Hugging Face'in ekosisteminden yararlanır.

LMDeploy, sunucuyu başlatmak için tek bir komut ve özelleştirme için Python API'leri ile basit bir kurulum sunar ve kolaylığı esneklikle dengeler.

Sonuç

Doğru motoru seçmek kullanım durumunuza, donanımınıza ve becerilerinize bağlıdır.

TensorRT-LLM, NVIDIA GPU'larda büyük modeller çalıştırıyorsanız ve hızın her zerresine ihtiyacınız varsa (yanıtların milisaniyeler içinde oluşturulması gereken gerçek zamanlı sohbet robotları veya yapay zeka asistanları gibi düşük gecikmeli uygulamaları düşünün) başvuracağınız çıkarım motorudur. Halihazırda NVIDIA'nın dünyasının derinliklerinde olan şirketler için mükemmeldir, ancak basitlik arıyorsanız aşırıya kaçabilir.

vLLM, hız ve basitlik arasında harika bir dengedir. Esnek ve hızlı bir şekilde kurulmasını isteyen yeni başlayanlar veya araştırmacılar için gerçekten iyi çalışıyor.

Hugging Face TGI, hız ve basitlik açısından vLLM'ye eşdeğerdir. Dağıtımı kolaydır, sorunsuz bir şekilde ölçeklenir ve Hugging Face'in model merkezine bağlanır, bu nedenle zahmetsiz bir çözüm isteyen ekipler için idealdir.

LMDeploy, TensorRT-LLM gibi performans konusunda parlıyor. Basit kurulum ve en iyi performansı isteyen NVIDIA GPU'lu kullanıcılara uygundur, ancak modelleriniz TurboMind ile iyi oynamıyorsa daha az kullanışlıdır.

Kendi GenAI modelinizi kendiniz dağıtamıyorsanız veya dağıtmak istemiyorsanız, NLP Cloud'u kullanabilir ve üretimde büyük ölçekte hızlı üretken AI modellerinden yararlanabilirsiniz. NLP Cloud'da hızlı çıkarımı şimdi deneyin!

Genel olarak çıkarım motorları hakkında sorularınız varsa, lütfen bize sormaktan çekinmeyin, tavsiye vermekten her zaman memnuniyet duyarız!

Julien
NLP Cloud'da CTO