Yazı
Kurum İçi Maliyet Azaltma İçin Hibrit CPU-GPU Çıkarım Stratejileri
Farklı kullanım durumları için kabul edilebilir performansı korurken donanım maliyetlerini azaltmak amacıyla kurum içi yapay zeka çıkarım iş yüklerini CPU'lar ve GPU'lar arasında stratejik olarak nasıl dağıtılır.
Her Çıkarım GPU Gerektirmez
Yapay zeka altyapısındaki varsayılan kabul, çıkarımın GPU gerektirdiğidir. Milyarlarca parametreye sahip büyük dil modelleri için bu varsayım geçerlidir. Ancak birçok kurumsal kurum içi dağıtım, farklı boyut ve türde modellerin bir karışımını çalıştırır ve hepsinin kabul edilebilir performans sunmak için özel GPU kaynaklarına ihtiyacı yoktur.
3 milyar parametrenin altındaki küçük dil modelleri, gömme modelleri, sınıflandırma modelleri ve birçok geleneksel makine öğrenme modeli, özellikle nicemleme ve optimize edilmiş çalışma zamanlarıyla modern sunucu CPU'larında verimli bir şekilde çalışabilir. Maliyet farkı önemlidir: iki üst düzey CPU'ya sahip bir sunucu, GPU donanımlı bir düğümün maliyetinin çok altındadır, daha az güç çeker ve bakımı daha kolaydır. Düzinelerce model çalıştıran organizasyonlar için, iş yüklerini CPU'lar ve GPU'lar arasında akıllıca dağıtmak, önemli olan performanstan ödün vermeden altyapı maliyetlerini önemli ölçüde azaltabilir.
CPU Çıkarımı Ne Zaman Mantıklıdır
Birkaç kategori yapay zeka iş yükü CPU yürütme için oldukça uygundur. Gömme oluşturma, genellikle bir kuruluştaki en yüksek hacimli yapay zeka iş yüküdür; RAG boru hatlarını, semantik aramayı ve belge sınıflandırmasını besler. all-MiniLM-L6-v2 veya BGE-small gibi modeller yüksek kaliteli gömmeler üretir ve özellikle gecikme gereksinimlerinin gevşek olduğu toplu işleme için ONNX Runtime veya OpenVINO kullanarak CPU'larda verimli bir şekilde çalışır.
3 milyar parametrenin altındaki küçük dil modelleri, uygun şekilde nicemlendiklerinde birçok kurumsal kullanım durumunu CPU'larda karşılayabilir. INT4 nicemlenmiş 1,5 milyar parametreli bir model, AVX-512 komut seti desteğiyle llama.cpp üzerinde çalışarak modern Xeon veya EPYC işlemcilerde etkileşimli token üretme hızlarına ulaşabilir. Bu, 5 saniyenin altındaki yanıt sürelerinin kabul edilebilir olduğu belge özetleme, varlık çıkarma ve basit soru-cevap gibi görevler için yeterlidir.
BERT veya DeBERTa gibi mimarilere dayanan sınıflandırma ve NER modelleri doğal CPU iş yükleridir. Bu modeller, CPU çıkarımının minimum gecikme eklediği kadar küçüktür ve içerik moderasyonu, bilet yönlendirme veya veri boru hatlarında kişisel veri tespiti gibi görevler için genellikle yüksek hacimde çağrılır.
Gradyan artırmalı ağaçlar, rastgele ormanlar ve lojistik regresyon dahil geleneksel makine öğrenme modelleri her zaman CPU'larda çalışmalıdır. Bunları GPU altyapısında dağıtmak pahalı hızlandırıcı kaynaklarını israf eder.
CPU Çıkarım Performansını Optimize Etme
CPU çıkarımından iyi performans almak birkaç optimizasyon katmanına dikkat gerektirir. Model nicemleme ile başlayın. ONNX Runtime'ın nicemleme araç seti veya llama.cpp'nin yerleşik nicemleme özelliğini kullanarak modelleri FP32'den INT8 veya INT4'e dönüştürmek, ilgili komut setlerini destekleyen CPU'larda bellek ayak izini azaltır ve verimi artırır.
Çalışma zamanı seçimi önemli ölçüde fark yaratır. ONNX Runtime, CPU'ya özgü optimizasyonlarla geniş model desteği sağlar. OpenVINO, Intel donanımı için yüksek düzeyde optimize edilmiştir. llama.cpp ve türevleri, CPU'larda verimli LLM çıkarımı için özel olarak tasarlanmıştır. Performans farkları önemli olabileceğinden, belirli modellerinizi belirli donanımınızda her çalışma zamanıyla kıyaslayın.
Toplu iş boyutu ve iş parçacığı yapılandırması CPU iş yükleri için ayarlama gerektirir. Büyük toplu işlerin verimi neredeyse doğrusal olarak artırdığı GPU'ların aksine, CPU çıkarımının daha dar bir optimal toplu iş boyutu penceresi vardır. Çok fazla eşzamanlı istek, önbellek çatışmasına neden olur ve performansı düşürür. Çıkarım iş parçacıklarını taskset veya numactl kullanarak belirli CPU çekirdeklerine sabitleyin ve hesaplama yoğun çıkarım için iş parçacığı sayısını mantıksal iş parçacıkları yerine fiziksel çekirdeklerle hizalayın.
Çok soketli sunucularda NUMA bilinçli zamanlama esastır. Çıkarım iş parçacıklarının ve eriştikleri model verilerinin aynı NUMA düğümünde bulunduğundan emin olun; çift soketli sistemlerde çapraz soket bellek erişim cezalarını önlemek için bu gereklidir, aksi takdirde gecikme %30-50 artabilir.
Hibrit Yönlendirme Katmanını Tasarlama
Temel mimari bileşen, model gereksinimlerine ve mevcut yüke göre çıkarım isteklerini uygun hesaplama katmanına yönlendiren bir yönlendirme katmanıdır. Bu yönlendirici üç faktörü değerlendirmelidir: modelin hesaplama profili (CPU'da çalışıp çalışamayacağını belirleyen), isteğin gecikme gereksinimi ve hem CPU hem de GPU havuzlarının mevcut kullanımı.
Pratik bir uygulama, her modeli desteklenen hesaplama hedefleriyle etiketleyen bir model kaydı ve iş dağıtırken bu kaydı sorgulayan bir istek yönlendirici kullanır. Modeller, kıyaslama sonuçlarına göre dağıtım sürecinde katmanlara atanır: bir model CPU donanımında SLA hedeflerini karşılıyorsa, CPU'ya uygun etiketi alır.
Güvenlik mekanizması olarak taşma yönlendirmesi oluşturun. GPU kullanımı yüksek olduğunda, CPU'ya uygun alternatifleri olan GPU birincil modeller için istekler, ayarlanmış SLA'larla geçici olarak CPU havuzlarına yönlendirilebilir. Bu, trafik artışları sırasında GPU kuyruk birikimine engel olur ve istek başarısızlıkları yerine zarif bozulma sağlar.
Yönlendirici, yönlendirme kararları, katman başına kullanım ve SLA uyumluluğu hakkında metrikler sunmalıdır. Bu veriler, devam eden kapasite planlaması ve trafik kalıpları değiştikçe katmanlar arasında taşınması gereken modelleri belirlemek için esastır.
Maliyet Analizi ve Doğru Boyutlandırma
Hibrit çıkarımdan elde edilen tasarrufları ölçmek için her hesaplama katmanının tam yüklü maliyetini ölçmeniz gerekir. GPU düğümleri için donanım amortismanını, güç tüketimini (genellikle yük altında GPU başına 300-700W), soğutma ek yükünü ve raf alanını dahil edin. CPU düğümleri için aynı kategoriler geçerlidir ancak uygun iş yükleri için çıkarım birimi başına önemli ölçüde daha düşük değerlerdedir.
Her modelin çıkarım hacmini her iki katmandaki hesaplama maliyetine eşleyen bir maliyet modeli oluşturun. Günde 10.000 istek işleyen bir model için kısmi GPU maliyetini özel bir CPU tahsisiyle karşılaştırın. Birçok durumda, toplu odaklı gömme iş yüklerini ve küçük sınıflandırma modellerini CPU altyapısına taşımak, gerçekten ihtiyaç duyan büyük modeller için GPU kapasitesini serbest bırakır ve GPU filosu gereksinimlerini etkin bir şekilde azaltır.
Yönlendirme stratejinizde gün içi kalıplarını değerlendirin. Birçok kurumun belirgin yoğun ve düşük kullanım kalıpları vardır. CPU çıkarım havuzları düşük saatlerde arka plan işleme ve toplu işleri yönetebilirken, GPU kaynakları iş saatlerinde etkileşimli, gecikmeye duyarlı iş yüklerine odaklanır. Bu zamansal ayrım her iki katmanda da kullanımı artırır.
Uygulama Yol Haritası
Mevcut model filonuzu profilleyerek başlayın. Hangi modellerin GPU kaynakları tükettiğini ancak kabul edilebilir gecikme sınırları içinde CPU'larda çalışabileceğini belirleyin. Bu aday modeller için uygun nicemleme ve çalışma zamanı optimizasyonlarıyla temsili CPU donanımında kıyaslamalar çalıştırın.
Geçişe, daha yüksek gecikmenin kabul edilebilir olduğu toplu iş yükleri ve etkileşimli olmayan boru hatlarıyla başlayın. Gece indeks yeniden oluşturmaları için gömme oluşturma, belge sınıflandırma boru hatları ve çevrimdışı analitik ideal ilk adaylardır. Performansı yakından izleyin ve yalnızca CPU çıkarım yolunu doğruladıktan sonra daha gecikmeye duyarlı iş yüklerine genişletin.
Yönlendirme katmanını kademeli olarak dağıtın. Model etiketlerine dayalı statik yönlendirmeyle başlayın, ardından CPU çıkarım performans özelliklerinize güven duyduktan sonra dinamik yük tabanlı yönlendirme ekleyin. Amaç, yönlendirme kararının çağıran uygulama için şeffaf olduğu bir sistemdir; uygulama yalnızca bir çıkarım isteği gönderir ve hangi hesaplama katmanının işlediğinden bağımsız olarak bir yanıt alır.
Öne çıkan görsel: BoliviaInteligente tarafından Unsplash'ta paylaşılmıştır.