paint-brush
TheStage AI ile Difüzyon Modellerini Hızlandırma: Recraft'ın 20B ve Red Panda modellerinin bir vaka çalışmasıile@thestage
Yeni tarih

TheStage AI ile Difüzyon Modellerini Hızlandırma: Recraft'ın 20B ve Red Panda modellerinin bir vaka çalışması

ile TheStage AI7m2024/11/26
Read on Terminal Reader

Çok uzun; Okumak

Bu makale, TheStage AI'nın Python araçlarını kullanarak Recraft'ın metinden görüntüye yayılma modellerinin hızlandırılmasını inceliyor. Tescilli modelleri optimize etmenin ve PyTorch çıkarım optimizasyonu için verimli işlem hatları geliştirmenin zorluklarını inceliyoruz.
featured image - TheStage AI ile Difüzyon Modellerini Hızlandırma: 
Recraft'ın 20B ve Red Panda modellerinin bir vaka çalışması
TheStage AI HackerNoon profile picture
0-item
1-item


Recraft AI, tescilli difüzyon modelleri tarafından desteklenen bir tasarım aracıdır. Yeni modelleri Red Panda, Midjourney, DALL-E 3, FLUX dahil olmak üzere mevcut tüm metinden görüntüye modellerini geride bırakıyor . Recraft, tasarımcılar için benzersiz bir kullanıcı deneyimini son teknoloji AI araçlarıyla birleştiriyor. Milyonlarca kullanıcıyı desteklemek için difüzyon modelleri, güçlü donanımları verimli yazılımlarla birleştiren sağlam çıkarım altyapısı gerektirir. Bu makalede, TheStage AI hızlandırma araçlarının, Recraft'ın AI mühendislerinin ve araştırmacılarının sezgisel bir Python arayüzü aracılığıyla Nvidia GPU'larında 2 kata kadar performans elde etmelerine nasıl yardımcı olduğunu inceleyeceğiz!

giriiş

Yayılma modelleri, son yıllarda görseller, müzik, videolar ve 3B ağlar dahil olmak üzere içerik üretimi için olağanüstü sonuçlar göstermiştir. Bu modeller, üretim sonuçlarını yinelemeli olarak iyileştirmek için çıkarım zamanı hesaplama maliyetlerini kullanır ve her çıkarım adımında çıktıyı hafifçe günceller. Artık çok adımlı çıkarım yoluyla akıl yürütmeyi kullanarak yüksek kaliteli yanıtlar sağlayan LLM'lerde benzetme görebiliyoruz.


TheStage AI'da, karmaşık model hızlandırma akışını tamamen otomatik olarak ele almak için keyfi PyTorch modelleri için genel matematiksel çerçeve oluşturuyoruz. Sistemimiz, donanımınızda mevcut optimizasyonları (kunatizasyon, seyreltme) otomatik olarak algılar ve istenen model boyutu ve gecikme kısıtlamalarıyla en iyi kaliteyi elde etmek veya kısıtlı kalite kısıtlamalarıyla en iyi hızlandırmayı bulmak için her katman için uygun algoritmayı seçer. Bu, son derece verimli bir şekilde çözebileceğimiz zor bir matematiksel problemdir! Bu makale, Recraft AI ile ortaklığımız aracılığıyla bu araçları nasıl uyguladığımızı inceliyor.


Araçlarımızı tasarlarken aşağıdaki ilkelere uymaya karar verdik:


  • Donanım özelleştirmesi. Yüksek kaliteli AI ürünleri zaten tercih edilen altyapıya sahiptir
  • Kaliteyi koruma. Yüksek kaliteli AI ürünleri kalite bozulmasını kabul edemez
  • Gizlilik. Yüksek kaliteli AI ürünleri teknolojilerini gizli tutmak ve kendi altyapılarındaki araçlarla çalışmak isterler.
  • Keyfi DNN'ler. Yüksek kaliteli AI ürünleri, açık kaynaklı modeller için genel hızlandırma araçlarının doğru çıktılar üretmek için karmaşık DNN mimarilerini işleyemediği durumlarda, şirket içinde geliştirilen mimarileri kullanabilir.
  • Pytorch. Birçok AI mühendisi için en popüler ve kullanışlı framework.


Bu başlangıç koşulları göz önüne alındığında, aşağıdaki özelliklere sahip araçlar yaratmayı amaçladık:


  • Kontrol edilebilir hızlanma. Çıkarım optimizasyonunu bir iş optimizasyon problemi olarak çerçevelendiriyoruz ve müşterilerin verileri için istedikleri model boyutunu, gecikmeyi veya kaliteyi belirtmelerine olanak tanıyoruz.
  • Basit derleme. Üretilen modelleri verimli donanım yürütmesi için derlemek sadece tek bir satır kod gerektirir. Ayrıca grafik kesintilerini işlemek için basit bir arayüz de sağlıyoruz.
  • Hızlı soğuk başlatma. Mümkün olan en hızlı soğuk başlatmayı elde etmek için derlenmiş modellerin kaydedilmesini etkinleştiriyoruz. Bu yüzden JIT derleyicileri kullanmıyoruz.
  • Basit dağıtım. Optimize edilmiş modeli dağıtmak, orijinal modeli dağıtmak kadar basit olmalıdır.


Metinden Görüntüye Yayılma Modelleri

Gürültü giderme difüzyon işleminin basit görselleştirilmesi.


Difüzyon sürecinin her yinelemesinde, bir sinir ağı Varyasyonel OtoKodlayıcının gizli uzayındaki görüntüyü gürültüden arındırır. Yeni elde edilen görüntü daha sonra tekrar gürültüyle karıştırılır, ancak giderek daha az ağırlıkla. İlk yinelemeler sırasında, difüzyon modeli ana sahneyi çizer ve önemli yükseltmeler yapmak için önemli gürültü ağırlığından yararlanır. Daha sonraki yinelemelerde, yüksek frekanslı ayrıntıları iyileştirir. Bu gözlem, yinelemeden yinelemeye katmanlar arasında ağ kapasitesini stratejik olarak tahsis ederek belirli hızlandırma boru hatları tasarlamamızı ve kaliteyi korumamızı sağlar. Ancak, böyle bir tahsis, matematiksel içgörüleri sağlam mühendislikle birleştiren özel araçlar gerektirir - TheStage AI'nın önemli ölçüde yardımcı olabileceği yer burasıdır!


Bulutlara baktığımızda, belirli şekillere odaklandığımızda, zihinlerimiz düşüncelerimize benzeyen rastgele formları ayırt edebilir. Bu fenomen, beynimizin gürültüdeki örüntüleri nasıl belirlediğini, zihinsel bağlamımızla uyumlu öğeleri nasıl bulduğunu gösterir. Benzer şekilde, difüzyon modelleri, ilk yinelemelerinde bu kavramı kullanır ve istenen görüntünün ön taslağını oluşturmak için gürültüden örüntüler seçer.


Difüzyon Modelleri Hızlanma ve Sıkıştırma

Hızlanan difüzyon modelleri, keyfi DNN'leri hızlandırmak olarak görülebilir, ancak belirli zorlukları hesaba katmamız gerekir. Örneğin, tipik olarak önemli bir hızlanma sağlayan statik kantizasyon, aktivasyon dağılımları yinelemeden yinelemeye değiştiğinden difüzyon modellerinde bir zorluk ortaya çıkarır. Bunu ele almak için, tüm yinelemeler için en uygun değerleri doğru bir şekilde tahmin etmemiz veya her yineleme için farklı kantizasyon kurulumları kullanmamız gerekir.


Difüzyon modellerinin eğitilmesi ve yüksek performans elde edilmesi zordur. Yine de, Recraft ekibi tarafından gösterilen sonuçlar tüm modern metinden görüntüye modellerden daha iyi performans göstermektedir . Bu tür modellerin bozulmasını doğrulamak zor olabilir ve bu da orijinal özellik semantiğini koruyan hızlandırma tekniklerinin kullanılmasını önemli hale getirir. Niceleme algoritmaları, değişen aktivasyon dağılımlarının zorluğunun üstesinden gelebiliyorlarsa iyi bir seçim olabilir. Aşağıdaki bölümlerde açıklayacağımız otomatik boru hatlarımıza bir göz atalım.

Profilleme

Belirli bir veriyle belirli bir modelin profilini çıkarmak şunları sağlar:


  • Her parametrenin boyutunu belirleyin
  • Her temel blok için uygulanabilir niceleme, seyreltme ve budama algoritmalarını tanımlayın
  • Farklı bellek düzenlerine sahip bireysel bloklar için gecikmeyi tahmin edin
  • ANNA (Otomatik NN'ler Hızlandırıcı) için toplanan tüm bilgileri derleyin

Otomatik Sıkıştırma ve Hızlandırma

Profil oluşturucu gerekli tüm verileri topladıktan sonra, ANNA panomuzu başlatabilir ve kaydırıcıyı farklı optimize edilmiş model sürümleri üretmek için hareket ettirebiliriz. Kullanıcılarımız daha sonra kalite ile çıkarım maliyeti arasındaki dengeye göre en iyi adayları seçebilir. Araçlarımız bu öznel kalite kararlarını basit bir şekilde ele alır.


TheStage AI ANNA. Model boyutunu veya gecikmeyi minimum kalite bozulmasıyla ayarlamak için kaydırıcıyı hareket ettirin!

İşlem Füzyonu ve Derleme

Daha önce de belirtildiği gibi, yeni bir düğümün soğuk başlatma süresini artırdığı için JIT derlemesini kullanmıyoruz. Ayrıca hazır derleyiciler de kullanmıyoruz. Bunun yerine, farklı algoritmaları karıştırabilen kendi karmaşık hızlandırılmış yapılandırmamızı derliyoruz. Bunu başarmak için, DNN hızlandırılmış katmanlarını donanımdan bağımsız bir şekilde tanımlamak için kendi dahili protokolümüzü geliştirdik. TheStage AI hızlandırma çerçevesinin temel faydalarından biri, tek bir kontrol noktasının çok çeşitli donanımlar için derlenebilmesi ve AI yazılımı için platformlar arası uyumluluğu çözebilmesidir. Bu özellik, uygulama geliştirmede uç cihaz dağıtımı için özellikle önemli olacaktır.


DNN derleyicilerinin hedefleri şunlardır:


  • Grafik Basitleştirme. Matematiksel işlem birleştirme yoluyla yürütme grafiğini basitleştirin ve çıkarım süresini azaltın
  • Bellek Yönetimi. Her işlem için gereken belleği hesaplayın ve verimli bellek yeniden kullanımıyla tahsis planlamasını yönetin
  • En İyi Uygulama. Her temel işlem için en iyi uygulamayı profilleyin; zorlu bir görevdir, çünkü en iyi uygulama belirli bellek düzenleri gerektirebilir ve bu da katmanlar arası bağlantıların analizine yol açabilir
  • Operasyon Planlaması. Optimize edilmiş yürütme grafiği için bir operasyon planı oluşturun
  • Serileştirme. Modeli sonraki çalışmalarda yeniden derlemekten kaçınmak için tüm bu bilgileri kaydedin


Sıralı işlemler birleştirilmiş bir çekirdeğe birleştirilebilir. İlk işlemin çıktısını genel belleğe kopyalamak yerine, birleştirilmiş çekirdek ikinci işlemi doğrudan yerel belleğin kayıt defterinde değerlendirir. Bu, çıkarımı önemli ölçüde hızlandırır çünkü bellek transferleri genellikle gerçek hesaplamalardan daha uzun sürer. Ancak, tüm işlem dizileri birleştirilemez; bazıları birleştirmeyle tamamen uyumsuzdur. Öğe bazında işlemler için, birleştirilmiş çekirdekler otomatik olarak üretilebilir. Örneğin, Nvidia'nın NVFuser aracı, herhangi bir öğe bazında işlem dizisi için çekirdek üretebilir.

Dağıtım ve Hizmet

Çıkarım sunucuları ve otomatik ölçekleme hatları, gelen isteklerin maliyet etkin ve verimli bir şekilde işlenmesinde önemli bir rol oynar. Ayrıca, otomatik ölçekleyiciler için tahmini ölçeklemeyi ayarlamak üzere belirli istek gruplandırma ve istatistik toplamayı da içerebilir. Gelecek makalelerimizde, verimli çıkarım sunucularını daha ayrıntılı olarak ele alacağız!

Sonuçlar

Tüm boru hattını uygulayarak Pytorch derleyicisinden ( torch.compile ) ve tabii ki float16 istekli PyTorch yürütmesinden önemli ölçüde daha iyi bir performans elde edebiliriz. Dahası, PyTorch derleyicisi her model başlatmada JIT derleme yaklaşımını kullandığından, çok sayıda giriş boyutu için yeniden derleme gerektirir, bu da gecikmenin oldukça önemli olduğu pratik uygulamalar için soğuk başlatmayı yeterince uzun hale getirir.


İşletme Avantajları

Recraft'ın ürünü için ortaya çıkan hızlanmanın temel ticari faydaları şunlardır:


  • Aynı donanımla iki kat daha fazla kullanıcıya hizmet vererek altyapı maliyetlerini düşürün
  • Daha hızlı görüntü oluşturma yanıt süreleriyle iyileştirilmiş kullanıcı deneyimi
  • Yoğun yük zamanlarında daha fazla eş zamanlı kullanıcıya hizmet verebilme yeteneği
  • Daha hızlı hizmet sunumuyla rekabet avantajı


TheStage AI optimizasyon araçları, metinden resme dönüştürme modellerimizi kalite kaybı olmadan hızlandırmamızı sağlayarak müşterilerimiz için daha iyi bir kullanıcı deneyimi yaratıyor.


CEO Recraft, Anna Veronika Dorogush

Teşekkürler

Bu sonuçlar, yüksek ölçekli iş yükü ürünlerine yönelik araçlarımızın ve araştırmalarımızın mükemmel bir şekilde doğrulanmasını sağlar. TheStage AI ekibi, daha da yüksek performans sunmak için çalışmaya devam ediyor. Bunu başarmak için olağanüstü ortaklarla iş birliği yapıyoruz! Şunlara derinden minnettarız:


  • Verimli iş birliği için Recraft CEO'su Anna Veronika'ya. En iyi tasarım araçlarını sunma yolundaki büyük yolculuklarının küçük bir parçası olmaktan bile heyecan duyuyoruz.
  • Yapay Zeka Ağları (DNN) konusunda uzmanlığı, araçlara ilişkin güçlü geri bildirimleri ve iş birliği projemiz için zorlayıcı hedefler belirlemesi nedeniyle Yapay Zeka Recraft Başkanı Pavel Ostyakov'a teşekkürler.
  • Bu harika ürünü inşa eden Recraft AI ekibine. Bu makaledeki görseller Recraft ile oluşturuldu!
  • Araştırmalarımıza mükemmel GPU altyapısıyla verdikleri sürekli destek için Nebius ekibine teşekkür ederiz.

İletişim / Kaynaklar

Herhangi bir sorunuz varsa bizimle iletişime geçmekten çekinmeyin! Çıkarım altyapısı maliyetlerini azaltmanıza yardımcı olabiliriz!

E-postamız: [email protected]

TheStage AI ana sayfası: thestage.ai

TheStage AI çıkarım optimizasyon platformu: app.thestage.ai