SON DAKİKA

Nvdia

“NVIDIA TensorRT-LLM Artık LLM İnfazını Optimize Etmek İçin Tekrarlayıcı Taslak Desteği Sunuyor”

Recurrent Drafting (ReDrafter olarak adlandırılır), Apple tarafından geliştirilen yeni bir spekülatif kodlama tekniğidir ve artık NVIDIA TensorRT-LLM ile birlikte açık kaynak olarak sunulmaktadır. ReDrafter, geliştiricilere NVIDIA GPU’larda büyük dil modeli (LLM) işlem performansını önemli ölçüde artırma imkanı sunar. NVIDIA TensorRT-LLM, LLM çıkarımını optimize etmek için kullanılan bir kütüphanedir. Bu kütüphane, LLM’lerin tanımını yapmak ve en son optimizasyonlarla dolu NVIDIA TensorRT motorlarını oluşturmak için kullanımı kolay bir Python API’si sağlar; işlemleri verimli bir şekilde gerçekleştirmek amacıyla özel dikkat çekici çekirdekler, uçuş anında toplama, sayfalı KV önbellekleme, kuantizasyon (FP8, INT4 AWQ, INT8 SmoothQuant) gibi bir dizi optimizasyon içerir.

Spekülatif kodlama, LLM çıkarımını hızlandıran bir tekniktir; bu yöntem, birden fazla token’ı paralel olarak üretmeyi sağlar. Küçük “taslak” modüller, gelecekteki token’ları tahmin etmek için kullanılır ve bu token’lar ana model tarafından doğrulanır. Bu yöntem, çıkış kalitesini koruyarak yanıt sürelerini önemli ölçüde azaltır ve özellikle düşük trafik dönemlerinde mevcut kaynakları daha iyi kullanarak düşük gecikmeli çıkarım yapılmasını sağlar.

ReDrafter, birden fazla olası yoldan taslak token’ları tahmin etmek ve doğrulamak için diğer tekniklerde kullanılan ağaç yapılı dikkati ile birleştirilmiş tekrarlayıcı sinir ağı (RNN) tabanlı örnekleme kullanır. Bu sayede, her iterasyonda birden fazla token’ın kabul edilme olasılığı artar ve doğrulama süreçleri iyi bir doğruluk sağlar. NVIDIA, bu tekniğe TensorRT-LLM’de destek eklemek için Apple ile işbirliği yaptı; böylece, bu teknik daha geniş bir geliştirici topluluğuna ulaşabilir hale geldi.

ReDrafter’ın Temel İyileştirmeleri

ReDrafter’ın TensorRT-LLM’ye entegrasyonu, kapsamını genişlettiği gibi yeni optimizasyon potansiyellerini açığa çıkardı ve Medusa gibi önceki yöntemlerdeki dezavantajları geliştirdi. Medusa’da, yol kabulü ve token örneklemesi TensorRT-LLM çalışma zamanında gerçekleşiyordu; bu, tüm olası gelecekteki yolların işlenmesi için motor içinde bazı gecikmelere neden oluyordu. Çoğu durumdajected yollar sonrasında ayrılmış oluyordu. Bu tür gecikmeleri azaltmak üzere, ReDrafter, gelecekteki token’ların taslağını oluşturmadan önce en iyi yolun doğrulanmasını ve kabul edilmesini gerektirir.

TensorRT-LLM, bu yaklaşım ile taslak ve doğrulama mantığını tek bir motor içinde birleştirerek, uzun süreli gecikme süresini minimize etmek için bakım ve yönetim üzerinde daha fazla özgürlük sağlar. Bu durum, TensorRT-LLM çekirdek seçiminde ve zamanlamasında maksimum performansı sağlamak için daha fazla optimizasyon imkanı sunar.

Yeni Hesaplama Akışları

ReDrafter’ın temel iyileştirmelerinden biri, akışta grup toplama (inflight batching) uyumlu bir motor oluşturulmasıdır. Akışta grup toplama, bağlam aşaması ve üretim aşaması taleplerini birleştirerek çıktıyı önemli ölçüde artırır. Spekülatif kodlama ile birlikte akışta grup toplama, daha fazla karmaşıklık getirmekte; çünkü bağlam aşaması talepleri üretim aşaması taleplerinden farklı şekilde işlenmelidir.

Bu yeni sistem dahilinde, bağlam talepleri için bir grup ve üretim talepleri için başka bir grup oluşturulmakta ve ardından bunlar, taslak aşamasına geçmeden önce tek bir grup halinde birleştirilmektedir. Bu yaklaşım, TensorRT-LLM API’lerine daha fazla esneklik kazandırmakta ve gelecekte daha karmaşık modeller tanımlamayı mümkün kılmaktadır.

TensorRT-LLM İçinde Doğrulama ve Taslak Oluşturma

ReDrafter’ı doğrulama ve taslak oluşturarak entegre etmek için, TensorRT-LLM, PyTorch kodlarının kolay bir şekilde TensorRT-LLM modeli tanımına çevrilmesini sağlayacak yeni operasyonlar destekleyecek şekilde güncellenmiştir. Aşağıdaki PyTorch kod parçacığı, Apple’ın ReDrafter’ı uygulayan kodudur. TensorRT-LLM uygulaması da, PyTorch versiyonunun neredeyse birebir karşılığıdır.

PyTorch

def unpack(
    packed_tensor: torch.Tensor,
    unpacker: torch.Tensor,
) -> torch.Tensor:
    assert len(packed_tensor.shape) == 3
    last_dim_size = packed_tensor.shape[2]
    batch_size, beam_width, beam_length = unpacker.shape
    unpacked_data_indices = unpacker.view(
        batch_size, beam_width * beam_length, 1).expand(
        -1, -1, last_dim_size
    )
    unpacked_tensor = torch.gather(
        packed_tensor, 1, unpacked_data_indices).reshape(
        batch_size, beam_width, beam_length, -1
    )
    return unpacked_tensor

TensorRT-LLM

def _unpack_beams(
    x: Tensor,
    indices: Tensor,
    num_beams: int,
    beam_length: int
) -> Tensor:
    assert x.rank() == 3
    d0 = shape(x, 0, INT_DTYPE_STR)
    dl = shape(x, -1, INT_DTYPE_STR)
    indices = view(
        indices, [-1, num_beams * beam_length, 1], False)
    res_shape = concat([d0, num_beams, beam_length, dl])
    res = view(gather_nd(x, indices), res_shape, False)
    return res

Bu sadece çok basit bir örnektir. Daha karmaşık bir örnek için, beam search uygulamasına göz atabilirsiniz. ReDrafter için eklenen yeni fonksiyonlarla, TensorRT-LLM’deki Medusa uygulamasını iyileştirerek performansı daha da artırmak mümkün olabilir.

ReDrafter’ın Performansı

Apple tarafından yapılan testlerde, ReDrafter ile TensorRT-LLM, temel LLM’ye kıyasla NVIDIA H100 GPU’larda TP8 ile %270’e kadar daha yüksek bir performans sunabilmektedir.

Spekülatif kodlama tekniklerinin performans artışı, birçok faktörden etkilenebilir:

  • GPU Kullanımı: Spekülatif kodlama genellikle düşük trafik senaryolarında kullanılır; bu durumlarda küçük grup boyutları nedeniyle GPU kaynakları genellikle düşük kullanılmaktadır.
  • Ortalama Kabul Oranı: Her bir kodlama adımının gecikmesi, spekülatif kodlamanın ek hesaplamalar yapması gerektiğinden artmaktadır. Bu nedenle, spekülatif kodlamadan fayda sağlamak için ortalama kabul oranının yeterince yüksek olması gerekir.
  • Görev: Gelecek token’ların tahmin edilmesi, bazı görevlerde (örneğin, kod tamamlama) daha kolaydır; bu da daha yüksek kabul oranlarına ve dolayısıyla daha iyi performansa yol açar.

Sonuç

NVIDIA ve Apple arasındaki bu işbirliği, TensorRT-LLM’yi daha güçlü ve esnek hale getirerek, LLM topluluğuna daha karmaşık modellere yönelik yenilik yapma ve bu modelleri TensorRT-LLM ile kolayca dağıtma olanağı sunmaktadır. Bu yeni özellikler, heyecan verici olanaklar sağlamaktadır ve TensorRT-LLM olanaklarının yanı sıra LLM iş yüklerinde daha fazla gelişim sağlamak için topluluktan ileri düzey modeller bekliyoruz.

Tam potansiyelinizi kullanmak için NVIDIA TensorRT-LLM‘yi keşfedin.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri